blender/source
Ton Roosendaal c648e790be New: CrazySpace [tm] correction
When Modifiers are used in Edit Mode to show the deformed result for
editing, all actual coordinates Blender works with are still the ones from
the original Cage. You can notice that with the Transform Widget or
helper lines while transforming.

Even worse, the actual transformations still happened on the original Cage
as well, making it very hard to edit. That caused the feature to be named
"CrazySpace" (baptized by Andy, afaik?).

This commit calculates the deformation transformation per vertex, and
inverse corrects it, so it's more intuitive editing this way.

Unfortunately all the deformation features of Blender don't use matrices
for defining deform, so the existing code cannot be re-used to retrieve
the correct deformation matrix per vertex. The solution I found is based
on calculating per face the transformation based on its first 3 vertices,
and store this transformation averaged in the face's vertices.
The solution can also only work on entire faces, because the full deform
can only be retrieved using 3 vertices. (using 2 vertices will miss edge-
aligned rotation, using 1 vertex can only retrieve translation).

By deriving the deformations per face, small errors will still happen,
especially on very low-poly Meshes with extreme deformations.

The only alternative I know now, is providing each vertex in
a mesh with 2 extreme small tangent vectors, which get deformed using the
existing code as well. That will mess up the existing deformation code too
much though, this solution has the benefit it works with each deform we can
up with later too.

Last note about CrazySpace: it can only be used to tweak Meshes. Do not
even try to add vertices, extrude, or duplicate. Probably we should disable
this... but preventing user errors isn't always power-user-friendly, eh. :)
2005-10-26 09:56:52 +00:00
..
blender New: CrazySpace [tm] correction 2005-10-26 09:56:52 +00:00
creator The famous potential SDL audio fix (setenv("SDL_AUDIODRIVER", "dma", 1))... 2005-08-03 21:02:25 +00:00
darwin Updating build systems: folder release/bpydata/ moved to release/scripts/bpydata/ 2005-04-16 18:25:42 +00:00
gameengine updated SConstruct and Makefile so that if you compile the gameengine, is always enables bullet, independent of sumo/ode. 2005-10-23 17:55:19 +00:00
icons - Revert to NaN makefiles 2004-01-05 00:06:11 +00:00
kernel Added #!/usr/bin/python standard script identifier to the start of SConscript files. 2004-05-16 13:07:20 +00:00
Makefile updated SConstruct and Makefile so that if you compile the gameengine, is always enables bullet, independent of sumo/ode. 2005-10-23 17:55:19 +00:00
nan_compile.mk Support for 'Bullet' in the Makefiles. Enable with: 2005-08-18 06:07:02 +00:00
nan_definitions.mk initial commit of the fluid simulator. 2005-09-18 13:27:12 +00:00
nan_link.mk compatibility fix for Os X tiger with make. 2005-09-18 11:19:53 +00:00
nan_subdirs.mk Clean up for Makefiles: some of the directories were being printed 2005-04-09 22:40:34 +00:00
nan_warn.mk big warning hunt commit 2005-03-09 19:45:59 +00:00
SConscript Added #!/usr/bin/python standard script identifier to the start of SConscript files. 2004-05-16 13:07:20 +00:00