- 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.
Todo:
- 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)
- 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.
- 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
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.
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
specs!
- 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!
- 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
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
needed)
- got rid of Mesh.disp (yay!)
- started to punch DerivedMesh returning functions into shape to introduce
modifier stack
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
- added mesh_create_derived_no_deform[_render]
- mesh_create_orco now always goes through a DerivedMesh, some
redundant copying atm but can be fixed (and orco generation is
not a big bottleneck)
New feature: TexMesh (texcomesh) works with subsurf now (are
you listening rob?)
- switch renderer to store orco's in a hash table instead of
caching in mesh (I don't like the renderer caching data
in the actual mesh structure)
- added mesh_create_orco[_render] function
- fix DerivedMesh.getMinMax implementations to set min & max when
there are no vertices
- mesh boundbox calc was wrong in some cases, messed up HOMEKEY
and localview zooming
it used the 'global' (Pose Space) rotation to define the action timing.
That was of course hardly useful, reason for many weird patched rigs.
Nevertheless, sometimes it can be useful, and it's nice to see old files
nicely work still. So: "Local" is an option now.
Note: if you changed last week files because of the new action constraint,
set the new "Local" option in the object-buttons Constraint panel.
- Mostly this cleans up the #includes and header files in the python project.
- Warning fixes are mostly casting issues and misc fixes. General warning clean up.
- #include Python.h MUST come as the first include to avoid the POSIX redefine warning in the unix makefiles
- fno-strict-aliasing flag added to makefile to fix a unavoidable type punning warning in types.c
- convert MeshDerivedMesh to calculate new vertex normals and such
on initialize, means copy free conversion to DispListMesh
- replace vertex access through function by direct access fo
MeshDerivedMesh
- shadeDispList was not getting correct orco's
- On exit editmode and after deleting bones, a pointer in PoseChannels
was not set NULL correctly, causing potential crashes.
- Action Window: select on 'ipo key' (little icon) didn't select/deselect
the associated bone (old bug!)
- After unlinking an Action, the blue color in bones was not cleared
Also:
- Improved selection in editmode, doing it in 2 stages. Makes it a lot more
accurate.
mesh_get_derived_final... a bit slower atm because of extraneous
copying (will be fixed shortly) but normals are correct for deformed
meshes now (don't think they ever have been)