14 years agoDatabrowse needed new code to handle the hide dot file correctly.
Martin Poirier [Thu, 14 Jul 2005 06:25:02 +0000 (06:25 +0000)]
Databrowse needed new code to handle the hide dot file correctly.
Added a comment explaining what and why.

Also added a couple of explicit cast to make compiler whine less (double to float mostly).

14 years agoMathutils update
Joseph Gilbert [Thu, 14 Jul 2005 03:34:56 +0000 (03:34 +0000)]
Mathutils update
- also included is some fixes for preprocessor inclues and some clean up of the previous commit

-rewrite and bugfixes
  Here's my changelog:
  -fixed Rand() so that it doesn't seed everytime and should generate better random numbers
  - changed a few error return types to something more appropriate
  - clean up of uninitialized variables & removal of unneccessary objects
  - NMesh returns wrapped vectors now
  - World returns wrapped matrices now
  - Object.getEuler() and Object.getBoundingBox() return Wrapped data when data is present
  - Object.getMatrix() returns wrapped data if it's worldspace, 'localspace' returns a new matrix
  - Vector, Euler, Mat, Quat, call all now internally wrap object without destroying internal datablocks
  - Removed memory allocation (unneeded) from all methods
  - Vector's resize methods are only applicable to new vectors not wrapped data.
  - Matrix(), Quat(), Euler(), Vector() now accepts ANY sequence list, including tuples, list, or a self object to copy - matrices accept multiple sequences
  - Fixed Slerp() so that it now works correctly values are clamped between 0 and 1
  - Euler.rotate does internal rotation now
  - Slice assignment now works better for all types
  - Vector * Vector and Quat * Quat are defined and return the DOT product
  - Mat * Vec and Vec * Mat are defined now
  - Moved #includes to .c file from headers. Also fixed prototypes in mathutils
  - Added new helper functions for incref'ing to genutils
  - Major cleanup of header files includes - include Mathutils.h for access to math types
  - matrix.toQuat() and .toEuler() now fixed take appropriate matrix sizes
  - Matrix() with no parameters now returns an identity matrix by default not a zero matrix
  - printf() now prints with 6 digits instead of 4
  - printf() now prints output with object descriptor
  - Matrices now support [x][y] assignment (e.g. matrix[x][y] = 5.4)
  - Matrix[index] = value now expectes a sequence not an integer. This will now set a ROW of the matrix through a sequence.  index cannot go above the row size of the matrix.
  - slice operations on matrices work with sequences now (rows of the matrix) example:  mymatrix[0:2] returns a list of 2 wrapped vectors with access to the matrix data.
  - slice assignment will no longer modify the data if the assignment operation fails
  - fixed error in matrix * scalar multiplication
  - euler.toMatrix(), toQuat() no longer causes "creep" from repeated use
  - Wrapped data will generate wrapped objects when toEuler(), toQuat(), toMatrix() is used
  - Quats can be created with angle/axis, axis/angle
  - 4x4 matrices can be multiplied by 3D vectors (by popular demand :))
  - vec *quat / quat * vec is now defined
  - vec.magnitude alias for vec.length
  - all self, internal methods return a pointer to self now so you can do print vector.internalmethod() or vector.internalmethod().nextmethod() (no more print matrix.inverse() returning 'none')
  - these methods have been deprecated (still functioning but suggested to use the corrected functionality):
    * CopyVec() - replaced by Vector() functionality
    * CopyMat() - replaced by Matrix() functionality
    * CopyQuat() - replace by Quaternion() functionality
    * CopyEuler() - replaced by Euler() functionality
    * RotateEuler() - replaced by Euler.rotate() funtionality
    * MatMultVec() - replaced by matrix * vector
    * VecMultMat() - replaced by vector * matrix
  -  New struct containers references to python object data or internally allocated blender data for wrapping
  * Explaination here:  math structs now function as a 'simple wrapper' or a 'py_object' - data that is created on the fly will now be a 'py_object' with its memory managed by python
  *    otherwise if the data is returned by blender's G.main then the math object is a 'simple wrapper' and data can be accessed directly from the struct just like other python objects.

14 years agoA few additions/changes suggested by Chris Burt
Johnny Matthews [Thu, 14 Jul 2005 02:52:51 +0000 (02:52 +0000)]
A few additions/changes suggested by Chris Burt

1. Return and PADENTER confirm loopcut and edgeslide
2. When choosing loop to cut in loopcut, can use numeric entry for number of cuts (less than 130)
3. Number of Cuts in loopcut printed in header

14 years agoAdded drawarmature to src project
Joseph Gilbert [Thu, 14 Jul 2005 01:58:14 +0000 (01:58 +0000)]
Added drawarmature to src project

14 years agoThree fixes;
Ton Roosendaal [Wed, 13 Jul 2005 21:28:43 +0000 (21:28 +0000)]
Three fixes;

- Armature editmode, while armature was deforming children, was very slow
  because it kept making subsurfs... this goes still hackish :)
- CTRL+A on armatures used loadsa old code, removed all of it! Still works.
- Using "Set smooth" or "Set solid" on file loaded without 3d window

14 years agoPrevious commit for Xray bones disabled selection of bones. Overlooked one
Ton Roosendaal [Wed, 13 Jul 2005 20:21:54 +0000 (20:21 +0000)]
Previous commit for Xray bones disabled selection of bones. Overlooked one

14 years ago - Change DerivedMesh.drawSolidFaces setMaterial argument to return
Daniel Dunbar [Wed, 13 Jul 2005 20:16:35 +0000 (20:16 +0000)]
 - Change DerivedMesh.drawSolidFaces setMaterial argument to return
   boolean value indicating whether faces with that material should
   be drawn or not.

14 years agoArmature "XRay mode" now draws nicely with solid too. For it to work, I
Ton Roosendaal [Wed, 13 Jul 2005 19:42:08 +0000 (19:42 +0000)]
Armature "XRay mode" now draws nicely with solid too. For it to work, I
had to add a new feature to the 3d window, to collect "after draw" objects,
which get drawn as last, after a clear of the zbuffer.

Same method can be used for nice OpenGL transparent draw, the system is
ready for it, do that later.

The huge commit is caused by cleaning up globals from struct Global. Many
variables were unused or just not needed anymore. Did that to move the ugly
G.zbuf to where it belongs, in the View3D space struct. :)

14 years agoIf loopcut was cancelled, the screen was not refreshed to get rid of the last preview...
Johnny Matthews [Wed, 13 Jul 2005 19:39:01 +0000 (19:39 +0000)]
If loopcut was cancelled, the screen was not refreshed to get rid of the last preview line.

Thanks to Desoto for reporting.

14 years agoA warning cleanup from the last commit. Added some explicit casts. Should just be...
Johnny Matthews [Wed, 13 Jul 2005 16:33:30 +0000 (16:33 +0000)]
A warning cleanup from the last commit. Added some explicit casts. Should just be double to float warnings left here now. Will do more later

Also made edgeslide move a little faster for the time being.

14 years agoWell here it is. Subdivision/Loop Tools Recode Commit #1
Johnny Matthews [Wed, 13 Jul 2005 15:20:40 +0000 (15:20 +0000)]
Well here it is. Subdivision/Loop Tools Recode Commit #1

Ton has been pushing me to get this in and finish it up with help, so here is a run down of the commit

Revised Features
Subdivide now is Edge based, allows for multicut
Loopcut was recoded, now has multi option
Knife tool now has multi option

New Features
Edgering select

Removed Features
Alt-B Edgeloop selection (use alt-RMB in edgemode)
Shift-R Faceloop selection (use alt-RMB in facemode)
Old Subdivide (Except for smooth which is left in until new one works)

Subdivide Smooth Math is broken - could use some help here (look for alter_co in editmesh_tools.c)
Tweak mouse control of Edgeslide is hackish ATM
Add Non-proportional movement  to edgeslide
Add smooth option to new loopcut

I probably left something out.

See here for more info

14 years agoAnother old bug bites the dust! Actually the error was simple... but
Ton Roosendaal [Wed, 13 Jul 2005 13:56:15 +0000 (13:56 +0000)]
Another old bug bites the dust! Actually the error was simple... but
thanks to depgraph it executes nicely now. :)

#bug 2397: frame-duplicator using Constraint not evaluated.

14 years agoCouple of small fixes;
Ton Roosendaal [Wed, 13 Jul 2005 13:30:51 +0000 (13:30 +0000)]
Couple of small fixes;

- cleaned up 'version correction' a bit. There was code slowing down
  current files even (armatures were evaluated all, even when not in
  current layer, was added to make sure they get converted OK).
  Send me old files that crash now! :)
- on reading older files with path-constraints, a fix had to be added.
- error "badd call to addqueue' found when using header-less window for

14 years agoRemoved initializer str = "";
Ton Roosendaal [Wed, 13 Jul 2005 08:56:07 +0000 (08:56 +0000)]
Removed initializer  str = "";
Seems to give issues in MSVC, and wasn't needed after all.

Further fixed dependencies in constraints between armatures and armatures.
It didn't update the other armature when the armature-object itself moved.

14 years agoTwo little bugskis;
Ton Roosendaal [Tue, 12 Jul 2005 17:46:39 +0000 (17:46 +0000)]
Two little bugskis;

- Solid armature drawing didn't do well for negative scaled armatures
- Layer Ipos were not evaluated for invisible objects (there goes another
  exception bypassing dependency...!)

14 years ago - add missing include
Daniel Dunbar [Tue, 12 Jul 2005 17:26:19 +0000 (17:26 +0000)]
 - add missing include

14 years agoFix "Replace Meshes" in radiosity to actually only replace Meshes, and not
Alexander Ewering [Tue, 12 Jul 2005 16:24:27 +0000 (16:24 +0000)]
Fix "Replace Meshes" in radiosity to actually only replace Meshes, and not
also delete lamps, cameras and anything else that was selected in the
"Collect Meshes" phase.

14 years agoACK! Forgot to add the new drawarmature.c file. :)
Ton Roosendaal [Tue, 12 Jul 2005 16:02:50 +0000 (16:02 +0000)]
ACK! Forgot to add the new drawarmature.c file. :)

14 years agoConstraint "influence" slider didn't work once there was an ipo assigned
Ton Roosendaal [Tue, 12 Jul 2005 16:00:47 +0000 (16:00 +0000)]
Constraint "influence" slider didn't work once there was an ipo assigned
once. Variable got initialized too often. :)

Oh! Here's a nice webpage about the previous commit:

14 years agoCleanup of Armature 3d drawing.
Ton Roosendaal [Tue, 12 Jul 2005 15:47:53 +0000 (15:47 +0000)]
Cleanup of Armature 3d drawing.

- In Solid drawmode, bones get drawn solid too now. Including Outline-
  selection color, if that's set.
  Disable it by setting Object-buttons "drawtype" for the Armature.
  Color used for solid bones is in Theme editor.
- EditMode armature now follows (Mesh edit) theme colors (Vertex, Edge)
- PoseMode armature has ThemeColor for selection, and draws three extra
  colors now;
   - blue shade for bones with action Ipos
   - yellow for bones with IK
   - green for bones with a constraint
- "X ray" now only works for PoseMode... needs review, can be done better
- "Draw Names" option uses theme color too, also indicates selection.


- In Armature EditMode, the deformed Mesh goes to rest-position
- Border select didn't clear 'active' flag in Bones in PoseMode
- Mouse-click select didn't work when a dashed line was close to Bone

14 years ago - added missing include
Daniel Dunbar [Tue, 12 Jul 2005 13:50:42 +0000 (13:50 +0000)]
 - added missing include

14 years agoThe hide .data code didn't work correctly when databrowse is used to return something...
Martin Poirier [Tue, 12 Jul 2005 03:37:16 +0000 (03:37 +0000)]
The hide .data code didn't work correctly when databrowse is used to return something (when selecting a datablock, not just browsing).
It only counted visible blocks, but to get a valid index, it has to count invisible ones too.


14 years agoHide .file blocks in databrowse/pop menu.
Martin Poirier [Mon, 11 Jul 2005 23:49:06 +0000 (23:49 +0000)]
Hide .file blocks in databrowse/pop menu.
This is mainly useful for scripts that generate/load datablocks for their own use and don't want to burry the user under an avalanche of datablocks he/she doesn't care about.

This adds a user pref "Hide .data" which now acts as a default value when opening a new fileselector.
It is also used when creating data select pop menus.

The "ghost" button in a fileselect window is independant from the userpref. It can be turned on/off individually without affecting

Note: When turning the option on/off, it sometimes take a couple of times before the pop menu registers it. Probably some caching thing. Will have to look at it.

Default value is Off.

14 years agoMy Radiosity commit had some code from my base list ordering experiement. (It wasn...
Martin Poirier [Mon, 11 Jul 2005 23:23:06 +0000 (23:23 +0000)]
My Radiosity commit had some code from my base list ordering experiement. (It wasn't removed because it didn't use the macros)
Caused radio to often say "no vertices" when that was obviously untrue.

14 years ago- Object buttons, Hooks panel, clear offset didn't redraw correct
Ton Roosendaal [Mon, 11 Jul 2005 19:31:15 +0000 (19:31 +0000)]
- Object buttons, Hooks panel, clear offset didn't redraw correct
- Particle panel was drawing in wrong size

14 years agoNew: Armature editmode/posemode now react correctly to HOME or Numpad-DOT
Ton Roosendaal [Mon, 11 Jul 2005 17:12:33 +0000 (17:12 +0000)]
New: Armature editmode/posemode now react correctly to HOME or Numpad-DOT
for viewing all or only selection nicely centered.

Fix: Poses without NLA or Action were reset to restposition on file read
or exit editmode.

14 years ago - added bglVertex3f call (to match bglVertex3fv)
Daniel Dunbar [Mon, 11 Jul 2005 17:06:03 +0000 (17:06 +0000)]
 - added bglVertex3f call (to match bglVertex3fv)

14 years agoFix: Prevented depgraph to execute do_all_actions when you paste a poste.
Ton Roosendaal [Mon, 11 Jul 2005 15:38:51 +0000 (15:38 +0000)]
Fix: Prevented depgraph to execute do_all_actions when you paste a poste.

14 years agoCorrected the Armature option "Delay deform", which doesn't update its
Ton Roosendaal [Mon, 11 Jul 2005 13:59:02 +0000 (13:59 +0000)]
Corrected the Armature option "Delay deform", which doesn't update its
children during transform... to make it work, had to trick the nice
depgraph code... <sob> :)

14 years agoSLightly altered rule for the new IpoCurve option "Keep horizontal on
Ton Roosendaal [Mon, 11 Jul 2005 12:31:15 +0000 (12:31 +0000)]
SLightly altered rule for the new IpoCurve option "Keep horizontal on
extrema". It now also keeps auto-handles horizontal when the Y coordinate
is exactly identical.

And; made this option default on inserting new curve/keys.

14 years ago Fix for bug #2747
Ton Roosendaal [Mon, 11 Jul 2005 11:58:29 +0000 (11:58 +0000)]
 Fix for bug #2747

Knife cut in edge selection mode can cause crashes, since it uses subdivide
which isn't edge-select aware yet.
Quickly patched it by making knife checking on vertex selection.

Johnny: undo this change when you add the new subdiv code, good test for if
it works as well! :)

14 years agoBoundbox select object mode optimisation.
Martin Poirier [Mon, 11 Jul 2005 11:09:26 +0000 (11:09 +0000)]
Boundbox select object mode optimisation.

Changed selectprojektie (and renamed to view3d_opengl_select as suggested by Ton) to accept a buffer size, so boundbox can adapt it's buffer size to the number of object in scene.
Also, the loop is done more smartly, since glSelect fills the buffer in the same order as the drawing order, so we save lops of looping on unselected object (which used to go through all the buffer before finding that they weren't selected).

This scheme could probably be applied to all the other loops using glSelect. (good project for newbie coders)

14 years agoBug fix #2762
Ton Roosendaal [Mon, 11 Jul 2005 11:01:06 +0000 (11:01 +0000)]
Bug fix #2762

Quite harmless, but was lazy code...
When you choosed "Vertex Color Paint" material, the init_render_material()
also set the "Vertex color Light" option, because that flag was checked on
during render to detect vertex colors.
Now it has proper checks in render code.

14 years agoThis commit fixes radiosity to correctly preserve and subdivide UV
Martin Poirier [Mon, 11 Jul 2005 10:48:14 +0000 (10:48 +0000)]
This commit fixes radiosity to correctly preserve and subdivide UV

  Known problem: Pin status bleeds a bit, so new subdivided UVs around
points that were original pinned can end up pinned in the end. Could be
fixed, or could just drop pinned status entirely.

Also, when gathering meshes, it doesn't add materials twice, so it's harder to bust the 16 materials limit.

14 years agoBug fix #2763
Ton Roosendaal [Mon, 11 Jul 2005 09:46:05 +0000 (09:46 +0000)]
Bug fix #2763

Depgraph missed proper relation from one armature bone to another armature
bone. Interesting rig setup for facial animation by Malefico! :)

14 years agoBugfix for #2768
Ton Roosendaal [Mon, 11 Jul 2005 09:27:35 +0000 (09:27 +0000)]
Bugfix for #2768

Starting a Bake for SoftBody didn't initialize the animation system for the
first frame correctly, causing an initial unwanted softbody effect.

14 years agoBug fix #2772
Ton Roosendaal [Mon, 11 Jul 2005 09:17:43 +0000 (09:17 +0000)]
Bug fix #2772

EditMesh undo didn't restore vertex colors! That slipped our attention for
almost a year... :)

14 years agoMore cleanup: removed do_all_actions() from the src/ tree, replaced with
Ton Roosendaal [Mon, 11 Jul 2005 08:33:52 +0000 (08:33 +0000)]
More cleanup: removed do_all_actions() from the src/ tree, replaced with
proper recalc events. Now action-curve editing updates as it should be.

14 years agoCleaned up the old call to do_all_actions(). It only is supposed to do
Ton Roosendaal [Mon, 11 Jul 2005 08:04:34 +0000 (08:04 +0000)]
Cleaned up the old call to do_all_actions(). It only is supposed to do
a single object, but was still called outside of that scope. Caused crashes
for example when editing Ipo curves of action keys.

editaction.c and editnla.c still need to be tackled...

14 years agoMetaBall editmode didn't send the DAG recalc event while transformed. :)
Ton Roosendaal [Mon, 11 Jul 2005 07:31:51 +0000 (07:31 +0000)]
MetaBall editmode didn't send the DAG recalc event while transformed. :)
Meaning, it didn't do polygonizing while moving elements in edit mode.

14 years agoScripts updated:
Willian Padovani Germano [Mon, 11 Jul 2005 02:41:08 +0000 (02:41 +0000)]
Scripts updated:
- Jean-Michel Soler: paths import -- ai and svg modules;
- Jean-Baptiste PERIN: bvh to armatures (note: should not work until we re-wrap armatures in bpython);
- Campbell Barton: obj importer.

Thanks guys, excuse me the delay.

- tiny doc update.

14 years agoRemoved ika files from projectfiles for armature update
Joseph Gilbert [Sun, 10 Jul 2005 20:40:20 +0000 (20:40 +0000)]
Removed ika files from projectfiles for armature update

14 years agoFix for Bug #2793.
Johnny Matthews [Sun, 10 Jul 2005 13:45:12 +0000 (13:45 +0000)]
Fix for Bug #2793.

A really dumb coding error that I made when I coded this. left out brackets around an if block.

14 years agoFor long on the wanna-have list;
Ton Roosendaal [Sun, 10 Jul 2005 12:50:14 +0000 (12:50 +0000)]
For long on the wanna-have list;

Ipocurves with "Auto" handles now have option to remain horizontal on the
extrema (tops & valleys). Use ALT+H to set this per selected curve.
Note this is a per-curve feature, not per-handle.

If it works satisfying I can check on making this the default new added

14 years agoBug fix #2774
Ton Roosendaal [Sun, 10 Jul 2005 11:00:27 +0000 (11:00 +0000)]
Bug fix #2774

Using linked library files with relative paths, didn't set the correct
relative root... so it only worked with files in the same directory.
ALso fixed the button-lock in material buttons, it didn't allow to see
which materials were linked to the mesh/object.

14 years agoDuplicating armatures didn't give proper re-build pose signal.
Ton Roosendaal [Sun, 10 Jul 2005 10:36:01 +0000 (10:36 +0000)]
Duplicating armatures didn't give proper re-build pose signal.

14 years agoSwitching scenes in the editor now correctly exits all modes, it didn't do
Ton Roosendaal [Sun, 10 Jul 2005 09:55:55 +0000 (09:55 +0000)]
Switching scenes in the editor now correctly exits all modes, it didn't do
vertex/weight/texture paint yet.

14 years agoBug fix #2790
Ton Roosendaal [Sun, 10 Jul 2005 09:42:13 +0000 (09:42 +0000)]
Bug fix #2790

Pressing Wkey with no object active crashed.

14 years agoBugfix #2791
Ton Roosendaal [Sun, 10 Jul 2005 09:38:36 +0000 (09:38 +0000)]
Bugfix #2791

Apply deform without object active crashed (only when using pulldowns)

14 years agoBugfix #2797
Ton Roosendaal [Sun, 10 Jul 2005 09:32:30 +0000 (09:32 +0000)]
Bugfix #2797

Editmesh SHIFT+F "Fill" used an unsigned char to count amount of selected
edges linking to vertices, but also subtracted... causing the char to
become 255. Gave crashes (or infinite loops) when using "Fill" on random
input of solid meshes.

14 years agoBugfix #2803
Ton Roosendaal [Sun, 10 Jul 2005 08:55:14 +0000 (08:55 +0000)]
Bugfix #2803

Transparent shadow could accidentally intersect first with a face being
farther away, due to the fact larger faces can fill up multiple octree
nodes. Had to use the same exception handling as for raytracing mirror or

14 years agoChanged type for new textimeout and texcollectrate into "int".
Ton Roosendaal [Sun, 10 Jul 2005 08:31:56 +0000 (08:31 +0000)]
Changed type for new textimeout and texcollectrate into "int".

Please note that the "long" should be avoided in dna structs... it is a
reserved type for use in our code for pointer storage. It is 32 or 64 bits,
depending CPU architecture (pointer size).

The "long" type currently is in the makesdna.c code, and interpreted as 32
bits only, which is actually wrong yes... I should remove it or code it

BTW; this gave a warning in space.c, another case where MSVC forgives you?

14 years agoArmature;
Ton Roosendaal [Sat, 9 Jul 2005 20:40:44 +0000 (20:40 +0000)]

- IK constraint now uses Ipo from action again
- Bug in last commit; the object action was ignored... did NLA always


- when there are edges in mesh, it now only copies selection in edges
  when you have selectmode edge

14 years agoNew! Pose-constraint Ipos now are integrated in NLA. ALso cleaned up the
Ton Roosendaal [Sat, 9 Jul 2005 19:37:38 +0000 (19:37 +0000)]
New! Pose-constraint Ipos now are integrated in NLA. ALso cleaned up the
weird disabled code that was hanging out there for ages.

Also cleaned up NLA blending itself, it was copying far too much data
around. Should be three times faster or so... need good test!

And restored Action Baking.

14 years ago - add missing includes for lazy programmers who don't read error msgs
Daniel Dunbar [Sat, 9 Jul 2005 18:04:53 +0000 (18:04 +0000)]
 - add missing includes for lazy programmers who don't read error msgs

14 years ago - fix what appeared to be obvious bug, "if (fclose) fclose(file)" ->
Daniel Dunbar [Sat, 9 Jul 2005 17:54:03 +0000 (17:54 +0000)]
 - fix what appeared to be obvious bug, "if (fclose) fclose(file)" ->
   "if (file) fclose(file)", Text3d.c owner should check.

14 years agoArmatures; the bones menu used for "Make Parent" (CTRL+P) used wrong
Ton Roosendaal [Sat, 9 Jul 2005 16:16:45 +0000 (16:16 +0000)]
Armatures; the bones menu used for "Make Parent" (CTRL+P) used wrong
indices still.
Cleaned the code, moved to editobject.c

14 years agoArmature drawing fixes;
Ton Roosendaal [Sat, 9 Jul 2005 14:08:09 +0000 (14:08 +0000)]
Armature drawing fixes;

- Dashed line to parent bone was drawn to wrong bone in Rest Position
- Dashed line had selection color of parent, not of own bone.

14 years ago- Fix for action constraints; for Bone targets (target is input bone
Ton Roosendaal [Sat, 9 Jul 2005 13:41:01 +0000 (13:41 +0000)]
- Fix for action constraints; for Bone targets (target is input bone
  actually) only the relative rotation is used.

- Added scale=1.0 initializer in saving files, this fixes a little  bit
  better upward compatibility

- Still there are cases where bones flip 180 degrees when you read it with
  older Blenders... not sure what it is caused by

14 years agoCommented out one more line to make debug version of engine compile, needed
Ton Roosendaal [Sat, 9 Jul 2005 13:33:36 +0000 (13:33 +0000)]
Commented out one more line to make debug version of engine compile, needed
because API for armatures changed.

14 years agoTwo little bugs showing up in workshop;
Ton Roosendaal [Fri, 8 Jul 2005 06:55:10 +0000 (06:55 +0000)]
Two little bugs showing up in workshop;

- update_for_new_frame() (on frame advance, alt+a) crashed when no 3d view
  was opened ever (NULL pointer)
- using proportional mode on Curve editing wrote beyond end of a malloced
  block. Just a minus one needed here...

14 years agoTwo small fixes;
Ton Roosendaal [Thu, 7 Jul 2005 07:03:35 +0000 (07:03 +0000)]
Two small fixes;

- ALT+R clear rotation on PoseMode didn't work when an Action was assigned
- 'Delete object' didn't set object pointers to NULL for Armature/Pose
  constraints (old bug)

14 years agoWell, it's better if the spelling is corrected everywhere the variable is used.....
Martin Poirier [Wed, 6 Jul 2005 08:14:13 +0000 (08:14 +0000)]
Well, it's better if the spelling is corrected everywhere the variable is used... (why must I make that kind of error?!)

14 years agoAfter much debate on IRC, it was decided to spell "cancelled" properly...
Martin Poirier [Wed, 6 Jul 2005 08:09:51 +0000 (08:09 +0000)]
After much debate on IRC, it was decided to spell "cancelled" properly...

14 years agoPressing ESC on armature posemode now restores position correctly again.
Ton Roosendaal [Wed, 6 Jul 2005 07:31:43 +0000 (07:31 +0000)]
Pressing ESC on armature posemode now restores position correctly again.

14 years agoReverted accidental change in compiling Python for OSX. Now it is default
Ton Roosendaal [Wed, 6 Jul 2005 07:01:27 +0000 (07:01 +0000)]
Reverted accidental change in compiling Python for OSX. Now it is default
again to use the Framework library.

14 years agoImage garbage collection settings init was in the wrong do_version branch (236 instea...
Martin Poirier [Wed, 6 Jul 2005 05:10:31 +0000 (05:10 +0000)]
Image garbage collection settings init was in the wrong do_version branch (236 instead of 237).

14 years ago3D view orbit option: Around Active
Martin Poirier [Wed, 6 Jul 2005 00:33:41 +0000 (00:33 +0000)]
3D view orbit option: Around Active
This fixes the active object in place when orbiting the view.
Choppy 15fps demo can be seen there:

Image Memory Grabage Collection
This adds memory handling to the image code. An image is tagged each time it is used.
During a collection cycle (frequency of cycles is user defined), if an image is older
than a user defined limit, its buffer gets deallocated. This also applies to gl memory buffers.
Images that are loading in GL memory needs to go through two time outs before being fully deallocated: the first time out deallocated the gl memorry, the second the buffer in ram.

Image buffer loaded from python gets tagged as permanent upon load. That tag is removed when python stops using the image.
I might have missed some tagging spots, especially in the rendering pipeline. Someone with more knowledge about this code should check to be careful.
Tagging is done on every access, for rendering, this will probably be a performance hit. A scheme should be developped to only tag when the rendering is completed.
Collecting is called in draw_object, most likely not the best place to do it.
Safe from undo, since using undo deallocates memory anyway (like when loading a blend file with one currently opened)

Userpref DNA changes:
I've changed a couple of flagging variables from short to int. Some because they needed more space, others to keep SDNA happy.

Info window changes:
I've grouped a couple of buttons in aligned blocks and changed the color of mutually exclusive options to make them clearer.
Matt didn't do any changes on that in tuhopuu, so hopefully I'm not stepping on anyone's feet with this.

Also changed double constants into floats with f in a couple of places (mostly space.c) to make compiler happier.

14 years agoMake WITH_FREETYPE2 and INTERNATIONAL set to true by default when
Chris Want [Tue, 5 Jul 2005 19:04:52 +0000 (19:04 +0000)]
Make WITH_FREETYPE2 and INTERNATIONAL set to true by default when
 building under linux (set to false in if you don't
want them).

14 years agocursors.c for blender's special cursors was half done.
Martin Poirier [Tue, 5 Jul 2005 00:46:52 +0000 (00:46 +0000)]
cursors.c for blender's special cursors was half done.

GetBlenderCursor was prototyped but never defined. I filled it in, might be useful at one point (and for some uncommited evil Py code of mine).

14 years agoAdded some missing quaternions fonctions:
Martin Poirier [Tue, 5 Jul 2005 00:30:40 +0000 (00:30 +0000)]
Added some missing quaternions fonctions:

QuatMulVecf Multiplies vector (3-float) by quaternion (rotation). Assumes it recieves a unit quaternion
QuatConj Quaternion conjugate
QuatInv Quaternion inverse (does not assume a unit quat)
QuatMulf Quaternion multiplication with scalar
QuatDot Quaternion dot product
printquat debug print function

14 years agoMSVC 6.0 projectfiles update for the removal of IKA files.
Martin Poirier [Mon, 4 Jul 2005 23:32:59 +0000 (23:32 +0000)]
MSVC 6.0 projectfiles update for the removal of IKA files.

14 years agoAction constraint works again. Needs revision though... do that with
Ton Roosendaal [Mon, 4 Jul 2005 20:09:32 +0000 (20:09 +0000)]
Action constraint works again. Needs revision though... do that with
testfiles i get from Bassam. :)

Further removed old code that was ifdeffed hanging around still.

14 years agoMerging error... rotating bones in pose-mode, with an action inserted
Ton Roosendaal [Mon, 4 Jul 2005 17:41:58 +0000 (17:41 +0000)]
Merging error... rotating bones in pose-mode, with an action inserted
accidentally flushed recalc of Pose. So it popped back to the action state,
preventing editing new keypositions.

14 years agoFixing pose mode transform.
Martin Poirier [Mon, 4 Jul 2005 05:16:54 +0000 (05:16 +0000)]
Fixing pose mode transform.
With new system, very easy to do in the end (figuring it out was less so).
No need to go down parent chains or anything of the sort, just apply parent pose and we're all set.

Ton's commit reverted back before my include files cleanup in transform, recleaning.

Also, as mentionned by bjornmose, declaration after instruction choked MSVC. Fixed.

14 years agoOld define in engine still...
Ton Roosendaal [Sun, 3 Jul 2005 18:10:41 +0000 (18:10 +0000)]
Old define in engine still...

14 years agoResult of 2 weeks of quiet coding work in Greece :)
Ton Roosendaal [Sun, 3 Jul 2005 17:35:38 +0000 (17:35 +0000)]
Result of 2 weeks of quiet coding work in Greece :)

Aim was to get a total refresh of the animation system. This
is needed because;
- we need to upgrade it with 21st century features
- current code is spaghetti/hack combo, and hides good design
- it should become lag-free with using dependency graphs

A full log, with complete code API/structure/design explanation
will follow, that's a load of work... so here below the list with
hot changes;

- The entire object update system (matrices, geometry) is now
  centralized. Calls to where_is_object and makeDispList are
  forbidden, instead we tag objects 'changed' and let the
  depgraph code sort it out
- Removed all old "Ika" code
- Depgraph is aware of all relationships, including meta balls,
  constraints, bevelcurve, and so on.
- Made depgraph aware of relation types and layers, to do smart
  flushing of 'changed' events. Nothing gets calculated too often!
- Transform uses depgraph to detect changes
- On frame-advance, depgraph flushes animated changes


Almost all armature related code has been fully built from scratch.
It now reveils the original design much better, with a very clean
implementation, lag free without even calculating each Bone more than
once. Result is quite a speedup yes!

Important to note is;

1) Armature is data containing the 'rest position'
2) Pose is the changes of rest position, and always on object level.
   That way more Objects can use same Pose. Also constraints are in Pose
3) Actions only contain the Ipos to change values in Poses.

- Bones draw unrotated now
- Drawing bones speedup enormously (10-20 times)
- Bone selecting in EditMode, selection state is saved for PoseMode,
  and vice-versa
- Undo in editmode
- Bone renaming does vertexgroups, constraints, posechannels, actions,
  for all users of Armature in entire file
- Added Bone renaming in NKey panel
- Nkey PoseMode shows eulers now
- EditMode and PoseMode now have 'active' bone too (last clicked)
- Parenting in EditMode' CTRL+P, ALT+P, with nice options!
- Pose is added in Outliner now, with showing that constraints are in
  the Pose, not Armature
- Disconnected IK solving from constraints. It's a separate phase now,
  on top of the full Pose calculations
- Pose itself has a dependency graph too, so evaluation order is lag free.


- Rotating in Posemode has incorrect inverse transform (Martin will fix)
- Python Bone/Armature/Pose API disabled... needs full recode too
  (wait for my doc!)
- Game engine will need upgrade too
- Depgraph code needs revision, cleanup, can be much faster!
  (But, compliments for Jean-Luc, it works like a charm!)
- IK changed, it now doesnt use previous position to advance to next
  position anymore. That system looks nice (no flips) but is not well
  suited for NLA and background render.


We now can do loadsa new nifty features as well; like:

- Kill PoseMode (can be option for armatures itself)
- Make B-Bones (Bezier, Bspline, like for spines)
- Move all silly button level edit to 3d window (like CTRL+I = add
- Much better & informative drawing
- Fix action/nla editors
- Put all ipos in Actions (object, mesh key, lamp color)
- Add hooks
- Null bones
- Much more advanced constraints...


- OGL render (view3d header) had wrong first frame on anim render
- Ipo 'recording' mode had wrong playback speed
- Vertex-key mode now sticks to show 'active key', until frame change


14 years agoWarning hunt:
Martin Poirier [Thu, 30 Jun 2005 04:11:41 +0000 (04:11 +0000)]
Warning hunt:
INIT_MINMAX and INIT_MINMAX2 are always used on floats but use doubles for initializing, giving countless warnings.
Added the nice 'f' to tell compilers that we want floats.

14 years agoTransform stuff
Martin Poirier [Tue, 28 Jun 2005 07:58:16 +0000 (07:58 +0000)]
Transform stuff

Cleanup in transform.c: removed uneeded includes and removed REPEAT experiment.

Split off manipulator init function, no need to resort on hacks to setup stuff before starting transform anymore.

Fix0r3d single axis projection for constraints. It deals with perspective correctly now (as much as planar constraints).

14 years agoBug reported by Jean-Baptiste.
Kent Mein [Mon, 27 Jun 2005 15:57:09 +0000 (15:57 +0000)]
Bug reported by Jean-Baptiste.
(Inexed 0 0 0 instead of 0 1 2

I also removed dos linebreaks.


14 years agoPatch by Martin Poirier: display normalized coordinates in image window, with
Brecht Van Lommel [Sun, 26 Jun 2005 15:37:36 +0000 (15:37 +0000)]
Patch by Martin Poirier: display normalized coordinates in image window, with
a few small modifications:
- also display normalized coords while transforming
- adapt step size & precision for button
- moved option to 'View' menu

Also made sure pixel snapping when transforming uv's is off by default.

14 years agoThe overlapping curves/material indices problem got a bit out of control.
Alexander Ewering [Sat, 25 Jun 2005 22:51:51 +0000 (22:51 +0000)]
The overlapping curves/material indices problem got a bit out of control.

 - For avoiding the 'overlapping character problem' in Text objects, I had
   changed the sorting code for filling nurbs to use nu->charidx (a new
   variable incremented with each new character) instead of nu->mat_nr
   (which used to work for material indices inside a 2D Curve).

 - This broke material indices in normal 2D Curves completely, thus:

 - nu->charidx is now not only used for seperating
   characters in text objects for filling, but also for normal 2D curves
   when they contain material indices. In fact, charidx is just set to
   the material index.

 - There's compatibility code in readfile.c that sets nu->charidx to nu->mat_nr
   when reading curves from files that are not text objects

 - So, the big conclusion: Instead of using material indices for creating
   'filling groups', filldisplist() now uses nu->charidx, which is set
   appropriately when reading old files and assigning/deleting material
   indices in curves.

 - This is all pretty obscure and hard to explain. If I haven't been clear,

 - If it breaks anything, complain!

14 years agoFix a potential issue with vfontb/i/bi not getting freed when converting
Alexander Ewering [Sat, 25 Jun 2005 12:18:23 +0000 (12:18 +0000)]
Fix a potential issue with vfontb/i/bi not getting freed when converting
font to curve.

(Sorry, I had typed a 10000k commit log last time, then it errored and
I really don't feel like retyping it all.)

14 years ago- update to add lorem.c dependency
Joseph Gilbert [Fri, 24 Jun 2005 17:23:47 +0000 (17:23 +0000)]
- update to add lorem.c dependency

14 years ago - bug fix, crash with edges with no face in subsurf
Daniel Dunbar [Fri, 24 Jun 2005 05:30:41 +0000 (05:30 +0000)]
 - bug fix, crash with edges with no face in subsurf

14 years ago - bug fix, vertex normal calculation during incremental update was not
Daniel Dunbar [Thu, 23 Jun 2005 23:44:22 +0000 (23:44 +0000)]
 - bug fix, vertex normal calculation during incremental update was not
   correct (although fairly unnoticable).
 - bug fix, vertex normal calculation didn't normalize face normals before
   summing... silly mistake

p.s. perhaps the Crystal Space bla bla naming conversation is not most
appropriate for the commit list?

14 years agoSegfault waiting to happen. This is way old code that I did, I blame my rusty C skill...
Martin Poirier [Wed, 22 Jun 2005 05:45:23 +0000 (05:45 +0000)]
Segfault waiting to happen. This is way old code that I did, I blame my rusty C skills from back then (and the fact that lazy evaluation would make it work correctly). :)

14 years agoRemoved a debug print
Alexander Ewering [Tue, 21 Jun 2005 15:10:49 +0000 (15:10 +0000)]
Removed a debug print

14 years ago - fix strange declaration of adduplicate that just used matrix argument
Daniel Dunbar [Tue, 21 Jun 2005 14:51:57 +0000 (14:51 +0000)]
 - fix strange declaration of adduplicate that just used matrix argument
   as flag... confusing and weird.

14 years ago - #ifndef O_BINARY section should be after includes which would define
Daniel Dunbar [Tue, 21 Jun 2005 14:14:41 +0000 (14:14 +0000)]
 - #ifndef O_BINARY section should be after includes which would define

14 years ago - fix pedantic complaint from MSVC
Daniel Dunbar [Tue, 21 Jun 2005 14:13:44 +0000 (14:13 +0000)]
 - fix pedantic complaint from MSVC

14 years ago- Copy buffer is preserved across editing multiple text objects
Alexander Ewering [Tue, 21 Jun 2005 13:52:29 +0000 (13:52 +0000)]
- Copy buffer is preserved across editing multiple text objects
- Potential memory leak with selection drawing fixed
- "Copy Attributes" menu (CTRL-C) now copies all fonts (Plain/B/I/BI)

14 years agoUpdating with lorem.c
Johnny Matthews [Mon, 20 Jun 2005 13:37:52 +0000 (13:37 +0000)]
Updating with lorem.c

14 years agoFix for the "Lorem" button. Missing an extern keyword in BIF_editfont.h
Alexander Ewering [Mon, 20 Jun 2005 01:28:42 +0000 (01:28 +0000)]
Fix for the "Lorem" button. Missing an extern keyword in BIF_editfont.h
(thanks Matthew for spotting this!)

Now it should work even on platforms with sane compilers (unlike gcc) :-)

14 years agoAttempt at providing the best possible flexibility and usefulness with
Alexander Ewering [Sat, 18 Jun 2005 00:52:25 +0000 (00:52 +0000)]
Attempt at providing the best possible flexibility and usefulness with

- There are now two modes, "Flush" and "Justify". Justify only flushes
  a line when it is *terminated* either by wordwrap or by Enter.

- "Flush" *always* flushes the line, also when it's still being entered.

  This mode can be used for things like this:

  ..while "Justify" would not flush the second line.

- Fixed "Flush" squeezing all characters on the same spot if the textframe
  was set to 0 width

14 years agoAdding lorem.c file to BL_src.dsp MSVC 6.0 projectfile.
Martin Poirier [Sat, 18 Jun 2005 00:37:41 +0000 (00:37 +0000)]
Adding lorem.c file to BL_src.dsp MSVC 6.0 projectfile.

Note to intrr: pressing the lorem bug crashes here too, will trace later.

14 years agoFix drawing of text frames inside editmode, stupid error.
Alexander Ewering [Fri, 17 Jun 2005 23:30:39 +0000 (23:30 +0000)]
Fix drawing of text frames inside editmode, stupid error.

14 years agoCompatibility code for 'Word spacing' value, old files will now load
Alexander Ewering [Fri, 17 Jun 2005 23:05:59 +0000 (23:05 +0000)]
Compatibility code for 'Word spacing' value, old files will now load
with Word spacing set to 1.0 instead of 0.0.

14 years ago- Fix a few warnings
Alexander Ewering [Fri, 17 Jun 2005 22:52:11 +0000 (22:52 +0000)]
- Fix a few warnings

- Improved text editing for justified ('Flush') text: Line will not
  be filled up until it is completed (wordwrap or Enter)

- Fixed waitcursor flickering in displist.c

14 years agoFile containing our famous Lorem Ipsum text, complete even!
Alexander Ewering [Fri, 17 Jun 2005 21:05:38 +0000 (21:05 +0000)]
File containing our famous Lorem Ipsum text, complete even!