diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2007-11-05 01:00:24 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2007-11-05 01:00:24 +0300 |
commit | 1b9d661ecaed5c51bc702e209b0a1dae7365754f (patch) | |
tree | 3108583d45ddf9b6bb293e37966344e2881cd3b4 /source/blender/makesdna | |
parent | 044ae7f82fcb8a5af774cd2a4bea392f54abf8c2 (diff) |
Mesh Deform Modifier
====================
The MeshDeform modifier can deform a mesh with another 'cage' mesh.
It is similar to a lattice modifier, but instead of being restricted
to the regular grid layout of a lattice, the cage mesh can be modeled
to fit the mesh better.
http://www.blender.org/development/current-projects/changes-since-244/modifiers/
Implementation Notes:
- OpenNL has been refactored a bit to allow least squares matrices to
be built without passing the matrix row by row, but instead with
random access. MDef doesn't need this actually, but it's using this
version of OpenNL so I'm just committing it now.
- Mean value weights for polygons have been added to arithb.c, a type
of barycentric coordinates for polygons with >= 3 vertices. This
might be useful for other parts of blender too.
Diffstat (limited to 'source/blender/makesdna')
-rw-r--r-- | source/blender/makesdna/DNA_modifier_types.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h index 71e850e4368..c8dcba4fae7 100644 --- a/source/blender/makesdna/DNA_modifier_types.h +++ b/source/blender/makesdna/DNA_modifier_types.h @@ -28,6 +28,7 @@ typedef enum ModifierType { eModifierType_UVProject, eModifierType_Smooth, eModifierType_Cast, + eModifierType_MeshDeform, NUM_MODIFIER_TYPES } ModifierType; @@ -347,4 +348,17 @@ typedef struct BooleanModifierData { int operation, pad; } BooleanModifierData; +typedef struct MeshDeformModifierData { + ModifierData modifier; + + struct Object *object; /* mesh object */ + char defgrp_name[32]; /* optional vertexgroup name */ + + float *bindweights, *bindcos; /* computed binding weights */ + short gridsize, needbind; + int pad; + + int totvert, totcagevert; +} MeshDeformModifierData; + #endif |