48 "Go to assigned object or loudest assigned signal source"},
53 "Get away from assigned object or loudest assigned signal source"},
58 "Maneuver to avoid collisions with other boids and deflector objects in "
65 "Move to center of neighbors and match their velocity"},
70 "Follow a boid or assigned object"},
75 "Maintain speed, flight level or wander"},
78 {eBoidRuleType_Protect,
82 "Go to enemy closest to target and attack when in range"},
87 "Find a deflector move to its other side from closest enemy"},
88 {eBoidRuleType_FollowPath,
92 "Move along a assigned curve or closest curve in a group"},
93 {eBoidRuleType_FollowWall,
97 "Move next to a deflector object's in direction of its tangent"},
108 "Rules are gone through top to bottom (only the first rule which effect is above "
109 "fuzziness threshold is evaluated)"},
163 switch (rule->
type) {
184 char name_esc[
sizeof(rule->
name) * 2];
196 for (; rule; rule = rule->
next) {
203 static void rna_BoidState_active_boid_rule_index_range(
211 static int rna_BoidState_active_boid_rule_index_get(
PointerRNA *
ptr)
217 for (; rule; rule = rule->
next, i++) {
225 static void rna_BoidState_active_boid_rule_index_set(
struct PointerRNA *
ptr,
int value)
231 for (; rule; rule = rule->
next, i++) {
252 if (particle_id_check(
ptr)) {
274 static void rna_BoidSettings_active_boid_state_index_range(
282 static int rna_BoidSettings_active_boid_state_index_get(
PointerRNA *
ptr)
296 static void rna_BoidSettings_active_boid_state_index_set(
struct PointerRNA *
ptr,
int value)
358 prop,
"Fear Factor",
"Avoid object if danger from it is above this threshold");
367 srna =
RNA_def_struct(brna,
"BoidRuleAvoidCollision",
"BoidRule");
535 "rna_BoidState_active_boid_rule_index_get",
536 "rna_BoidState_active_boid_rule_index_set",
537 "rna_BoidState_active_boid_rule_index_range");
600 "rna_BoidSettings_active_boid_state_index_get",
601 "rna_BoidSettings_active_boid_state_index_set",
602 "rna_BoidSettings_active_boid_state_index_range");
636 prop,
"Min Air Speed",
"Minimum speed in air (relative to maximum speed)");
649 prop,
"Max Air Acceleration",
"Maximum acceleration in air (relative to maximum speed)");
656 "Max Air Angular Velocity",
657 "Maximum angular velocity in air (relative to 180 degrees)");
663 prop,
"Air Personal Space",
"Radius of boids personal space in air (% of particle size)");
681 prop,
"Max Land Acceleration",
"Maximum acceleration on land (relative to maximum speed)");
688 "Max Land Angular Velocity",
689 "Maximum angular velocity on land (relative to 180 degrees)");
695 prop,
"Land Personal Space",
"Radius of boids personal space on land (% of particle size)");
701 prop,
"Land Stick Force",
"How strong a force must be to start effecting a boid on land");
int BLI_listbase_count(const struct ListBase *listbase) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
MINLINE int max_ii(int a, int b)
size_t size_t char * BLI_sprintfN(const char *__restrict format,...) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1) ATTR_MALLOC ATTR_PRINTF_FORMAT(1
size_t size_t char size_t BLI_str_escape(char *__restrict dst, const char *__restrict src, const size_t dst_maxncpy) ATTR_NONNULL()
char * BLI_strdup(const char *str) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL() ATTR_MALLOC
void DEG_id_tag_update(struct ID *id, int flag)
void DEG_relations_tag_update(struct Main *bmain)
#define BRULE_ACOLL_WITH_BOIDS
#define BOIDSTATE_CURRENT
#define BOID_ALLOW_FLIGHT
#define BRULE_ACOLL_WITH_DEFLECTORS
#define BRULE_LEADER_IN_LINE
@ eBoidRulesetType_Average
@ eBoidRulesetType_Random
#define BRULE_GOAL_AVOID_PREDICT
@ eBoidRuleType_FollowLeader
@ eBoidRuleType_AvoidCollision
@ eBoidRuleType_AverageSpeed
Object is a sort of wrapper for general info.
StructRNA RNA_BoidRuleAvoid
StructRNA RNA_BoidRuleAvoidCollision
StructRNA RNA_BoidRuleFollowLeader
StructRNA RNA_ParticleSystem
StructRNA RNA_BoidRuleFight
StructRNA RNA_BoidRuleAverageSpeed
StructRNA RNA_BoidRuleGoal
PointerRNA rna_pointer_inherit_refine(PointerRNA *ptr, StructRNA *type, void *data)
static const EnumPropertyItem boidruleset_type_items[]
void RNA_def_boid(BlenderRNA *brna)
static void rna_def_boidrule_average_speed(BlenderRNA *brna)
const EnumPropertyItem rna_enum_boidrule_type_items[]
static void rna_def_boidrule_avoid(BlenderRNA *brna)
static void rna_def_boidrule_avoid_collision(BlenderRNA *brna)
static void rna_def_boidrule(BlenderRNA *brna)
static void rna_def_boidrule_fight(BlenderRNA *brna)
static void rna_def_boidrule_goal(BlenderRNA *brna)
static void rna_def_boidrule_follow_leader(BlenderRNA *brna)
static void rna_def_boid_settings(BlenderRNA *brna)
static void rna_def_boidstate(BlenderRNA *brna)
void RNA_def_struct_refine_func(StructRNA *srna, const char *refine)
void RNA_def_property_pointer_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_struct_path_func(StructRNA *srna, const char *path)
void RNA_def_property_boolean_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t bit)
void RNA_def_property_ui_text(PropertyRNA *prop, const char *name, const char *description)
void RNA_def_struct_ui_text(StructRNA *srna, const char *name, const char *description)
void RNA_def_property_enum_items(PropertyRNA *prop, const EnumPropertyItem *item)
void RNA_def_struct_sdna(StructRNA *srna, const char *structname)
void RNA_def_property_range(PropertyRNA *prop, double min, double max)
void RNA_def_property_struct_type(PropertyRNA *prop, const char *type)
void RNA_def_property_update(PropertyRNA *prop, int noteflag, const char *func)
PropertyRNA * RNA_def_property(StructOrFunctionRNA *cont_, const char *identifier, int type, int subtype)
void RNA_def_struct_name_property(struct StructRNA *srna, struct PropertyRNA *prop)
void RNA_def_property_clear_flag(PropertyRNA *prop, PropertyFlag flag)
void RNA_def_property_pointer_funcs(PropertyRNA *prop, const char *get, const char *set, const char *type_fn, const char *poll)
StructRNA * RNA_def_struct(BlenderRNA *brna, const char *identifier, const char *from)
void RNA_def_property_enum_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_int_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range)
void RNA_def_property_flag(PropertyRNA *prop, PropertyFlag flag)
void RNA_def_property_float_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_int_sdna(PropertyRNA *prop, const char *structname, const char *propname)
struct BoidSettings * boids
void WM_main_add_notifier(unsigned int type, void *reference)