diff options
author | Ton Roosendaal <ton@blender.org> | 2004-09-14 23:03:11 +0400 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2004-09-14 23:03:11 +0400 |
commit | 37f57288cbcdb54770a8b01d74a323d62251fe9e (patch) | |
tree | 6f0316050cbc80fb66408d3dfb43705c273fd2ef /source/blender/blenloader/intern/writefile.c | |
parent | 807339b4a7a0be25fbdc3de32e2c264f3f0b1e5a (diff) |
Lot of code... 2 new features:
1) Curve deform
http://www.blender3d.org/cms/Curve_Deform.392.0.html
Works simple as expected, but keep track of the rotation axis
in F7 buttons (Track X Y Z)
Only Mesh deform supported now.
Code changes:
- centralized deformation calls in curve_modifiers() mesh_modifiers()
etcetera. Here also other effects can be added like wave. Now the
evaluation order is fixed, but should become optional. It also doesnt
use the Displist anymore as deform-input. That latter part is unfinished
yet.
This code also is used for Hooks and will be needed for softbody
- made convention stricter that displists are being checked on in
drawobject(), this to prevent routines to make new displists recursively
(like armature does). Now a freedisplist() is sufficient to signal that
a new displaylist should be made.
2) Object Hooks
http://www.blender3d.org/cms/Object_Hooks.391.0.html
Support for Hooks is added to Mesh, Lattice, Curve and Surface objects.
For Armatures this would require some more work & research.
Main goal for this feature is to provide quick & simple access to the
underlying geometry in Objects on Object level, supporting hierarchies and
Ipos etc.
Diffstat (limited to 'source/blender/blenloader/intern/writefile.c')
-rw-r--r-- | source/blender/blenloader/intern/writefile.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c index 94e2e804073..0bb8d378978 100644 --- a/source/blender/blenloader/intern/writefile.c +++ b/source/blender/blenloader/intern/writefile.c @@ -655,7 +655,8 @@ static void write_constraint_channels(WriteData *wd, ListBase *chanbase) static void write_objects(WriteData *wd, ListBase *idbase) { Object *ob; - + ObHook *hook; + ob= idbase->first; while(ob) { if(ob->id.us>0) { @@ -677,6 +678,11 @@ static void write_objects(WriteData *wd, ListBase *idbase) write_nlastrips(wd, &ob->nlastrips); writestruct(wd, DATA, "PartDeflect", 1, ob->pd); + + for(hook= ob->hooks.first; hook; hook= hook->next) { + writestruct(wd, DATA, "ObHook", 1, hook); + writedata(wd, DATA, sizeof(int)*hook->totindex, hook->indexar); + } } ob= ob->id.next; } |