Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/makesdna/DNA_armature_types.h')
-rw-r--r--source/blender/makesdna/DNA_armature_types.h124
1 files changed, 124 insertions, 0 deletions
diff --git a/source/blender/makesdna/DNA_armature_types.h b/source/blender/makesdna/DNA_armature_types.h
new file mode 100644
index 00000000000..af2476b5e0c
--- /dev/null
+++ b/source/blender/makesdna/DNA_armature_types.h
@@ -0,0 +1,124 @@
+/**
+ * $Id$
+ *
+ * ***** BEGIN GPL/BL DUAL 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ */
+
+
+#ifndef DNA_ARMATURE_TYPES_H
+#define DNA_ARMATURE_TYPES_H
+
+#include "DNA_listBase.h"
+#include "DNA_ID.h"
+
+typedef struct Bone {
+ struct Bone *next, *prev; /* Next/prev elements within this list */
+ struct Bone *parent; /* Parent (ik parent if appropriate flag is set */
+ ListBase childbase; /* Children */
+ char name[32]; /* Name of the bone - must be unique within the armature */
+
+ float roll;
+ float head[3]; /* Orientation & length are implicit now */
+ float tail[3]; /* head/tail represents rest state */
+ int flag;
+
+ /* Transformation data used for posing:
+ The same information stored by other
+ blenderObjects
+ */
+
+ float dist, weight;
+ float loc[3], dloc[3];
+ float size[3], dsize[3];
+ float quat[4], dquat[4];
+ float obmat[4][4];
+ float parmat[4][4];
+ float defmat[4][4];
+ float irestmat[4][4]; /* Cached inverse of rest matrix (objectspace)*/
+ float posemat[4][4]; /* Cached pose matrix (objectspace)*/
+}Bone;
+
+typedef struct bArmature {
+ ID id;
+ ListBase bonebase;
+ ListBase chainbase;
+ int flag;
+ int res1;
+ int res2;
+ int res3;
+}bArmature;
+
+enum {
+ ARM_RESTPOSBIT = 0,
+ ARM_UNUSED1BIT, /* Free for use */
+ ARM_DRAWAXESBIT,
+ ARM_DRAWNAMESBIT,
+ ARM_POSEBIT,
+ ARM_EDITBIT
+};
+
+enum {
+ ARM_RESTPOS = 0x00000001,
+ ARM_UNUSED1 = 0x00000002, /* Free for use */
+ ARM_DRAWAXES = 0x00000004,
+ ARM_DRAWNAMES = 0x00000008,
+ ARM_POSEMODE = 0x00000010,
+ ARM_EDITMODE = 0x00000020
+};
+
+enum {
+ BONE_SELECTED = 0x00000001,
+ BONE_ROOTSEL = 0x00000002,
+ BONE_TIPSEL = 0x00000004,
+
+ BONE_HILIGHTED = 0x00000008,
+ BONE_IK_TOPARENT= 0x00000010,
+ BONE_QUATROT = 0x00000020,
+ BONE_HIDDEN = 0x00000040,
+
+ BONE_DONE = 0x00000080, /* For detecting cyclic dependancies */
+
+ BONE_ISEMPTY = 0x00000100,
+ BONE_ISMUSCLE = 0x00000200
+};
+
+enum {
+ BONE_SELECTEDBIT = 0,
+ BONE_HEADSELBIT,
+ BONE_TAILSELBIT,
+ BONE_HILIGHTEDBIT,
+ BONE_IK_TOPARENTBIT,
+ BONE_QUATROTBIT,
+ BONE_HIDDENBIT,
+ BONE_ISEMPTYBIT,
+ BONE_ISMUSCLEBIT
+};
+
+
+#endif