soc-2008-mxcurioni: merged changes to revision 23516
[blender.git] / source / blender / makesdna / DNA_armature_types.h
index 21f88c71a6e3fc50774f52758b1735b789ecd898..590e7dadcdcaec9c5676acf787fdd559b2ba911c 100644 (file)
@@ -31,6 +31,8 @@
 #include "DNA_listBase.h"
 #include "DNA_ID.h"
 
+struct AnimData;
+
 /* this system works on different transformation space levels;
 
 1) Bone Space;         with each Bone having own (0,0,0) origin
@@ -69,8 +71,13 @@ typedef struct Bone {
 
 typedef struct bArmature {
        ID                      id;
+       struct AnimData *adt;
        ListBase        bonebase;
        ListBase        chainbase;
+       ListBase        *edbo;                                  /* editbone listbase, we use pointer so we can check state */
+       
+       void            *sketch;                                /* sketch struct for etch-a-ton */
+       
        int                     flag;
        int                     drawtype;                       
        short           deformflag; 
@@ -97,8 +104,9 @@ typedef enum eArmature_Flag {
        ARM_MIRROR_EDIT         = (1<<8),
        ARM_AUTO_IK                     = (1<<9),
        ARM_NO_CUSTOM           = (1<<10),      /* made option negative, for backwards compat */
-       ARM_COL_CUSTOM          = (1<<11),      /* draw custom colours - not yet used... */
-       ARM_GHOST_ONLYSEL       = (1<<12)       /* when ghosting, only show selected bones (this should belong to ghostflag instead) */
+       ARM_COL_CUSTOM          = (1<<11),      /* draw custom colours  */
+       ARM_GHOST_ONLYSEL       = (1<<12),      /* when ghosting, only show selected bones (this should belong to ghostflag instead) */
+       ARM_DS_EXPAND           = (1<<13)
 } eArmature_Flag;
 
 /* armature->drawtype */
@@ -140,7 +148,7 @@ typedef enum eBone_Flag {
        BONE_ROOTSEL                            = (1<<1),
        BONE_TIPSEL                                     = (1<<2),
        BONE_TRANSFORM                          = (1<<3),       /* Used instead of BONE_SELECTED during transform */
-       BONE_CONNECTED                          = (1<<4),
+       BONE_CONNECTED                          = (1<<4),       /* when bone has a parent, connect head of bone to parent's tail*/
        /* 32 used to be quatrot, was always set in files, do not reuse unless you clear it always */   
        BONE_HIDDEN_P                           = (1<<6),       /* hidden Bones when drawing PoseChannels */    
        BONE_DONE                                       = (1<<7),       /* For detecting cyclic dependancies */
@@ -148,11 +156,16 @@ typedef enum eBone_Flag {
        BONE_HINGE                                      = (1<<9),       /* No parent rotation or scale */
        BONE_HIDDEN_A                           = (1<<10),      /* hidden Bones when drawing Armature Editmode */
        BONE_MULT_VG_ENV                        = (1<<11),      /* multiplies vgroup with envelope */
-       BONE_NO_DEFORM                          = (1<<12),
+       BONE_NO_DEFORM                          = (1<<12),      /* bone doesn't deform geometry */
        BONE_UNKEYED                            = (1<<13),      /* set to prevent destruction of its unkeyframed pose (after transform) */              
        BONE_HINGE_CHILD_TRANSFORM      = (1<<14),      /* set to prevent hinge child bones from influencing the transform center */
        BONE_NO_SCALE                           = (1<<15),      /* No parent scale */
-       BONE_HIDDEN_PG                          = (1<<16)       /* hidden bone when drawing PoseChannels (for ghost drawing) */
+       BONE_HIDDEN_PG                          = (1<<16),      /* hidden bone when drawing PoseChannels (for ghost drawing) */
+       BONE_DRAWWIRE                           = (1<<17),      /* bone should be drawn as OB_WIRE, regardless of draw-types of view+armature */
+       BONE_NO_CYCLICOFFSET            = (1<<18),      /* when no parent, bone will not get cyclic offset */
+       BONE_EDITMODE_LOCKED            = (1<<19),      /* bone transforms are locked in EditMode */
+       BONE_TRANSFORM_CHILD            = (1<<20),      /* Indicates that a parent is also being transformed */
+       BONE_UNSELECTABLE                       = (1<<21),      /* bone cannot be selected */
 } eBone_Flag;
 
 #endif