Merging with trunk up to r38631.
[blender.git] / source / blender / makesdna / DNA_actuator_types.h
index a59b748945f5c8793ba18c185e8215d3ddd4f0d0..93db8340aac21d7cf5e8ce84c9007ec01be01e3f 100644 (file)
@@ -1,6 +1,4 @@
-/**
- * blenlib/DNA_actuator_types.h (mar-2001 nzc)
- *     
+/*
  * $Id$ 
  *
  * ***** BEGIN GPL LICENSE BLOCK *****
  *
  * ***** 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 */
@@ -51,16 +51,31 @@ typedef struct bAddObjectActuator {
 typedef struct bActionActuator {                                                               
        struct bAction *act;    /* Pointer to action */                         
        short   type, flag;             /* Playback type */  // not in use
-       int     sta, end;               /* Start & End frames */                        
+       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 */
+       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 pad1, pad2;
@@ -95,7 +110,7 @@ typedef struct bSceneActuator {
 typedef struct bPropertyActuator {
        int pad, type;
        char name[32], value[32];
-       struct Object *ob; // not in use anymore
+       struct Object *ob;
 } bPropertyActuator;
 
 typedef struct bObjectActuator {
@@ -103,14 +118,15 @@ typedef struct bObjectActuator {
        short damping;
        float forceloc[3], forcerot[3];
        float pad[3], pad1[3];
-       float dloc[3], drot[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 */
        
@@ -121,7 +137,7 @@ typedef struct bIpoActuator {
 typedef struct bCameraActuator {
        struct Object *ob;
        float height, min, max;
-       float pad;
+       float damping;
        short pad1, axis;
        float pad2;
 } bCameraActuator ;
@@ -218,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;
 
@@ -236,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
@@ -351,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
@@ -497,6 +507,10 @@ typedef struct FreeCamera {
 #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