2.5/Posemode:
[blender-staging.git] / source / blender / makesdna / DNA_object_types.h
index ae9d775a74aee6f31f3eb1d5693221140846fc2e..5c821b532fbca04b402e91b25543c56b02b0f7c4 100644 (file)
@@ -53,6 +53,7 @@ struct SoftBody;
 struct FluidsimSettings;
 struct ParticleSystem;
 struct DerivedMesh;
+struct SculptSession;
 
 typedef struct bDeformGroup {
        struct bDeformGroup *next, *prev;
@@ -91,6 +92,8 @@ typedef struct BoundBox {
 typedef struct Object {
        ID id;
        struct AnimData *adt;           /* animation data (must be immediately after id for utilities to use it) */ 
+
+       struct SculptSession *sculpt;
        
        short type, partype;
        int par1, par2, par3;   /* can be vertexnrs */
@@ -113,6 +116,9 @@ typedef struct Object {
        ListBase defbase;
        ListBase modifiers; /* list of ModifierData structures */
 
+       /* For now just a flag for sculpt mode, eventually we make the other modes local too */
+       int mode, pad2;
+
        /* materials */
        struct Material **mat;  /* material slots */
        char *matbits;                  /* 1 if material linked to object */
@@ -227,7 +233,8 @@ typedef struct Object {
        int lastDataMask;                       /* the custom data layer mask that was last used to calculate derivedDeform and derivedFinal */
        unsigned int state;                     /* bit masks of game controllers that are active */
        unsigned int init_state;        /* bit masks of initial state as recorded by the users */
-       int pad2;
+
+       int restore_mode;               /* Keep track of what mode to return to after edit mode exits */
 
        ListBase gpulamp;               /* runtime, for lamps only */
 } Object;
@@ -395,7 +402,6 @@ extern Object workob;
 #define OB_DONE                                1024
 #define OB_RADIO                       2048
 #define OB_FROMGROUP           4096
-#define OB_POSEMODE                    8192
 
 /* ob->recalc (flag bits!) */
 #define OB_RECALC_OB           1
@@ -504,6 +510,16 @@ extern Object workob;
 #define OB_LOCK_SCALEZ 256
 #define OB_LOCK_SCALE  448
 
+/* ob->mode */
+#define OB_MODE_OBJECT          0
+#define OB_MODE_EDIT            1
+#define OB_MODE_SCULPT          2
+#define OB_MODE_VERTEX_PAINT    4
+#define OB_MODE_WEIGHT_PAINT    8
+#define OB_MODE_TEXTURE_PAINT  16
+#define OB_MODE_PARTICLE_EDIT  32
+#define OB_MODE_POSE           64
+
 /* ob->softflag in DNA_object_force.h */
 
 #ifdef __cplusplus