synched with trunk at revision 36569
[blender.git] / source / blender / makesdna / DNA_actuator_types.h
index 76bb9a5..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
 
@@ -48,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 */
@@ -112,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 */
        
@@ -223,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;
 
@@ -288,6 +305,7 @@ typedef struct bActuator {
 #define ACT_SHAPEACTION 21
 #define ACT_STATE              22
 #define ACT_ARMATURE   23
+#define ACT_STEERING    24
 
 /* actuator flag */
 #define ACT_SHOW               1
@@ -504,6 +522,16 @@ typedef struct bActuator {
 #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