synched with trunk at revision 36569
[blender.git] / source / blender / makesdna / DNA_actuator_types.h
index a59b748..7aa8e59 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,7 +51,7 @@ 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 */
@@ -61,6 +61,18 @@ typedef struct bActionActuator {
        float   stridelength;   /* Displacement incurred by cycle */ // not in use
 } 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 +107,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 +115,14 @@ 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;
 
 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 */
        
@@ -214,18 +226,32 @@ typedef struct bArmatureActuator {
        struct Object *subtarget;
 } bArmatureActuator;
 
+typedef struct bSteeringActuator {
+       char pad[5];
+       char flag;
+       short facingaxis;
+       int type;               /* 0=seek, 1=flee, 2=path following */
+       float dist;
+       float velocity;
+       float acceleration;
+       float turnspeed;
+       int updateTime;
+       struct Object *target;
+       struct Object *navmesh;
+} bSteeringActuator;
+
 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 +262,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
@@ -286,6 +305,7 @@ typedef struct FreeCamera {
 #define ACT_SHAPEACTION 21
 #define ACT_STATE              22
 #define ACT_ARMATURE   23
+#define ACT_STEERING    24
 
 /* actuator flag */
 #define ACT_SHOW               1
@@ -351,6 +371,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 +518,20 @@ 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'
+
+/* steeringactuator->type */
+#define ACT_STEERING_SEEK   0
+#define ACT_STEERING_FLEE   1
+#define ACT_STEERING_PATHFOLLOWING   2
+/* steeringactuator->flag */
+#define ACT_STEERING_SELFTERMINATED   1
+#define ACT_STEERING_ENABLEVISUALIZATION   2
+#define ACT_STEERING_AUTOMATICFACING   4
+#define ACT_STEERING_NORMALUP  8
+
 #endif