Merge from trunk
[blender.git] / source / blender / makesdna / DNA_modifier_types.h
index fc015775f49ae41a88b1bae15850aa8c665e38df..7590cd0c3b9b6c6bd9dd77f1ff088bc465b1b413 100644 (file)
@@ -35,6 +35,7 @@ typedef enum ModifierType {
        eModifierType_Cloth,
        eModifierType_Collision,
        eModifierType_Bevel,
+       eModifierType_Shrinkwrap,
        NUM_MODIFIER_TYPES
 } ModifierType;
 
@@ -488,4 +489,27 @@ typedef struct ExplodeModifierData {
        float protect;
 } ExplodeModifierData;
 
+typedef struct ShrinkwrapModifierData {
+       ModifierData modifier;
+
+       struct Object *target;  /* shrink target */
+       char vgroup_name[32];   /* optional vertexgroup name */
+       float keptDist;                 /* distance offset from mesh/projection point */
+       short shrinkType;               /* shrink type projection */
+       short shrinkOpts;               /* shrink options */
+} ShrinkwrapModifierData;
+
+/* Shrinkwrap->shrinkType */
+#define MOD_SHRINKWRAP_NEAREST_SURFACE 0
+#define MOD_SHRINKWRAP_NORMAL                  1
+#define MOD_SHRINKWRAP_NEAREST_VERTEX  2
+
+/* Shrinkwrap->shrinkOpts */
+#define MOD_SHRINKWRAP_ALLOW_DEFAULT_NORMAL            (1<<0)
+#define MOD_SHRINKWRAP_ALLOW_INVERTED_NORMAL   (1<<1)
+#define MOD_SHRINKWRAP_REMOVE_UNPROJECTED_FACES        (1<<2)
+
+#define MOD_SHRINKWRAP_CULL_TARGET_FRONTFACE   (1<<3)
+#define MOD_SHRINKWRAP_CULL_TARGET_BACKFACE            (1<<4)
+
 #endif