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 ;)
- 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.
- 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
work
- 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).
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.
- 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
completely.
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
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
- 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?)