mesh-cache deform modifier,
[blender.git] / source / blender / makesdna / DNA_modifier_types.h
index feeaff0d4fb959a6a637c392866f575d18c437a6..2f9da059fc0bfc768b8260db30b8848639d1227a 100644 (file)
@@ -77,7 +77,8 @@ typedef enum ModifierType {
        eModifierType_Skin              = 42,
        eModifierType_LaplacianSmooth   = 43,
        eModifierType_Triangulate       = 44,
-       eModifierType_UVWarp          = 45,
+       eModifierType_UVWarp            = 45,
+       eModifierType_MeshCache         = 46,
        NUM_MODIFIER_TYPES
 } ModifierType;
 
@@ -1158,4 +1159,57 @@ typedef struct UVWarpModifierData {
        char uvlayer_name[64];  /* MAX_CUSTOMDATA_LAYER_NAME */
 } UVWarpModifierData;
 
+/* cache modifier */
+typedef struct MeshCacheModifierData {
+       ModifierData modifier;
+       char flag;
+       char type;  /* file format */
+       char time_mode;
+       char play_mode;
+
+       /* axis conversion */
+       char forward_axis;
+       char up_axis;
+       char flip_axis;
+
+       char interp;
+
+       char pad[4];
+
+       /* play_mode == MOD_MESHCACHE_PLAY_CFEA */
+       float frame_start;
+       float frame_scale;
+
+       /* play_mode == MOD_MESHCACHE_PLAY_EVAL */
+       /* we could use one float for all these but their purpose is very different */
+       float eval_frame;
+       float eval_time;
+       float eval_factor;
+
+       char filepath[1024];    // FILE_MAX
+} MeshCacheModifierData;
+
+enum {
+       MOD_MESHCACHE_TYPE_MDD  = 1,
+       MOD_MESHCACHE_TYPE_PC2  = 2
+};
+
+enum {
+       MOD_MESHCACHE_INTERP_NONE  = 0,
+       MOD_MESHCACHE_INTERP_LINEAR = 1,
+       // MOD_MESHCACHE_INTERP_CARDINAL  = 2
+};
+
+enum {
+       MOD_MESHCACHE_TIME_FRAME = 0,
+       MOD_MESHCACHE_TIME_SECONDS = 1,
+       MOD_MESHCACHE_TIME_FACTOR = 2,
+};
+
+enum {
+       MOD_MESHCACHE_PLAY_CFEA = 0,
+       MOD_MESHCACHE_PLAY_EVAL = 1,
+};
+
+
 #endif  /* __DNA_MODIFIER_TYPES_H__ */