2.50: svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r19323...
[blender.git] / source / blender / makesdna / DNA_object_types.h
index b17896a..60ca659 100644 (file)
@@ -43,6 +43,7 @@ extern "C" {
 
 struct bPose;  
 struct Object;
+struct AnimData;
 struct Ipo;
 struct BoundBox;
 struct Path;
@@ -90,7 +91,8 @@ typedef struct BoundBox {
 
 typedef struct Object {
        ID id;
-
+       struct AnimData *adt;           /* animation data (must be immediately after id for utilities to use it) */ 
+       
        short type, partype;
        int par1, par2, par3;   /* can be vertexnrs */
        char parsubstr[32];     /* String describing subobject info */
@@ -98,15 +100,15 @@ typedef struct Object {
        /* if ob->proxy (or proxy_group), this object is proxy for object ob->proxy */
        /* proxy_from is set in target back to the proxy. */
        struct Object *proxy, *proxy_group, *proxy_from;
-       struct Ipo *ipo;
+       struct Ipo *ipo;                // XXX depreceated... old animation system
        struct Path *path;
        struct BoundBox *bb;
-       struct bAction *action; 
+       struct bAction *action;  // XXX depreceated... old animation system
        struct bAction *poselib;
        struct bPose *pose;     
        void *data;
        
-       ListBase constraintChannels;
+       ListBase constraintChannels; // XXX depreceated... old animation system
        ListBase effect;
        ListBase disp;
        ListBase defbase;
@@ -129,15 +131,15 @@ typedef struct Object {
        short flag;                     /* copy of Base */
        short colbits;          /* when zero, from obdata */
        
-       short transflag, ipoflag;       /* transformation and ipo settings */
+       short transflag, protectflag;   /* transformation settings and transform locks  */
        short trackflag, upflag;
-       short nlaflag, protectflag;     /* nlaflag defines NLA override, protectflag is bits to lock transform */
+       short nlaflag, ipoflag;         // xxx depreceated... old animation system
        short ipowin, scaflag;          /* ipowin: blocktype last ipowindow */
        short scavisflag, boundtype;
        
        int dupon, dupoff, dupsta, dupend;
 
-       float sf, ctime; /* sf is time-offset, ctime is the objects current time */
+       float sf, ctime; /* sf is time-offset, ctime is the objects current time (XXX timing needs to be revised) */
        
        /* during realtime */
 
@@ -157,7 +159,9 @@ typedef struct Object {
        float formfactor;
        float rdamping, sizefac;
        float margin;
-       int   pad3;
+       float max_vel; /* clamp the maximum velocity 0.0 is disabled */
+       float min_vel; /* clamp the maximum velocity 0.0 is disabled */
+       float pad3; /* clamp the maximum velocity 0.0 is disabled */
 
        char dt, dtx;
        char totcol;    /* copy of mesh or curve or meta */
@@ -200,7 +204,7 @@ typedef struct Object {
        float anisotropicFriction[3];
 
        ListBase constraints;
-       ListBase nlastrips;
+       ListBase nlastrips;                     // XXX depreceated... old animation system
        ListBase hooks;
        ListBase particlesystem;        /* particle systems */
        
@@ -225,10 +229,6 @@ typedef struct Object {
        unsigned int init_state;        /* bit masks of initial state as recorded by the users */
        int pad2;
 
-/*#ifdef WITH_VERSE*/
-       void *vnode;                    /* pointer at object VerseNode */
-/*#endif*/
-
        ListBase gpulamp;               /* runtime, for lamps only */
 } Object;
 
@@ -306,6 +306,7 @@ extern Object workob;
 #define OB_RENDER_DUPLI                4096
 
 /* (short) ipoflag */
+       // XXX depreceated - old animation system crap
 #define OB_DRAWKEY                     1
 #define OB_DRAWKEYSEL          2
 #define OB_OFFS_OB                     4
@@ -340,18 +341,6 @@ extern Object workob;
 #define OB_SHADED              4
 #define OB_TEXTURE             5
 
-/* this condition has been made more complex since editmode can draw textures */
-#define CHECK_OB_DRAWTEXTURE(vd, dt) \
-       ((vd->drawtype==OB_TEXTURE && dt>OB_SOLID) || \
-       (vd->drawtype==OB_SOLID && vd->flag2 & V3D_SOLID_TEX))
-
-#define CHECK_OB_DRAWFACEDOT(sce, vd, dt) \
-       (       (sce->selectmode & SCE_SELECT_FACE) && \
-               (vd->drawtype<=OB_SOLID) && \
-               (((vd->drawtype==OB_SOLID) && (dt>=OB_SOLID) && (vd->flag2 & V3D_SOLID_TEX) && (vd->flag & V3D_ZBUF_SELECT)) == 0) \
-       )
-
-
 /* dtx: flags, char! */
 #define OB_AXIS                        2
 #define OB_TEXSPACE            4
@@ -437,6 +426,7 @@ extern Object workob;
 
 #define OB_COLLISION   65536
 #define OB_SOFT_BODY   0x20000
+#define OB_OCCLUDER            0x40000
 
 /* ob->gameflag2 */
 #define OB_NEVER_DO_ACTIVITY_CULLING   1
@@ -455,6 +445,7 @@ extern Object workob;
 #define OB_BODY_TYPE_DYNAMIC           2
 #define OB_BODY_TYPE_RIGID                     3
 #define OB_BODY_TYPE_SOFT                      4
+#define OB_BODY_TYPE_OCCLUDER          5
 
 /* ob->scavisflag */
 #define OB_VIS_SENS            1
@@ -482,8 +473,18 @@ extern Object workob;
 #define OB_SHAPE_TEMPLOCK      2
 
 /* ob->nlaflag */
-#define OB_NLA_OVERRIDE                1
-#define OB_NLA_COLLAPSED       2
+       // XXX depreceated - old animation system
+#define OB_NLA_OVERRIDE                (1<<0)
+#define OB_NLA_COLLAPSED       (1<<1)
+
+       /* object-channel expanded status */
+#define OB_ADS_COLLAPSED       (1<<10)
+       /* object's ipo-block */
+#define OB_ADS_SHOWIPO         (1<<11)
+       /* object's constraint channels */
+#define OB_ADS_SHOWCONS                (1<<12)
+       /* object's material channels */
+#define OB_ADS_SHOWMATS                (1<<13)
 
 /* ob->protectflag */
 #define OB_LOCK_LOCX   1