43 {
PFIELD_SHAPE_LINE,
"LINE", 0,
"Line",
"Field originates from the local Z axis of the object"},
48 "Field originates from the local XY plane of the object"},
53 "Field originates from the surface of the object"},
58 "Field originates from all of the vertices of the object"},
69 {
PFIELD_SHAPE_LINE,
"LINE", 0,
"Line",
"Field originates from the local Z axis of the object"},
74 "Field originates from the local XY plane of the object"},
81 {
PFIELD_SHAPE_LINE,
"LINE", 0,
"Line",
"Field originates from the local Z axis of the object"},
86 "Field originates from the local XY plane of the object"},
136 BLI_assert(!
"Trying to get PTCacheID from an invalid ID type "
137 "(Only scenes and objects are supported).");
157 char name_esc[
sizeof(md->
name) * 2];
164 return BLI_sprintfN(
"modifiers[\"%s\"].particle_system.point_cache", name_esc);
173 if (
surface->pointcache == cache) {
174 char name_surface_esc[
sizeof(
surface->name) * 2];
177 "modifiers[\"%s\"].canvas_settings.canvas_surfaces[\"%s\"].point_cache",
188 return BLI_sprintfN(
"modifiers[\"%s\"].point_cache", name_esc);
195 return BLI_sprintfN(
"modifiers[\"%s\"].point_cache", name_esc);
200 return BLI_sprintfN(
"modifiers[\"%s\"].point_cache", name_esc);
212 if (!rna_Cache_get_valid_owner_ID(
ptr, &ob, &
scene)) {
238 if (!rna_Cache_get_valid_owner_ID(
ptr, &ob, &
scene)) {
260 if (!rna_Cache_get_valid_owner_ID(
ptr, &ob, &
scene)) {
265 bool use_new_name =
true;
285 for (pid = pidlist.
first; pid; pid = pid->
next) {
286 if (pid->
cache == cache) {
292 use_new_name =
false;
321 while (cache->
prev) {
330 static void rna_Cache_active_point_cache_index_range(
339 if (!rna_Cache_get_valid_owner_ID(
ptr, &ob, &
scene)) {
351 static int rna_Cache_active_point_cache_index_get(
PointerRNA *
ptr)
358 if (!rna_Cache_get_valid_owner_ID(
ptr, &ob, &
scene)) {
372 static void rna_Cache_active_point_cache_index_set(
struct PointerRNA *
ptr,
int value)
377 if (!rna_Cache_get_valid_owner_ID(
ptr, &ob, &
scene)) {
389 static void rna_PointCache_frame_step_range(
398 if (!rna_Cache_get_valid_owner_ID(
ptr, &ob, &
scene)) {
415 if (!rna_Cache_get_valid_owner_ID(
ptr, &ob, &
scene)) {
427 return (
int)strlen(cache->
info);
438 char name_esc[
sizeof(md->
name) * 2];
441 return BLI_sprintfN(
"modifiers[\"%s\"].settings", name_esc);
452 static bool rna_SoftBodySettings_use_edges_get(
PointerRNA *
ptr)
458 static void rna_SoftBodySettings_use_edges_set(
PointerRNA *
ptr,
bool value)
469 static bool rna_SoftBodySettings_use_goal_get(
PointerRNA *
ptr)
475 static void rna_SoftBodySettings_use_goal_set(
PointerRNA *
ptr,
bool value)
486 static bool rna_SoftBodySettings_stiff_quads_get(
PointerRNA *
ptr)
492 static void rna_SoftBodySettings_stiff_quads_set(
PointerRNA *
ptr,
bool value)
503 static bool rna_SoftBodySettings_self_collision_get(
PointerRNA *
ptr)
509 static void rna_SoftBodySettings_self_collision_set(
PointerRNA *
ptr,
bool value)
520 static int rna_SoftBodySettings_new_aero_get(
PointerRNA *
ptr)
531 static void rna_SoftBodySettings_new_aero_set(
PointerRNA *
ptr,
int value)
542 static bool rna_SoftBodySettings_face_collision_get(
PointerRNA *
ptr)
548 static void rna_SoftBodySettings_face_collision_set(
PointerRNA *
ptr,
bool value)
559 static bool rna_SoftBodySettings_edge_collision_get(
PointerRNA *
ptr)
565 static void rna_SoftBodySettings_edge_collision_set(
PointerRNA *
ptr,
bool value)
576 static void rna_SoftBodySettings_goal_vgroup_get(
PointerRNA *
ptr,
char *value)
582 static int rna_SoftBodySettings_goal_vgroup_length(
PointerRNA *
ptr)
588 static void rna_SoftBodySettings_goal_vgroup_set(
PointerRNA *
ptr,
const char *value)
594 static void rna_SoftBodySettings_mass_vgroup_set(
PointerRNA *
ptr,
const char *value)
600 static void rna_SoftBodySettings_spring_vgroup_set(
PointerRNA *
ptr,
const char *value)
610 char name_esc[
sizeof(md->
name) * 2];
613 return BLI_sprintfN(
"modifiers[\"%s\"].settings", name_esc);
625 if (particle_id_check(
ptr)) {
665 if (!particle_id_check(
ptr)) {
675 static void rna_FieldSettings_type_set(
PointerRNA *
ptr,
int value)
681 if (!particle_id_check(
ptr)) {
697 if (particle_id_check(
ptr)) {
705 rna_FieldSettings_shape_update(bmain,
scene,
ptr);
724 if (particle_id_check(
ptr)) {
728 if (part->
pd == pd) {
731 else if (part->
pd2 == pd) {
763 static void rna_EffectorWeight_dependency_update(
Main *bmain,
779 if (particle_id_check(
ptr)) {
795 return BLI_strdup(
"rigidbody_world.effector_weights");
807 char name_esc[
sizeof(md->
name) * 2];
809 return BLI_sprintfN(
"modifiers[\"%s\"].settings.effector_weights", name_esc);
818 char name_esc[
sizeof(md->
name) * 2];
820 return BLI_sprintfN(
"modifiers[\"%s\"].settings.effector_weights", name_esc);
830 char name_esc[
sizeof(md->
name) * 2];
832 return BLI_sprintfN(
"modifiers[\"%s\"].domain_settings.effector_weights", name_esc);
845 if (
surface->effector_weights == ew) {
846 char name_esc[
sizeof(md->
name) * 2];
847 char name_esc_surface[
sizeof(
surface->name) * 2];
852 "modifiers[\"%s\"].canvas_settings.canvas_surfaces[\"%s\"]"
878 static void rna_CollisionSettings_update(
Main *
UNUSED(bmain),
899 rna_softbody_update(bmain,
scene,
ptr);
909 if (particle_id_check(
ptr)) {
910 return empty_shape_items;
917 return curve_vortex_shape_items;
920 return curve_shape_items;
924 return vortex_shape_items;
931 return empty_vortex_shape_items;
934 return empty_shape_items;
995 prop,
"Disk Cache",
"Save cache files to disk (.blend file must be saved first)");
1046 "Use this file's path for the disk cache when library linked into another file "
1047 "(for local bakes per scene file, disable this option)");
1068 "rna_Cache_active_point_cache_index_get",
1069 "rna_Cache_active_point_cache_index_set",
1070 "rna_Cache_active_point_cache_index_range");
1102 "rna_Cache_list_begin",
1103 "rna_iterator_listbase_next",
1104 "rna_iterator_listbase_end",
1105 "rna_iterator_listbase_get",
1125 srna,
"Collision Settings",
"Collision settings for object in physics simulation");
1130 prop,
"Enabled",
"Enable this objects as a collider for physics systems");
1151 prop,
"Friction Factor",
"Amount of friction during particle collision");
1164 prop,
"Permeability",
"Chance that the particle will pass through the mesh");
1184 prop,
"Inner Thickness",
"Inner face thickness (only used by softbodies)");
1205 "How much of effector force gets lost during collision with this object (in percent)");
1219 "Cloth collision acts with respect to the collider normals (improves penetration recovery)");
1226 "Cloth collision impulses act in the direction of the collider normals "
1227 "(more reliable in some cases)");
1369 {0,
"NONE", 0,
"None",
""},
1374 "Radial field toward the center of object"},
1379 "Constant force along the force object's local Z axis"},
1384 "Spiraling force that twists the force object's local Z axis"},
1387 ICON_FORCE_MAGNETIC,
1389 "Forcefield depends on the speed of the particles"},
1392 ICON_FORCE_HARMONIC,
1394 "The source of this force field is the zero point of a harmonic oscillator"},
1399 "Spherical forcefield based on the charge of particles, "
1400 "only influences other charge force fields"},
1403 ICON_FORCE_LENNARDJONES,
1405 "Forcefield based on the Lennard-Jones potential"},
1406 {
PFIELD_TEXTURE,
"TEXTURE", ICON_FORCE_TEXTURE,
"Texture",
"Force field based on a texture"},
1411 "Create a force along a curve object"},
1416 "Create a force that acts as a boid's predators or target"},
1419 ICON_FORCE_TURBULENCE,
1421 "Create turbulence with a noise field"},
1422 {
PFIELD_DRAG,
"DRAG", ICON_FORCE_DRAG,
"Drag",
"Create a force that dampens motion"},
1425 ICON_FORCE_FLUIDFLOW,
1427 "Create a force based on fluid simulation velocities"},
1453 {0,
"NONE", 0,
"Nothing",
""},
1454 {1,
"CURL", 0,
"Curl",
""},
1455 {2,
"RADIAL", 0,
"Radial",
""},
1456 {3,
"WAVE", 0,
"Wave",
""},
1457 {4,
"BRAID", 0,
"Braid",
""},
1458 {5,
"ROTATION", 0,
"Rotation",
""},
1459 {6,
"ROLL", 0,
"Roll",
""},
1467 srna,
"Field Settings",
"Field settings for an object in physics simulation");
1483 prop,
"Shape",
"Which direction is used to calculate the effector force");
1498 "How the texture effect is calculated (RGB and Curl need a RGB texture, "
1499 "else Gradient will be used instead)");
1506 prop,
"Z Direction",
"Effect in full or only positive/negative Z direction");
1535 prop,
"Quadratic Drag",
"Drag component proportional to the square of velocity");
1550 "How much the force is reduced when acting parallel to a surface, e.g. cloth");
1577 prop,
"Falloff Power",
"How quickly strength falls off with distance from the force field");
1597 prop,
"Minimum Radial Distance",
"Minimum radial distance for the field's fall-off");
1604 prop,
"Maximum Radial Distance",
"Maximum radial distance for the field to work");
1611 prop,
"Radial Falloff Power",
"Radial falloff power (real gravitational falloff = 2)");
1618 prop,
"Nabla",
"Defines size of derivative offset used for calculating gradient and curl");
1647 prop,
"Use Min",
"Use a minimum radial distance for the field's fall-off");
1665 prop,
"Use Global Coordinates",
"Use effector/global coordinates for turbulence");
1676 prop,
"Root Texture Coordinates",
"Texture coordinates from root particle locations");
1697 prop,
"Multiple Springs",
"Every point is effected by multiple springs");
1729 prop,
"Minimum Distance",
"The distance from which particles are affected fully");
1741 prop,
"Additive",
"Based on distance/falloff it adds a portion of the entire path");
1747 prop,
"Weights",
"Use curve weights to influence the particle influence along the curve");
1807 {
SBC_MODE_AVG,
"AVERAGE", 0,
"Average",
"Average Spring length * Ball Size"},
1808 {
SBC_MODE_MIN,
"MINIMAL", 0,
"Minimal",
"Minimal Spring length * Ball Size"},
1809 {
SBC_MODE_MAX,
"MAXIMAL", 0,
"Maximal",
"Maximal Spring length * Ball Size"},
1815 {0,
"SIMPLE", 0,
"Simple",
"Edges receive a drag force from surrounding media"},
1820 "Edges receive a lift force when passing through surrounding media"},
1828 srna,
"Soft Body Settings",
"Soft body simulation settings for an object");
1861 prop,
"Speed",
"Tweak timing for physics to control frequency and speed");
1870 "rna_SoftBodySettings_goal_vgroup_get",
1871 "rna_SoftBodySettings_goal_vgroup_length",
1872 "rna_SoftBodySettings_goal_vgroup_set");
1879 prop,
"Goal Minimum",
"Goal minimum, vertex weights are scaled to match this range");
1886 prop,
"Goal Maximum",
"Goal maximum, vertex weights are scaled to match this range");
1900 prop,
"Goal Stiffness",
"Goal (vertex target position) spring stiffness");
1933 prop,
"View Layer",
"Alter spring length to shrink/blow up (unit %) 0 to disable");
1979 prop,
"Ball Size",
"Absolute ball size or factor if not manually adjusted");
2002 "The Runge-Kutta ODE solver error limit, low value gives more precision, "
2003 "high values speed");
2030 "Fuzziness while on collision, high values make collision handling faster "
2042 prop,
"Print Performance to Console",
"Turn on SB diagnose console prints");
2047 prop,
"Estimate Transforms",
"Store the estimated transforms in the soft body settings");
2075 prop,
"rna_SoftBodySettings_use_goal_get",
"rna_SoftBodySettings_use_goal_set");
2078 prop,
"Use Goal",
"Define forces for vertices to stick to animated position");
2083 prop,
"rna_SoftBodySettings_use_edges_get",
"rna_SoftBodySettings_use_edges_set");
2090 prop,
"rna_SoftBodySettings_stiff_quads_get",
"rna_SoftBodySettings_stiff_quads_set");
2097 prop,
"rna_SoftBodySettings_edge_collision_get",
"rna_SoftBodySettings_edge_collision_set");
2103 prop,
"rna_SoftBodySettings_face_collision_get",
"rna_SoftBodySettings_face_collision_set");
2110 prop,
"rna_SoftBodySettings_new_aero_get",
"rna_SoftBodySettings_new_aero_set",
NULL);
2112 prop,
"Aerodynamics Type",
"Method of calculating aerodynamic interaction");
2117 prop,
"rna_SoftBodySettings_self_collision_get",
"rna_SoftBodySettings_self_collision_set");
#define FOREACH_SCENE_OBJECT_END
#define FOREACH_SCENE_OBJECT_BEGIN(scene, _instance)
void id_us_min(struct ID *id)
const ModifierTypeInfo * BKE_modifier_get_info(ModifierType type)
@ eModifierTypeFlag_UsesPointCache
struct ModifierData * BKE_modifiers_findby_type(const struct Object *ob, ModifierType type)
void BKE_ptcache_ids_from_object(struct ListBase *lb, struct Object *ob, struct Scene *scene, int duplis)
void BKE_ptcache_update_info(PTCacheID *pid)
void BKE_ptcache_toggle_disk_cache(struct PTCacheID *pid)
void BKE_ptcache_load_external(struct PTCacheID *pid)
PTCacheID BKE_ptcache_id_find(struct Object *ob, struct Scene *scene, struct PointCache *cache)
#define PTCACHE_TYPE_SMOKE_DOMAIN
int BKE_ptcache_object_reset(struct Scene *scene, struct Object *ob, int mode)
#define PTCACHE_RESET_DEPSGRAPH
void BKE_ptcache_disk_cache_rename(struct PTCacheID *pid, const char *name_src, const char *name_dst)
void void BLI_freelistN(struct ListBase *listbase) ATTR_NONNULL(1)
int BLI_findindex(const struct ListBase *listbase, const void *vlink) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void * BLI_findlink(const struct ListBase *listbase, int number) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
int BLI_listbase_count(const struct ListBase *listbase) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
MINLINE int max_ii(int a, int b)
bool BLI_filename_make_safe(char *fname) ATTR_NONNULL(1)
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
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, const size_t maxncpy) ATTR_NONNULL()
void DEG_id_tag_update(struct ID *id, int flag)
void DEG_relations_tag_update(struct Main *bmain)
@ eModifierType_ParticleSystem
@ eModifierType_Collision
@ eModifierType_DynamicPaint
#define PFIELD_SHAPE_LINE
#define PFIELD_SHAPE_SURFACE
#define EFF_WEIGHT_DO_HAIR
#define PFIELD_VISIBILITY
#define PFIELD_SHAPE_POINT
#define PFIELD_SHAPE_PLANE
#define PFIELD_GUIDE_PATH_ADD
#define PFIELD_SHAPE_POINTS
#define PFIELD_CLOTH_USE_NORMAL
#define PFIELD_MULTIPLE_SPRINGS
#define SBC_MODE_AVGMINMAX
#define PFIELD_DO_LOCATION
#define PFIELD_TEX_OBJECT
#define PFIELD_DO_ROTATION
#define PFIELD_CLOTH_USE_CULLING
#define PFIELD_TEX_ROOTCO
#define PFIELD_FALL_SPHERE
#define PFIELD_SMOKE_DENSITY
#define PFIELD_GUIDE_PATH_WEIGHT
#define PFIELD_GRAVITATION
Object is a sort of wrapper for general info.
#define PTCACHE_COMPRESS_NO
#define PTCACHE_DISK_CACHE
#define PTCACHE_FRAMES_SKIPPED
#define PTCACHE_FLAG_INFO_DIRTY
#define PTCACHE_COMPRESS_LZO
#define PTCACHE_IGNORE_LIBPATH
#define PTCACHE_COMPRESS_LZMA
Types and defines for representing Rigid Body entities.
struct ModifierData * ED_object_modifier_add(struct ReportList *reports, struct Main *bmain, struct Scene *scene, struct Object *ob, const char *name, int type)
void ED_object_check_force_modifiers(struct Main *bmain, struct Scene *scene, struct Object *object)
Read Guarded memory(de)allocation.
#define RNA_TRANSLATION_PREC_DEFAULT
@ PROPOVERRIDE_OVERRIDABLE_LIBRARY
struct @203::@204 surface
static const EnumPropertyItem field_type_items[]
void rna_iterator_listbase_begin(CollectionPropertyIterator *iter, ListBase *lb, IteratorSkipFunc skip)
void RNA_def_property_pointer_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_define_lib_overridable(const bool make_overridable)
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_string_funcs(PropertyRNA *prop, const char *get, const char *length, const char *set)
void RNA_def_property_ui_text(PropertyRNA *prop, const char *name, const char *description)
void RNA_def_property_string_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_srna(PropertyRNA *prop, const char *type)
void RNA_def_property_collection_funcs(PropertyRNA *prop, const char *begin, const char *next, const char *end, const char *get, const char *length, const char *lookupint, const char *lookupstring, const char *assignint)
void RNA_def_struct_ui_text(StructRNA *srna, const char *name, const char *description)
void RNA_def_property_boolean_funcs(PropertyRNA *prop, const char *get, const char *set)
void RNA_def_property_multi_array(PropertyRNA *prop, int dimension, const int length[])
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_string_maxlength(PropertyRNA *prop, int maxlength)
void RNA_def_property_struct_type(PropertyRNA *prop, const char *type)
void RNA_def_property_update(PropertyRNA *prop, int noteflag, const char *func)
void RNA_def_property_enum_funcs(PropertyRNA *prop, const char *get, const char *set, const char *item)
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)
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)
const int rna_matrix_dimsize_3x3[]
void RNA_def_struct_ui_icon(StructRNA *srna, int icon)
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_ui_range(PropertyRNA *prop, double min, double max, double step, int precision)
void RNA_def_property_int_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_boolean_negative_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t booleanbit)
void RNA_def_property_override_flag(PropertyRNA *prop, PropertyOverrideFlag flag)
void rna_object_vgroup_name_index_set(struct PointerRNA *ptr, const char *value, short *index)
void rna_object_vgroup_name_index_get(struct PointerRNA *ptr, char *value, int index)
int rna_object_vgroup_name_index_length(struct PointerRNA *ptr, int index)
void rna_object_vgroup_name_set(struct PointerRNA *ptr, const char *value, char *result, int maxlen)
const EnumPropertyItem rna_enum_axis_xyz_items[]
static void rna_def_pointcache_common(StructRNA *srna)
static const EnumPropertyItem effector_shape_items[]
static void rna_def_pointcache_active(BlenderRNA *brna)
static void rna_def_collision(BlenderRNA *brna)
static void rna_def_softbody(BlenderRNA *brna)
static void rna_def_ptcache_point_caches(BlenderRNA *brna, PropertyRNA *cprop)
void RNA_def_object_force(BlenderRNA *brna)
static void rna_def_effector_weight(BlenderRNA *brna)
static void rna_def_field(BlenderRNA *brna)
struct PointCache * point_cache
struct ClothSimSettings * sim_parms
struct EffectorWeights * effector_weights
struct DynamicPaintCanvasSettings * canvas
struct EffectorWeights * effector_weights
struct FluidDomainSettings * domain
struct ModifierData * next
struct PointCache ** cache_ptr
struct ListBase * ptcaches
struct PointCache * cache
struct EffectorWeights * effector_weights
struct ParticleSystem * psys
struct PointCache * pointcache
struct EffectorWeights * effector_weights
struct RigidBodyWorld * rigidbody_world
struct PointCache * pointcache
struct SoftBody_Shared * shared
struct EffectorWeights * effector_weights
char namedVG_Spring_K[64]
void WM_main_add_notifier(unsigned int type, void *reference)