- 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.
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)
This commit is contained in:
@@ -705,26 +705,12 @@ static PyObject *Lattice_applyDeform( BPy_Lattice * self, PyObject *args )
|
||||
* method is needed. Or for users who actually want to apply the
|
||||
* deformation n times. */
|
||||
if((self->Lattice == par->data)) {
|
||||
if ((base->object->type != OB_MESH) || forced) {
|
||||
|
||||
if (base->object->type==OB_MESH) {
|
||||
Mesh *me = base->object->data;
|
||||
float (*vcos)[3] = malloc(sizeof(*vcos)*me->totvert);
|
||||
int a;
|
||||
|
||||
for (a=0; a<me->totvert; a++) {
|
||||
VECCOPY(vcos[a], me->mvert[a].co);
|
||||
}
|
||||
mesh_deform( base->object, vcos );
|
||||
for (a=0; a<me->totvert; a++) {
|
||||
VECCOPY(me->mvert[a].co, vcos[a]);
|
||||
}
|
||||
|
||||
free(vcos);
|
||||
} else {
|
||||
object_deform( base->object );
|
||||
}
|
||||
}
|
||||
/* I do not know what to do with this function
|
||||
* at the moment given the changing modifier system.
|
||||
* Calling into the modifier system in the first place
|
||||
* isn't great... -zr
|
||||
*/
|
||||
object_apply_deform(base->object);
|
||||
}
|
||||
}
|
||||
base = base->next;
|
||||
|
||||
Reference in New Issue
Block a user