Commit Graph

1231 Commits

Author SHA1 Message Date
cfd5439bc6 Fixed Constraint projection code in perspective mode. When using a planar constraints, it follows the movement of the mouse exactly instead of just casting on the plane.
In user terms: the motion on screen of the selection follows the motion of the mouse pointer.

Gives some errors when the constraint plane is nearly perpendicular to the view port though.

Added a debug print function for 4D vectors to arithb.c

Optimised the 3D -> view projection functions in view.c (a bit).
2005-02-27 19:14:21 +00:00
e13933bc7c Added include sys/vfs.h for hpux was in the patches tracker....
and cleaned up the include for dirent.h

Kent
2005-02-25 14:50:57 +00:00
8c4608bbf4 I updated the FREETYPE2 checks so it didn't build freetype stuff
if WITH_FREETYPE2 was set to false.

Also added/cleaned up source/nan_compile.mk NAN_NOKETSJI stuff a hair.

Kent
2005-02-18 16:52:03 +00:00
996374bb5a Fixed old annoyance; enabling true Ortho render in Blender.
It used to be a simple hack, scaling lens with 100, and moving the camera
to the back with an equivalent amount.
Because of the hack, making it 100% compatible with older files I could not
achieve (yet?). To help reminding users, I've added a print when reading
old files with Ortho cameras.

Full description of how it works can be found here;
http://www.blender3d.com/cms/Render_changes.515.0.html
2005-01-30 11:25:27 +00:00
3806b050d6 Mixup of vectors in VecAngle3 (caused by me switching order of args!)
Resulted in wrong angle display, especially in trias
2005-01-09 14:28:18 +00:00
3c921cc8e8 The "teac" (measurement info) patch from Campbell Barton
Cleaned code somewhat (half the size!) and applied some changes:
- made it compatible with selection flags for new mesh editing (edge/face)
- renamed 'face angles' to 'edge angles' and made it display angles for
  2 selected edges too
- removed the confusing convention that always drawed the info if one
  of the vertices of edge/face/angle was selected. now it only displays on
  minimum of 1 full edge or face selected.
- made it react to "zbuf occluded selection" option (for zbuffered text)
- made it also colorize text for white theme color (TH_TEXT)

On larger meshes this info still draws very confusing. The idea of displaying
the info on 1 vertex selected was probably to show values while grabbing,
although that didnt really work for angles. One idea could be, for transform,
that it draws all lenghts/angles/areas that get changed during transform

All in all, still useful addition tho!
2005-01-08 21:16:24 +00:00
48bc598658 More warning cleanups...
added a casts to:
   blender/blenlib/intern/BLI_memarena.c
   gameengine/Rasterizer/RAS_TexVert.cpp

Removed unused vars from:
   blender/python/api2_2x/vector.c
   gameengine/Ketsji/KX_PyMath.cpp gameengine/Ketsji/KX_Scene.cpp
   gameengine/Physics/Sumo/Fuzzics/src/SM_Object.cpp
   gameengine/Rasterizer/RAS_FramingManager.cpp
   gameengine/Rasterizer/RAS_Polygon.cpp
   gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.cpp

Kent
2005-01-03 18:05:24 +00:00
8055b5c247 Some of the Makefiles had CPPFLAGS += LEVEL_(X)_C_WARNINGS
I changed them so that they have CPPFLAGS += LEVEL(X)_CPP_WARNINGS
instead.

Kent
2005-01-03 17:57:16 +00:00
7e1fcb5c07 Bug fix 2047
FileWindow didnt sort the dirs "." and ".." correctly. Now these two are
always first.
2005-01-03 14:17:33 +00:00
610cec55c7 Biiig commit! Thanks to 2-3 weeks of cvs freeze...
Render:
- New; support for dual CPU render (SDL thread)
  Currently only works with alternating scanlines, but gives excellent
  performance. For both normal render as unified implemented.
  Note the "mutex" locks on z-transp buffer render and imbuf loads.
- This has been made possible by major cleanups in render code, especially
  getting rid of globals (example Tin Tr Tg Tb Ta for textures) or struct
  OSA or using Materials or Texture data to write to.
- Made normal render fully 4x32 floats too, and removed all old optimizes
  with chars or shorts.
- Made normal render and unified render use same code for sky and halo
  render, giving equal (and better) results for halo render. Old render
  now also uses PostProcess options (brightness, mul, gamma)
- Added option ("FBuf") in F10 Output Panel, this keeps a 4x32 bits buffer
  after render. Using PostProcess menu you will note an immediate re-
  display of image too (32 bits RGBA)
- Added "Hue" and "Saturation" sliders to PostProcess options

- Render module is still not having a "nice" API, but amount of dependencies
  went down a lot. Next todo: remove abusive "previewrender" code.
  The last main global in Render (struct Render) now can be re-used for fully
  controlling a render, to allow multiple "instances" of render to open.

- Renderwindow now displays a smal bar on top with the stats, and keeps the
  stats after render too. Including "spare" page support.
  Not only easier visible that way, but also to remove the awkward code that
  was drawing stats in the Info header (extreme slow on some ATIs too)

- Cleaned up blendef.h and BKE_utildefines.h, these two had overlapping
  defines.

- I might have forgotten stuff... and will write a nice doc on the architecture!
2004-12-27 19:28:52 +00:00
1b4667b33f Errors in saving runtime, and fileops in file window; files were copied
or deleted without keeping track of spaces in names, causing in potential
loss of data.

Needs review!
2004-12-16 14:40:25 +00:00
d12960dd2d fix for potential crasher. we were returning pointer to a local var 2004-12-12 13:29:54 +00:00
7434e91f7d Bugfix #1589
When the render output directory doesn't exist (on windows) the BLI_recurdir_fileops() function
tries to create a directory with no name. Added check if a name is specified..
2004-12-11 15:56:01 +00:00
c8c149281c Added winstuff.h for M_PI_2 define! 2004-11-11 13:47:06 +00:00
2e4a10253b Fix for bug #1756
This was caused by a very primitive method of interpolating quaternions.
It was converting quats to mat and back to quat, and then just doing
a linear interpolation. That whilst quaternions are renowned for having
good interpolation possible.

I've experimented with 2 quaternion interpolation methods, and can only
get one to work correctly... the "official" version from Watt brothers
I can't get working, both are in arithb.c now.

Will arrange *close* review with experienced NLAers for it! But testing
here gives fully predictable results.

Also changed;
- added pointer check in drawaction
- changed puldown menu for correct hotkeys for move NLA strips up/down
2004-11-11 13:17:32 +00:00
691302f28d Two fixes;
- The function "convex()" in editmesh_lib() actually did not deliver
a proper test for convex at all. It was checking only if a quad could
be subdivided into 2 trias. Code for adding face (FKEY) used this
call in total confusing manner. That code was there in 1.40 already,
cannot find any clue what it was supposed todo... :)
Recoded convex() to deliver a proper test. FKEY will give warning on
attempt to make convex faces now.

- Added undo-free for editmode undo on file load
2004-11-03 11:25:27 +00:00
e82d208b1c ESC during scanfill (triangulate) delivers corrupted memory
(well, not on OSX to be noticed :). Discovered thanks to adding filling
of curves in Solid display, and bugreport of intrr that ESC in grabbing
curve gives weird corruption.
2004-10-30 22:53:27 +00:00
131e5908a6 Evil commit! Nothing really changed except;
- EditVlak -> EditFace
- variables called 'evl' -> 'efa'
- functions with 'vlak' in it now have 'face'

Just thought was nice starter for editmesh recode...
2004-09-18 20:15:37 +00:00
d1bbaf18ca - Fix build failure on Linux sparc
Checks for operating systems should be that, and not checks for hardware.
Linux/sparc is a valid combination, using sparc to check for Solaris thus
results in problems on non-Solaris.
2004-08-03 17:05:03 +00:00
e077328122 Added LSCM UV Unwrapping:
http://www.loria.fr/~levy/Galleries/LSCM/index.html
http://www.loria.fr/~levy/Papers/2002/s2002_lscm.pdf

Implementation Least Squares Conformal Maps parameterization, based on
chapter 2 of:
Bruno Levy, Sylvain Petitjean, Nicolas Ray, Jerome Maillot. Least Squares
Conformal Maps for Automatic Texture Atlas Generation. In Siggraph 2002,
July 2002.

Seams: Stored as a flag (ME_SEAM) in the new MEdge struct, these seams define
where a mesh will be cut when executing LSCM unwrapping. Seams can be marked
and cleared in Edit Mode. Ctrl+EKEY will pop up a menu allowing to Clear or Mark
the selected edges as seams.

Select Linked in Face Select Mode now only selects linked faces if no seams
separate them. So if seams are defined, this will now select the 'face group'
defined by the seams. Hotkey is still LKEY.

LSCM Unwrap: unwrap UV's by calculating a conformal mapping (preserving local
angles). Based on seams, the selected faces will be 'cut'. If multiple
'face groups' are selected, they will be unwrapped separately and packed in
the image rectangle in the UV Editor. Packing uses a simple and fast
algorithm, only designed to avoid having overlapping faces.

LSCM can be found in the Unwrap menu (UKEY), and the UV Calculation panel.

Pinning: UV's can be pinned in the UV Editor. When LSCM Unwrap is then
executed, these UV's will stay in place, allowing to tweak the solution.
PKEY and ALT+PKEY will respectively pin and unpin selected UV's.

Face Select Mode Drawing Changes:
- Draw Seams option to enable disable drawing of seams
- Draw Faces option to enable drawing of selected faces in transparent purple
- Draw Hidden Edges option to enable drawing of edges of hidden faces
- Draw Edges option to enable drawing of edges of visible faces

The colors for these seams, faces and edges are themeable.
2004-07-13 11:48:52 +00:00
c90ffd49e0 - changed sequence for finding HOME on Win32. Sequence is now as
shown at http://www.blender3d.org/cms/Installation_Policy.352.0.html

   Still TODO:  update NSIS installer script to suit the change.
2004-07-11 21:54:18 +00:00
cd47cfd3d1 New: color picker!
With a click on the 'COL' buttons (the ones showing RGB) a menu pops up
with three colorpicking fields and a palette.
The fields are the three planar intersections of a HSV cube, each allowing
choosing in the field without the field changing.

The palette is 'modal' unfortunately (couldn't find a simple working other
method) where the button "paste to color" denotes the state that click in
palette copies to edited color, and "copy to palette" means the active
color is copied into the palette...

Todo:
- saving of palette in file
- decide whether ESC leaves without changes...
2004-07-05 08:48:17 +00:00
4f457fa277 Limit for Normalise() call was 0.000000001 or so. This is still far too
big, since a float can go to 10^-37. And, this value is still squared, so
a square root will not frustrate it.

Limit now is 10^-35, fixing disappearing faces in extreme small object
thats extreme close to a camera. (thanks OOPz!)
2004-05-31 12:08:50 +00:00
34d3b2c2e4 Changed printing an empty string to print "0" for files for zero size
in file selector.
Thanks Joilnen for pointing to this line.
2004-05-11 12:50:04 +00:00
00b44d4db2 - nasty memory corruption on windows for getting home directory
- check to make sure $HOME/.blender exists before returning that
    as the home
2004-05-10 20:35:46 +00:00
9936d28382 - switched a strcat and strcpy pair... doh! (well spotted b-ix!)
- appended "./blender" to %HOME% return for Win32. Is consistant now
  with the other returns for Win.
2004-05-06 21:40:38 +00:00
8d18aade3f potential fix for windows crash when it encounters file dates beyond
the nice limited unix range (1970-2034 or so).
Zr will check!
2004-05-06 20:53:05 +00:00
64fd636f0c Mirror in object mode. Works like Mirror in edit mode but only works on local axis (doing it differently would require a much more clever algorithm).
Mirror Object is assigned to Ctrl-M and I've add Ctrl-M to call Mirror Edit (on top of M alone) for practical reason. We should consider switching both to Ctrl-M for pratical reasons but I kept M for backward compatibility
Also added the menu and toolbox counterparts.

Minor addition to arithb.c: A function to print vectors to the console. Easier for debuging.
2004-04-24 21:09:06 +00:00
255cd235a3 - Returned multi-user support on Win2k/XP.
Now uses 'Application Data/Blender Foundation/Blender' instead of old
  "Not A Number" dir.

- Updated windows installer to make this change transparent for the
  users. It copies /.blender to the new location and displays a short
  message to advise them of the change
  (http://homepages.nildram.co.uk/~aphex/installer_msg.jpg).

- Installer also includes fix for opening blend files from explorer (patch provided by Valentin Ungureanu (vung) - thanks!)

Note to CVS users on Win2k/XP:  Although blender will continue to work
without changes, you should ideally copy the /.blender dir to
<app data>/Blender Foundation/Blender for the sake of correctness :)
2004-04-20 19:12:48 +00:00
9802db019d Rick Kimball's patch Basically it checks to make sure the unix platforms
were able to find a user before copying that user as the owner.

Kent
2004-04-05 17:07:06 +00:00
Chris Want
3b680da036 Making noise.c more palatable on irix. 2004-04-04 01:36:16 +00:00
0ae03d1626 Eesho's patch for new noise textures!
Basically this provides three new things:

1. Choice of a list of noise-base functions, which can be used by the
   current Clouds, Marble, Wood textures as well.
2. Three new texture types: Musgrave, Voronoi and DistortedNoise
3. Python access to noise functions (not for render!)

All of this together makes Blender's builtin procedural textures a LOT
more powerful. Here again, a full webpage should be made to show off all
possibilities, and explain some of the more scientific names for settings.

A good read on Musgrave textures can be found here:
http://www.ypoart.com/Downloads/Musgrave.htm
About Voronoi:
http://www.ypoart.com/Downloads/Worley.htm
I can't find official DistortedNoise docs easily... maybe its something
Eeshlo created himself.

I've spent some time to change the patch Eeshlo provided. Worth noting:
- created main texture "Musgrave" with 5 sub choices (instead of 5 new
  main textures)
- added for all new textures the option to scale (zoom in out)
- added patch in do_versions to initialize variables

I hope the Python team will check on the Noise.c API. And include in docs!
2004-04-03 13:59:27 +00:00
2b27a909f0 Fixed the fix I did earlyer. (Move var declaration up in the function
to where it should be)  Darn SGI ;)

Kent
2004-03-30 14:41:08 +00:00
53b9bc5990 Bug fix for #977
Removes the creation of a password table for Non Windows machines
and instead calls getpwuid Was a lot slower before,
 on systems with many users.

fix provided by Ryan Hayward (rhayward)

Kent
2004-03-29 18:39:48 +00:00
9206a1eba6 - replaced G.{edve,eded,edvl} with G.editMesh, atm just a structure to
hold the three lists, nothing major, but gives a place to hang data
    off of and a single "mesh" structure to pass around for editing
    functions.
2004-03-28 08:46:35 +00:00
9ed4436058 Updated the Sun ifdef's basically I standardized them so they
were all the same and make sure all platforms see them.

Kent
2004-03-06 19:32:33 +00:00
d9cf17d930 Added a if defined(__sun)
I believe gcc and sun's cc have it defined differently.
It wasn't including statfs.h now it is.

Kent
2004-02-23 14:29:10 +00:00
6d68c41e62 last minute commit -- saving .b.blend files on Windows for users
who have set a %HOME% environment var now works again.
Patch provided by Bill Baxter, plus an additional fix for Win9x.

There is still work to be done with this after the 2.32 release...
2004-01-29 20:30:05 +00:00
4e525501b5 Applied checks for more secure 3D font handling.
(Loading fonts without a valid name would crash Blender)
2004-01-25 13:50:54 +00:00
0ef6f7e927 Corrected the line distance behaviour for Text objects.
The font vectordata is scaled on load, so the character size will fit between the default (1.0) linedist.
Warning: this might change the font size in older blend files. (read: breaks backward compatibility)
2004-01-16 12:49:43 +00:00
50ad38cf56 Changed the Font editing panel so it displays the Postscript name of the font.
Also supplied tooltip information for the buttons in the Font panel.
2004-01-15 20:34:54 +00:00
Nathan Letwory
1126706d2e - [win32] now really using the directory Blender is installed in. My patch was kinda incomplete, but aphex_ (Simon) was kind enough to point out the lines to edit :) 2004-01-07 21:03:11 +00:00
7f609ec2aa - added BLI_ghash_size(), number of entries in table
- added GHashIterator ADT, for iterating over GHash-tables
2004-01-07 06:13:43 +00:00
b3911687ee - only cosmetic stuff; result of going over the output of mipspro cc
compile round. Wrong prototypes, unused variables, zealot const usage,
  and in action.c fixed insane & unreadable function call syntax.
2003-12-24 11:44:57 +00:00
a6ed4d2d86 - Solution for fixing plugins, which now runs without -ldl at OSX 10.2/3
Code from Peter O'Gorman <ogorman@users.sourceforge.net which has
  been credited in the source.
  Basically the dlopen() and dlerror() calls have been recreated wrapping
  the standard OSX methods.
  Names used are osxdlopen() and osxdlerror(). So no naming conflict will
  occur.
2003-12-07 19:20:10 +00:00
b5e0a7b401 Nathan Letwory's patch for Bug #458 (Fileselect bug) 2003-12-01 14:27:06 +00:00
9bcf2dcd1c Douglas Bischoff's Fix for Plugins on OSX.
Kent
2003-11-25 20:10:06 +00:00
4a5ae4a55f Fix for undo... it didn't do the UV coords (tface) nor the vertexpaint
colors. This because of the pretty weird (ab)use of load & make editmesh...

For each added undo step, the load_editmesh was fed with an empty mesh
to assign data to, without knowledge of what was in the original mesh.
That way UV and color data got lost.

Solved it in 2 steps:

1. removing the ->tface pointer from EditVlak, and make TFace a builtin
  struct inside EditVlak. This didnt cost much extra mem, since it already
  stored UV and color. This enabled some pretty cleanup in editmesh.c as
  well, storing tface pointers was cumbersome.
2. for each undo step, it then generates always a tface and mcol block to
  link to the undo Mesh.
  Even when it wasn't in the actual Mesh, at exit editmode the original
  Mesh is used as reference anyway, and undo-meshes are freed correctly.

The enormous commit is because I had to change the BLI_editVert.h file, and
found it was included in about every file unnecessary. I removed it there.
ALso found out that subsurf has code ready (unfinished) to make UV coords for
the displaylist in EditMode as well, nice to know for later...
2003-11-19 22:00:14 +00:00
066df297b5 - fixed a bug when saving user defaults (Win32 only)
(the first save didn't store paths or font settings!)

This is something I broke back at 2.28a :)
I'm suprised there were no bug reports on this, but it's fixed now! ;)
2003-10-25 14:09:18 +00:00
4efdabfbbc Constraint stuff from tuhopuu including (but probably not limited too):
Axis options for TrackTo
LockTrack
FollowPath

Auto creation of TrackTo constraint from Ctrl-T (old track still an option)

Auto creation of FollowPath when parenting to path (Normal parent still an option)

Backward compatibility stuff to convert the per object axis settings to per constraint when a Track constraint is present.

Function to convert old track to constraint (commented out)

Revamped the constraints interface with Matt's work from tuhopuu and the stuff we were discussing earlier.

--------------------
For coders:

unique_constraint_name and *new_constraint_data  moved to the kernel (constraint.c)

new Projf function in arithb gives the projection of a vector on another vector

add_new_constraint now takes a constraint type (int) parameter

add_constraint_to_object(bConstraint *con, Object *ob) to link a constraint to an object

add_constraint_to_client(bConstraint *con) to link constraint to current client (object or bone)

add_influence_key_to_constraint (bConstraint *con) to (eventually) add a keyframe to the influence IPO of a constraint
2003-10-21 13:22:07 +00:00