[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [21739] branches/blender2.5/blender: SVN maintenance.
gsr b3d
gsr.b3d at infernal-iceberg.com
Tue Jul 21 02:19:07 CEST 2009
Revision: 21739
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=21739
Author: gsrb3d
Date: 2009-07-21 02:19:07 +0200 (Tue, 21 Jul 2009)
Log Message:
-----------
SVN maintenance.
Modified Paths:
--------------
branches/blender2.5/blender/source/blender/makesrna/intern/rna_boid.c
Property Changed:
----------------
branches/blender2.5/blender/release/ui/buttons_game.py
branches/blender2.5/blender/source/blender/makesrna/intern/rna_boid.c
Property changes on: branches/blender2.5/blender/release/ui/buttons_game.py
___________________________________________________________________
Name: svn:keywords
+ Author Date Id Revision
Name: svn:eol-style
+ native
Modified: branches/blender2.5/blender/source/blender/makesrna/intern/rna_boid.c
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/intern/rna_boid.c 2009-07-21 00:14:49 UTC (rev 21738)
+++ branches/blender2.5/blender/source/blender/makesrna/intern/rna_boid.c 2009-07-21 00:19:07 UTC (rev 21739)
@@ -1,615 +1,615 @@
-/**
- * $Id: rna_modifier.c 21514 2009-07-11 05:41:21Z aligorith $
- *
- * ***** 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 *****
- */
-
-#include <float.h>
-#include <limits.h>
-#include <stdlib.h>
-
-#include "RNA_define.h"
-#include "RNA_types.h"
-
-#include "rna_internal.h"
-
-#include "DNA_scene_types.h"
-#include "DNA_boid_types.h"
-#include "DNA_object_types.h"
-#include "DNA_particle_types.h"
-
-#include "WM_types.h"
-
-EnumPropertyItem boidrule_type_items[] ={
- {eBoidRuleType_Goal, "GOAL", 0, "Goal", "Go to assigned object or loudest assigned signal source."},
- {eBoidRuleType_Avoid, "AVOID", 0, "Avoid", "Get away from assigned object or loudest assigned signal source."},
- {eBoidRuleType_AvoidCollision, "AVOID_COLLISION", 0, "Avoid Collision", "Monoeuver to avoid collisions with other boids and deflector objects in near future."},
- {eBoidRuleType_Separate, "SEPARATE", 0, "Separate", "Keep from going through other boids."},
- {eBoidRuleType_Flock, "FLOCK", 0, "Flock", "Move to center of neighbors and match their velocity."},
- {eBoidRuleType_FollowLeader, "FOLLOW_LEADER", 0, "Follow Leader", "Follow a boid or assigned object."},
- {eBoidRuleType_AverageSpeed, "AVERAGE_SPEED", 0, "Average Speed", "Maintain speed, flight level or wander."},
- {eBoidRuleType_Fight, "FIGHT", 0, "Fight", "Go to closest enemy and attack when in range."},
- //{eBoidRuleType_Protect, "PROTECT", 0, "Protect", "Go to enemy closest to target and attack when in range."},
- //{eBoidRuleType_Hide, "HIDE", 0, "Hide", "Find a deflector move to it's other side from closest enemy."},
- //{eBoidRuleType_FollowPath, "FOLLOW_PATH", 0, "Follow Path", "Move along a assigned curve or closest curve in a group."},
- //{eBoidRuleType_FollowWall, "FOLLOW_WALL", 0, "Follow Wall", "Move next to a deflector object's in direction of it's tangent."},
- {0, NULL, 0, NULL, NULL}};
-
-EnumPropertyItem boidruleset_type_items[] ={
- {eBoidRulesetType_Fuzzy, "FUZZY", 0, "Fuzzy", "Rules are gone through top to bottom. Only the first rule that effect above fuzziness threshold is evaluated."},
- {eBoidRulesetType_Random, "RANDOM", 0, "Random", "A random rule is selected for each boid."},
- {eBoidRulesetType_Average, "AVERAGE", 0, "Average", "All rules are averaged."},
- {0, NULL, 0, NULL, NULL}};
-
-
-#ifdef RNA_RUNTIME
-
-#include "BKE_context.h"
-#include "BKE_depsgraph.h"
-#include "BKE_particle.h"
-
-static void rna_Boids_reset(bContext *C, PointerRNA *ptr)
-{
- Scene *scene = CTX_data_scene(C);
- ParticleSettings *part;
-
- if(ptr->type==&RNA_ParticleSystem) {
- ParticleSystem *psys = (ParticleSystem*)ptr->data;
- Object *ob = psys_find_object(scene, psys);
-
- psys->recalc = PSYS_RECALC_RESET;
-
- if(ob) {
- DAG_object_flush_update(scene, ob, OB_RECALC_DATA);
- }
- }
- else {
- part = ptr->id.data;
- psys_flush_particle_settings(scene, part, PSYS_RECALC_RESET);
- }
-}
-static void rna_Boids_reset_deps(bContext *C, PointerRNA *ptr)
-{
- Scene *scene = CTX_data_scene(C);
- ParticleSettings *part;
-
- if(ptr->type==&RNA_ParticleSystem) {
- ParticleSystem *psys = (ParticleSystem*)ptr->data;
- Object *ob = psys_find_object(scene, psys);
-
- psys->recalc = PSYS_RECALC_RESET;
-
- if(ob) {
- DAG_object_flush_update(scene, ob, OB_RECALC_DATA);
- }
- }
- else {
- part = ptr->id.data;
- psys_flush_particle_settings(scene, part, PSYS_RECALC_RESET);
- DAG_scene_sort(scene);
- }
-}
-
-static StructRNA* rna_BoidRule_refine(struct PointerRNA *ptr)
-{
- BoidRule *rule= (BoidRule*)ptr->data;
-
- switch(rule->type) {
- case eBoidRuleType_Goal:
- return &RNA_BoidRuleGoal;
- case eBoidRuleType_Avoid:
- return &RNA_BoidRuleAvoid;
- case eBoidRuleType_AvoidCollision:
- return &RNA_BoidRuleAvoidCollision;
- case eBoidRuleType_FollowLeader:
- return &RNA_BoidRuleFollowLeader;
- case eBoidRuleType_AverageSpeed:
- return &RNA_BoidRuleAverageSpeed;
- case eBoidRuleType_Fight:
- return &RNA_BoidRuleFight;
- default:
- return &RNA_BoidRule;
- }
-}
-
-static char *rna_BoidRule_path(PointerRNA *ptr)
-{
- return BLI_sprintfN("rules[%s]", ((BoidRule*)ptr->data)->name); // XXX not unique
-}
-
-static PointerRNA rna_BoidState_active_boid_rule_get(PointerRNA *ptr)
-{
- BoidState *state= (BoidState*)ptr->data;
- BoidRule *rule = (BoidRule*)state->rules.first;
-
- for(; rule; rule=rule->next) {
- if(rule->flag & BOIDRULE_CURRENT)
- return rna_pointer_inherit_refine(ptr, &RNA_BoidRule, rule);
- }
- return rna_pointer_inherit_refine(ptr, &RNA_BoidRule, NULL);
-}
-static void rna_BoidState_active_boid_rule_index_range(PointerRNA *ptr, int *min, int *max)
-{
- BoidState *state= (BoidState*)ptr->data;
- *min= 0;
- *max= BLI_countlist(&state->rules)-1;
- *max= MAX2(0, *max);
-}
-
-static int rna_BoidState_active_boid_rule_index_get(PointerRNA *ptr)
-{
- BoidState *state= (BoidState*)ptr->data;
- BoidRule *rule = (BoidRule*)state->rules.first;
- int i=0;
-
- for(; rule; rule=rule->next, i++) {
- if(rule->flag & BOIDRULE_CURRENT)
- return i;
- }
- return 0;
-}
-
-static void rna_BoidState_active_boid_rule_index_set(struct PointerRNA *ptr, int value)
-{
- BoidState *state= (BoidState*)ptr->data;
- BoidRule *rule = (BoidRule*)state->rules.first;
- int i=0;
-
- for(; rule; rule=rule->next, i++) {
- if(i==value)
- rule->flag |= BOIDRULE_CURRENT;
- else
- rule->flag &= ~BOIDRULE_CURRENT;
- }
-}
-
-static PointerRNA rna_BoidSettings_active_boid_state_get(PointerRNA *ptr)
-{
- BoidSettings *boids= (BoidSettings*)ptr->data;
- BoidState *state = (BoidState*)boids->states.first;
-
- for(; state; state=state->next) {
- if(state->flag & BOIDSTATE_CURRENT)
- return rna_pointer_inherit_refine(ptr, &RNA_BoidState, state);
- }
- return rna_pointer_inherit_refine(ptr, &RNA_BoidState, NULL);
-}
-static void rna_BoidSettings_active_boid_state_index_range(PointerRNA *ptr, int *min, int *max)
-{
- BoidSettings *boids= (BoidSettings*)ptr->data;
- *min= 0;
- *max= BLI_countlist(&boids->states)-1;
- *max= MAX2(0, *max);
-}
-
-static int rna_BoidSettings_active_boid_state_index_get(PointerRNA *ptr)
-{
- BoidSettings *boids= (BoidSettings*)ptr->data;
- BoidState *state = (BoidState*)boids->states.first;
- int i=0;
-
- for(; state; state=state->next, i++) {
- if(state->flag & BOIDSTATE_CURRENT)
- return i;
- }
- return 0;
-}
-
-static void rna_BoidSettings_active_boid_state_index_set(struct PointerRNA *ptr, int value)
-{
- BoidSettings *boids= (BoidSettings*)ptr->data;
- BoidState *state = (BoidState*)boids->states.first;
- int i=0;
-
- for(; state; state=state->next, i++) {
- if(i==value)
- state->flag |= BOIDSTATE_CURRENT;
- else
- state->flag &= ~BOIDSTATE_CURRENT;
- }
-}
-
-#else
-
-static void rna_def_boidrule_goal(BlenderRNA *brna)
-{
- StructRNA *srna;
- PropertyRNA *prop;
-
- srna= RNA_def_struct(brna, "BoidRuleGoal", "BoidRule");
- RNA_def_struct_ui_text(srna, "Goal", "");
- RNA_def_struct_sdna(srna, "BoidRuleGoalAvoid");
-
- prop= RNA_def_property(srna, "object", PROP_POINTER, PROP_NONE);
- RNA_def_property_pointer_sdna(prop, NULL, "ob");
- RNA_def_property_flag(prop, PROP_EDITABLE);
- RNA_def_property_ui_text(prop, "Object", "Goal object.");
- RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset_deps");
-
- prop= RNA_def_property(srna, "predict", PROP_BOOLEAN, PROP_NONE);
- RNA_def_property_boolean_sdna(prop, NULL, "options", BRULE_GOAL_AVOID_PREDICT);
- RNA_def_property_ui_text(prop, "Predict", "Predict target movement.");
- RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
-}
-
-static void rna_def_boidrule_avoid(BlenderRNA *brna)
-{
- StructRNA *srna;
- PropertyRNA *prop;
-
- srna= RNA_def_struct(brna, "BoidRuleAvoid", "BoidRule");
- RNA_def_struct_ui_text(srna, "Avoid", "");
- RNA_def_struct_sdna(srna, "BoidRuleGoalAvoid");
-
- prop= RNA_def_property(srna, "object", PROP_POINTER, PROP_NONE);
- RNA_def_property_pointer_sdna(prop, NULL, "ob");
- RNA_def_property_flag(prop, PROP_EDITABLE);
- RNA_def_property_ui_text(prop, "Object", "Object to avoid.");
- RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset_deps");
-
- prop= RNA_def_property(srna, "predict", PROP_BOOLEAN, PROP_NONE);
- RNA_def_property_boolean_sdna(prop, NULL, "options", BRULE_GOAL_AVOID_PREDICT);
- RNA_def_property_ui_text(prop, "Predict", "Predict target movement.");
- RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
-
- prop= RNA_def_property(srna, "fear_factor", PROP_FLOAT, PROP_NONE);
- RNA_def_property_range(prop, 0.0f, 100.0f);
- RNA_def_property_ui_text(prop, "Fear factor", "Avoid object if danger from it is above this threshol.");
- RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
-}
-
-static void rna_def_boidrule_avoid_collision(BlenderRNA *brna)
-{
- StructRNA *srna;
- PropertyRNA *prop;
-
- srna= RNA_def_struct(brna, "BoidRuleAvoidCollision", "BoidRule");
- RNA_def_struct_ui_text(srna, "Avoid Collision", "");
-
- prop= RNA_def_property(srna, "boids", PROP_BOOLEAN, PROP_NONE);
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list