svn merge -r 12607:12653 https://svn.blender.org/svnroot/bf-blender/trunk/blender...
[blender.git] / source / blender / makesdna / DNA_modifier_types.h
index 0802fbf0e4063652e6c55981cd7e2227b023fe76..903f1a540b3a07b1e7f255550c1f4437e954f6b8 100644 (file)
@@ -29,6 +29,9 @@ typedef enum ModifierType {
        eModifierType_Smooth,
        eModifierType_Cast,
        eModifierType_MeshDeform,
+       eModifierType_PointCache,
+       eModifierType_Cloth,
+        eModifierType_Collision,       
        NUM_MODIFIER_TYPES
 } ModifierType;
 
@@ -338,6 +341,27 @@ typedef struct SoftbodyModifierData {
        ModifierData modifier;
 } SoftbodyModifierData;
 
+typedef struct ClothModifierData {
+   ModifierData                modifier;
+
+   struct Cloth *clothObject; /* The internal data structure for cloth. */
+   struct SimulationSettings *sim_parms; /* definition is in DNA_cloth_types.h */
+   struct CollisionSettings *coll_parms; /* definition is in DNA_cloth_types.h */
+} ClothModifierData;
+
+typedef struct CollisionModifierData {
+       ModifierData            modifier;
+       
+       struct MVert *x; /* position at the beginning of the frame */
+       struct MVert *xnew; /* position at the end of the frame */
+       struct MVert *current_xnew; /* new position at the actual inter-frame step */
+       struct MVert *current_x; /* position at the actual inter-frame step */
+       
+       unsigned int numverts;
+       float time;
+       struct BVH *tree;       /* collision tree for this cloth object */
+} CollisionModifierData;
+
 typedef enum {
        eBooleanModifierOp_Intersect,
        eBooleanModifierOp_Union,
@@ -385,4 +409,14 @@ typedef struct MeshDeformModifierData {
        float bindmat[4][4];                    /* matrix of cage at binding time */
 } MeshDeformModifierData;
 
+typedef struct PointCacheModifierData {
+       ModifierData modifier;
+       short mode, pad1, pad2, pad3;
+} PointCacheModifierData;
+
+typedef enum {
+       ePointCache_Read =      (1<<0),
+                                ePointCache_Write =            (1<<1),
+} PointCacheFlag;
+
 #endif