Merging with trunk up to r38631.
[blender.git] / source / blender / makesdna / DNA_actuator_types.h
index 58fa38ae1599d3a76b1703daeaa9dfa80e619b09..93db8340aac21d7cf5e8ce84c9007ec01be01e3f 100644 (file)
@@ -1,6 +1,4 @@
-/**
- * blenlib/DNA_actuator_types.h (mar-2001 nzc)
- *     
+/*
  * $Id$ 
  *
  * ***** BEGIN GPL LICENSE BLOCK *****
@@ -17,7 +15,7 @@
  *
  * 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.
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
  * All rights reserved.
  *
  * ***** END GPL LICENSE BLOCK *****
  */
+
+/** \file DNA_actuator_types.h
+ *  \ingroup DNA
+ */
+
 #ifndef DNA_ACTUATOR_TYPES_H
 #define DNA_ACTUATOR_TYPES_H
 
@@ -37,9 +40,6 @@ struct Scene;
 struct Group;
 struct Text;
 
-// for Sound3D
-#include "DNA_sound_types.h"
-
 /* ****************** ACTUATORS ********************* */
 
 /* unused now, moved to editobjectactuator in 2.02. Still needed for dna */
@@ -50,26 +50,41 @@ typedef struct bAddObjectActuator {
 
 typedef struct bActionActuator {                                                               
        struct bAction *act;    /* Pointer to action */                         
-       short   type, flag;             /* Playback type */                                     
-       int     sta, end;               /* Start & End frames */                        
+       short   type, flag;             /* Playback type */  // not in use
+       float   sta, end;               /* Start & End frames */                        
        char    name[32];               /* For property-driven playback */      
        char    frameProp[32];  /* Set this property to the actions current frame */
        short   blendin;                /* Number of frames of blending */
        short   priority;               /* Execution priority */
+       short   layer;                  /* Animation layer */
        short   end_reset;      /* Ending the actuator (negative pulse) wont reset the the action to its starting frame */
        short   strideaxis;             /* Displacement axis */
-       float   stridelength;   /* Displacement incurred by cycle */
+       short   pad;
+       float   stridelength;   /* Displacement incurred by cycle */ // not in use
+       float   layer_weight;   /* How much of the previous layer to use for blending. (<0 = disable, 0 = add mode) */
 } bActionActuator;                                                                                             
 
+typedef struct Sound3D
+{
+       float min_gain;
+       float max_gain;
+       float reference_distance;
+       float max_distance;
+       float rolloff_factor;
+       float cone_inner_angle;
+       float cone_outer_angle;
+       float cone_outer_gain;
+} Sound3D;
+
 typedef struct bSoundActuator {
        short flag, sndnr;
-       int sta, end;
-       short pad1[2];
+       int pad1, pad2;
+       short pad3[2];
        float volume, pitch;
        struct bSound *sound;
        struct Sound3D sound3D;
-       short type, makecopy;
-       short copymade, pad2[1];
+       short type, pad4;
+       short pad5, pad6[1];
 } bSoundActuator;
 
 typedef struct bEditObjectActuator {
@@ -86,14 +101,14 @@ typedef struct bEditObjectActuator {
 } bEditObjectActuator;
 
 typedef struct bSceneActuator {
-       short type, flag;
+       short type, pad1;
        int pad;
        struct Scene *scene;
        struct Object *camera;
 } bSceneActuator;
 
 typedef struct bPropertyActuator {
-       int flag, type;
+       int pad, type;
        char name[32], value[32];
        struct Object *ob;
 } bPropertyActuator;
@@ -102,28 +117,29 @@ typedef struct bObjectActuator {
        short flag, type, otype;
        short damping;
        float forceloc[3], forcerot[3];
-       float loc[3], rot[3];
-       float dloc[3], drot[3];
+       float pad[3], pad1[3];
+       float dloc[3], drot[3]; /* angle in radians */
        float linearvelocity[3], angularvelocity[3];
        struct Object *reference;
 } bObjectActuator;
 
+/* deprecated, handled by bActionActuator now */
 typedef struct bIpoActuator {
        short flag, type;
-       int sta, end;
+       float sta, end;
        char name[32];
        char frameProp[32];     /* Set this property to the actions current frame */
        
-       short pad1, cur, butsta, butend;
+       short pad1, pad2, pad3, pad4;
        
 } bIpoActuator;
 
 typedef struct bCameraActuator {
        struct Object *ob;
        float height, min, max;
-       float fac;
-       short flag, axis;
-       float visifac;
+       float damping;
+       short pad1, axis;
+       float pad2;
 } bCameraActuator ;
 
 typedef struct bConstraintActuator {
@@ -158,31 +174,12 @@ typedef struct bRandomActuator {
 } bRandomActuator;
 
 typedef struct bMessageActuator {
-       /**
-        * Send to all objects with this propertyname. Empty to broadcast.
-        */
-       char toPropName[32];
-
-       /**
-        * (Possible future use) pointer to a single destination object.
-        */
-       struct Object *toObject;
-
-       /**
-        * Message Subject to send.
-        */
-       char subject[32];
-
-       /**
-        * bodyType is either 'User defined text' or PropName
-        */
-       short bodyType, pad1;
+       char toPropName[32];    /* Send to all objects with this propertyname. Empty to broadcast. */
+       struct Object *toObject;/* (Possible future use) pointer to a single destination object. */
+       char subject[32];               /* Message Subject to send. */
+       short bodyType, pad1;   /* bodyType is either 'User defined text' or PropName */
        int pad2;
-
-       /**
-        * Either User Defined Text or our PropName to send value of
-        */
-       char body[32];
+       char body[32];                  /* Either User Defined Text or our PropName to send value of */
 } bMessageActuator;
 
 typedef struct bGameActuator {
@@ -237,14 +234,14 @@ typedef struct bActuator {
        struct bActuator *next, *prev, *mynew;
        short type;
        /**
-        * Tells what type of actuator data <data> holds. 
+        * Tells what type of actuator data \ref data holds. 
         */
        short flag;
        short otype, go;
        char name[32];
 
        /**
-        * Data must point to an object actuator type struct.
+        * data must point to an object actuator type struct.
         */
        void *data;
 
@@ -255,13 +252,6 @@ typedef struct bActuator {
        
 } bActuator;
 
-typedef struct FreeCamera {
-       float mass, accelleration;
-       float maxspeed, maxrotspeed,  maxtiltspeed;
-       int flag;
-       float rotdamp, tiltdamp, speeddamp, pad;
-} FreeCamera;
-
 /* objectactuator->flag */
 #define ACT_FORCE_LOCAL                        1
 #define ACT_TORQUE_LOCAL               2
@@ -370,6 +360,7 @@ typedef struct FreeCamera {
 #define ACT_PROP_TOGGLE                3
 
 /* constraint flag */
+#define ACT_CONST_NONE         0
 #define ACT_CONST_LOCX         1
 #define ACT_CONST_LOCY         2
 #define ACT_CONST_LOCZ         4
@@ -408,7 +399,6 @@ typedef struct FreeCamera {
 #define ACT_EDOB_LOCAL_LINV            2
 #define ACT_EDOB_LOCAL_ANGV            4
 
-
 /* editObjectActuator->flag */
 #define ACT_TRACK_3D                   1
 
@@ -416,6 +406,14 @@ typedef struct FreeCamera {
 #define ACT_EDOB_REPLACE_MESH_NOGFX            2 /* use for replace mesh actuator */
 #define ACT_EDOB_REPLACE_MESH_PHYS             4
 
+/* editObjectActuator->dyn_operation */
+#define ACT_EDOB_RESTORE_DYN   0
+#define ACT_EDOB_SUSPEND_DYN   1
+#define ACT_EDOB_ENABLE_RB             2
+#define ACT_EDOB_DISABLE_RB            3
+#define ACT_EDOB_SET_MASS              4
+
+
 /* SceneActuator->type */
 #define ACT_SCENE_RESTART              0
 #define ACT_SCENE_SET                  1
@@ -503,6 +501,16 @@ typedef struct FreeCamera {
 /* update this define if more type are addedd */
 #define ACT_ARM_MAXTYPE                4
 
+/* stateactuator->type */
+#define ACT_STATE_SET          0
+#define ACT_STATE_ADD          1
+#define ACT_STATE_REMOVE       2
+#define ACT_STATE_CHANGE       3
+
+/* cameraactuator->axis */
+#define ACT_CAMERA_X           (float)'x'
+#define ACT_CAMERA_Y           (float)'y'
+
 #endif