16 years agoGetting blender to compile for IRIX, in particular:
Chris Want [Wed, 14 Sep 2005 21:50:37 +0000 (21:50 +0000)]
Getting blender to compile for IRIX, in particular:

IK: needed to change abs() to TNT::abs() (thanks brecht!)

Freetype: FT_ENCODING_UNICODE typecast to FT_CharMap (thanks intrr!)

header_image: missing include for liballoc stuff

Ketsji: needed to declare m_hitObject as public in KX_MouseFocusSensor.h.
This is probably the wrong thing to do, but KX_MouseFocusSensor.cpp
compilation fails on line 279 otherwise.

16 years agoAn #include <wchar.h> was needed to ccoompile on OSX
Chris Want [Wed, 14 Sep 2005 20:07:32 +0000 (20:07 +0000)]
An #include <wchar.h> was needed to ccoompile on OSX

16 years agoCommented out the memset(...) in chtoutf8(), as it just assumed the buffer
Alexander Ewering [Wed, 14 Sep 2005 17:01:03 +0000 (17:01 +0000)]
Commented out the memset(...) in chtoutf8(), as it just assumed the buffer
was at least 16 bytes long, but wasn't always, and it gets cleared manually
by all calling places anyway.

Should fix crashes.

16 years agoOn behalf of Mika Saari, the famous Unicode Font support!
Alexander Ewering [Wed, 14 Sep 2005 14:02:21 +0000 (14:02 +0000)]
On behalf of Mika Saari, the famous Unicode Font support!

Further information is available here:

Shortlist of features:

- Unicode character support for Font3D
- UI to select characters from Unicode character list
- UI to select Unicode table areas
- Optimized character loading (Load only those characters which are used
  in font object)

Please test extensively if it breaks anything, try also loading/saving
files, packing fonts, etc.

The official text regression file in the regression suite should be a
good start.

Thanks to mikasaari for this very useful addition!

16 years ago=bpy beztriple: finally got the mem. management right with the help of khughes.
Toni Alatalo [Wed, 14 Sep 2005 13:59:43 +0000 (13:59 +0000)]
=bpy beztriple: finally got the mem. management right with the help of khughes.

16 years agoJust a little addition to docs based on a discussion on irc.
Toni Alatalo [Wed, 14 Sep 2005 11:04:13 +0000 (11:04 +0000)]
Just a little addition to docs based on a discussion on irc.

16 years agoMemory management flag to behave better, as hinted by Ken Hughes.
Toni Alatalo [Wed, 14 Sep 2005 10:53:51 +0000 (10:53 +0000)]
Memory management flag to behave better, as hinted by Ken Hughes.
Still not good, i.e. getting these when quitting: Error Totblock: 4
new bpytriple len: 60 0x8889bdc ... 'cause nothing frees them..

Changed the loop that parsed input args to PyArg_ParseTuple to have
support for passing ints from Python too as the floats that are the
coordinates. Didn't find PyInt_AsFloat and figured that this is an ok
way anyhow.

Changed the default handle mode from AUTO to ALIGN, which is the same
as in UI and more useful at least for me.

Little sanifying in CurNurb (this was done with Ton).

16 years agoupdate to .NET projectfiles
Joseph Gilbert [Wed, 14 Sep 2005 02:27:15 +0000 (02:27 +0000)]
update to .NET projectfiles
- added imagepaint and key files

16 years agoKEYC pops up 'paint tool'
Jens Ole Wund [Tue, 13 Sep 2005 21:04:19 +0000 (21:04 +0000)]
KEYC pops up 'paint tool'
was always there .. but noone but me knew

16 years ago* Added hotkeys for rendering animation (Ctrl F12) and playing back
Matt Ebb [Tue, 13 Sep 2005 09:52:00 +0000 (09:52 +0000)]
* Added hotkeys for rendering animation (Ctrl F12) and playing back
animation (Ctrl F11) similar to rendering a still with F12 and showing it in
the buffer with F11.

16 years agobug fix:
Jens Ole Wund [Mon, 12 Sep 2005 19:20:53 +0000 (19:20 +0000)]
bug fix:
UV paint tool did not work with swapped mouse buttons in user prefs.

16 years agoExclude only-shadow lamps to be rendered when the main render option
Ton Roosendaal [Mon, 12 Sep 2005 17:43:48 +0000 (17:43 +0000)]
Exclude only-shadow lamps to be rendered when the main render option
"shadow" is off.
Bugfix 3018

16 years agoSmall fixes;
Ton Roosendaal [Mon, 12 Sep 2005 15:17:35 +0000 (15:17 +0000)]
Small fixes;

- "make track" in posemode only worked for objects, so disabled it for now
- in weightpaint, "Clear rotation/location" worked on armature-pose, as well
  as on object. Was confusing... disabled clearing object in weightpaint.

16 years agoBug fix #3042
Ton Roosendaal [Mon, 12 Sep 2005 14:48:00 +0000 (14:48 +0000)]
Bug fix #3042

Button "text on curve" did not remake DAG dependencies, so editing the
curve gave no updates in text.

16 years agoFix for bug #3024
Johnny Matthews [Mon, 12 Sep 2005 14:01:44 +0000 (14:01 +0000)]
Fix for bug #3024

In non-prop mode for edgeslide, loop would not return to proper position after cancel.

16 years agoBug fix #3026
Ton Roosendaal [Mon, 12 Sep 2005 13:53:40 +0000 (13:53 +0000)]
Bug fix #3026

Pulldown Mode select (3d header) failed to enter posemode in editmode,
but only when posemode was already set for armature

16 years agoBugfix #3040, the new 'roundbox' button disabled copy/paste values in
Ton Roosendaal [Mon, 12 Sep 2005 13:26:53 +0000 (13:26 +0000)]
Bugfix #3040, the new 'roundbox' button disabled copy/paste values in
buttons. You could notice that for Constraint and Modifier panels.

16 years agoChecked some regression files (2.37) and found issues with correct backward
Ton Roosendaal [Mon, 12 Sep 2005 13:02:36 +0000 (13:02 +0000)]
Checked some regression files (2.37) and found issues with correct backward
conversion of data still. Remains a painful issue to get things converted
and in same time prevent things from calculated twice. :)

Anyhoo, issue was that old files with armatures in hidden layers went wrong

16 years ago - timemarker name is moved up, when current frame equals to frame of timemarker
Jiri Hnidek [Mon, 12 Sep 2005 08:43:09 +0000 (08:43 +0000)]
 - timemarker name is moved up, when current frame equals to frame of timemarker

16 years agobugfix: [ #3009 ] possible memory leak in Mathutils
Stephen Swaney [Mon, 12 Sep 2005 06:18:45 +0000 (06:18 +0000)]
bugfix: [ #3009 ] possible memory leak in Mathutils

fixed by patch [ #3013 ] patch for memleak in vector
Submitted By: Ken Hughes (khughes)

16 years agopatch #3011 ] update to curnurb.setFlagU doc, added set and get for Taper
Stephen Swaney [Mon, 12 Sep 2005 06:07:19 +0000 (06:07 +0000)]
patch #3011 ] update to curnurb.setFlagU doc, added set and get for Taper
Contributed by Toni Alatalo (antont).

Support for Taper Objects for Curves.
Code for curnurb.setFlagU() method not changed as per discussion on
bf-python mail list.

16 years agofix compiler warning: No newline at end of file
Stephen Swaney [Mon, 12 Sep 2005 04:46:34 +0000 (04:46 +0000)]
fix compiler warning:  No newline at end of file

16 years ago - when marker is selected, then it's name is highlighted and name is moved
Jiri Hnidek [Sun, 11 Sep 2005 13:19:10 +0000 (13:19 +0000)]
 - when marker is selected, then it's name is highlighted and name is moved
   up. It can be useful, when you have many named markers in timeline.
 - screenshot:

16 years agoMy first DerivedMesh code! :)
Ton Roosendaal [Sun, 11 Sep 2005 13:02:55 +0000 (13:02 +0000)]
My first DerivedMesh code! :)

Bugfix #3002: Using 'calc weights from envelope' WKey in weightpaint mode
now uses the subsurfered vertex coordinates to calculate weights.

16 years agoBugfix #2999. Nkey buttons had a limit for input of 1000.0. That's not
Ton Roosendaal [Sun, 11 Sep 2005 11:03:09 +0000 (11:03 +0000)]
Bugfix #2999. Nkey buttons had a limit for input of 1000.0. That's not
much... made it 10 times larger, to match the max zoom level.

Nevertheless; on our ancient todo is that we once should give number
buttons 2 limits. One for the actual min/max values, and one for the best
sliding experience (matching zoom level or distance for example).

16 years agoBugfix #2996. Delete vertexgroup didn't update Outliner.
Ton Roosendaal [Sun, 11 Sep 2005 10:20:30 +0000 (10:20 +0000)]
Bugfix #2996. Delete vertexgroup didn't update Outliner.

16 years agoBug fix #3033
Ton Roosendaal [Sun, 11 Sep 2005 10:12:31 +0000 (10:12 +0000)]
Bug fix #3033

Using "make parent armature with creating vertex groups" option gave
corrupted memory when one or more bones had the "Deform" option not set.
Was caused by old boneclass SKINNABLE variable. To end this confusement,
removed this define from code.

Note for future Armature tool coders; don't use this bonelooper
functionality. Operations in Object mode for armatures should use the
Pose Channels, which is a simple ListBase to go over. I have to recode
the 'create vertexgroups' still...

16 years agohaving a "mini gimp" in image editor
Jens Ole Wund [Fri, 9 Sep 2005 22:31:23 +0000 (22:31 +0000)]
having a "mini gimp" in image editor
{ hope it does not break builds .. mscv6 .. scons works fine here }

16 years agomake MSVC6 projects happy :
Jens Ole Wund [Fri, 9 Sep 2005 21:15:00 +0000 (21:15 +0000)]
make MSVC6 projects happy :
add key.h + .c to project

16 years agoNew feature for edgeslide: Holding SHIFT now slows down movement by factor
Alexander Ewering [Fri, 9 Sep 2005 16:27:20 +0000 (16:27 +0000)]
New feature for edgeslide: Holding SHIFT now slows down movement by factor
10 (like transform()) and allows for fine-tuning the loop with hairy
reference edges.

16 years agoFix: when using in WeightPaint the Wkey option for the first time (no
Ton Roosendaal [Fri, 9 Sep 2005 15:38:20 +0000 (15:38 +0000)]
Fix: when using in WeightPaint the Wkey option for the first time (no
vertex groups yet on Mesh), the undobuffer for Wpaint got corrupt.

16 years agoFix for armature deform: if there's a vertexgroup on a vertex, but not with
Ton Roosendaal [Fri, 9 Sep 2005 15:16:39 +0000 (15:16 +0000)]
Fix for armature deform: if there's a vertexgroup on a vertex, but not with
bone assigned to the group (like for softbody) the envelope-deform was not

16 years agoBPython:
Willian Padovani Germano [Fri, 9 Sep 2005 01:31:10 +0000 (01:31 +0000)]

- Pontus Lidman contributed a new module: Blender.Key + access to key objects from NMesh, Lattice and Curve + docs (thanks and sorry for taking so long to check/commit the patch!)

- Allowing EVENT spacehandlers to call the file selector (scriptlinks in general are not allowed, but this special case should be able to). Requested by Paolo Colombo (thanks!)

- tiny doc update (Ken Hughes pointed an error in the space handlers example)

I didn't have time to update the Key module to follow the current bpython design, will do that later and also test it better than I did.

16 years agoRemoving Auto-Fgon feature till it can be a little better implemented and integrated
Johnny Matthews [Thu, 8 Sep 2005 12:59:47 +0000 (12:59 +0000)]
Removing Auto-Fgon feature till it can be a little better implemented and integrated

16 years agoNew icons image
Ton Roosendaal [Thu, 8 Sep 2005 10:59:36 +0000 (10:59 +0000)]
New icons image

16 years agoAdded icons for outliner display of Modifiers. Used ones as provided by
Ton Roosendaal [Thu, 8 Sep 2005 10:59:13 +0000 (10:59 +0000)]
Added icons for outliner display of Modifiers. Used ones as provided by
Eckhard Jaeger on forums.

- made new Armature icon, based on looks of Action icon. Using a Bone icon
  for everything was too confusing
- made softbody icon softer... it looked like a water drop, something that
  would be better for Fluid stuff later :)
- the Modifier icon itself (wrench) looks a bit too much like a tool... but
  its a clear icon that stands out.

16 years agoFix for weight painting errors, as reported by Bassam.
Ton Roosendaal [Wed, 7 Sep 2005 18:07:24 +0000 (18:07 +0000)]
Fix for weight painting errors, as reported by Bassam.

- Undo/Redo didn't work
- Crash on using weightpaint with Armature-modifier (instead of parent).

Note: checking if an object is being deformed cannot be simply done with
checking for a parent anymore... for this a call in modifier.c has been
added; modifiers_isDeformedByArmature(Object *). It even returns the
Armature object pointer.

16 years agoThis patch adds:
Johnny Matthews [Wed, 7 Sep 2005 03:37:37 +0000 (03:37 +0000)]
This patch adds:

Add Intersect Modifier
Add Union Modifier
Add Difference Modifier

to the W key menu

Select 2 mesh object and press W. Then select a modifier entry. The active mesh selection will get a boolean modifier of the type selected with the inactive selection as target.

16 years agoRoland Hess' Floor Constraint patch:
Martin Poirier [Wed, 7 Sep 2005 00:11:39 +0000 (00:11 +0000)]
Roland Hess' Floor Constraint patch:

Minor modifications to simplify the code in evaluate_constraint.

The "Stick" feature will need more work as it gives bad results when skipping frames, jumping around on the timeline and when going backward in time.

Suggestion: Would be nice if it could use the local space too, not just global space planes.

16 years agoThree armature fixes (yes, i'm in studio orange!)
Ton Roosendaal [Tue, 6 Sep 2005 16:57:08 +0000 (16:57 +0000)]
Three armature fixes (yes, i'm in studio orange!)

- on adding armatures, the "use vertexgroup" and "use envelope" options
  are now on.
- fixed ancient bug; on duplicate bone in editmode, it popped to the
  origin of armature, if parent bone was not selected and current bone not
- subdivide bones now follows the Mirror edit option too

16 years agoadded some get methods and stuff
Erwin Coumans [Tue, 6 Sep 2005 16:45:48 +0000 (16:45 +0000)]
added some get methods and stuff

16 years agoPercent and Flip now invalidate the edgeslide redraw, so that it updated on key press
Johnny Matthews [Tue, 6 Sep 2005 15:55:54 +0000 (15:55 +0000)]
Percent and Flip now invalidate the edgeslide redraw, so that it updated on key press

16 years agoForgot to add correct naming for subdiv bones.
Ton Roosendaal [Tue, 6 Sep 2005 12:51:02 +0000 (12:51 +0000)]
Forgot to add correct naming for subdiv bones.

16 years agoQuick added; editmode bone subdivision (Wkey only). Doesn't do mirrored
Ton Roosendaal [Tue, 6 Sep 2005 09:47:30 +0000 (09:47 +0000)]
Quick added; editmode bone subdivision (Wkey only). Doesn't do mirrored
yet. Need commit so I can access it on the compu in Orange studio :)

16 years agoFix truetype (freetype2) font loading
Alexander Ewering [Sun, 4 Sep 2005 09:30:57 +0000 (09:30 +0000)]
Fix truetype (freetype2) font loading

16 years ago - added NewBooleanMeshDLM bad level call
Daniel Dunbar [Sat, 3 Sep 2005 18:10:13 +0000 (18:10 +0000)]
 - added NewBooleanMeshDLM bad level call

16 years agoSaturday morning first cup of coffee hack (yeah, its a late
Daniel Dunbar [Sat, 3 Sep 2005 17:22:29 +0000 (17:22 +0000)]
Saturday morning first cup of coffee hack (yeah, its a late

 - fun for the whole family, boolean mesh modifier... doesn't work
   with layered modifiers yet (just uses base mesh), although may
   god have mercy on your soul if you want to run boolean on a
   subsurf anyway
 - added displistmesh_add_edges

This exposes a bug in boolean, apparently the output is somehow
random (hash on alloc'd pointer value perhaps) which is sortof

It also makes more apparent the desire for some level of control
over dep graph evaluation during editmode (at the moment dep
graph is reevaluated for a mesh object in editmode, but since
mesh changes are on editmesh other objects don't really see
any change, so it is a wasted recalc).

16 years ago - assorted minor warning fixes
Daniel Dunbar [Sat, 3 Sep 2005 16:20:33 +0000 (16:20 +0000)]
 - assorted minor warning fixes

16 years agoFix for bug #2974:
Brecht Van Lommel [Sat, 3 Sep 2005 13:28:14 +0000 (13:28 +0000)]
Fix for bug #2974:
Circle select in uv editor crashed when an image was assigned but not loaded.

16 years agoBug fix #2788
Ton Roosendaal [Sat, 3 Sep 2005 12:35:13 +0000 (12:35 +0000)]
Bug fix #2788

in 3d window, nkey panel, click in middle of number button & press ESC
moved the 3d cursor to that location. The button was passing on its
event to the window event queue, which shouldn't be.

16 years agoBug fix #2985
Ton Roosendaal [Sat, 3 Sep 2005 12:14:59 +0000 (12:14 +0000)]
Bug fix #2985

Envelope correction for moving bone-points in edit mode didn't reset on ESC

16 years agoBugfix #2977
Ton Roosendaal [Sat, 3 Sep 2005 11:20:16 +0000 (11:20 +0000)]
Bugfix #2977

Tweaked selection code for Manipulators in 'combo' mode, it gives
preference now to the scale/translate widgets over the rotate arcs. This
enables use of these widgets in ortho top/side views.

16 years agoBug fix #2972
Ton Roosendaal [Sat, 3 Sep 2005 10:50:21 +0000 (10:50 +0000)]
Bug fix #2972

Copy/Paste bone name buttons crashed, didn't use the callback for buttons
proper yet.

Also added MAXFRAME defines for buttons, instead of hardcoded values 9000
or 18000

16 years agoAuto-Fgon Feature for subdivide
Johnny Matthews [Fri, 2 Sep 2005 16:31:03 +0000 (16:31 +0000)]
Auto-Fgon Feature for subdivide

If Fgon is selected in mesh tools panel, In the following cases

Quad - 2 edge Adjacent - Path
Quad - 2 edge Adjacent - Innervert
Quad - 3 edge

'extra' faces are combined to fgons. to make cleaner subdivides. Please give feedback

16 years agoAdding back in the "Big Purple Dot" to indicate which edge the non-proportional Edges...
Johnny Matthews [Thu, 1 Sep 2005 18:40:16 +0000 (18:40 +0000)]
Adding back in the "Big Purple Dot" to indicate which edge the non-proportional Edgeslide is using for distance

16 years ago- Changed xz limit drawing to use same formulas as the limiting in the IK
Brecht Van Lommel [Wed, 31 Aug 2005 22:09:44 +0000 (22:09 +0000)]
- Changed xz limit drawing to use same formulas as the limiting in the IK
  module -- the previous method could be off pretty far.
- Added drawing of transparent surface for it, instead of just the border.
- Added "stretch IK", allowing bones not only to rotate, but also scale.
  The "Stretch" value below the DoF buttons is used to enabled this.

- Some code tweaking: slightly simplified computation of transform for IK,
  renamed chain to tree, removed unused pchan->ik_mat, ..

Internal IK module work:
- Do damping per DoF also based on stiffness, hopefully makes it converge
  faster with very stiff joints.
- Instead of having two joints types (translational and rotational), now
  all 6 DoF's can be enabled for one joint.
- Added limits for translational joints.

16 years agoRe-enabled freetype font rendering :-)
Alexander Ewering [Wed, 31 Aug 2005 19:07:06 +0000 (19:07 +0000)]
Re-enabled freetype font rendering :-)

16 years ago - mesh_strip_loose_faces was completely wrong, dunno what I was on...
Daniel Dunbar [Wed, 31 Aug 2005 04:04:28 +0000 (04:04 +0000)]
 - mesh_strip_loose_faces was completely wrong, dunno what I was on...

16 years agoUpdate to .NET project files
Joseph Gilbert [Tue, 30 Aug 2005 22:11:31 +0000 (22:11 +0000)]
Update to .NET project files
- added edgehash stuff
- added new IK solver stuff (rebuild /intern)

16 years agoNonproportional mode for loopcut
Johnny Matthews [Tue, 30 Aug 2005 20:33:35 +0000 (20:33 +0000)]
Nonproportional mode for loopcut

while sliding the edge, press P this will swap modes. while in Non prop mode, press F to change the control "side". You can still change the control edge too.

16 years agoForce redraw on Edgeslide Cancel (RMB and ESC)
Johnny Matthews [Tue, 30 Aug 2005 18:09:07 +0000 (18:09 +0000)]
Force redraw on Edgeslide Cancel (RMB and ESC)

Fixes bug reported by Fab31 on IRC

16 years agoBug #2962
Ton Roosendaal [Mon, 29 Aug 2005 18:03:03 +0000 (18:03 +0000)]
Bug #2962

Moving in Posemode + Rest Position a Bone crashed. Uninitialized Trans...

16 years agoFirst version of visualizing the DoF (french degrees!) for Pose-bones. It
Ton Roosendaal [Mon, 29 Aug 2005 17:02:24 +0000 (17:02 +0000)]
First version of visualizing the DoF (french degrees!) for Pose-bones. It
now only draws the limits for X and Z rotations (Y is bone axis itself).

Quick snaphsots (links will disappear):

It only draws for selected Bones that are part of IK, and have limits set.
Most work was getting code OK to setup drawing this 'DoF space', so now
experiments can be done with more drawing types.

ALso; Buttons for DoFs now only draw if the pose-bones are part of an IK

16 years agoMore text object fancyness, and fixes:
Alexander Ewering [Mon, 29 Aug 2005 12:46:07 +0000 (12:46 +0000)]
More text object fancyness, and fixes:

 - "Flush" is now split into two seperate Alignment modes "Flush" and

   - Justify does exactly the same as a normal word processor's justify
     function does, and in addition, it uses *whitespace* instead of
     *character spacing* (kerning) to fill lines. Much more readable.

   - Flush is pretty much the old Blender "Flush" mode - and as such it
     uses character spacing to fill lines. Just as Justify, this only
     works with at least one textframe.

 - Underlining for text objects. Not a lot to explain. New button "U" in
   the editbuttons, and CTRL-U as hotkey toggle underlining for newly
   entered characters or for the selection, just like CTRL-B/CTRL-I do for

   Underline height (thickness) and Underline position (vertical) can be
   set in the editbuttons.

   Implemented as CU_POLY polygon curves.

 - The B, U and i buttons (and the corresponding CTRL-B/U/I keystrokes)
   have been fixed to only affect *one* attribute at a time. Formerly,
   hitting CTRL-B when no other style was active, on a text portion with
   italics text, for example, would kill the italics and just apply bold.

   Now, these attributes always add or substract only, but do not
   replace the style.

 - In the past, there were bugs with material indices uninitialized, and
   thus crashes in the renderer with illegal material indices.

   Even though I assume they have been fixed, I've put in a check that
   checks (hah) if the material index of a character is illegal (bigger
   than ob->totcol), and then sets it to zero, and spits out a warning
   on stderr.

   If you see such warnings, please report and link to the .blend.

 - Bugfix: All alignment modes only worked if there were at least *two*
   lines of text in the text object. Fixed

There's now a regression test file for text objects, please add to the
corresponding repository:

16 years agoBugfix; rotation limits for < 3 DOF bones were using wrong reference
Brecht Van Lommel [Mon, 29 Aug 2005 12:06:23 +0000 (12:06 +0000)]
Bugfix; rotation limits for < 3 DOF bones were using wrong reference
rotation, causing incorrect limits if there was already a pose transform.

16 years agoupdated MSVC 6 Project file for IKSolver.
Simon Clitherow [Mon, 29 Aug 2005 10:19:59 +0000 (10:19 +0000)]
updated MSVC 6 Project file for IKSolver.

16 years agoMEM_freeN() and MEM_mallocN() should not have been redeclared in this
Chris Want [Mon, 29 Aug 2005 02:47:55 +0000 (02:47 +0000)]
MEM_freeN() and MEM_mallocN() should not have been redeclared in this

16 years agoErrors in buttons defining DoF for bones; needed a redraw and fixed typo
Ton Roosendaal [Sun, 28 Aug 2005 17:52:34 +0000 (17:52 +0000)]
Errors in buttons defining DoF for bones; needed a redraw and fixed typo
in min/max detection for buttons.

16 years agoPose depgraph error... skipped a bone for proper IK sorting. Caused lag or
Ton Roosendaal [Sun, 28 Aug 2005 15:26:00 +0000 (15:26 +0000)]
Pose depgraph error... skipped a bone for proper IK sorting. Caused lag or
bad updates in grabbing.

16 years agoIK rotation limits fixes:
Brecht Van Lommel [Sun, 28 Aug 2005 13:06:41 +0000 (13:06 +0000)]
IK rotation limits fixes:
- Z-axis rotation limits were not working, was using wrong flag.
- Don't allow min limit to go over max, or vice versa.
- Fix for jacobian getting overwritten with IK clamping.

16 years agoIntegration of new IK lib features in Armature Poses.
Ton Roosendaal [Sun, 28 Aug 2005 12:23:06 +0000 (12:23 +0000)]
Integration of new IK lib features in Armature Poses.
Best is to forget yesterday's commit and old docs. New docs are underway...

Here's how IK works now;

- IK chains can go all the way to the furthest parent Bone. Disregarding
  the old option "IK to Parent" and disgregarding whether a Bone has an
  offset to its parent (offsets now work for IK, so you can also make
- The old "IK to Parent" option now only does what it should do: it denotes
  whether a Bone is directly connected to a Parent Bone, or not.
  In the UI and in code this option is now called "Connected".
- You can also define yourself which Bone will become the "Root" for an IK
  chain. This can be any Parent of the IK tip (where the IK constraint is).
  By default it goes all the way, unless you set a value for the new IK
  Constraint Panel option "Chain Lenght".
- "Tree IK" now is detected automatic, when multiple IK Roots are on the
  same Bone, and when there's a branched structure.
  Multiple IK's on a single chain (no branches) is still executed as usual,
  doing the IK's sequentially.
- Note: Branched structures, with _partial_ overlapping IK chains, that don't
  share the same Root will possibly disconnect branches.
- When you select a Bone with IK, it now draws a yellow dashed line to its
- The IK options "Location Weight" and "Rotation Weight" are relative,
  in case there's a Tree IK structure. These weights cannot be set to
  zero. To animate or disable IK Targets, use the "Influence" slider.
- This new IK is backwards and upwards compatible for Blender files.
  Of course, the new features won't show in older Blender binaries! :)

Other changes & notes;

- In PoseMode, the Constraint Panel now also draws in Editing Buttons, next
  to the Bones Panel.
- IK Constraint Panel was redesigned... it's still a bit squished
- Buttons "No X DoF" is now called "Lock X". This to follow convention to
  name options positive.
- Added Undo push for Make/Clear Parent in Editmode Armature
- Use CTRL+P "Make Parent" on a single selected Bone to make it become
  connected (ALT+P had already "Disconnect").

On todo next; Visualizing & review of Bone DoF limits and stiffness

16 years agoBugfix; the IK solver would crash if there were 0 DOF's in the chain.
Brecht Van Lommel [Sat, 27 Aug 2005 23:04:37 +0000 (23:04 +0000)]
Bugfix; the IK solver would crash if there were 0 DOF's in the chain.

16 years agopatch #2911 - tp_getset for Lamp module.
Stephen Swaney [Sat, 27 Aug 2005 18:44:56 +0000 (18:44 +0000)]
patch #2911 - tp_getset for Lamp module.
A nice juicy chunk of new style attribute handling from Ken Hughes.

Thanks, Ken.

16 years agoIK work-in-progress commit;
Ton Roosendaal [Sat, 27 Aug 2005 17:04:29 +0000 (17:04 +0000)]
IK work-in-progress commit;

- Removed old convention that only allowed one "IK" connection for Bones
  in a joint. Was highly frustrating for editing trees or branches.
  In a next commit, there will be a different method to define IK target
  and IK root, so this option actually will become "Connect Bone" or so.

- the IK group name is gone, now is just an option "Tree IK". When IK
  chains share a root they'll form a tree.
  Todo is preventing conflicts here (will be for editor to define IK Root)

- Adding new IK constraint with CTRL+I activates Constraint

16 years agoMake IK DOF stiffness work in range 0.0-1.0, for consistency.
Brecht Van Lommel [Sat, 27 Aug 2005 14:27:05 +0000 (14:27 +0000)]
Make IK DOF stiffness work in range 0.0-1.0, for consistency.

16 years agoUpdate SConscript.
Brecht Van Lommel [Sat, 27 Aug 2005 13:45:19 +0000 (13:45 +0000)]
Update SConscript.
Fix some warnings.
Merge with latest soc code.

What changed in IK lib:

Fully restructured, with components now as follows:
  - IK_Solver: C <=> C++ interface
  - IK_QSegment: base class for bone/segment with 0
    to 3 DOF
  - IK_QTask: base class for a task (currently there's
    a position and a rotation task)
  - IK_QJacobian: the Jacobian matrix, with SVD
    decomposition, damping, etc
  - IK_QJacobianSolver: the iterative solver

The exponential map parametrization is no longer used,
instead we have now:
  - 3DOF and 2DOF XZ segments: directly update matrix
    with Rodrigues' formula
  - Other: Euler angles (no worries about singularities

Computation of the Jacobian inverse has also changed:
  - The SVD algorithm is now based on LAPACK code,
    instead of NR, to avoid some problems with rounding
  - When the problem is underconstrained (as is the case
    most of the time), the SVD is computed for the transpose
    of the Jacobian (faster).
  - A new damping algorithm called the Selectively Damped
    Least Squares is used, result in faster and more
    stable convergence.
  - Stiffness is implemented as if a weighted psuedo-inverse
    was used.

Tree structure support.

Rotation limits:
  - 3DOF and 2DOF XZ segments limits are based on a swing
    (direct axis-angle over XZ) and twist/roll (rotation
    over Y) decomposition. The swing region is an ellipse
    on a sphere.
  - Rotation limits are implemented using an inner clamping
    loop: as long as there is a violation, a violating DOF
    is clamped and removed from the Jacobian, and the solution
    is recomputed.

Convergence checking is based now on the max norm of angle
change, or the maximum number of iterations.

16 years agoAnother file missed in IK commit.
Brecht Van Lommel [Sat, 27 Aug 2005 13:27:49 +0000 (13:27 +0000)]
Another file missed in IK commit.

16 years agoForgot to add new files...
Ton Roosendaal [Sat, 27 Aug 2005 13:10:41 +0000 (13:10 +0000)]
Forgot to add new files...

16 years agoThird and last commit for Brecht's IK work.
Ton Roosendaal [Sat, 27 Aug 2005 12:48:45 +0000 (12:48 +0000)]
Third and last commit for Brecht's IK work.

Full logs for changes will be added later. Worth to note now;
- support for 'tree IK' added
- DOF and stiffness per IK bone (in pose only)
- Orientation IK support (target rotates -> chain follows)

This is still WIP. Buttons might change, button ranges will change, and the
way 'IK groups' are working will change. You can play with this, but don't
expect saved files to work still by end of this day! :)

16 years agoSecond commit for Brecht's IK work.
Ton Roosendaal [Sat, 27 Aug 2005 12:45:29 +0000 (12:45 +0000)]
Second commit for Brecht's IK work.

(Moto needs 'make install' before you can do IK lib btw)

16 years agoFirst commit of Brecht's new IK work. This only does the IK module.
Ton Roosendaal [Sat, 27 Aug 2005 12:44:41 +0000 (12:44 +0000)]
First commit of Brecht's new IK work. This only does the IK module.

Don't start compiling yet!

16 years agoFixes, as reported by Basse
Ton Roosendaal [Fri, 26 Aug 2005 17:48:46 +0000 (17:48 +0000)]
Fixes, as reported by Basse

- Softbody Mesh didnt update when it was child of armature-posing
- Bone Stick drawing didn't draw selected in Solid + Object mode.
- WeightPaint + Subsurf (nice that it works!) didn't update on Bone

16 years ago - tsk tsk, ll suffix for constants is not C standard, doesn't
Daniel Dunbar [Fri, 26 Aug 2005 16:07:44 +0000 (16:07 +0000)]
 - tsk tsk, ll suffix for constants is not C standard, doesn't
   work on msvc

16 years agoaccidentally left in testing printf.
Ton Roosendaal [Thu, 25 Aug 2005 20:32:49 +0000 (20:32 +0000)]
accidentally left in testing printf.

16 years agoBased on a suggestion from Zr, using line line intersection for single axis projection.
Martin Poirier [Thu, 25 Aug 2005 18:03:19 +0000 (18:03 +0000)]
Based on a suggestion from Zr, using line line intersection for single axis projection.
This makes perspective handling a bit better.

16 years agoRandom() issues with rendering...
Ton Roosendaal [Thu, 25 Aug 2005 13:11:04 +0000 (13:11 +0000)]
Random() issues with rendering...

- AO and soft shadow AreaLight tables were generated without fixed seed,
  causing animations to give unwanted amounts of noise.
- Made sure these tables now are calculated before render, with fixed seed
- Then found out the BLI_rand() has very bad seeding... it showed up as
  patterns. After some experimenting, found a nice method using noise.c
  hash tables. For compatibility with old code, named it BLI_srandom() to
  use this next to the BLI_srand(). This follows libc rand() and random()
  naming convention.
- Then of course threading should work... so made a BLI_thread_rand version
  of the calls. Now supports up to 16 threads, comments added in .h and .c

Result is stable animation render with AO and soft shadow. But, please
test and feedback!

16 years agoiBug fix #2965
Ton Roosendaal [Wed, 24 Aug 2005 21:12:58 +0000 (21:12 +0000)]
iBug fix #2965

Switching scene in Edit Mode crashed. Accessed the DAG without it being
initialized yet.

16 years agoMove the settings in the Mesh Tools panel to the new toolsettings struct in Scene...
Johnny Matthews [Wed, 24 Aug 2005 20:37:25 +0000 (20:37 +0000)]
Move the settings in the Mesh Tools panel to the new toolsettings struct in Scene. These settings are now saved per scene.

16 years agoMaking compiler happy;
Ton Roosendaal [Wed, 24 Aug 2005 20:26:28 +0000 (20:26 +0000)]
Making compiler happy;

- removed unused variables
- #if 0 around unused calls
- init of uninitialized vars

16 years agoHuge commit, but not much features... had to shuffle a lot of code around.
Ton Roosendaal [Wed, 24 Aug 2005 20:18:03 +0000 (20:18 +0000)]
Huge commit, but not much features... had to shuffle a lot of code around.

Main target was cleanup of editconstraint.c and removal of the ugly
ob->activecon (active constraint channel), which was set by the "Show"
button in the Constraint Panel.
Better is to introduce an 'Active Constraint' itself, which stores in
the Constraint itself. By using this setting, and by checking the active
Bone, the UI can update reliably now. This only shows now in IpoWindow
btw (for constraint ipos). The active Constraint is drawn in the Buttons
with a slightly brighter backdrop. Any action in that Panel selects a
constraint now (even click in backdrop).

So now we have pose channels & constraint channels nicely behaving. Now the
darn Action channels... :)

Further in this commit:

- interface.c: Button ROUNDBOX now does button callback too.
               Button NUMSLI didn't do the callback on a click only

- Cleaned up include files in yafray, got annoyed it compiled over all the

- removed unused variables from Constraint struct

16 years agoVariable was defined in a header file (constant_Type), resulting in
Chris Want [Tue, 23 Aug 2005 22:12:06 +0000 (22:12 +0000)]
Variable was defined in a header file (constant_Type), resulting in
'multiply defined symbol' warning on IRIX for every file that
included that file. Moved to a C source file.

16 years agohelp MSVC6 projects for edgehash files
Jens Ole Wund [Tue, 23 Aug 2005 21:49:30 +0000 (21:49 +0000)]
help MSVC6 projects for edgehash files

16 years ago - more fixes for wpaint mode, need to patch mesh modifier as well
Daniel Dunbar [Tue, 23 Aug 2005 21:04:17 +0000 (21:04 +0000)]
 - more fixes for wpaint mode, need to patch mesh modifier as well
 - change wpaint to flush changes during painting... can see this
   is going to be a problem because will also redeform. what to
   do, what to do...

16 years ago - disabled incremental subsurf support (during object mode) for the
Daniel Dunbar [Tue, 23 Aug 2005 20:39:58 +0000 (20:39 +0000)]
 - disabled incremental subsurf support (during object mode) for the
   time being, misses features for texture/color drawing and I don't
   have time to finish at the moment. can return once UV/colors are
   incorporated into subdivision.

16 years agoFix for reading older files... it didn't always convert OK for the new
Ton Roosendaal [Tue, 23 Aug 2005 20:19:01 +0000 (20:19 +0000)]
Fix for reading older files... it didn't always convert OK for the new
deformation options of Armatures, causing bones not to deform.

It was caused by using the old "boneclass" variable and SKINNABLE.
Apparently the boneclass can have any value in older files. Will be killed.

Please note; in files created after last sunday, with setting "No deform" on a
Bone, that setting has to be done again.

16 years ago - add option to drawMappedFaces to draw with colors (from tface or mcol)
Daniel Dunbar [Tue, 23 Aug 2005 20:04:10 +0000 (20:04 +0000)]
 - add option to drawMappedFaces to draw with colors (from tface or mcol)
 - convert weightpaint/vertexpaint to draw using drawMappedFaces, slightly
   hacky because during weightpaint mcol's get overridden in order to
   have them propogate through modifiers. should work fine.
 - add NULL check in shaded draw, prevents crash w/ dupliframe

16 years agoBretch's patch for 2D transform. Thanks
Martin Poirier [Tue, 23 Aug 2005 18:13:30 +0000 (18:13 +0000)]
Bretch's patch for 2D transform. Thanks

Using new transform code to handle UV window.

With the ground work done, Transform could more easily be extended to handle IPO window now.

Tracker item:

16 years agodon't need Object.h
Erwin Coumans [Tue, 23 Aug 2005 16:50:53 +0000 (16:50 +0000)]
don't need Object.h

16 years agoQuad Adjacent edge subdivide type moved to Mesh Tools panel rather than pupmenu on...
Johnny Matthews [Tue, 23 Aug 2005 14:13:00 +0000 (14:13 +0000)]
Quad Adjacent edge subdivide type moved to Mesh Tools panel rather than pupmenu on all subdiv calls. This is a session value like beauty and will revert to path each time you load blender.

16 years agonew game-menu option 'Record Game Physics to Ipo'
Erwin Coumans [Tue, 23 Aug 2005 13:16:02 +0000 (13:16 +0000)]
new game-menu option 'Record Game Physics to Ipo'
including implementation. hope it works, and doesn't break to much.
it bakes physics objects transform into ipo, every frame of the running gameengine.
When you disable and run the game again, it clears the ipo's again. just for physics objects at the moment.

(perhaps some better UI in the future?)