[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [21741] branches/blender2.5/blender/source /blender/makesdna/DNA_boid_types.h: Forgotten file from boids commit.

Janne Karhu jhkarh at utu.fi
Tue Jul 21 02:31:33 CEST 2009


Revision: 21741
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=21741
Author:   jhk
Date:     2009-07-21 02:31:33 +0200 (Tue, 21 Jul 2009)

Log Message:
-----------
Forgotten file from boids commit.

Added Paths:
-----------
    branches/blender2.5/blender/source/blender/makesdna/DNA_boid_types.h

Added: branches/blender2.5/blender/source/blender/makesdna/DNA_boid_types.h
===================================================================
--- branches/blender2.5/blender/source/blender/makesdna/DNA_boid_types.h	                        (rev 0)
+++ branches/blender2.5/blender/source/blender/makesdna/DNA_boid_types.h	2009-07-21 00:31:33 UTC (rev 21741)
@@ -0,0 +1,223 @@
+/* DNA_particle_types.h
+ *
+ *
+ * $Id$
+ *
+ * ***** 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., 59 Temple Place - Suite 330, Boston, MA  02111-1307, 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 *****
+ */
+
+#ifndef DNA_BOID_TYPES_H
+#define DNA_BOID_TYPES_H
+
+#include "DNA_listBase.h"
+
+typedef enum BoidRuleType {
+	eBoidRuleType_None = 0,
+	eBoidRuleType_Goal,				/* go to goal assigned object or loudest assigned signal source */
+	eBoidRuleType_Avoid,			/* get away from assigned object or loudest assigned signal source */
+	eBoidRuleType_AvoidCollision,	/* manoeuver to avoid collisions with other boids and deflector object in near future */
+	eBoidRuleType_Separate,			/* keep from going through other boids */
+	eBoidRuleType_Flock,			/* move to center of neighbors and match their velocity */
+	eBoidRuleType_FollowLeader,		/* follow a boid or assigned object */
+	eBoidRuleType_AverageSpeed,		/* maintain speed, flight level or wander*/
+	eBoidRuleType_Fight,			/* go to closest enemy and attack when in range */
+	//eBoidRuleType_Protect,		/* go to enemy closest to target and attack when in range */
+	//eBoidRuleType_Hide,			/* find a deflector move to it's other side from closest enemy */
+	//eBoidRuleType_FollowPath,		/* move along a assigned curve or closest curve in a group */
+	//eBoidRuleType_FollowWall,		/* 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,
+	eBoidMode_Climbing,
+	eBoidMode_Falling,
+	eBoidMode_Liftoff,
+	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,
+//	eBoidConditionType_Or,
+//	NUM_BOID_CONDITION_MODES
+//} BoidConditionMode;
+//typedef enum BoidConditionType {
+//	eBoidConditionType_None = 0,
+//	eBoidConditionType_Signal,
+//	eBoidConditionType_NoSignal,
+//	eBoidConditionType_HealthBelow,
+//	eBoidConditionType_HealthAbove,
+//	eBoidConditionType_See,
+//	eBoidConditionType_NotSee,
+//	eBoidConditionType_StateTime,
+//	eBoidConditionType_Touching,
+//	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,
+	eBoidRulesetType_Average,
+	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, rt;
+	float banking, height;
+
+	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


Property changes on: branches/blender2.5/blender/source/blender/makesdna/DNA_boid_types.h
___________________________________________________________________
Name: svn:keywords
   + Author Date Id Revision
Name: svn:eol-style
   + native





More information about the Bf-blender-cvs mailing list