15 years agoAdded prototypes for some stubs to shut gcc up ;)
Kent Mein [Tue, 16 Aug 2005 20:21:43 +0000 (20:21 +0000)]
Added prototypes for some stubs to shut gcc up ;)
(In doing so found a stub that had wrong # of args)


15 years agoWeight Paint & Vertex Paint goodies;
Ton Roosendaal [Tue, 16 Aug 2005 19:37:36 +0000 (19:37 +0000)]
Weight Paint & Vertex Paint goodies;

- New: "Spray" is an option now. This used to be the only available vertex
  painting method, while holding the mousebutton and move mouse, it keeps
  applying (adding, blending) the color.
  Disabling "Spray" will give more a 'paint' effect, only applying the
  maximum what you indicated to be painting.

- Weight Paint now offers all options Vertex Paint has. This includes "Add",
  "Mult", "Sub", and "Filter". And of course the "Spray", which is default
  off btw.
  Since Weight Paint might need totally different settings, they are stored
  separate from Vertex Paint options.

- Renamed the weird "Area" and "Soft" options into something that tells what
  it actually does (Even tooltips were wrong).
  Area -> "All Faces", option to have all Faces inside the brush being
     painted on. Disabling this only paints on the face under the cursor.
  Soft -> "Vertex Dist", option that uses distances from cursor to vertex
     to calculate the effect. Disable it to only paint per-face.
  If someone knows better names... go ahead! :)

- New WeightPaint option in the Panel: "Clear", which removes reference
  to this deform group from all vertices.

- Removed code that deleted 'deform vertices' from Mesh on exit editmode,
  when vertexgroups were empty. This just worked against you... you could
  not paint on empty groups.

- Made Weight Paint painting much nicer. The way it applied values was very
  harsh without good transitions. Mainly because it didn't use the
  "Vertex Dist" option, but also because it applied colors 3 or 4 times per
  vertex (tria/quad).

- Weight Paint undo now restores on a 2nd Undo.

- Vertex Paint Panel button "Clear" didn't work even.

15 years agoTweak mode
Martin Poirier [Tue, 16 Aug 2005 18:23:28 +0000 (18:23 +0000)]
Tweak mode

RMB click drag to select and transform (grab). Release to confirm. (Cancel with esc)

The difference with before is that it is a single motion, you don't have to click at the end of transform, you can just release the mouse button.

(Some float constant warning too)

15 years agoOoops, one slipped on porting
Jens Ole Wund [Tue, 16 Aug 2005 17:54:59 +0000 (17:54 +0000)]
Ooops, one slipped on porting

15 years agosoftbody <--> softbody collision
Jens Ole Wund [Tue, 16 Aug 2005 17:48:47 +0000 (17:48 +0000)]
softbody <--> softbody collision
make softbodies collide with objects patented to armatures (bones), lattices .. )

Softbody deflectors always use the new modifier stack. (thanks ZR)

Softbody deflector code checks for identity of colliding objects so,
there is no need to prohibit softbodies to be a deflector.

So now you can put some soft balls in a box and see them bounce.

see :

A deflector cube parented to SB lattice:


15 years agoToSphere changes.
Martin Poirier [Tue, 16 Aug 2005 17:37:42 +0000 (17:37 +0000)]
ToSphere changes.
- Scale goes from 0 (original) to 1 (full sphere) instead of the contrary
- Mouse control is done by moving pointer left / right on screen. Full right is 1, left is 0. There's a 10% width padding on each border.
- Works correctly with Shift modifier now.

15 years agoNew! When weight-painting a Mesh, and select a Bone, you can use transform
Ton Roosendaal [Tue, 16 Aug 2005 10:17:02 +0000 (10:17 +0000)]
New! When weight-painting a Mesh, and select a Bone, you can use transform
options on the Bone (G, R, S). The manipulator doesn't show btw.
Is usful to get immediate feedback on how painted weights behave with Bones.

Martin; I had to change the T_POSE behaviour in code a bit... it now
stores in TransInfo the actual posed armature being transformed. Maybe,
some day, we'll get mixed posechannel/object transform? Not much required
at the moment though. :)

15 years agoAdded new button type: ROUNDBOX
Ton Roosendaal [Mon, 15 Aug 2005 19:46:09 +0000 (19:46 +0000)]
Added new button type: ROUNDBOX

This replaces drawing with uiRoundBox() or glRect() in button Panels,
which just fails for dynamic constructed button views where Panels are
sometimes invisible. Also eliminates hack with PanelPop().
Error was visible with new Modifier panel, entering/exiting EditMode.

Done Modifier and Constraints.


The last 4 free variables in the uiDefBut() call are:
- float, corner-rounding (0.0-pixels),
- not used,
- short: roundbox type (bits, 1 2 4 8 for clockwise corners starting left/top)
- short: color shade offset (color range 0-255)

15 years agoA nice character modeling time-saver:
Ton Roosendaal [Mon, 15 Aug 2005 16:12:50 +0000 (16:12 +0000)]
A nice character modeling time-saver:

In WeightPaint mode, pose-mode armatures now allow selecting Bones, but
without making the Armature object active.
Selecting a Bone then results in selecting the associated vertexgroup. :)

Little quirk; all armatures with posemode then draw selectable...

15 years agoUsing NKey panel in 3d window on editmode armature now applies the
Ton Roosendaal [Mon, 15 Aug 2005 14:44:51 +0000 (14:44 +0000)]
Using NKey panel in 3d window on editmode armature now applies the
new 'mirror edit' as well. Including the 'roll'.

PLease note that roll values can differ a lot when you have modeled
without 'mirror' mode. You can enforce the roll to match by first
moving the Bone a little bit, so the other one aligns perfectly.

15 years agoEditMode armature: mirrored editing feature.
Ton Roosendaal [Mon, 15 Aug 2005 14:02:03 +0000 (14:02 +0000)]
EditMode armature: mirrored editing feature.

- Option is in EditButtons, Armature panel.
- Currently only local X-axis mirror (seems to be default anyway)
- Transform then applies changes to the mirrored-name bone as well.
- Extrude: also does the counterpart Bone
- New: SHIFT+E extrude: extrudes 2 mirrored Bones out of a normal Bone.
  (creating names by appening _L and _R)

Or in short: you can now model a full rig without any manual naming!
Of course the names are not too nice... a couple of ideas to explore;
- rename a mirrored bone renames counterpart too
- allow in weightpaint mode to select Bones
- and of course mirrored edit in PoseMode (if that's useful...)

Important note: I tweaked the naming convention a bit; names like
Bone_L.005 and Bone_R.005 are considered counterparts. However, if
you use the "Flip names" option, the number extension is still

BTW: Commits in Zr's code are fixes for gcc warnings. :)

15 years ago - readded DL_VERTS type to store lattice deformed verts
Daniel Dunbar [Mon, 15 Aug 2005 10:30:53 +0000 (10:30 +0000)]
 - readded DL_VERTS type to store lattice deformed verts
 - new feature, twiddled with lattice resizing to try to maintain
   existing vertex changes... much nicer than just resetting the
   lattice if you decide you need more detail in the lattice.
 - modifiers work with lattices now. yes, that does mean you
   can make a chain of lattices effecting each other 8 miles
 - some cleanup of softbody code, was rather splintered and call
   path was twisted and confusing. reworked main object step
   routine to do things in a more obvious and consistent manner
   and without duplicate code
 - added ob->softflag OB_SB_RESET instead of sbObjectReset
 - modifier changes reset softbody now
 - moved curve_getVertexCos/curve_applyVertexCos into curve.c
 - update curve modifier eval to work with virtual modifiers
 - update modifier apply to work with curves/surfs
 - update make parent to also recalc object data

NOTE: Although you can turn SB on for curve/font objects at the
moment it doesn't really work because they call deform in
multiple steps and this confuses SB. Not sure how to deal with

15 years agoCrash bug! Reading older files with follow-path constraints failed...
Ton Roosendaal [Mon, 15 Aug 2005 09:45:48 +0000 (09:45 +0000)]
Crash bug! Reading older files with follow-path constraints failed...

15 years ago - added view3d_get_object_project_mat function, returns mat to project
Daniel Dunbar [Mon, 15 Aug 2005 04:10:02 +0000 (04:10 +0000)]
 - added view3d_get_object_project_mat function, returns mat to project
   object cos into screenspace without mucking with gl matrices.
 - added view3d_project_ functions, take arguments instead of using
 - removed View3D.{mx,my,mxo,myo}
 - switch drawobject foreachScreenVert functions to use new projection
 - switch edge slide to use new projection functions, fixes erratic
   behavior (project was using wrong mat I believe)
 - bug fix in edgeslide, nearest edge to start was one-off

15 years ago - get rid of unused object_deform_curve
Daniel Dunbar [Mon, 15 Aug 2005 00:53:51 +0000 (00:53 +0000)]
 - get rid of unused object_deform_curve
 - some tweaks to modifier UI thanks to Bart (aligning buttons)

15 years agoLamp-halo & Ortho didn't render correct. Thanks Desoto! :)
Ton Roosendaal [Sun, 14 Aug 2005 20:50:02 +0000 (20:50 +0000)]
Lamp-halo & Ortho didn't render correct. Thanks Desoto! :)

15 years ago - bug fix #2935, DAG update was not called on new boolean object
Daniel Dunbar [Sun, 14 Aug 2005 19:44:43 +0000 (19:44 +0000)]
 - bug fix #2935, DAG update was not called on new boolean object

15 years agoBugfix #2943
Ton Roosendaal [Sun, 14 Aug 2005 19:26:58 +0000 (19:26 +0000)]
Bugfix #2943

Render bug.
Alpha low or zero, Ztransp, didnt render with lamp halos over...
Note it still doesnt work for ray-transp!

15 years agodo_versions() for 2.37 was reading a library data pointer that wasn't set
Ton Roosendaal [Sun, 14 Aug 2005 16:03:22 +0000 (16:03 +0000)]
do_versions() for 2.37 was reading a library data pointer that wasn't set
yet. Crashed in windows...
Thanks Desoto for finding it!

15 years ago - forgot to remove a function prototype from header on static'ng
Daniel Dunbar [Sun, 14 Aug 2005 12:54:57 +0000 (12:54 +0000)]
 - forgot to remove a function prototype from header on static'ng

15 years ago - enable modifiers for curve/font/surf types... a little hacked in
Daniel Dunbar [Sun, 14 Aug 2005 12:17:34 +0000 (12:17 +0000)]
 - enable modifiers for curve/font/surf types... a little hacked in
   but should work ok. Means new features! Wave effect for curve/font/surf
   and armature deform as well.
 - added undo_push calls for some modifier ops.

15 years agoPatch provided by Adam (ajk48n). It reverses the turntable rotation when
Ton Roosendaal [Sun, 14 Aug 2005 11:15:36 +0000 (11:15 +0000)]
Patch provided by Adam (ajk48n). It reverses the turntable rotation when
you have the view 'upside down', resulting in correct feedback.

15 years agoPatch provided by Campbell Barton; this makes the editmode Mesh CTRL+T
Ton Roosendaal [Sun, 14 Aug 2005 10:58:17 +0000 (10:58 +0000)]
Patch provided by Campbell Barton; this makes the editmode Mesh CTRL+T
"convert to triangles" check for shortest diagonal to decide how the
triangles will be made.

Fun todo for another occasion; check on facenormals too...

15 years ago - cleaned up edge drawing a tad, there were issues with mesh's
Daniel Dunbar [Sun, 14 Aug 2005 10:35:58 +0000 (10:35 +0000)]
 - cleaned up edge drawing a tad, there were issues with mesh's
   with "loose" edges (edges without a face) and drawing in
   solid mode. they would either not draw, or draw with a nasty
   selection outline. Added a ME_LOOSEEDGE flag to mark such
   edges in displists/mesh and editmode sets it.
 - changed DerivedMesh drawEdges to take an argument whether
   it should draw loose edges or not

15 years agoPatch provided by Matt Ebb, cut sequence strips (patch tracker).
Ton Roosendaal [Sun, 14 Aug 2005 10:31:14 +0000 (10:31 +0000)]
Patch provided by Matt Ebb, cut sequence strips (patch tracker).
There were a couple of issues with the implementation:

- there was no proper test if selected strips would be cut or not
- cutting meta strips could go very wrong... for example when the cut
  of meta was in an internal gap. With meta's being recursive, and too
  complex, I've disabled Meta-cutting
- added an OK menu for hotkey K
- added warnings when no cut was done

This is the first time in 6 years I do work in sequencer... man, this has
grown into a messy bizz! Like sequence variables... using names like:
start, startdisp, startstill, startoffs... totally confusing here. Could
use giant cleanup! Implementation was weak from scratch though, Mea Culpa!

15 years ago - added hook "cursor center" feature (sets hook center to cursor position),
Daniel Dunbar [Sun, 14 Aug 2005 07:02:51 +0000 (07:02 +0000)]
 - added hook "cursor center" feature (sets hook center to cursor position),
   gives better control over falloff
 - added modifier UI access to hook "select" and "reassign" features
 - bug fix, unbroke path-tilt drawing

15 years ago - added make_orco_curf, even does keys!
Daniel Dunbar [Sun, 14 Aug 2005 06:08:41 +0000 (06:08 +0000)]
 - added make_orco_curf, even does keys!
 - removed {lattice,curve}_modifier functions
 - changed render code to use displist for curve rendering
   instead of making its own. required adding a bevelSplitFlag
   field to DispList. I also fixed the bevel face splitting
   which did not work correctly in many situations.
 - changed so all curve data creation happens in makeDispListCurveTypes,
   includes making bevel list and filling polys
 - changed render code to use displist for surface rendering
 - removed Curve.orco variable, built as needed now
 - removed stupid BLI_setScanFill* functions... why use a function
   argument when you can use a global and two functions! Why indeed.
   (this fixed crash when reloading a file with filled curves and
   toggling editmode)
 - bug fix, setting curve width!=1 disabled simple bevel for no
   apparent reason
 - cleaned up lots and lots of curve/displist code (fun example:
   "if(dl->type==DL_INDEX3 || dl->type==DL_INDEX3)"). Hmmm!
 - switched almost all lattice calls to go through lattice_deform_verts,
   only exception left is particles
 - added DBG_show_shared_render_faces function in render, just
   helps to visualize which verts are shared while testing (no
   user interface).
 - renamed some curve bevel buttons and rewrote tooltips to be
   more obvious
 - made CU_FAST work without dupfontbase hack

Also by the way I wrote down some notes on how curve code
works, nothing spiffy but it is at:

15 years agoAdd CTRL-Backspace to delete all text in textediting.
Alexander Ewering [Sat, 13 Aug 2005 20:44:57 +0000 (20:44 +0000)]
Add CTRL-Backspace to delete all text in textediting.

15 years agoNew; Wkey in Armature Editmode. Has option for flipping names too.
Ton Roosendaal [Sat, 13 Aug 2005 19:41:45 +0000 (19:41 +0000)]
New; Wkey in Armature Editmode. Has option for flipping names too.

(And moved flip_name to armature kernel)

15 years agoTwo armature fixes;
Ton Roosendaal [Sat, 13 Aug 2005 18:55:24 +0000 (18:55 +0000)]
Two armature fixes;

- PoseMode selection accidentally always selected first bone as well (on
  multiple clicks)
- Hinge Bone didn't have correct inverse matrix in transform, for local

15 years agoRemoved strcasestr() with version as found on web, opensolaris. It had a
Ton Roosendaal [Sat, 13 Aug 2005 17:53:37 +0000 (17:53 +0000)]
Removed strcasestr() with version as found on web, opensolaris. It had a
bug though! :)
For people interested: both lines with tolower() had to be added...

15 years agobugfix #2931 crash if $HOME not set
Stephen Swaney [Sat, 13 Aug 2005 17:20:46 +0000 (17:20 +0000)]
bugfix #2931  crash if $HOME not set

unchecked pointer returned from BLI_gethome().

15 years ago - texcomesh used wrong texture space (should use the texcomesh object
Daniel Dunbar [Sat, 13 Aug 2005 16:39:22 +0000 (16:39 +0000)]
 - texcomesh used wrong texture space (should use the texcomesh object

15 years agoBone naming fix.
Ton Roosendaal [Sat, 13 Aug 2005 15:15:44 +0000 (15:15 +0000)]
Bone naming fix.

- On duplicating bones in editmode, names with a dot in it (bone.L) lost
  the .L extension. Now it keeps it
- Recoded the 'flip name' routine from scratch, was a horrid construct!
  It works now as follows;

1) First it removes the number extension, if its there (like .001)
2) Then it checks for a separator (space, dot, minus, underscore) on either
the 2nd position (L_calfbone) or last-but-one (calfbone.R). If there's an
l, r, L or R it switches the letter.
3) If no switch done yet, it tries if a name starts or ends with "left" or
"right", case insensitive. It replaces this, disregarding separator.


Lefthand    -> Righthand
L Hand.005  -> R Hand
hand.r      -> hand.l
right-l     -> right-r
pelvis LEFT -> pelvis RIGHT

15 years agonow for the cigar...
Erwin Coumans [Sat, 13 Aug 2005 10:04:01 +0000 (10:04 +0000)]
now for the cigar...

15 years agothese files missed the cvs commt yesterday, this should fix compilation problems
Erwin Coumans [Sat, 13 Aug 2005 08:05:48 +0000 (08:05 +0000)]
these files missed the cvs commt yesterday, this should fix compilation problems

15 years ago - more nurbs fixes... as it turns out, rendering of cyclic UV didn't
Daniel Dunbar [Sat, 13 Aug 2005 05:05:18 +0000 (05:05 +0000)]
 - more nurbs fixes... as it turns out, rendering of cyclic UV didn't
   really work at all. Fortunately no one actually *USES* nurbs so
   no one noticed. This is bug from NaN days (strubi, I am looking at
   you here) which I guess says a lot (or a little) about NURBS usage.
   And as usual, the correct code is shorter.
 - added do_version copy of ME_OPT_EDGES flag

15 years ago - readded Subsurf "optimal" edge drawing/rendering
Daniel Dunbar [Fri, 12 Aug 2005 21:55:50 +0000 (21:55 +0000)]
 - readded Subsurf "optimal" edge drawing/rendering
 - added ME_EDGERENDER flag, barely changes things atm except makes
   sure plain meshes with FasterDraw/etc set still render all edges.
   The edge drawing system needs a bit of a revamping - it is a cool
   feature but could use several improvements:
     (1) The algorithm could be better in choosing the best edges to
     (2) The drawflags should interact well with modifiers. It is wierd
         to have a large grid with a deformer that draws no edges because
         flags are only calculated based on base mesh.
     (3) Drawflags should not be destroyed by editmode. Better design
         would be a "Draw % of edges" button.

   Of course, could also be the feature is not worth it and we
   should just drop. Feel free to comment if you have an opinion.

15 years agoupdate to xcode
Jean-Luc Peurière [Fri, 12 Aug 2005 21:41:22 +0000 (21:41 +0000)]
update to xcode
added a workaround for scons

15 years agoVery small size of arealights (0.001) could cause weird overflows/bands.
Ton Roosendaal [Fri, 12 Aug 2005 20:27:18 +0000 (20:27 +0000)]
Very small size of arealights (0.001) could cause weird overflows/bands.
There was still one float component hanging around... saacos(). Made a
double version of it.

Reported by Shul. thnx!

15 years agoAdded the 4 new proportional editing modes also to the uv editor transform.
Brecht Van Lommel [Fri, 12 Aug 2005 15:33:06 +0000 (15:33 +0000)]
Added the 4 new proportional editing modes also to the uv editor transform.
Eventually the uv editor should use the new transform code and get these
automatically, but until that's done this might fix bug #2920.

15 years agoadded more debug text, enabled the bullet penalty solver, instead of ode solver by...
Erwin Coumans [Fri, 12 Aug 2005 13:42:00 +0000 (13:42 +0000)]
added more debug text, enabled the bullet penalty solver, instead of ode solver by default, added a better demo.

15 years ago - remove some silly array copying code for nurb displist generation
Daniel Dunbar [Thu, 11 Aug 2005 22:27:53 +0000 (22:27 +0000)]
 - remove some silly array copying code for nurb displist generation
 - converted dl->flag to use consistent defines for cyclic U/V

15 years agoA couple of small fixes...
Kent Mein [Thu, 11 Aug 2005 16:39:51 +0000 (16:39 +0000)]
A couple of small fixes...

I removed config.h code from the files that had them.
effect.c had nested /* so cleaned that up...

added a newline to vector.c to shut gcc up ;)
buttons_editing.c had a possible unintalized var (height) so I gave
it a default value.

removed an unused var i in interface_draw.c
removed an unused var mti in outliner.c

in BL_SkinDeformer.cpp
commented out a call to bDeformGroup->data which no longer exists so it
compiles again.


15 years agoBugfix, the lock button in the uv editor didn't work, the 3d view would
Brecht Van Lommel [Thu, 11 Aug 2005 13:08:08 +0000 (13:08 +0000)]
Bugfix, the lock button in the uv editor didn't work, the 3d view would
always redraw even if it was disabled (only on non-apple).

15 years ago - bug fix, add hook didn't respect modifier ordering constraints
Daniel Dunbar [Thu, 11 Aug 2005 07:52:41 +0000 (07:52 +0000)]
 - bug fix, add hook didn't respect modifier ordering constraints

15 years ago - update displistmesh_to_mesh to free existing mesh data (including
Daniel Dunbar [Thu, 11 Aug 2005 07:11:57 +0000 (07:11 +0000)]
 - update displistmesh_to_mesh to free existing mesh data (including
   sticky, dvert, and keys if number of verts don't match)
 - changed modifier panel to not allow manual addition of hook or
   softbody modifiers
 - changed apply modifier to apply to existing mesh (fixes bug with
   materials) and to warn about loss of tface/mcol/keys/dvert/sticky
   for all modifier types
 - changed modifier UI to not display disclosure triangle for virtual
 - changed softbody ui to allow enable/disable

15 years ago - couldn't help myself, got distracted working on something else and
Daniel Dunbar [Thu, 11 Aug 2005 06:44:32 +0000 (06:44 +0000)]
 - couldn't help myself, got distracted working on something else and
   wondered what these silly data pointers in MDeformVert were for.
   Turns out they aren't even need! Just taking up extra memory and
   space and confusing the armature deform algorithm. Naturally I
   had to clean things up. Sorry Ton.

   Deform weights are still stored in a pretty expensive and unnecessary
   way, probably use about twice as much memory as needed, and do
   way too many memory allocs.
 - moved armature_deform_verts into armature.c
 - some python code accessed the MDeformWeight data pointers, but
   did so in a completely wrong way, I am positive this code could
   never have worked (or maybe things changed during tons refactor),
   regardless it wouldn't work now... will test later.

15 years ago - added recalc ob, recalc data options to ctrl-alt-shift-t timer
Daniel Dunbar [Thu, 11 Aug 2005 05:56:48 +0000 (05:56 +0000)]
 - added recalc ob, recalc data options to ctrl-alt-shift-t timer

15 years agoTwo quick bugfixes, thanks slikdigit!
Daniel Dunbar [Thu, 11 Aug 2005 05:45:47 +0000 (05:45 +0000)]
Two quick bugfixes, thanks slikdigit!

 - armature modifier was not flagged to require original data (but it
 - add hook messed up the ModifierData initialization, stupid bug!

15 years ago - bug fix, cage buttons weren't displayed correct with virtual modifiers
Daniel Dunbar [Thu, 11 Aug 2005 03:37:50 +0000 (03:37 +0000)]
 - bug fix, cage buttons weren't displayed correct with virtual modifiers

15 years ago - added modifiers_getVirtualModifierList, returns pointer to first modifier
Daniel Dunbar [Thu, 11 Aug 2005 03:31:33 +0000 (03:31 +0000)]
 - added modifiers_getVirtualModifierList, returns pointer to first modifier
   but including "virtual" modifiers (for example, an object skel-parented
   to a lattice has a virtual first lattice modifier)
 - removed mesh_modifier(), all functionality has been incorporated into
   modifier stack (well, keys still don't exist as a modifier, but I am
   not sure if they should).
 - added interface option to convert a virtual modifier into a real modifier
 - added option to parent to lattice object or lattice with deform
 - bug fix, patch of hook indices patched all hooks (oops) not just ones
   for edited mesh

NOTE: Files saved with 2.38 that include an object parented to a lattice
will not load correctly, because it will look like the object is parented
only to the object (i.e. without deform). Can be simply fixed by reparenting
or adding a lattice modifier. Older files are handled automatically.

15 years ago - switch to using softbody modifier, controls enabling but does not have
Daniel Dunbar [Thu, 11 Aug 2005 02:23:52 +0000 (02:23 +0000)]
 - switch to using softbody modifier, controls enabling but does not have
   variables, these are still in same place. enable button automatically
   makes/enables modifier.
 - changed hook to hook modifier conversion to happen on direct link,
   required to make sure we don't forget to free any memory for files
   saved with 2.38 that have hooks.
 - update modifier interface to enforce modifiers with the require-original-
   data flag to not move beyond deforming modifiers.
 - enforce only one softbody modifier allowed

NOTE: Once again, no modifier stack for lattice yet means softbody for
lattice does not work atm.

15 years agoNew "Mirror UVs" function in faceselect mode, to complement Rotate UVs.
Brecht Van Lommel [Thu, 11 Aug 2005 00:00:24 +0000 (00:00 +0000)]
New "Mirror UVs" function in faceselect mode, to complement Rotate UVs.
It mirrors the UVs or Vertex Colors of individual faces (on the red edge
of the UV face).

Patch provided by Martin Poirier, thanks!

15 years ago - bug fix, hook deform could crash because old files can have hook
Daniel Dunbar [Wed, 10 Aug 2005 22:25:32 +0000 (22:25 +0000)]
 - bug fix, hook deform could crash because old files can have hook
   indices that are out of range
 - bug fix, hook indicies were not corrected on exit editmode (there
   probably should be a general interface for this kind of patch)

15 years ago - added eModifierTypeFlag_RequiresOriginalData for modifiers that
Daniel Dunbar [Wed, 10 Aug 2005 22:05:52 +0000 (22:05 +0000)]
 - added eModifierTypeFlag_RequiresOriginalData for modifiers that
   can only follow deform (for example, they store mesh vertex
 - added ModifierType.foreachObjectLink for iterating over Object
   links inside modifier data (used for file load, relinking, etc)
 - switched various modifiers_ functions to take object argument
   instead of ListBase
 - added user editable name field to modifiers
 - bug fix, duplicate and make single user didn't relink object
   pointers in modifier data
 - added modifiers to outliner, needs icon
 - added armature, hook, and softbody modifiers (softbody doesn't
   do anything atm). added conversion of old hooks to modifiers.

NOTE-THE-FIRST: User name field is not initialized on loading 2.38 files
so if you have saved stuff with a cvs blender you will see blank names.

NOTE-THE-SECOND: Since modifiers aren't evaluated yet for non-Mesh
objects, hooks for lattices and curves are broken. Don't updated if
you actually, say, *use* Blender.

NOTE-THE-THIRD: Old hooks used a quirky weighting system during
deformation which can't be extended to modifiers. On the upside,
I doubt anyone relied on the old quirky system and the new system
makes much more sense. (Although the way falloff works is still
quite stupid I think).

15 years agoPatch #2758 Update of image module.
Stephen Swaney [Wed, 10 Aug 2005 17:50:18 +0000 (17:50 +0000)]
Patch #2758 Update of image module.
New Image methods from Austin Benesh:
- getPixelI(x, y)
- getMinXY()
- setPixelF(x, y, [r, g, b, a])
- setPixelI(x, y, [r, g, b, a])
- save()

sorry for the delay.

15 years agoideasman fix that epydoc compile for it
Joilnen Leite [Wed, 10 Aug 2005 13:36:40 +0000 (13:36 +0000)]
ideasman fix that epydoc compile for it

15 years ago - bug fix, face center drawing was wrong for editmesh
Daniel Dunbar [Wed, 10 Aug 2005 03:51:34 +0000 (03:51 +0000)]
 - bug fix, face center drawing was wrong for editmesh
 - added several useful utility functions to editmesh,
   these can simplify/clarify a lot of mesh code, check them
 - cleaned up EdgeSlide a bit to be clearer/shorter
     o bug fix, EdgeSlide did not always cancel correctly
     o bug fix, EdgeSlide did not choose initial "control" edge
       correctly after calc_meshverts_ext change

15 years agoRemoved need for vert-xs and ys in edgeslide
Johnny Matthews [Tue, 9 Aug 2005 20:02:53 +0000 (20:02 +0000)]
Removed need for vert-xs and ys in edgeslide

15 years ago - bug fix, convert modifiers should free modifiers from new object
Daniel Dunbar [Tue, 9 Aug 2005 16:02:23 +0000 (16:02 +0000)]
 - bug fix, convert modifiers should free modifiers from new object

15 years agofix for bug #2906
Johnny Matthews [Tue, 9 Aug 2005 14:44:46 +0000 (14:44 +0000)]
fix for bug #2906

Was allocating array for all hidden edges, not needed, just hidden with a selected vert needed

15 years agoPossible fix for bug #2906
Johnny Matthews [Tue, 9 Aug 2005 13:49:05 +0000 (13:49 +0000)]
Possible fix for bug #2906

Added some parens to change eval order

15 years agoBig commit, had to rework lots of selection stuff so that things
Daniel Dunbar [Tue, 9 Aug 2005 08:12:36 +0000 (08:12 +0000)]
Big commit, had to rework lots of selection stuff so that things
worked properly with modifiers. Needs more testing I am sure.
No, honestly, I wasn't just cleaning for the hell of it, it
was *necessary* (I would never do such a thing). Selection should
work completely with cage options of modifiers now.

 - added DerivedMesh foreach functions to iterate over mapped
   verts/edges/face centers. These replaced some of the drawing
   functions and are more general anyway. Special edge drawing
   functions remain for performance reasons.
 - removed EditFace xs, ys fields
 - added general functions to iterate over screen coordinates of
   mesh/curve/lattice objects
 - removed all calc_*verts* functions that were used for storing
   screen coordinates in objects. they were recalc'd on the fly
   for most situations anyway, so now we just always do that.
   calc_*verts_ext was one of those calls that did dirty things
   deep down in the callstack (changing curarea and poking at
 - rewrote all vertex level selection routines (circle, lasso, bbox)
   and closest vertex routines (rightmouse select) to use the new
   system. This cleaned up the selection code a lot and the structure
   of selection is much easier to see now. This is good for future
   work on allowing modifiers to completely override the selection
   system. It also points out some discrepancies in the way selection
   is handled that might be nice to resolve (mesh vertex selection has
   fancy stuff to try to help with selecting overlapping, but it only
   works w/o bbuf select, and curves/lattices don't have at all).
 - had to remove ton's code to move Manipulator to cage location, this
   is not reliable (can come up with a different method if requested)
 - as it happens BezTriple.s and BPoint.s are basically available to
   be removed, just need to rewrite editipo code that still does
   background calc of screen coordinates
 - MVert.{xs,ys} are still around because they are abused in some places
   for other info (not sure if this is safe actually, since they are
   short's and the mvert limit went up).

And did I mention this commit is comes out to -305 lines? Well it does.

15 years agomade weight paint panel full width ( still try to understand that X,Y system panels...
Jens Ole Wund [Mon, 8 Aug 2005 21:56:52 +0000 (21:56 +0000)]
made weight paint panel full width ( still try to understand that X,Y system panels use  )
replaced senseless 0 opacity  with 1/8 opacity

15 years ago - added VecLerpf to blenlib
Daniel Dunbar [Mon, 8 Aug 2005 18:50:47 +0000 (18:50 +0000)]
 - added VecLerpf to blenlib
 - switch to using DerivedMesh.drawMappedFaceCentersEM to draw
   face dots, still need to do some work so this works in all
   selection modes (atm it does not work in no-zbuf mode)

15 years agosome more work on bullet raycast
Erwin Coumans [Mon, 8 Aug 2005 17:08:42 +0000 (17:08 +0000)]
some more work on bullet raycast

15 years agoAdded extra Select Type option for esubdivide and put them in defines to get rid...
Johnny Matthews [Mon, 8 Aug 2005 15:59:05 +0000 (15:59 +0000)]
Added extra Select Type option for esubdivide and put them in defines to get rid of magic numbers

SUBDIV_SELECT_ORIG      - Retain selection to look like original selection
SUBDIV_SELECT_INNER     - New selection is all the new inner edges
SUBDIV_SELECT_INNER_SEL - New selection is all the new inner edges except where only 1 edges was selected on a face

Loopcut now uses SUBDIV_SELECT_INNER_SEL for better interaction with edgeslide

15 years ago- fixed missing logic positive pulse repeat button
Erwin Coumans [Mon, 8 Aug 2005 11:03:16 +0000 (11:03 +0000)]
- fixed missing logic positive pulse repeat button

-better naming for collision bounds:
polytope -> convex polytope
polyheder -> concave mesh

-better naming:
frequency -> the pulse delay

15 years agoBug fix #2894
Ton Roosendaal [Mon, 8 Aug 2005 09:58:57 +0000 (09:58 +0000)]
Bug fix #2894

Using Lkey (select connected) in Armature editmode could crash, it didn't
correctly check for drawing non selectable items (have index -1).

15 years agoTwo radiosity glitches, bugs #2872 #2881
Ton Roosendaal [Mon, 8 Aug 2005 09:36:07 +0000 (09:36 +0000)]
Two radiosity glitches, bugs #2872 #2881

- add new scene, "Full Copy", didn't copy radio settings
- switch scene didn't reset radiosity baking
  (note that you can only do 1 radiosity scene in Blender, switch scene
  will free the radiosity data)

15 years agoBugfix #2871
Ton Roosendaal [Mon, 8 Aug 2005 08:49:24 +0000 (08:49 +0000)]
Bugfix #2871

Selecting in Mesh edit mode or in FaceSelect mode is tied, but setting
faces hidden was not tied. This caused hidden faces in edit mode to
become selected, with all associated disasters. :)
Now hiding faces in editmode and faceselect are tied too. Please note
that leaving faceselect mode will unhide always!

15 years agoLittle fix for Edgeslide so it doesn't crash on usage!
Johnny Matthews [Sun, 7 Aug 2005 23:59:34 +0000 (23:59 +0000)]
Little fix for Edgeslide so it doesn't crash on usage!

Also fixed trying to edgeslide an edge with a missing rail.

And Changed the okee calls to error (thanks intrr)

15 years agoClean up spaces (make into tabs) in editmesh_tools
Johnny Matthews [Sun, 7 Aug 2005 21:47:08 +0000 (21:47 +0000)]
Clean up spaces (make into tabs) in editmesh_tools

Also add menu items for Edgeloop Delete

15 years agoFix for bug #2859
Ton Roosendaal [Sun, 7 Aug 2005 21:23:55 +0000 (21:23 +0000)]
Fix for bug #2859

Beautyfill didnt work in illustrated case, due to 1) face select 2) no
correct edges selected...

15 years agoIn CTRL-E menu "Edgeloop Delete" with a valid "inner" edgeloop selected, this functio...
Johnny Matthews [Sun, 7 Aug 2005 20:46:26 +0000 (20:46 +0000)]
In CTRL-E menu "Edgeloop Delete" with a valid "inner" edgeloop selected, this function calls other tools to delete that edgeloop by doing the following

Edgeslide to one side 100%
CTRL +  to select "more"
Remove Doubles

Leaves you with new faceloop selected.

15 years ago - update effect.c for function def change of convertToDispListMesh
Daniel Dunbar [Sun, 7 Aug 2005 19:43:14 +0000 (19:43 +0000)]
 - update effect.c for function def change of convertToDispListMesh

15 years agoSoftbody collision with deformed deflectors2
Jens Ole Wund [Sun, 7 Aug 2005 19:22:29 +0000 (19:22 +0000)]
Softbody collision with deformed deflectors2
using bit in pd->flag to signal the use of deformed rather than wasting pd->pad

removing evil cast
replaced by  using convertToDispListMesh()  ZR: I hope that's OK that way

commented off the ( debug purpose ) recursion trap in SoftBodyDetectCollision()
replaced forbidden okee() with printf() in there
( not so nice, since it does not anounce crash on UI )

note: crashing example from previous commit
needs enabling 'UMS'  on panel to crash again
UMS = uses modifier stack

15 years ago_updates and warning fix_
Joseph Gilbert [Sun, 7 Aug 2005 12:09:50 +0000 (12:09 +0000)]
_updates and warning fix_
* fixed a few warnings in the python project
* added timeline to py project

15 years ago - bug fix, need to check mapped verts/edges/faces are non-NULL before
Daniel Dunbar [Sun, 7 Aug 2005 05:59:19 +0000 (05:59 +0000)]
 - bug fix, need to check mapped verts/edges/faces are non-NULL before
   using in assorted DerivedMesh functions

15 years ago - got rid of DerivedMesh.drawMappedEdgeEM function, can be implemented with
Daniel Dunbar [Sun, 7 Aug 2005 05:42:03 +0000 (05:42 +0000)]
 - got rid of DerivedMesh.drawMappedEdgeEM function, can be implemented with
 - added DerivedMesh.convertToDispListMeshMapped function which converts and
   also returns mapping information for use in editmode
 - updated DispListMesh derivedmesh to be able to function in editmode
 - update mirror modifier to support use as a cage
 - update mirror & subsurf modifiers to properly pass mapping information down
   modifier stack

It is now possible to have a mesh with mirror/subsurf modifiers where you
can edit with both as cage. Selecting the mirror'd part works, but of course
transform is flipped so it is a bit weird. Not the cleanest code in the
world and I can't say I am really happy with the architecture but it works for
now and supports the existing feature set.

15 years ago - add allowShared argument to DerivedMesh.convertToDispListMesh to allow returned
Daniel Dunbar [Sun, 7 Aug 2005 02:30:29 +0000 (02:30 +0000)]
 - add allowShared argument to DerivedMesh.convertToDispListMesh to allow returned
   DLM to share data from DerivedMesh (reduces some copying/memory allocation)
 - added displistmesh_copyShared function to copy a DLM but not duplicate any
   internal data
 - changed crease drawing to use DerivedMesh functions... this means varying
   edge width style of creases had to go, I replaced by using varying color to
   show crease weight instead. Don't think this is a big loss since the subsurf
   result gives you a much better indication of the crease weight anyway.
 - bug fix in mirror modifier, didn't copy edge creases from editmesh correctly

15 years agoworking on : make softbodies collide with moving ( armatures,lattices .. ) objects
Jens Ole Wund [Sat, 6 Aug 2005 23:20:52 +0000 (23:20 +0000)]
working on : make softbodies collide with moving ( armatures,lattices .. ) objects

works nice & smooth unless we encounter logical circles
well, because of function pointers re-hooking i could not debug that in detail
may be DAG or modifier stack is .. dunno

did abuse pd->pad bit 1 ( i hope this was 'real' padding till now )
to get SoftBodyDetectCollision(..) use mesh_get_derived_XXX [in effect.c] ..[*sigh* (the linetriangle() func is there)
and put that to the deflection panel (blush .. i would have decapted anyone in my team doing stuff like that)

to defend this commit:
it makes you aware of problems ahead
having code that works/doesn't (on some conditions) is is usefull to look at
i think code is OK , so the problem is either
a. me not understanding
b. real

for locical circles see files -->

15 years agoadding time line stuff
Jens Ole Wund [Sat, 6 Aug 2005 22:00:21 +0000 (22:00 +0000)]
adding time line stuff

15 years ago - added editmhes_get_derived_base, used when a mesh with multiple users
Daniel Dunbar [Sat, 6 Aug 2005 20:44:59 +0000 (20:44 +0000)]
 - added editmhes_get_derived_base, used when a mesh with multiple users
   is in editmode. current bevahaior is to display the object that is
   actually in editmode with its modifiers, and all other objects that
   share the mesh using just the base editmesh data. this is not 100%
   consistent but no architecture at the moment to display all objects
   that have mesh in editmode with each individual modifier stack.

15 years ago - update B_MESH{BROWSE, ALONE, LOCAL} events to flag object changed
Daniel Dunbar [Sat, 6 Aug 2005 20:34:33 +0000 (20:34 +0000)]
 - update B_MESH{BROWSE, ALONE, LOCAL} events to flag object changed

15 years ago - bug fix, extrude and duplicate automatically enter transform which
Daniel Dunbar [Sat, 6 Aug 2005 19:13:13 +0000 (19:13 +0000)]
 - bug fix, extrude and duplicate automatically enter transform which
   may request info from the derived surface, this means we have to
   force a manual recalc before we enter transform... proper design
   of mesh data invalidation/recalc should make this unnecessary...

15 years ago - added copy button to modifier stack UI
Daniel Dunbar [Sat, 6 Aug 2005 18:51:58 +0000 (18:51 +0000)]
 - added copy button to modifier stack UI
 - add warning about applying decimation
 - some more UI tweaks (rounding of modifier pane, make toggles only in header,
   add object name to try to convey that modifier stack is tied to OB)
 - bug fix, modifier recalc wasn't done on make link
 - bug fix, uiBlockEndAlign didn't clear align flags with certain themes,
   pretty sure this wasn't intended. (TON: PLEASE CHECK)

15 years agofixed sphere shape, added non-uniform scaling (making it an ellipsoid)
Erwin Coumans [Fri, 5 Aug 2005 22:10:27 +0000 (22:10 +0000)]
fixed sphere shape, added non-uniform scaling (making it an ellipsoid)
removed bug-fixing comments

15 years agodoc to bpy TimeLine support
Joilnen Leite [Fri, 5 Aug 2005 18:02:49 +0000 (18:02 +0000)]
doc to bpy TimeLine support

15 years agobpy TimeLine stuff
Joilnen Leite [Fri, 5 Aug 2005 17:49:56 +0000 (17:49 +0000)]
bpy TimeLine stuff

15 years agoadding TimeLine bpy support
Joilnen Leite [Fri, 5 Aug 2005 17:47:48 +0000 (17:47 +0000)]
adding TimeLine bpy support

15 years agofixed the mouse-over sensor,
Erwin Coumans [Fri, 5 Aug 2005 17:00:32 +0000 (17:00 +0000)]
fixed the mouse-over sensor,
added raycast support for bullet (no triangle-mesh support, soon)
added python methods for 'getHitObject', getRayDirection, getHitPosition and getHitNormal for mouse over sensor,
which makes it easy for a shootout.blend demo :)

15 years agoadded bpy TimeLine
Joilnen Leite [Fri, 5 Aug 2005 17:00:26 +0000 (17:00 +0000)]
added bpy TimeLine

15 years agoNow while choosing an edge in loopcut, S will toggle loopcut smooth. There is a heade...
Johnny Matthews [Fri, 5 Aug 2005 15:52:28 +0000 (15:52 +0000)]
Now while choosing an edge in loopcut, S will toggle loopcut smooth. There is a headerprint to show current status of smooth.

Also a little tweak in subd smooth. is still not perfect in full quads/tris cases

15 years agoA small improvement to Subdivide multi smooth. It is not perfect yet :( but its better.
Johnny Matthews [Fri, 5 Aug 2005 15:08:43 +0000 (15:08 +0000)]
A small improvement to Subdivide multi smooth. It is not perfect yet :( but its better.

BUT! Try doing a EdgeRing (CTRL-ALT-RMB in edge mode) select and a subdivide smooth multi...That works ok (read loopcut multi smooth)  :)

15 years ago - bug fix, some world material map to buttons missing
Daniel Dunbar [Fri, 5 Aug 2005 01:57:21 +0000 (01:57 +0000)]
 - bug fix, some world material map to buttons missing
 - bug fix, logic bool property value buttons missing

15 years agoremoved comma at end of enumerator list.
Stephen Swaney [Fri, 5 Aug 2005 01:41:48 +0000 (01:41 +0000)]
removed comma at end of enumerator list.

15 years ago - added UI_EMBOSSR option (rounded emboss)
Daniel Dunbar [Thu, 4 Aug 2005 22:36:21 +0000 (22:36 +0000)]
 - added UI_EMBOSSR option (rounded emboss)
 - added support for vector icons, from user API side is just like using
   a regular icon... on icon side is defined by a function in resources.c
   instead of using the blenderbuttons png file. vector icons are much
   easier to add and scale properly. intent is that vector icons would
   be drawn in window coordinates which lets icon developers make the
   most beautiful icons, but this requires some tweaking of the interface
   drawing that I am not going to do atm.
 - changed BIF_draw_icon* to take coordinates of where to draw icon instead
   of using passed in raster position
 - switch modifier UI to using vector icons, and tweaked some position and
   style stuff.
 - replaced most uses of UI_EMBOSSX with UI_EMBOSS (do same thing, just there
   to confuse people I guess)

After the window coordinate stuff is sorted out with vector icons
it probably makes sense to move all non-photorealistic icons in blenderbuttons
to vector form just so scaling goes better.

15 years agoMake Edgeslide work with Subsurf Optimal "on cage"
Johnny Matthews [Thu, 4 Aug 2005 19:31:14 +0000 (19:31 +0000)]
Make Edgeslide work with Subsurf Optimal "on cage"