Comments!!1
[blender-staging.git] / source / blender / makesdna / DNA_object_types.h
index 1080388bfab4d71c4df6d4acbc8c624f6cbc6c65..83168248b9a096f01c330783f013a963b3b0e259 100644 (file)
@@ -5,15 +5,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
@@ -31,7 +28,7 @@
  *
  * Contributor(s): none yet.
  *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
  */
 #ifndef DNA_OBJECT_TYPES_H
 #define DNA_OBJECT_TYPES_H
@@ -62,6 +59,27 @@ typedef struct bDeformGroup {
        char name[32];
 } bDeformGroup;
 
+/**
+ * The following illustrates the orientation of the 
+ * bounding box in local space
+ * 
+ *  
+ * Z  Y
+ * | /
+ * |/
+ * .-----X
+ * 
+ * 
+ *     2----------6
+ *    /|         /|
+ *   / |        / |
+ *  1----------5  |
+ *  |  |       |  |
+ *  |  3-------|--7
+ *  | /        | /
+ *  |/         |/
+ *  0----------4
+ */
 typedef struct BoundBox {
        float vec[8][3];
        int flag, pad;
@@ -84,6 +102,7 @@ typedef struct Object {
        struct Path *path;
        struct BoundBox *bb;
        struct bAction *action; 
+       struct bAction *poselib;
        struct bPose *pose;     
        void *data;
        
@@ -99,7 +118,7 @@ typedef struct Object {
        float loc[3], dloc[3], orig[3];
        float size[3], dsize[3];
        float rot[3], drot[3];
-       float quat[4], dquat[4];
+       /* float quat[4], dquat[4]; (not used yet) */
        float obmat[4][4];
        float parentinv[4][4]; /* inverse result of parent, so that object doesn't 'stick' to parent */
        float constinv[4][4]; /* inverse result of constraints. doesn't include effect of parent or object local transform */
@@ -118,7 +137,7 @@ typedef struct Object {
        
        int dupon, dupoff, dupsta, dupend;
 
-       float sf, ctime;
+       float sf, ctime; /* sf is time-offset, ctime is the objects current time */
        
        /* during realtime */
 
@@ -150,10 +169,6 @@ typedef struct Object {
        ListBase sensors;
        ListBase controllers;
        ListBase actuators;
-
-       /* now used to store cache particles,
-        * should be renamed see effect.c (Campbell) */
-    void *sumohandle;          
     
        float bbsize[3];
        short index;                    /* custom index, for renderpasses */
@@ -279,6 +294,7 @@ extern Object workob;
 #define OB_DUPLIFACES          512
 #define OB_DUPLIFACES_SCALE    1024
 #define OB_DUPLIPARTS          2048
+#define OB_RENDER_DUPLI                4096
 
 /* (short) ipoflag */
 #define OB_DRAWKEY                     1
@@ -295,6 +311,9 @@ extern Object workob;
        /* for stride edit */
 #define OB_DISABLE_PATH                1024
 
+#define OB_OFFS_PARENTADD      2048
+
+
 /* (short) trackflag / upflag */
 #define OB_POSX                        0
 #define OB_POSY                        1
@@ -342,6 +361,8 @@ extern Object workob;
 #define OB_CIRCLE              3
 #define OB_SINGLE_ARROW        4
 #define OB_CUBE                        5
+#define OB_EMPTY_SPHERE        6
+#define OB_EMPTY_CONE  7
 
 /* boundtype */
 #define OB_BOUND_BOX           0
@@ -453,3 +474,4 @@ extern Object workob;
 
 #endif
 
+