16 years agohelp mscv6 to find
Jens Ole Wund [Tue, 26 Jul 2005 07:00:32 +0000 (07:00 +0000)]
help mscv6 to find
LOD_decimation.h for BKE_blenderkernel

waves good bye yo wave.c + .h

16 years ago - added decimation include dir to makefiles
Daniel Dunbar [Tue, 26 Jul 2005 06:46:21 +0000 (06:46 +0000)]
 - added decimation include dir to makefiles

16 years ago - bugfix, mirror modifier didn't copy deformed vertex cos for shared
Daniel Dunbar [Tue, 26 Jul 2005 06:39:58 +0000 (06:39 +0000)]
 - bugfix, mirror modifier didn't copy deformed vertex cos for shared

16 years ago - added wave modifier & removed old wave effect
Daniel Dunbar [Tue, 26 Jul 2005 02:44:59 +0000 (02:44 +0000)]
 - added wave modifier & removed old wave effect
 - added decimate modifier & removed old decimate interface
   (currently lacks warning about destroying data, and there needs
   to be a way for modifiers to return errors back to the interface)
 - allow applyModifier to return NULL to indicate error
 - unfortunately new decimate modifier means it does not know exact
   number of faces in mesh (other modifiers may come before) and so
   instead interface uses a percentage. if people need exact face
   count slider then I will have to think of some hack to fit this
   in. note that it does display the output face count so its possible
   to tweak the pct to get what you want regardless.
 - removed python Wave object

If you are bored now how much easier it is to implement something
like decimate as a modifier. Very few changes to interface, very
few entry points.

16 years ago - added apply button for individual modifiers
Daniel Dunbar [Tue, 26 Jul 2005 00:45:19 +0000 (00:45 +0000)]
 - added apply button for individual modifiers

16 years ago - commit some testing code for LetterRip's bit button conversion
Daniel Dunbar [Mon, 25 Jul 2005 23:56:57 +0000 (23:56 +0000)]
 - commit some testing code for LetterRip's bit button conversion

16 years ago - displacement fix, need to calc normals before displacing
Daniel Dunbar [Mon, 25 Jul 2005 22:02:13 +0000 (22:02 +0000)]
 - displacement fix, need to calc normals before displacing

16 years ago - removed internal functions from effect header
Daniel Dunbar [Mon, 25 Jul 2005 21:53:58 +0000 (21:53 +0000)]
 - removed internal functions from effect header
 - made particle system generation use its own RNG object,
   keeps it safe against varying calculation order in the renderer

Still a funny bug where having a material on a particle object
changes the particle locations (in renderer, not in interface...

16 years ago- Dupliframes mball didn't work anymore (should be added to scene_update)
Ton Roosendaal [Mon, 25 Jul 2005 21:38:13 +0000 (21:38 +0000)]
- Dupliframes mball didn't work anymore (should be added to scene_update)
- restored nicer drawing for duplicator wireframe. Draws before selected,
  so you can see the duplicated object better

16 years ago - mixed up RNG type definition
Daniel Dunbar [Mon, 25 Jul 2005 20:56:48 +0000 (20:56 +0000)]
 - mixed up RNG type definition

16 years ago - added RNG abstract random object rng_{new/free/seed/get{Int,Double,Float}}
Daniel Dunbar [Mon, 25 Jul 2005 20:33:10 +0000 (20:33 +0000)]
 - added RNG abstract random object rng_{new/free/seed/get{Int,Double,Float}}
   to avoid use of global generator. at the moment the renderer owns the
   number generator and this is important for retaining render consistency.

16 years ago - fix some error handling in blend loader, correct error codes
Daniel Dunbar [Mon, 25 Jul 2005 18:35:49 +0000 (18:35 +0000)]
 - fix some error handling in blend loader, correct error codes
   were not always returned.

16 years agoSome bad use of non-public API. Changed the calls to BIF_undo_push() and BIF_undo...
Johnny Matthews [Mon, 25 Jul 2005 17:03:09 +0000 (17:03 +0000)]
Some bad use of non-public API. Changed the calls to BIF_undo_push() and BIF_undo() instead

16 years agobuild.c + .h going
Jens Ole Wund [Mon, 25 Jul 2005 14:12:28 +0000 (14:12 +0000)]
build.c + .h going
point.c + .h coming
/me wonders if there ara any MSVC6er

16 years agoLittle issues, combined commit!
Ton Roosendaal [Mon, 25 Jul 2005 10:58:21 +0000 (10:58 +0000)]
Little issues, combined commit!

- Bug #2857: Spin didn't create nice consistant normals
- removed unnecessary call to where_is_object() in init-render phase.
- Added DAG_scene_sort() calls when objects were removed (join cases)
- When using texture fonts, the file window header didn't display OK
- Saving a file didn't set the 'wait cursor' anymore (oldie!)

16 years agoRegression file teapot.blend didn't render... this due to a hack removal of
Ton Roosendaal [Mon, 25 Jul 2005 09:19:23 +0000 (09:19 +0000)]
Regression file teapot.blend didn't render... this due to a hack removal of
a month ago (trying to cope with vertexcolor 'paint' and 'light'.)
Forgot to add the correct check for calculaing UV texture coords, needed to
have vertexcolor 'paint' working.

16 years ago - warning fixes
Daniel Dunbar [Sun, 24 Jul 2005 19:13:27 +0000 (19:13 +0000)]
 - warning fixes
 - rare bug in calc_vertexnormals, fourth vertex normal was not flipped
   correctly (found thanks to my new auto regression test script)

16 years ago - switch displistmesh_to_mesh to just dupalloc the mface's
Daniel Dunbar [Sun, 24 Jul 2005 18:16:40 +0000 (18:16 +0000)]
 - switch displistmesh_to_mesh to just dupalloc the mface's
 - added verteCos argument to sbObjectReset, lack of this was
   causing softbody objects to not be initialized with deform
 - made convert-to-mesh option call DAG_scene_sort, prevents
   crashes due to obsolete object pointer

16 years agoWhen entering editmode on Armature, the Pose now defaults to a correct
Ton Roosendaal [Sun, 24 Jul 2005 15:16:37 +0000 (15:16 +0000)]
When entering editmode on Armature, the Pose now defaults to a correct
restposition, also for deform and bone childs.

16 years agoBug fix #2856
Ton Roosendaal [Sun, 24 Jul 2005 13:39:26 +0000 (13:39 +0000)]
Bug fix #2856

Changing 'active material' in Editing Buttons didn't update preview in
in Material Buttons.

16 years agoNLA strip option "Add" accidentally also added constraint ipo values.
Ton Roosendaal [Sun, 24 Jul 2005 13:30:44 +0000 (13:30 +0000)]
NLA strip option "Add" accidentally also added constraint ipo values.
Result was characters going bezerk! By definition, pose blending now only
adds loc/rot/size, not constraint strength values.

16 years agoArmature-Pose IK goodies!
Ton Roosendaal [Sun, 24 Jul 2005 11:36:05 +0000 (11:36 +0000)]
Armature-Pose IK goodies!

- Added option to the IK buttons, to have it use the 'tip' as end of the
  IK chain. I never really understood this old convention (IK didn't work
  on the Bone itself).
  Old files still will read OK though. But I made the "To Tip" a default
  when adding new IK constraints.

- Hotkey CTRL+I: add IK, with option to have it adding an Empty target,
  or use a selected Bone as target. With the new non-modal PoseMode, it
  gives instant access to playing with the IK chain.

- Hotkey ALT+I: clears IK, on all selected Bones

- Hotkey ALT+C: clears Constraints on all selected Bones (incl IK)

16 years agoGCC 4 didn't like static function after non static prototype. Moved prototype to...
Martin Poirier [Sun, 24 Jul 2005 09:21:31 +0000 (09:21 +0000)]
GCC 4 didn't like static function after non static prototype. Moved prototype to c file and added static to it.

16 years agoRemoving "Custom" as a menu entry in 3D view header (ztonzy spotted that).
Martin Poirier [Sun, 24 Jul 2005 08:26:45 +0000 (08:26 +0000)]
Removing "Custom" as a menu entry in 3D view header (ztonzy spotted that).

16 years agoMissing include file from commits. (tsk)
Martin Poirier [Sun, 24 Jul 2005 07:10:56 +0000 (07:10 +0000)]
Missing include file from commits. (tsk)

16 years agoSome stuff slipped in header_view3d.c too. Thanks to basse for spoting that quickly.
Martin Poirier [Sun, 24 Jul 2005 06:57:46 +0000 (06:57 +0000)]
Some stuff slipped in header_view3d.c too. Thanks to basse for spoting that quickly.

16 years agoBig Transform Manipulator Merge
Martin Poirier [Sun, 24 Jul 2005 06:25:00 +0000 (06:25 +0000)]
Big Transform Manipulator Merge

*NOTE*: Some UI decision done in this commit will most likely be revised, all flame shall go in /dev/null. Constructive discussions of course welcomed.

This commit merges manipulator orientation selection back in "traditional" transform.
That's how it works:
- The dropdown in the 3D view header is always visible
- The orientation chosen will be used when choosing an axis with MMB and for the *second* key press of X,Y,Z
However, Local orientation doesn't use the one calculated by the manipulator. This is to ensure that multiple object local and armatures in pose still works as before.
- Alt-Space (to change the orientation) works during transform

New Transform orientation: View, using the view axis.

Fixes for the following bugs:
- Constraint projection code "jammed" if input vector was <0,0,0>, reported a couple of times on IRC. Thanks to Basse for the example file.
- Transform on texspace crashed on objects without texspace data (camera, lamp, ...). This was reported in tracker.
- Numinput with lock constraints didn't work correctly. Reported on elysiun

Probably some others that I'm forgetting

I also moved a couple of functions around in an attempt to make things clearer.

16 years ago- Armature editmode now supports lasso. Please be aware that in editmode,
Ton Roosendaal [Sat, 23 Jul 2005 20:56:40 +0000 (20:56 +0000)]
- Armature editmode now supports lasso. Please be aware that in editmode,
  armatures actually only consists of points, flushing bone selection
  based on points that are selected.

Renamed the "Lines" drawmode for bones to "Sticks". Thanks Basse! :)

- Fix; crash in selecting in editmode armature (commit 1 hour ago)
- Fix; in editmode, bones didn't transform (same commit)
- Fix; in drawmode "Sticks", names could go weird in editmode (commit
  two days ago)

16 years ago - added ModifierData flag, is modifier enabled in editmode
Daniel Dunbar [Sat, 23 Jul 2005 19:15:08 +0000 (19:15 +0000)]
 - added ModifierData flag, is modifier enabled in editmode
 - added modifier type flag: should modifier be enabled by default for
   active in editmode
 - added subsurf "debug incremental" option instead of G.rt==52 (it becomes
   a slightly useful feature now for debugging how well a modifier works
   with incremental subsurf... maybe important for future python modifier
 - shuffled modifier button layout just to keep people guessing
 - switched back to drawing editmesh face centers not through derivedmesh,
   I didn't think this one through, forgot that centers were also used for
   selection. have to think about what to do about this, should be either
   (a) don't draw centers with a cage active (optimal mode) or (b) come up
   with api to draw centers through derivedmesh and also handle selection.
 - changed recalc_editnormals to also follow the len(no)==0.0 use vertex
   co convention

16 years ago - change mesh_calc_normals to set vertices with len(no)==0
Daniel Dunbar [Sat, 23 Jul 2005 19:03:43 +0000 (19:03 +0000)]
 - change mesh_calc_normals to set vertices with len(no)==0
   to normalised coordinate (convention in blender, helps with
 - removed vertexnormals(), vertexnormals_mesh()
 - removed CTX_NO_NOR_RECALC (always assume already calculated)
 - change NMesh.c to call mesh_calc_normals
 - chance load_editMesh to call mesh_calc_normals after done
   converting instead of using editmesh normals
 - update recalc_editnormals to also calc vertex normals (whats
   4 more adds and a sqrt among friends)

Its hard to believe, but it just might be the case that there
are only two places mesh normals are calculated now (renderer
and kernel)

16 years agoKilled silly modal PoseMode mode! :)
Ton Roosendaal [Sat, 23 Jul 2005 18:52:31 +0000 (18:52 +0000)]
Killed silly modal PoseMode mode! :)

- PoseMode now is a state Armature Objects can be in. So, while in PoseMode
  for an Armature, you can just select another Object or Armature.
- The old PoseMode options (transform, insert keys etc) are accessible
  with making the Armature Object 'active' (and have object in PoseMode).
- At this moment no multiple Poses can be transformed/edited at the same
- The old hotkey CTRL+TAB, and view3d header menu, still work to set an
  Object's PoseMode

It was quite a lot recode, so tests & reports are welcome.

Oh, as a bonus I added Lasso Select for Bones in PoseMode! It selects using
only the line between root and tip of the Bone.

16 years ago - cleaned up calc_vertexnormals, did unnecessary temporary array alloc
Daniel Dunbar [Sat, 23 Jul 2005 18:27:09 +0000 (18:27 +0000)]
 - cleaned up calc_vertexnormals, did unnecessary temporary array alloc
   and passed over faces twice
 - changed init_render_mesh to *always* call calc_vertexnormals. Vertex normal
   calculation is insignificant time wise in comparison to modern renders so
   it wasn't a big savings anyway, and vertex normals were sometimes incorrect.
   Still issue remaining regarding what to do with wire normals.

16 years ago - removed mface->puno flags, was only used to flip normals in display
Daniel Dunbar [Sat, 23 Jul 2005 16:09:08 +0000 (16:09 +0000)]
 - removed mface->puno flags, was only used to flip normals in display
   and this is better left to user (whee this was a fun commit! so
   much deleting!)
 - removed mesh_calculate_vertex_normals (replaced by mesh_calc_normals)

16 years agoadded bandoler's SConscript file for Bullet
Erwin Coumans [Sat, 23 Jul 2005 15:06:45 +0000 (15:06 +0000)]
added bandoler's SConscript file for Bullet

16 years agoAdded code in loopcut to undo cut if edgeslide was cancelled. (For you Chris!)
Johnny Matthews [Sat, 23 Jul 2005 14:39:59 +0000 (14:39 +0000)]
Added code in loopcut to undo cut if edgeslide was cancelled. (For you Chris!)

Also Added some code for UV's in subdivide. This is close, but still is not perfect :(

16 years agoAdded point.c to the SConscript file
Johnny Matthews [Sat, 23 Jul 2005 14:15:13 +0000 (14:15 +0000)]
Added point.c to the SConscript file

16 years ago_update to msvc7 project_
Joseph Gilbert [Sat, 23 Jul 2005 13:52:12 +0000 (13:52 +0000)]
_update to msvc7 project_
- added point to python
 - the point commit remove vector division as it is undefined

16 years ago_new point class and update_
Joseph Gilbert [Sat, 23 Jul 2005 13:46:40 +0000 (13:46 +0000)]
_new point class and update_
- adds a new point class
  * point/ vector math (p + v = p, p - p = v, etc.)
  * points can be transformed by matrices/quats
  * wraps 'place vector' type vectors that have no magnitude
- wrapped toXXX() methods work correctly
  * toXXX() will NOT wrap data (this is due to the fact that wrapped data cannot be converted)
  * added a 'wrapped' attribute to mathutils classes to determine wether the object is accessing python or blender data
- added the ability to negate vectors/points with "-vec"
  * deprecated vector.negate()
- added the ability to shorhand inverse matrices with "~mat" (tilde)
- conversion between vector/point with toXXX() methods

16 years ago - added DerivedMesh.drawMapped{VertNormals,FaceNormals,FaceCenters}EM
Daniel Dunbar [Sat, 23 Jul 2005 07:45:39 +0000 (07:45 +0000)]
 - added DerivedMesh.drawMapped{VertNormals,FaceNormals,FaceCenters}EM
   functions and implementation for EditmeshDerivedMesh
 - switch drawobject to drawing normals/centers through the DerivedMesh
 - added G_DRAW_VNORMALS flag and button, implementation is not yet complete
   because editmesh normals are not updated regularly
 - switch editmesh draw buttons to use uiDefButBit (can't we get some
   monkey to convert all of the uiDefBut calls with TOG|BIT type? It
   makes grepping the source much nicer)

16 years ago - fix a bug with softbody, verts were copied out of order (meant
Daniel Dunbar [Sat, 23 Jul 2005 06:05:29 +0000 (06:05 +0000)]
 - fix a bug with softbody, verts were copied out of order (meant
   history was lost... I think, dunno this code well.)
 - commented out code to do merging of quad with 3 verts shared in
   mirror mode... didnt seem worth the effort and mesh still wasnt
   perfect afterwards
 - bug fix, indices for triangles were not swapped correctly in
   mirror, could lead to crash with subsurf in editmode

16 years ago - agh!!!! horrible code alert!!! pushdata/popdata in build_particle_system
Daniel Dunbar [Sat, 23 Jul 2005 04:37:02 +0000 (04:37 +0000)]
 - agh!!!! horrible code alert!!! pushdata/popdata in build_particle_system
   actually copy Object data and then store it back later. Of course this
   means changes to object during the call are lost (and very hard to track
   down). Eekadoodle!

   Oh yeah, actual commit was to move call to fetch derived mesh above
   pushdata, because this call can alloc cache's in the Object (which won't
   get freed later if it is after pushdata)

16 years ago - move build_particle_system to makeDispList, it was getting called
Daniel Dunbar [Fri, 22 Jul 2005 22:01:39 +0000 (22:01 +0000)]
 - move build_particle_system to makeDispList, it was getting called
   recursively in certain situations. needs review.

16 years agoEvents added for:
Ton Roosendaal [Fri, 22 Jul 2005 21:42:56 +0000 (21:42 +0000)]
Events added for:

- clear parent (didn't do a recalc data for deformed objects)
- add/remove object name in modifier menu (redraw event)

16 years agoError in drawing of new armature options;
Ton Roosendaal [Fri, 22 Jul 2005 19:51:08 +0000 (19:51 +0000)]
Error in drawing of new armature options;
bglPolygonOffset(0) was accidentally called without it being set before,
causing window matrix to go weird. :)

16 years agoMotion blur didn't work for Object Ipos (rest worked OK), so simple
Ton Roosendaal [Fri, 22 Jul 2005 19:24:10 +0000 (19:24 +0000)]
Motion blur didn't work for Object Ipos (rest worked OK), so simple
fix. :)

Also removed the ugly old 'update for newframe' from renderwin.c, the
new call scene_update_for_newframe() does it much friendlier.

16 years ago - moved mesh_getVertexCos to mesh.c and prototyped
Daniel Dunbar [Fri, 22 Jul 2005 17:03:50 +0000 (17:03 +0000)]
 - moved mesh_getVertexCos to mesh.c and prototyped
 - make mesh_modifier build vertex locations on demand

16 years agoaCVS: ----------------------------------------------------------------------
Erwin Coumans [Fri, 22 Jul 2005 16:46:15 +0000 (16:46 +0000)]
aCVS: ----------------------------------------------------------------------
added minkowskisum in the raytrace demo
update vc8 projectfiles

16 years ago - got fed up with not being able to put a breakpoint on MEM_
Daniel Dunbar [Fri, 22 Jul 2005 16:40:26 +0000 (16:40 +0000)]
 - got fed up with not being able to put a breakpoint on MEM_
   errors, switched MEM_set_error_stream to MEM_set_error_callback
   that calls a function to print result instead of just giving
   a FILE *

Note: requires intern recompile

16 years ago - bug fix, old files with me->subdiv==0 crashed, fix to make sure they
Daniel Dunbar [Fri, 22 Jul 2005 15:09:54 +0000 (15:09 +0000)]
 - bug fix, old files with me->subdiv==0 crashed, fix to make sure they
   don't crash and also changed patch to properly init SubsurfModifierData

16 years ago_update to msvc7 project files_
Joseph Gilbert [Fri, 22 Jul 2005 10:04:12 +0000 (10:04 +0000)]
_update to msvc7 project files_
- adds new files for modifer
- removes build from python
- hopefully fixes the mac line endings

16 years ago - added data arguments to deformer modifiers, in case someone wants
Daniel Dunbar [Fri, 22 Jul 2005 07:37:15 +0000 (07:37 +0000)]
 - added data arguments to deformer modifiers, in case someone wants
   to write one that is based on geometry (and not just vertex position)
 - added editmode versions of modifier deform/apply calls and flag
   to tag modifiers that support editmode
 - added isFinalCalc param to applyModifier, basically a switch to let
   subsurf know if it is calc'ng orco or not (so it can deal with cache
   appropriately). This is kinda hacky and perhaps I can come up with
   a better solution (its also a waste to do a complete subdivide just
   to get vertex locations).
 - changed ccgsubsurf to not preallocate hash's to be approximately correct
   size... this was probably not a big performance savings but means that
   the order of faces returned by the iterator can vary after the first
   call, this messes up orco calculation so dropped for time being.
 - minor bug fix, meshes with only key didn't get vertex normals correctly
 - updated editmesh derivedmesh to support auxiliary locations
 - changed mesh_calc_modifiers to alloc deformVerts on demand
 - added editmesh_calc_modifiers for calculating editmesh cage and final
 - bug fix, update shadedisplist to always calc colors (even if totvert==0)
 - changed load_editMesh and make_edge to build me->medge even if totedge==0
   (incremental subsurf checks this)

todo: add drawFacesTex for ccgderivedmesh

So, modifiers in editmode are back (which means auto-mirror
in edit mode works now) although still not finished. Currently
no cage is computed, the cage is always the base mesh (in
other words, Optimal edge style editing is off), and the final
mesh currently includes all modifiers that work in edit mode
(including lattice and curve). At some point there will be toggles
for which modifiers affect the final/cage editmode derivedmesh's.

Also, very nice new feature is that incremental subsurf in object
mode returns a ccgderivedmesh object instead of copying to a new
displistmesh. This can make a *huge* speed difference, and is very
nice for working with deformed armatures (esp. with only small
per frame changes).

16 years ago - add ID.h and correct dna.c locations for my projectiles
Daniel Dunbar [Fri, 22 Jul 2005 06:45:37 +0000 (06:45 +0000)]
 - add ID.h and correct dna.c locations for my projectiles

16 years ago - put {} around the various minmax defines... this was a nice bughunt
Daniel Dunbar [Fri, 22 Jul 2005 05:03:04 +0000 (05:03 +0000)]
 - put {} around the various minmax defines... this was a nice bughunt

16 years agoFix for bug #2766: Shear shortcut broken
Chris Burt [Fri, 22 Jul 2005 03:25:29 +0000 (03:25 +0000)]
Fix for bug #2766: Shear shortcut broken

The problem is that the shear shortcut that was originally chosen was
eaten up by the shortcut to switch to the scale blezmo. Changed the
shortcut to CTRL + ALT + SHIFT + S which is painful but seeing as how
shear in object mode has limited use, I don't think it will cause any
real problems. I also updated the menu entry to match.

This was assigned to Martin but he's busy so I did it... and if I did it
wrong... blame him for not fixing it sooner ;)

16 years ago - bump blender version
Daniel Dunbar [Thu, 21 Jul 2005 22:34:01 +0000 (22:34 +0000)]
 - bump blender version
 - warning fixes (unused vars)
 - added do_lib_versions for patches that need to happen
   after linking and updated some patches.

There are still issues where patches can go wrong, particularly
if an Object is linked from another file. However, this should
fix all crashes.

16 years agoNew drawmode for the Armature geeks!
Ton Roosendaal [Thu, 21 Jul 2005 22:03:27 +0000 (22:03 +0000)]
New drawmode for the Armature geeks!

It was noticed that Bones dont perform well in 'xray' drawing, for that
purpose a very minimal style would serve best.
This new option "Line" draws a solid line with bitmap circles in endings.

Or temporal pics:

16 years ago - add comments to BKE_DerivedMesh.h about which functions are called in editmode
Daniel Dunbar [Thu, 21 Jul 2005 21:19:38 +0000 (21:19 +0000)]
 - add comments to BKE_DerivedMesh.h about which functions are called in editmode
 - gcc warning fixes
 - start work to make CCGDerivedMesh able to run in object mode (hint: more
   speed improvements)
 - fix modifier move down tooltip

16 years ago - shuffled editmesh derived function name/function
Daniel Dunbar [Thu, 21 Jul 2005 20:30:33 +0000 (20:30 +0000)]
 - shuffled editmesh derived function name/function
 - added ModifierTypeInfo.freeData function
 - added modifier_{new,free] utility function
 - added ccgSubSurf_getUseAgeCounts to query info
 - removed subsurf modifier faking (ME_SUBSURF flag is no
   longer valid). subsurf modifier gets converted on file load
   although there is obscure linked mesh situation where this
   can go wrong, will fix shortly. this also means that some
   places in the code that test/copy subsurf settings are broken
   for the time being.
 - shuffled modifier calculation to be simpler. note that
   all modifiers are currently disabled in editmode (including
   subsurf). don't worry, will return shortly.
 - bug fix, build modifier didn't randomize meshes with only verts
 - cleaned up subsurf_ccg and adapted for future editmode modifier
 - added editmesh.derived{Cage,Final}, not used yet
 - added SubsurfModifierData.{mCache,emCache}, will be used to cache
   subsurf instead of caching in derivedmesh itself
 - removed old subsurf buttons
 - added do_modifiers_buttons to handle modifier events
 - removed count_object counting of modifier (subsurfed) objects...
   this would be nice to add back at some point but requires care.
   probably requires rewrite of counting system.

New feature: Incremental Subsurf in Object Mode

The previous release introduce incremental subsurf calculation during
editmode but it was not turned on during object mode. In general it
does not make sense to have it always enabled during object mode because
it requires caching a fair amount of information about the mesh which
is a waste of memory unless the mesh is often recalculated.

However, for mesh's that have subsurfed armatures for example, or that
have other modifiers so that the mesh is essentially changing on every
frame, it makes a lot of sense to keep the subsurf'd object around and
that is what the new incremental subsurf modifier toggle is for. The
intent is that the user will enable this option for (a) a mesh that is
currently under active editing or (b) a mesh that is heavily updated
in the scene, such as a character.

I will try to write more about this feature for release, because it
has advantages and disadvantages that are not immediately obvious (the
first user reaction will be to turn it on for ever object, which is
probably not correct).

16 years ago - changed GetRawFromObject to always return mesh name/info... this
Daniel Dunbar [Thu, 21 Jul 2005 16:46:13 +0000 (16:46 +0000)]
 - changed GetRawFromObject to always return mesh name/info... this
   is a behavior change from prev releases, used to be only NMesh that
   were not from a subsurf would have name...

16 years agoTsk, noob mistake in intrr's radiosity commit (not collecting invisible faces).
Martin Poirier [Thu, 21 Jul 2005 05:43:49 +0000 (05:43 +0000)]
Tsk, noob mistake in intrr's radiosity commit (not collecting invisible faces).
Didn't check pointer, so it crashed if the mesh didn't have TFaces.

16 years ago - apologies, made stupid newbie error in makesdna change (I'm blushing),
Daniel Dunbar [Thu, 21 Jul 2005 02:56:45 +0000 (02:56 +0000)]
 - apologies, made stupid newbie error in makesdna change (I'm blushing),
   which majorly borked DNA and meant crashes everywhere. (C pointer
   arith, you know)

16 years ago - add my private version of VC7 project files... they are a lot better
Daniel Dunbar [Wed, 20 Jul 2005 20:54:52 +0000 (20:54 +0000)]
 - add my private version of VC7 project files... they are a lot better
   for actually working on blender than the standard ones:
     - all files are in one project, makes include directory maintainence
       much much easier
     - builds faster because doesn't build multiple projects fast
       (builds in 2 minutes on my athlon 1.5)
     - warnings settings are tweaked so that in debug mode only important
       and non-overwhelming ones show up
     - debug compile is incremental (speedy, one line change builds are
       about a second)

16 years ago - add option argument to makesdna for path within which to look
Daniel Dunbar [Wed, 20 Jul 2005 20:46:01 +0000 (20:46 +0000)]
 - add option argument to makesdna for path within which to look
   for DNA includes instead of assuming run from in source dir
 - remove casts to long before comparing pointers (warning fix)

16 years ago - renderer always goes through DerivedMesh atm, means no need
Daniel Dunbar [Wed, 20 Jul 2005 18:15:40 +0000 (18:15 +0000)]
 - renderer always goes through DerivedMesh atm, means no need
   to recalc vertex normals (can be assumed good)

16 years ago - readfile incorrectly increased user count for Lattice & Curve
Daniel Dunbar [Wed, 20 Jul 2005 18:04:50 +0000 (18:04 +0000)]
 - readfile incorrectly increased user count for Lattice & Curve
   modifier objects
 - make unlink_object clear Lattice & Curve Modifier object references
 - add expand_modifiers for liblinking

There really needs to be a more consistent and unified way of dealing
with datablock references between objects. It should be possible to
make this generic so that lib_link, expand_, DEP graph, unlink,
oops and maybe outliner can use a single API. The code to deal with
this is too bulky and error prone at the moment.

16 years ago - fix convert XXX _to mesh to recalc mesh data
Daniel Dunbar [Wed, 20 Jul 2005 16:45:41 +0000 (16:45 +0000)]
 - fix convert XXX _to mesh to recalc mesh data

16 years agoadded the Elsevier CDROM license to one file. This still allows to use the software...
Erwin Coumans [Wed, 20 Jul 2005 10:19:43 +0000 (10:19 +0000)]
added the Elsevier CDROM license to one file. This still allows to use the software for any purpose, commercial or non-commercial.

16 years agoWow! A new feature!
Daniel Dunbar [Wed, 20 Jul 2005 07:11:26 +0000 (07:11 +0000)]
Wow! A new feature!

 - made ModifierData.isDisabled optional
 - Added new modifier type: Mirror
    o modifier system isn't running in editmode yet so still
      don't have mirrored editing, but otherwise it is pretty
      cool. code even goes to tricks to make sure mirror join
      looks nice in degenerate cases.
    o this kind of commit is basically the upshot of all the
      previous commits - in that implementing a new modifier
      changes only about 3 files and still integrates nearly

16 years ago - orco fix for build effect, didn't copy input vertex cos over (duh!)
Daniel Dunbar [Wed, 20 Jul 2005 04:56:15 +0000 (04:56 +0000)]
 - orco fix for build effect, didn't copy input vertex cos over (duh!)

16 years ago - for some reason mesh_create_derived_no_deform took the raw data (not
Daniel Dunbar [Wed, 20 Jul 2005 04:44:02 +0000 (04:44 +0000)]
 - for some reason mesh_create_derived_no_deform took the raw data (not
   an object) but this is not going to work... I can't remember the reason
   I did it this way in the first place either! oops! regardless, switch
   to all mesh_ derived accessors taking object argument. there is still
   a bug in render orco calculation though. (hunt hunt)
 - removed python files that should have been ditched in previous commit

16 years ago - added modifier_dependsOnTime to check if modifier needs updating
Daniel Dunbar [Wed, 20 Jul 2005 04:14:21 +0000 (04:14 +0000)]
 - added modifier_dependsOnTime to check if modifier needs updating
   based on time change. would be nice if dep graph could handle this.
 - made dep check if modifiers need update on time change
 - fix render crash (access null)
 - added new Build Effect modifier type. compared to old one works as
   a full member of modifier system, means can apply subsurf, etc on
   it, reorder, what have you. and it is all nice and self contained.
 - removed old Build effect, old files convert to new style on load
 - couldn't help myself, added a randomize feature to build effect
 - removed Python BuildEffect support

16 years ago - remove MEM_dupallocN's warning on dup of len==0 sized object
Daniel Dunbar [Wed, 20 Jul 2005 03:49:36 +0000 (03:49 +0000)]
 - remove MEM_dupallocN's warning on dup of len==0 sized object

16 years ago - added an array shuffling function to BLI_rand
Daniel Dunbar [Wed, 20 Jul 2005 03:33:44 +0000 (03:33 +0000)]
 - added an array shuffling function to BLI_rand

16 years ago - fix for particle related crash in editmode. particle system calculation
Daniel Dunbar [Wed, 20 Jul 2005 02:23:09 +0000 (02:23 +0000)]
 - fix for particle related crash in editmode. particle system calculation
   is pretty haphazard at the moment, needs to be reviewed before next
   release (as does duplis).

16 years agoImproper indentation in getParentBoneName docstring.
Martin Poirier [Wed, 20 Jul 2005 00:03:52 +0000 (00:03 +0000)]
Improper indentation in getParentBoneName docstring.

I must say, the use of hard tab in the doc files is very annoying as it goes against what is done for the rest of the source code.

16 years agoProject Files (MSVC 6.0) update:
Martin Poirier [Tue, 19 Jul 2005 23:52:21 +0000 (23:52 +0000)]
Project Files (MSVC 6.0) update:
- drawarmature.c
- modifier.c, BKE_modifier.h
- DNA_modifier_types.h

16 years ago - added ModifierTypeInfo.updateDepgraph function, responsible for building
Daniel Dunbar [Tue, 19 Jul 2005 23:04:34 +0000 (23:04 +0000)]
 - added ModifierTypeInfo.updateDepgraph function, responsible for building
   appropriate relations in dep graph (modifiers respond to scene changes
   correctly now)
 - update modifier buttons to trigger depgraph rebuild if needed

16 years ago - fixed subsurf_make_derived_from_dlm
Daniel Dunbar [Tue, 19 Jul 2005 20:42:34 +0000 (20:42 +0000)]
 - fixed subsurf_make_derived_from_dlm

16 years ago - vertex indexing in softbody was wrong after I switch loop direction
Daniel Dunbar [Tue, 19 Jul 2005 20:29:22 +0000 (20:29 +0000)]
 - vertex indexing in softbody was wrong after I switch loop direction

16 years ago - split {curve,lattice,armature}_deform_verts out of mesh_deform
Daniel Dunbar [Tue, 19 Jul 2005 20:14:17 +0000 (20:14 +0000)]
 - split {curve,lattice,armature}_deform_verts out of mesh_deform
 - removed mesh_deform (merge into mesh_modifier)
 - switch python lattice_apply function to use object_apply_deform,
   this isn't exactly equivalent but the python system shouldn't
   have been calling that deep into the kernel anyway.

New feature: Modifier stack
 - added Object.modifiers (list of ModifierData elements)
 - added DNA_modifier_types.h
     o contains type definition for the file data for the various
       modifier types
 - added BKE_modifier.h
     o contains modifierType_get_info (access to modifier type registry)
     o structs and defines for runtime modifier usage
 - updated mesh_calc_modifiers to evaluate modifier stack (note that
   for the time being it also evaluates the old style modifiers so files
   should load and work as normal).
 - add file handling modifier code (todo: don't replicate on object copy)
 - add modifier stack UI code (lives in object panel)

Only real new feature at the moment is that you can apply lattices and
curves *after* a subdivision surface which was never possible before.

 - DEP graph updating does not work correctly yet, so you generally have
   to tab cycle to see results.
 - editmode calculation does not use modifier stack.
 - bug fixes (there must be a few in there somewhere)

16 years agoFix: CTRL+Click adding bones didn't attach them to the parent!
Ton Roosendaal [Tue, 19 Jul 2005 19:25:17 +0000 (19:25 +0000)]
Fix: CTRL+Click adding bones didn't attach them to the parent!

16 years ago__ bug fix__
Joseph Gilbert [Tue, 19 Jul 2005 18:47:25 +0000 (18:47 +0000)]
__ bug fix__
- internal methods for mathutils class need to incref before returning a pointer to self
  * memory allocation errors (freeing bad pointers) were appearing after repeatedly calling internal methods on the same object due to ref counts.

16 years agoCouple of fixes combined;
Ton Roosendaal [Tue, 19 Jul 2005 16:12:56 +0000 (16:12 +0000)]
Couple of fixes combined;

- With Actions on a Pose, ESC in transform restored wrong.
  This is solved similar to ipos now, storing a 'last time evaluated'.
  Could be extended to ghosting... soon.
- Moving the little yellow 'key blocks' in Action window didn't update
  3d window. ALso the 'lock' option didn't work, and flashed header.
- Pose Transform: noticed there were still errors in cases, especially
  with actions. Painfully tried to build the desired matrix now.
- Removed obsolete Bone pointer from TransData

16 years agoFirst step towards restoring / improving subdivide 'beauty'.
Johnny Matthews [Tue, 19 Jul 2005 15:37:18 +0000 (15:37 +0000)]
First step towards restoring / improving subdivide 'beauty'.

Beauty button now is Beauty and Short.

Works as follows

Beauty on: If a face is selected, only subdivide the longest 2 sides
Beauty & Short on: If a face is selected, only subdivide the shortest 2 sides

1 problem atm is when more than 2 sides are equal. Must add code to check for this and disable beauty on that face. Use with caution! :)

Also restoring selection needs to be tweaked here.

Side Note: for most accurate subdividing, use edge mode and select only the edges you wish to cut rather than relying on beauty.

16 years ago-Patch submitted by Campbell Barton
Joseph Gilbert [Tue, 19 Jul 2005 14:17:07 +0000 (14:17 +0000)]
-Patch submitted by Campbell Barton
-Fixed matrix.invert() to return the correct inverse matrix

16 years agoGrms... removed too happily a part of depgraph yesterday. That fix was OK,
Ton Roosendaal [Tue, 19 Jul 2005 11:47:22 +0000 (11:47 +0000)]
Grms... removed too happily a part of depgraph yesterday. That fix was OK,
but doesn't make the removed code obsolete :)
Error was that transform on deformed objects didn't set recalc flags

16 years agoRemoved last remainder of old transform. The function is still called
Ton Roosendaal [Tue, 19 Jul 2005 11:21:01 +0000 (11:21 +0000)]
Removed last remainder of old transform. The function is still called
special_aftertrans_update() though...

16 years agoBugfix #2818
Ton Roosendaal [Tue, 19 Jul 2005 10:50:13 +0000 (10:50 +0000)]
Bugfix #2818

On importing a file (dxf for example), the active filename got set to the
imported filename, causing save-over to use that too. Tracked it down to
be a very old feature... better to remove this, doesn't work according

16 years ago1) Removed old annoyance in adding armature or bones.
Ton Roosendaal [Tue, 19 Jul 2005 10:06:57 +0000 (10:06 +0000)]
1) Removed old annoyance in adding armature or bones.

- Add Armature or Bone (SHIFT+A) now adds by default a single Bone, view
  aligned and of unit-size 1.
- Then use E-key (extrude) to draw chains, this option now doesn't popup
  the "OK" requester anymore, so works fast
- Another new method is using CTRL+click to add Bones

This makes it working identical to the other edit modes in Blender. The old
modal loop for drawing bones just wasn't working well either.

Related to this; have a real set of useful Armature primitives?

2) Removed event REMAKEALLIPO, which was added in NaN days for testing, and
proved to be extremely slow. Code is moved now to editnla.c.
Thanks Tom Hendrick to pointing to this nasty buggy feature!

16 years agoBug fix; pose mode transform didn't count # of selected bones correctly,
Ton Roosendaal [Tue, 19 Jul 2005 08:02:27 +0000 (08:02 +0000)]
Bug fix; pose mode transform didn't count # of selected bones correctly,
skipping selected bones with parent but without "IK to Parent"

16 years agoAdded DAG flush to NMesh when updating geometry (was needed after zr's latest commits).
Martin Poirier [Tue, 19 Jul 2005 05:35:35 +0000 (05:35 +0000)]
Added DAG flush to NMesh when updating geometry (was needed after zr's latest commits).
I added that in mesh_update, if anyone has a better idea, feel free to fix it.

16 years ago - some missing changes for switch of mesh_modifier to
Daniel Dunbar [Tue, 19 Jul 2005 04:27:43 +0000 (04:27 +0000)]
 - some missing changes for switch of mesh_modifier to
   deform new verts array.

I don't really know how to use softbody, so it would be nice
if someone would test this for me.

16 years agoinitialize simd quad in default constructor
Erwin Coumans [Tue, 19 Jul 2005 04:11:47 +0000 (04:11 +0000)]
initialize simd quad in default constructor
this should not be necessary, its for testing

16 years ago - split mesh_deform off from object_deform
Daniel Dunbar [Tue, 19 Jul 2005 02:36:21 +0000 (02:36 +0000)]
 - split mesh_deform off from object_deform
 - changed mesh_modifier, sbObjectStep, object_deform to take vertexCo
   argument instead of operating on mesh
 - fixed bug where a derived mesh would not be returned in editmode
 - removed object_wave, replaced by init_wave_deform and calc_wave_deform
 - moved cached DerivedMesh to Object, not Mesh... fixes heisenbugs
   with linked objects

16 years agoFix for bug #2848 This flushes selection upward in subdivide based on select mode...
Johnny Matthews [Tue, 19 Jul 2005 02:23:52 +0000 (02:23 +0000)]
Fix for bug #2848 This flushes selection upward in subdivide based on select mode. So faces with all edges selected should now be selected as well.

16 years ago - silly bug, didn't test for hash before freeing
Daniel Dunbar [Tue, 19 Jul 2005 01:12:14 +0000 (01:12 +0000)]
 - silly bug, didn't test for hash before freeing

16 years ago - change mesh_get_derived_render to mesh_create_derived_render (always
Daniel Dunbar [Tue, 19 Jul 2005 00:21:01 +0000 (00:21 +0000)]
 - change mesh_get_derived_render to mesh_create_derived_render (always
   builds new DerivedMesh... caching can come later)
 - split DerivedMesh returning functions into editmesh and mesh groups
 - got rid of DL_NORS displist type (get built on fly for mesh when
 - got rid of Mesh.disp (yay!)
 - started to punch DerivedMesh returning functions into shape to introduce
   modifier stack

16 years agoBugfix: clear rotation on Pose bone didn't flush changes to DAG
Ton Roosendaal [Mon, 18 Jul 2005 22:18:03 +0000 (22:18 +0000)]
Bugfix: clear rotation on Pose bone didn't flush changes to DAG

Fix for previous commit today; found other test file with action
constraint that behaved different... found out the old action constraint
used the deform matrix (from restpos to pose) to define the key.

ALso removed unused function from outliner.c

16 years ago - ditch mesh_uses_displist
Daniel Dunbar [Mon, 18 Jul 2005 20:49:19 +0000 (20:49 +0000)]
 - ditch mesh_uses_displist

16 years ago - change convert subsurf to mesh to use mesh_create_derived_no_deform
Daniel Dunbar [Mon, 18 Jul 2005 20:48:16 +0000 (20:48 +0000)]
 - change convert subsurf to mesh to use mesh_create_derived_no_deform
   (converts any modifier now)