2.5/Posemode:
[blender-staging.git] / source / blender / makesdna / DNA_object_types.h
index febf2fe59cd46f060747802074cd3eff37bee6dd..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 */
@@ -113,8 +115,15 @@ typedef struct Object {
        ListBase disp;
        ListBase defbase;
        ListBase modifiers; /* list of ModifierData structures */
-       
-       struct Material **mat;
+
+       /* 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 */
+       int totcol;                             /* copy of mesh or curve or meta */
+       int actcol;                             /* currently selected material in the UI */
        
        /* rot en drot have to be together! (transform('r' en 's')) */
        float loc[3], dloc[3], orig[3];
@@ -129,7 +138,7 @@ typedef struct Object {
        unsigned int lay;                               /* copy of Base */
        
        short flag;                     /* copy of Base */
-       short colbits;          /* when zero, from obdata */
+       short colbits;          /* deprecated */
        
        short transflag, protectflag;   /* transformation settings and transform locks  */
        short trackflag, upflag;
@@ -164,13 +173,10 @@ typedef struct Object {
        float m_contactProcessingThreshold;
 
        char dt, dtx;
-       char totcol;    /* copy of mesh or curve or meta */
-       char actcol;    /* currently selected material in the user interface */
-       char empty_drawtype, pad1[3];
+       char empty_drawtype, pad1[5];
        float empty_drawsize;
        float dupfacesca;       /* dupliface scale */
        
-       ScriptLink scriptlink;
        ListBase prop;
        ListBase sensors;
        ListBase controllers;
@@ -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
@@ -487,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
@@ -502,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