soc-2008-mxcurioni: merged changes to revision 23516
[blender.git] / source / blender / makesdna / DNA_armature_types.h
index fc17ba62b4424c9fb9e9d31ead799e535246f7e0..590e7dadcdcaec9c5676acf787fdd559b2ba911c 100644 (file)
@@ -1,15 +1,12 @@
 /**
  * $Id$
  *
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License.  See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,7 +22,7 @@
  *
  * Contributor(s): Full recode, Ton Roosendaal, Crete 2005
  *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
  */
 
 #ifndef DNA_ARMATURE_TYPES_H
@@ -34,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
@@ -72,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; 
@@ -100,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 */
@@ -143,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 */
@@ -151,12 +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_DRAWWIRE                           = (1<<17)       /* bone should be drawn as OB_WIRE, regardless of draw-types of view+armature */
+       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