2.5/Posemode:
[blender-staging.git] / source / blender / makesdna / DNA_object_types.h
index 2b0ede846af77457ff62b2e8289c852a0fededd8..5c821b532fbca04b402e91b25543c56b02b0f7c4 100644 (file)
@@ -35,7 +35,6 @@
 
 #include "DNA_listBase.h"
 #include "DNA_ID.h"
-#include "DNA_scriptlink_types.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -54,6 +53,7 @@ struct SoftBody;
 struct FluidsimSettings;
 struct ParticleSystem;
 struct DerivedMesh;
+struct SculptSession;
 
 typedef struct bDeformGroup {
        struct bDeformGroup *next, *prev;
@@ -92,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 */
@@ -114,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 */
@@ -172,7 +177,6 @@ typedef struct Object {
        float empty_drawsize;
        float dupfacesca;       /* dupliface scale */
        
-       ScriptLink scriptlink;
        ListBase prop;
        ListBase sensors;
        ListBase controllers;
@@ -229,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;
@@ -397,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
@@ -489,6 +493,8 @@ extern Object workob;
 #define OB_ADS_SHOWCONS                (1<<12)
        /* object's material channels */
 #define OB_ADS_SHOWMATS                (1<<13)
+       /* object's marticle channels */
+#define OB_ADS_SHOWPARTS       (1<<14)
 
 /* ob->protectflag */
 #define OB_LOCK_LOCX   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