diff options
Diffstat (limited to 'source/blender/makesdna/DNA_boid_types.h')
-rw-r--r-- | source/blender/makesdna/DNA_boid_types.h | 225 |
1 files changed, 0 insertions, 225 deletions
diff --git a/source/blender/makesdna/DNA_boid_types.h b/source/blender/makesdna/DNA_boid_types.h deleted file mode 100644 index f1930ffd643..00000000000 --- a/source/blender/makesdna/DNA_boid_types.h +++ /dev/null @@ -1,225 +0,0 @@ -/* - * ***** BEGIN GPL 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. - * - * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2009 by Janne Karhu. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file DNA_boid_types.h - * \ingroup DNA - */ - -#ifndef __DNA_BOID_TYPES_H__ -#define __DNA_BOID_TYPES_H__ - -#include "DNA_listBase.h" - -typedef enum BoidRuleType { - eBoidRuleType_None = 0, - eBoidRuleType_Goal = 1, /* go to goal assigned object or loudest assigned signal source */ - eBoidRuleType_Avoid = 2, /* get away from assigned object or loudest assigned signal source */ - eBoidRuleType_AvoidCollision = 3, /* manoeuver to avoid collisions with other boids and deflector object in near future */ - eBoidRuleType_Separate = 4, /* keep from going through other boids */ - eBoidRuleType_Flock = 5, /* move to center of neighbors and match their velocity */ - eBoidRuleType_FollowLeader = 6, /* follow a boid or assigned object */ - eBoidRuleType_AverageSpeed = 7, /* maintain speed, flight level or wander*/ - eBoidRuleType_Fight = 8, /* go to closest enemy and attack when in range */ - //eBoidRuleType_Protect = 9, /* go to enemy closest to target and attack when in range */ - //eBoidRuleType_Hide = 10, /* find a deflector move to it's other side from closest enemy */ - //eBoidRuleType_FollowPath = 11, /* move along a assigned curve or closest curve in a group */ - //eBoidRuleType_FollowWall = 12, /* move next to a deflector object's in direction of it's tangent */ - NUM_BOID_RULE_TYPES -} BoidRuleType; - -/* boidrule->flag */ -#define BOIDRULE_CURRENT 1 -#define BOIDRULE_IN_AIR 4 -#define BOIDRULE_ON_LAND 8 -typedef struct BoidRule { - struct BoidRule *next, *prev; - int type, flag; - char name[32]; -} BoidRule; -#define BRULE_GOAL_AVOID_PREDICT 1 -#define BRULE_GOAL_AVOID_ARRIVE 2 -#define BRULE_GOAL_AVOID_SIGNAL 4 -typedef struct BoidRuleGoalAvoid { - BoidRule rule; - struct Object *ob; - int options; - float fear_factor; - - /* signals */ - int signal_id, channels; -} BoidRuleGoalAvoid; -#define BRULE_ACOLL_WITH_BOIDS 1 -#define BRULE_ACOLL_WITH_DEFLECTORS 2 -typedef struct BoidRuleAvoidCollision { - BoidRule rule; - int options; - float look_ahead; -} BoidRuleAvoidCollision; -#define BRULE_LEADER_IN_LINE 1 -typedef struct BoidRuleFollowLeader { - BoidRule rule; - struct Object *ob; - float loc[3], oloc[3]; - float cfra, distance; - int options, queue_size; -} BoidRuleFollowLeader; -typedef struct BoidRuleAverageSpeed { - BoidRule rule; - float wander, level, speed, rt; -} BoidRuleAverageSpeed; -typedef struct BoidRuleFight { - BoidRule rule; - float distance, flee_distance; -} BoidRuleFight; - -typedef enum BoidMode { - eBoidMode_InAir = 0, - eBoidMode_OnLand = 1, - eBoidMode_Climbing = 2, - eBoidMode_Falling = 3, - eBoidMode_Liftoff = 4, - NUM_BOID_MODES -} BoidMode; - - -typedef struct BoidData { - float health, acc[3]; - short state_id, mode; -} BoidData; - -// planned for near future -//typedef enum BoidConditionMode { -// eBoidConditionType_Then = 0, -// eBoidConditionType_And = 1, -// eBoidConditionType_Or = 2, -// NUM_BOID_CONDITION_MODES -//} BoidConditionMode; -//typedef enum BoidConditionType { -// eBoidConditionType_None = 0, -// eBoidConditionType_Signal = 1, -// eBoidConditionType_NoSignal = 2, -// eBoidConditionType_HealthBelow = 3, -// eBoidConditionType_HealthAbove = 4, -// eBoidConditionType_See = 5, -// eBoidConditionType_NotSee = 6, -// eBoidConditionType_StateTime = 7, -// eBoidConditionType_Touching = 8, -// NUM_BOID_CONDITION_TYPES -//} BoidConditionType; -//typedef struct BoidCondition { -// struct BoidCondition *next, *prev; -// int state_id; -// short type, mode; -// float threshold, probability; -// -// /* signals */ -// int signal_id, channels; -//} BoidCondition; - -typedef enum BoidRulesetType { - eBoidRulesetType_Fuzzy = 0, - eBoidRulesetType_Random = 1, - eBoidRulesetType_Average = 2, - NUM_BOID_RULESET_TYPES -} BoidRulesetType; -#define BOIDSTATE_CURRENT 1 -typedef struct BoidState { - struct BoidState *next, *prev; - ListBase rules; - ListBase conditions; - ListBase actions; - char name[32]; - int id, flag; - - /* rules */ - int ruleset_type; - float rule_fuzziness; - - /* signal */ - int signal_id, channels; - float volume, falloff; -} BoidState; - -// planned for near future -//typedef struct BoidSignal { -// struct BoidSignal *next, *prev; -// float loc[3]; -// float volume, falloff; -// int id; -//} BoidSignal; -//typedef struct BoidSignalDefine { -// struct BoidSignalDefine *next, *prev; -// int id, rt; -// char name[32]; -//} BoidSignalDefine; - -//typedef struct BoidSimulationData { -// ListBase signal_defines;/* list of defined signals */ -// ListBase signals[20]; /* gathers signals from all channels */ -// struct KDTree *signaltrees[20]; -// char channel_names[20][32]; -// int last_signal_id; /* used for incrementing signal ids */ -// int flag; /* switches for drawing stuff */ -//} BoidSimulationData; - -typedef struct BoidSettings { - int options, last_state_id; - - float landing_smoothness, height; - float banking, pitch; - - float health, aggression; - float strength, accuracy, range; - - /* flying related */ - float air_min_speed, air_max_speed; - float air_max_acc, air_max_ave; - float air_personal_space; - - /* walk/run related */ - float land_jump_speed, land_max_speed; - float land_max_acc, land_max_ave; - float land_personal_space; - float land_stick_force; - - struct ListBase states; -} BoidSettings; - -/* boidsettings->options */ -#define BOID_ALLOW_FLIGHT 1 -#define BOID_ALLOW_LAND 2 -#define BOID_ALLOW_CLIMB 4 - -/* boidrule->options */ -//#define BOID_RULE_FOLLOW_LINE 1 /* follow leader */ -//#define BOID_RULE_PREDICT 2 /* goal/avoid */ -//#define BOID_RULE_ARRIVAL 4 /* goal */ -//#define BOID_RULE_LAND 8 /* goal */ -//#define BOID_RULE_WITH_BOIDS 16 /* avoid collision */ -//#define BOID_RULE_WITH_DEFLECTORS 32 /* avoid collision */ - -#endif |