Manual merge of soc-2009-kazanbas branch:
[blender.git] / source / blender / makesdna / DNA_object_types.h
index bbc19d6..f0fd3e6 100644 (file)
@@ -54,7 +54,10 @@ struct FluidsimSettings;
 struct ParticleSystem;
 struct DerivedMesh;
 struct SculptSession;
+struct bGPdata;
 
+
+/* Vertex Groups - Name Info */
 typedef struct bDeformGroup {
        struct bDeformGroup *next, *prev;
        char name[32];
@@ -110,14 +113,16 @@ typedef struct Object {
        struct bPose *pose;     
        void *data;
        
+       struct bGPdata *gpd;    /* Grease Pencil data */
+       
        ListBase constraintChannels; // XXX depreceated... old animation system
        ListBase effect;
        ListBase disp;
        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;
+       int mode;           /* Local object mode */
+       int restore_mode;   /* Keep track of what mode to return to after toggling a mode */
 
        /* materials */
        struct Material **mat;  /* material slots */
@@ -209,7 +214,7 @@ typedef struct Object {
        short recalc;                   /* dependency flag */
        float anisotropicFriction[3];
 
-       ListBase constraints;
+       ListBase constraints;           /* object constraints */
        ListBase nlastrips;                     // XXX depreceated... old animation system
        ListBase hooks;
        ListBase particlesystem;        /* particle systems */
@@ -234,10 +239,11 @@ typedef struct Object {
        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 restore_mode;               /* Keep track of what mode to return to after edit mode exits */
+       int pad2;
 
        ListBase gpulamp;               /* runtime, for lamps only */
-       ListBase *duplilist;    /* only for internal use by RNA API functions. To get dupli list, use object_duplilist instead */
+       ListBase pc_ids;
+       ListBase *duplilist;    /* for temporary dupli list storage, only for use by RNA API */
 } Object;
 
 /* Warning, this is not used anymore because hooks are now modifiers */
@@ -518,18 +524,20 @@ extern Object workob;
 #define OB_LOCK_SCALEY 128
 #define OB_LOCK_SCALEZ 256
 #define OB_LOCK_SCALE  448
+#define OB_LOCK_ROTW   512
+#define OB_LOCK_ROT4D  1024
 
 /* 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 */
+typedef enum ObjectMode {
+       OB_MODE_OBJECT = 0,
+       OB_MODE_EDIT = 1,
+       OB_MODE_SCULPT = 2,
+       OB_MODE_VERTEX_PAINT = 4,
+       OB_MODE_WEIGHT_PAINT = 8,
+       OB_MODE_TEXTURE_PAINT = 16,
+       OB_MODE_PARTICLE_EDIT = 32,
+       OB_MODE_POSE = 64
+} ObjectMode;
 
 #ifdef __cplusplus
 }