diff options
Diffstat (limited to 'source/blender/makesdna/DNA_actuator_types.h')
-rw-r--r-- | source/blender/makesdna/DNA_actuator_types.h | 405 |
1 files changed, 405 insertions, 0 deletions
diff --git a/source/blender/makesdna/DNA_actuator_types.h b/source/blender/makesdna/DNA_actuator_types.h new file mode 100644 index 00000000000..1a97fa88846 --- /dev/null +++ b/source/blender/makesdna/DNA_actuator_types.h @@ -0,0 +1,405 @@ +/** + * blenlib/DNA_actuator_types.h (mar-2001 nzc) + * + * $Id$ + * + * ***** BEGIN GPL/BL DUAL 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. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * 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. + * + * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL/BL DUAL LICENSE BLOCK ***** + */ +#ifndef DNA_ACTUATOR_TYPES_H +#define DNA_ACTUATOR_TYPES_H + +struct Object; +struct Mesh; +struct Scene; +struct Group; + +/* ****************** ACTUATORS ********************* */ + +/* unused now, moved to editobjectactuator in 2.02. Still needed for dna */ +typedef struct bAddObjectActuator { + int time, pad; + struct Object *ob; +} bAddObjectActuator; + +typedef struct bActionActuator { + struct bAction *act; /* Pointer to action */ + short type, flag; /* Playback type */ + short sta, end; /* Start & End frames */ + char name[32]; /* For property-driven playback */ + short blendin; /* Number of frames of blending */ + short priority; /* Execution priority */ + float stridelength; /* Displacement incurred by cycle */ + short strideaxis; /* Displacement axis */ + short reserved1; /* Padding */ + short reserved2; /* Padding */ + short reserved3; /* Padding */ +} bActionActuator; + +typedef struct bSoundActuator { + short flag, sndnr; + short sta, end; + struct bSound *sound; + short type, makecopy; + short copymade, pad[1]; +} bSoundActuator; + +typedef struct bCDActuator { + short flag, sndnr; + short sta, end; + short type, track; + float volume; +} bCDActuator; + +typedef struct bEditObjectActuator { + int time; + short type, flag; + struct Object *ob; + struct Mesh *me; + char name[32]; + float linVelocity[3]; /* initial lin. velocity on creation */ + short localflag; /* flag for the lin. vel: apply locally */ + short pad; +} bEditObjectActuator; + +typedef struct bSceneActuator { + short type, flag; + int pad; + struct Scene *scene; + struct Object *camera; +} bSceneActuator; + +typedef struct bPropertyActuator { + int flag, type; + char name[32], value[32]; + struct Object *ob; +} bPropertyActuator; + +typedef struct bObjectActuator { + int flag, type; + float forceloc[3], forcerot[3]; + float loc[3], rot[3]; + float dloc[3], drot[3]; + float linearvelocity[3], angularvelocity[3]; +// float addedlinearvelocity[3]; +// char anotherpad[4]; +} bObjectActuator; + +typedef struct bIpoActuator { + short flag, type; + short sta, end; + char name[32]; + + short pad1, cur, butsta, butend; + +} bIpoActuator; + +typedef struct bCameraActuator { + struct Object *ob; + float height, min, max; + float fac; + short flag, axis; + float visifac; +} bCameraActuator ; + +typedef struct bConstraintActuator { + short flag, damp; + float slow; + float minloc[3], maxloc[3]; + float minrot[3], maxrot[3]; +} bConstraintActuator; + +typedef struct bGroupActuator { + short flag, type; + short sta, end; + char name[32]; /* property or groupkey */ + + short pad1, cur, butsta, butend; + struct Group *group; /* only during game */ + +} bGroupActuator; + +/* I added a few extra fields here, to facilitate conversions */ +typedef struct bRandomActuator { + int seed; + int distribution; + int int_arg_1; + int int_arg_2; + float float_arg_1; + float float_arg_2; + char propname[32]; +} 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; + int pad2; + + /** + * Either User Defined Text or our PropName to send value of + */ + char body[32]; +} bMessageActuator; + +typedef struct bGameActuator { + short flag, type; + short sta, end; + char filename[64]; + char loadaniname[64]; +} bGameActuator; + +typedef struct bVisibilityActuator { + /** bit 0: Is this object visible? */ + int flag; +} bVisibilityActuator; + +typedef struct bActuator { + struct bActuator *next, *prev, *mynew; + short type; + /** + * Tells what type of actuator data <data> holds. + */ + short flag; + short otype, go; + char name[32]; + + /** + * Data must point to an object actuator type struct. + */ + void *data; + + /** + * For ipo's and props: to find out which object the actuator + * belongs to */ + struct Object *ob; + +} 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 +#define ACT_DLOC_LOCAL 4 +#define ACT_DROT_LOCAL 8 +#define ACT_LIN_VEL_LOCAL 16 +#define ACT_ANG_VEL_LOCAL 32 +//#define ACT_ADD_LIN_VEL_LOCAL 64 +#define ACT_ADD_LIN_VEL 64 + +#define ACT_OBJECT_FORCE 0 +#define ACT_OBJECT_TORQUE 1 +#define ACT_OBJECT_DLOC 2 +#define ACT_OBJECT_DROT 3 +#define ACT_OBJECT_LINV 4 +#define ACT_OBJECT_ANGV 5 + +/* actuator->type */ +#define ACT_OBJECT 0 +#define ACT_IPO 1 +#define ACT_LAMP 2 +#define ACT_CAMERA 3 +#define ACT_MATERIAL 4 +#define ACT_SOUND 5 +#define ACT_PROPERTY 6 + /* these two obsolete since 2.02 */ +#define ACT_ADD_OBJECT 7 +#define ACT_END_OBJECT 8 + +#define ACT_CONSTRAINT 9 +#define ACT_EDIT_OBJECT 10 +#define ACT_SCENE 11 +#define ACT_GROUP 12 +#define ACT_RANDOM 13 +#define ACT_MESSAGE 14 +#define ACT_ACTION 15 /* __ NLA */ +#define ACT_CD 16 +#define ACT_GAME 17 +#define ACT_VISIBILITY 18 + +/* actuator flag */ +#define ACT_SHOW 1 +#define ACT_DEL 2 +#define ACT_NEW 4 + +/* link codes */ +#define LINK_SENSOR 0 +#define LINK_CONTROLLER 1 +#define LINK_ACTUATOR 2 + +/* keyboardsensor->type */ +#define SENS_ALL_KEYS 1 + +/* actionactuator->type */ +#define ACT_ACTION_PLAY 0 +#define ACT_ACTION_PINGPONG 1 +#define ACT_ACTION_FLIPPER 2 +#define ACT_ACTION_LOOP_STOP 3 +#define ACT_ACTION_LOOP_END 4 +#define ACT_ACTION_KEY2KEY 5 +#define ACT_ACTION_FROM_PROP 6 +#define ACT_ACTION_MOTION 7 + +/* ipoactuator->type */ +#define ACT_IPO_PLAY 0 +#define ACT_IPO_PINGPONG 1 +#define ACT_IPO_FLIPPER 2 +#define ACT_IPO_LOOP_STOP 3 +#define ACT_IPO_LOOP_END 4 +#define ACT_IPO_KEY2KEY 5 +#define ACT_IPO_FROM_PROP 6 + +/* groupactuator->type */ +#define ACT_GROUP_PLAY 0 +#define ACT_GROUP_PINGPONG 1 +#define ACT_GROUP_FLIPPER 2 +#define ACT_GROUP_LOOP_STOP 3 +#define ACT_GROUP_LOOP_END 4 +#define ACT_GROUP_FROM_PROP 5 +#define ACT_GROUP_SET 6 + +/* ipoactuator->flag */ +#define ACT_IPOFORCE_BIT 0 +#define ACT_IPOEND_BIT 1 +#define ACT_IPOFORCE_LOCAL_BIT 2 +// unused: 3 +#define ACT_IPOCHILD_BIT 4 + +#define ACT_IPOFORCE (1 << ACT_IPOFORCE_BIT) +#define ACT_IPOEND (1 << ACT_IPOEND_BIT) +#define ACT_IPOFORCE_LOCAL (1 << ACT_IPOFORCE_LOCAL_BIT) +#define ACT_IPOCHILD (1 << ACT_IPOCHILD_BIT) + +/* ipoactuator->flag for k2k */ +#define ACT_K2K_PREV 1 +#define ACT_K2K_CYCLIC 2 +#define ACT_K2K_PINGPONG 4 +#define ACT_K2K_HOLD 8 + +/* property actuator->type */ +#define ACT_PROP_ASSIGN 0 +#define ACT_PROP_ADD 1 +#define ACT_PROP_COPY 2 + +/* constraint flag */ +#define ACT_CONST_LOCX 1 +#define ACT_CONST_LOCY 2 +#define ACT_CONST_LOCZ 4 +#define ACT_CONST_ROTX 8 +#define ACT_CONST_ROTY 16 +#define ACT_CONST_ROTZ 32 + +/* editObjectActuator->type */ +#define ACT_EDOB_ADD_OBJECT 0 +#define ACT_EDOB_END_OBJECT 1 +#define ACT_EDOB_REPLACE_MESH 2 +#define ACT_EDOB_TRACK_TO 3 +#define ACT_EDOB_MAKE_CHILD 4 +#define ACT_EDOB_END_CHILD 5 + +/* editObjectActuator->flag */ +#define ACT_TRACK_3D 1 + +/* SceneActuator->type */ +#define ACT_SCENE_RESTART 0 +#define ACT_SCENE_SET 1 +#define ACT_SCENE_CAMERA 2 +#define ACT_SCENE_ADD_FRONT 3 +#define ACT_SCENE_ADD_BACK 4 +#define ACT_SCENE_REMOVE 5 +#define ACT_SCENE_SUSPEND 6 +#define ACT_SCENE_RESUME 7 + + +/* randomAct->distribution */ +#define ACT_RANDOM_BOOL_CONST 0 +#define ACT_RANDOM_BOOL_UNIFORM 1 +#define ACT_RANDOM_BOOL_BERNOUILLI 2 +#define ACT_RANDOM_INT_CONST 3 +#define ACT_RANDOM_INT_UNIFORM 4 +#define ACT_RANDOM_INT_POISSON 5 +#define ACT_RANDOM_FLOAT_CONST 6 +#define ACT_RANDOM_FLOAT_UNIFORM 7 +#define ACT_RANDOM_FLOAT_NORMAL 8 +#define ACT_RANDOM_FLOAT_NEGATIVE_EXPONENTIAL 9 + +/* SoundActuator->type */ +#define ACT_SND_PLAY_STOP_SOUND 0 +#define ACT_SND_PLAY_END_SOUND 1 +#define ACT_SND_LOOP_STOP_SOUND 2 +#define ACT_SND_LOOP_END_SOUND 3 +#define ACT_SND_LOOP_BIDIRECTIONAL_SOUND 4 +#define ACT_SND_LOOP_BIDIRECTIONAL_STOP_SOUND 5 + +/* messageactuator->type */ +#define ACT_MESG_MESG 0 +#define ACT_MESG_PROP 1 + +/* cdactuator->type */ +#define ACT_CD_PLAY_ALL 0 +#define ACT_CD_PLAY_TRACK 1 +#define ACT_CD_LOOP_TRACK 2 +#define ACT_CD_VOLUME 3 +#define ACT_CD_STOP 4 +#define ACT_CD_PAUSE 5 +#define ACT_CD_RESUME 6 + +/* gameactuator->type */ +#define ACT_GAME_LOAD 0 +#define ACT_GAME_START 1 +#define ACT_GAME_RESTART 2 +#define ACT_GAME_QUIT 3 + +/* visibilityact->flag */ +/* Set means the object will become invisible */ +#define ACT_VISIBILITY_INVISIBLE_BIT 0 +#define ACT_VISIBILITY_INVISIBLE (1 << ACT_VISIBILITY_INVISIBLE_BIT) + +#endif |