NLA SoC: Merge from 2.5
[blender-staging.git] / source / blender / makesdna / DNA_constraint_types.h
index 2bcf2412588b5846f76888bd3df76d22bdefe015..79f032d0d21040334c471bfb1198d514d138bc88 100644 (file)
@@ -1,15 +1,12 @@
 /**
  * $Id$
  *
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License.  See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
  *
  * Contributor(s): 2007, Joshua Leung, major recode
  *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
  * Constraint DNA data
  */
 
@@ -320,6 +317,15 @@ typedef struct bDistLimitConstraint {
        int             pad;
 } bDistLimitConstraint;
 
+typedef struct bShrinkwrapConstraint {
+       Object          *target;
+       float           dist;                   /* distance to kept from target */
+       short           shrinkType;             /* shrink type (look on MOD shrinkwrap for values) */
+       char            projAxis;               /* axis to project over UP_X, UP_Y, UP_Z */
+       char            pad[9];
+} bShrinkwrapConstraint;
+
+
 /* ------------------------------------------ */
 
 /* bConstraint->type 
@@ -347,10 +353,11 @@ typedef enum B_CONSTAINT_TYPES {
        CONSTRAINT_TYPE_RIGIDBODYJOINT,         /* rigidbody constraint */
        CONSTRAINT_TYPE_CLAMPTO,                        /* clampto constraint */        
        CONSTRAINT_TYPE_TRANSFORM,                      /* transformation (loc/rot/size -> loc/rot/size) constraint */  
+       CONSTRAINT_TYPE_SHRINKWRAP,                     /* shrinkwrap (loc/rot) constraint */
        
        
        /* NOTE: everytime a new constraint is added, update this */
-       NUM_CONSTRAINT_TYPES= CONSTRAINT_TYPE_TRANSFORM
+       NUM_CONSTRAINT_TYPES= CONSTRAINT_TYPE_SHRINKWRAP
 } B_CONSTRAINT_TYPES; 
 
 /* bConstraint->flag */
@@ -378,11 +385,13 @@ typedef enum B_CONSTRAINT_SPACETYPES {
                /* for objects (relative to parent/without parent influence), 
                 * for bones (along normals of bone, without parent/restpositions) 
                 */
-       CONSTRAINT_SPACE_LOCAL,
+       CONSTRAINT_SPACE_LOCAL, /* = 1 */
                /* for posechannels - pose space  */
-       CONSTRAINT_SPACE_POSE,
-               /* for posechannels - local with parent  */
-       CONSTRAINT_SPACE_PARLOCAL,
+       CONSTRAINT_SPACE_POSE, /* = 2 */
+               /* for posechannels - local with parent  */
+       CONSTRAINT_SPACE_PARLOCAL, /* = 3 */
+               /* for files from between 2.43-2.46 (should have been parlocal) */
+       CONSTRAINT_SPACE_INVALID, /* = 4. do not exchange for anything! */
 } B_CONSTRAINT_SPACETYPES;
 
 /* bConstraintChannel.flag */
@@ -464,7 +473,9 @@ typedef enum B_CONSTRAINTCHANNEL_FLAG {
 /* bKinematicConstraint->flag */
 #define CONSTRAINT_IK_TIP              1
 #define CONSTRAINT_IK_ROT              2
+       /* targetless */
 #define CONSTRAINT_IK_AUTO             4
+       /* autoik */
 #define CONSTRAINT_IK_TEMP             8
 #define CONSTRAINT_IK_STRETCH  16
 #define CONSTRAINT_IK_POS              32
@@ -519,6 +530,7 @@ typedef enum B_CONSTRAINTCHANNEL_FLAG {
 
 /* Rigid-Body Constraint */
 #define CONSTRAINT_DRAW_PIVOT 0x40
+#define CONSTRAINT_DISABLE_LINKED_COLLISION 0x80
 
 /* important: these defines need to match up with PHY_DynamicTypes headerfile */
 #define CONSTRAINT_RB_BALL             1