61 static void rna_ClothSettings_bending_set(
struct PointerRNA *
ptr,
float value)
73 static void rna_ClothSettings_max_bend_set(
struct PointerRNA *
ptr,
float value)
78 if (value < settings->bending) {
85 static void rna_ClothSettings_tension_set(
struct PointerRNA *
ptr,
float value)
97 static void rna_ClothSettings_max_tension_set(
struct PointerRNA *
ptr,
float value)
102 if (value < settings->tension) {
109 static void rna_ClothSettings_compression_set(
struct PointerRNA *
ptr,
float value)
121 static void rna_ClothSettings_max_compression_set(
struct PointerRNA *
ptr,
float value)
126 if (value < settings->compression) {
133 static void rna_ClothSettings_shear_set(
struct PointerRNA *
ptr,
float value)
137 settings->
shear = value;
145 static void rna_ClothSettings_max_shear_set(
struct PointerRNA *
ptr,
float value)
150 if (value < settings->shear) {
151 value = settings->
shear;
157 static void rna_ClothSettings_max_sewing_set(
struct PointerRNA *
ptr,
float value)
169 static void rna_ClothSettings_shrink_min_set(
struct PointerRNA *
ptr,
float value)
181 static void rna_ClothSettings_shrink_max_set(
struct PointerRNA *
ptr,
float value)
186 if (value < settings->shrink_min) {
193 static void rna_ClothSettings_internal_tension_set(
struct PointerRNA *
ptr,
float value)
205 static void rna_ClothSettings_max_internal_tension_set(
struct PointerRNA *
ptr,
float value)
210 if (value < settings->internal_tension) {
217 static void rna_ClothSettings_internal_compression_set(
struct PointerRNA *
ptr,
float value)
229 static void rna_ClothSettings_max_internal_compression_set(
struct PointerRNA *
ptr,
float value)
234 if (value < settings->internal_compression) {
241 static void rna_ClothSettings_mass_vgroup_get(
PointerRNA *
ptr,
char *value)
247 static int rna_ClothSettings_mass_vgroup_length(
PointerRNA *
ptr)
253 static void rna_ClothSettings_mass_vgroup_set(
PointerRNA *
ptr,
const char *value)
259 static void rna_ClothSettings_shrink_vgroup_get(
PointerRNA *
ptr,
char *value)
265 static int rna_ClothSettings_shrink_vgroup_length(
PointerRNA *
ptr)
271 static void rna_ClothSettings_shrink_vgroup_set(
PointerRNA *
ptr,
const char *value)
277 static void rna_ClothSettings_struct_vgroup_get(
PointerRNA *
ptr,
char *value)
283 static int rna_ClothSettings_struct_vgroup_length(
PointerRNA *
ptr)
289 static void rna_ClothSettings_struct_vgroup_set(
PointerRNA *
ptr,
const char *value)
295 static void rna_ClothSettings_shear_vgroup_get(
PointerRNA *
ptr,
char *value)
301 static int rna_ClothSettings_shear_vgroup_length(
PointerRNA *
ptr)
307 static void rna_ClothSettings_shear_vgroup_set(
PointerRNA *
ptr,
const char *value)
313 static void rna_ClothSettings_bend_vgroup_get(
PointerRNA *
ptr,
char *value)
319 static int rna_ClothSettings_bend_vgroup_length(
PointerRNA *
ptr)
325 static void rna_ClothSettings_bend_vgroup_set(
PointerRNA *
ptr,
const char *value)
331 static void rna_ClothSettings_internal_vgroup_get(
PointerRNA *
ptr,
char *value)
337 static int rna_ClothSettings_internal_vgroup_length(
PointerRNA *
ptr)
343 static void rna_ClothSettings_internal_vgroup_set(
PointerRNA *
ptr,
const char *value)
349 static void rna_ClothSettings_pressure_vgroup_get(
PointerRNA *
ptr,
char *value)
355 static int rna_ClothSettings_pressure_vgroup_length(
PointerRNA *
ptr)
361 static void rna_ClothSettings_pressure_vgroup_set(
PointerRNA *
ptr,
const char *value)
367 static void rna_CollSettings_selfcol_vgroup_get(
PointerRNA *
ptr,
char *value)
373 static int rna_CollSettings_selfcol_vgroup_length(
PointerRNA *
ptr)
379 static void rna_CollSettings_selfcol_vgroup_set(
PointerRNA *
ptr,
const char *value)
385 static void rna_CollSettings_objcol_vgroup_get(
PointerRNA *
ptr,
char *value)
391 static int rna_CollSettings_objcol_vgroup_length(
PointerRNA *
ptr)
397 static void rna_CollSettings_objcol_vgroup_set(
PointerRNA *
ptr,
const char *value)
411 static void rna_ClothSettings_rest_shape_key_set(
PointerRNA *
ptr,
421 static void rna_ClothSettings_gravity_get(
PointerRNA *
ptr,
float *values)
430 static void rna_ClothSettings_gravity_set(
PointerRNA *
ptr,
const float *values)
445 char name_esc[
sizeof(md->name) * 2];
447 return BLI_sprintfN(
"modifiers[\"%s\"].settings", name_esc);
454 static char *rna_ClothCollisionSettings_path(
const PointerRNA *
ptr)
460 char name_esc[
sizeof(md->name) * 2];
462 return BLI_sprintfN(
"modifiers[\"%s\"].collision_settings", name_esc);
469 static int rna_ClothSettings_internal_editable(
struct PointerRNA *
ptr,
const char **r_info)
474 *r_info =
"Only available with angular bending springs.";
494 "The provided data did not satisfy the prerequisites"},
499 "Iterative procedure did not converge"},
504 "The inputs are invalid, or the algorithm has been improperly called"},
564 "Cloth model with linear bending springs (legacy)"},
581 prop,
"Goal Minimum",
"Goal minimum, vertex group weights are scaled to match this range");
588 prop,
"Goal Maximum",
"Goal maximum, vertex group weights are scaled to match this range");
597 "Default Goal (vertex target position) value, when no Vertex Group used");
604 prop,
"Goal Stiffness",
"Goal (vertex target position) spring stiffness");
635 prop,
"Target Density Strength",
"Influence of target density on the simulation");
647 "rna_ClothSettings_mass_vgroup_get",
648 "rna_ClothSettings_mass_vgroup_length",
649 "rna_ClothSettings_mass_vgroup_set");
658 prop,
"rna_ClothSettings_gravity_get",
"rna_ClothSettings_gravity_set",
NULL);
668 prop,
"Air Damping",
"Air has normally some thickness which slows falling things down");
684 "Quality of the simulation in steps per frame (higher is better quality but slower)");
696 "rna_ClothSettings_shrink_vgroup_get",
697 "rna_ClothSettings_shrink_vgroup_length",
698 "rna_ClothSettings_shrink_vgroup_set");
723 prop,
"Voxel Grid Cell Size",
"Size of the voxel grid cells for interaction effects");
731 prop,
"Tension Spring Damping",
"Amount of damping in stretching behavior");
738 prop,
"Compression Spring Damping",
"Amount of damping in compression behavior");
766 prop,
"Compression Stiffness",
"How much the material resists compression");
774 prop,
"Compression Stiffness Maximum",
"Maximum compression stiffness value");
800 "rna_ClothSettings_struct_vgroup_get",
801 "rna_ClothSettings_struct_vgroup_length",
802 "rna_ClothSettings_struct_vgroup_set");
805 "Structural Stiffness Vertex Group",
806 "Vertex group for fine control over structural stiffness");
811 "rna_ClothSettings_shear_vgroup_get",
812 "rna_ClothSettings_shear_vgroup_length",
813 "rna_ClothSettings_shear_vgroup_set");
816 prop,
"Shear Stiffness Vertex Group",
"Vertex group for fine control over shear stiffness");
837 prop,
"Bending Spring Damping",
"Amount of damping in bending behavior");
848 "rna_ClothSettings_bend_vgroup_get",
849 "rna_ClothSettings_bend_vgroup_length",
850 "rna_ClothSettings_bend_vgroup_set");
853 "Bending Stiffness Vertex Group",
854 "Vertex group for fine control over bending stiffness");
866 "rna_ClothSettings_rest_shape_key_get",
867 "rna_ClothSettings_rest_shape_key_set",
872 prop,
"Rest Shape Key",
"Shape key to use the rest spring lengths from");
878 prop,
"Dynamic Base Mesh",
"Make simulation respect deformations in the base mesh");
892 "Create Internal Springs",
893 "Simulate an internal volume structure by creating springs connecting "
894 "the opposite sides of the mesh");
902 "Check Internal Spring Normals",
903 "Require the points the internal springs connect to have opposite "
904 "normal directions");
914 "Internal Spring Max Length",
915 "The maximum length an internal spring can have during creation. If the distance between "
916 "internal points is greater than this, no internal spring will be created between these "
918 "A length of zero means that there is no length limit");
927 "Internal Spring Max Diversion",
928 "How much the rays used to connect the internal points can diverge "
929 "from the vertex normal");
955 prop,
"Compression Stiffness",
"How much the material resists compression");
964 prop,
"Compression Stiffness Maximum",
"Maximum compression stiffness value");
970 "rna_ClothSettings_internal_vgroup_get",
971 "rna_ClothSettings_internal_vgroup_length",
972 "rna_ClothSettings_internal_vgroup_set");
975 "Internal Springs Vertex Group",
976 "Vertex group for fine control over the internal spring stiffness");
992 "Use the Target Volume parameter as the initial volume, instead "
993 "of calculating it from the mesh itself");
1003 "The uniform pressure that is constantly applied to the mesh, in units "
1004 "of Pressure Scale. Can be negative");
1013 "The mesh volume where the inner/outer pressure will be the same. If "
1014 "set to zero the change in volume will not affect pressure");
1022 "Ambient pressure (kPa) that balances out between the inside and "
1023 "outside of the object when it has the target volume");
1032 "Density (kg/l) of the fluid contained inside the object, used to create "
1033 "a hydrostatic pressure gradient simulating the weight of the internal fluid, "
1034 "or buoyancy from the surrounding fluid if negative");
1039 "rna_ClothSettings_pressure_vgroup_get",
1040 "rna_ClothSettings_pressure_vgroup_length",
1041 "rna_ClothSettings_pressure_vgroup_set");
1045 "Pressure Vertex Group",
1046 "Vertex Group for where to apply pressure. Zero weight means no "
1047 "pressure while a weight of one means full pressure. Faces with a vertex "
1048 "that has zero weight will be excluded from the volume calculation");
1079 prop,
"Maximum Spring Extension",
"Maximum extension before spring gets cut");
1093 "Cloth Collision Settings",
1094 "Cloth simulation settings for self collision and collision with other objects");
1113 "Minimum distance between collision objects before collision response takes effect");
1119 prop,
"Friction",
"Friction force if a collision happened (higher = less movement)");
1135 "Collision Quality",
1136 "How many collision iterations should be done. (higher is better quality but slower)");
1145 "Clamp collision impulses to avoid instability (0.0 to disable clamping)");
1160 "Self Minimum Distance",
1161 "Minimum distance between cloth faces before collision response takes effect");
1177 "rna_CollSettings_selfcol_vgroup_get",
1178 "rna_CollSettings_selfcol_vgroup_length",
1179 "rna_CollSettings_selfcol_vgroup_set");
1183 "Selfcollision Vertex Group",
1184 "Triangles with all vertices in this group are not used during self collisions");
1189 "rna_CollSettings_objcol_vgroup_get",
1190 "rna_CollSettings_objcol_vgroup_length",
1191 "rna_CollSettings_objcol_vgroup_set");
1195 "Collision Vertex Group",
1196 "Triangles with all vertices in this group are not used during object collisions");
1205 "Clamp collision impulses to avoid instability (0.0 to disable clamping)");
void cloth_free_modifier(struct ClothModifierData *clmd)
struct ModifierData * BKE_modifiers_findby_type(const struct Object *ob, ModifierType type)
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, size_t dst_maxncpy) ATTR_NONNULL()
void DEG_id_tag_update(struct ID *id, int flag)
void DEG_relations_tag_update(struct Main *bmain)
@ CLOTH_COLLSETTINGS_FLAG_ENABLED
@ CLOTH_COLLSETTINGS_FLAG_SELF
@ CLOTH_SIMSETTINGS_FLAG_DYNAMIC_BASEMESH
@ CLOTH_SIMSETTINGS_FLAG_INTERNAL_SPRINGS_NORMAL
@ CLOTH_SIMSETTINGS_FLAG_PRESSURE_VOL
@ CLOTH_SIMSETTINGS_FLAG_SEW
@ CLOTH_SIMSETTINGS_FLAG_PRESSURE
@ CLOTH_SIMSETTINGS_FLAG_TEARING
@ CLOTH_SIMSETTINGS_FLAG_INTERNAL_SPRINGS
Object is a sort of wrapper for general info.
@ PROPOVERRIDE_OVERRIDABLE_LIBRARY
@ SIM_SOLVER_INVALID_INPUT
@ SIM_SOLVER_NUMERICAL_ISSUE
@ SIM_SOLVER_NO_CONVERGENCE
static void rna_def_cloth_collision_settings(BlenderRNA *brna)
void RNA_def_cloth(BlenderRNA *brna)
static void rna_def_cloth_sim_settings(BlenderRNA *brna)
static void rna_def_cloth_solver_result(BlenderRNA *brna)
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_float_default(PropertyRNA *prop, float value)
void RNA_def_property_float_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range)
void RNA_define_verify_sdna(bool verify)
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_array(PropertyRNA *prop, int length)
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)
void RNA_def_property_editable_func(PropertyRNA *prop, const char *editable)
PropertyRNA * RNA_def_property(StructOrFunctionRNA *cont_, const char *identifier, int type, int subtype)
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_flag(PropertyRNA *prop, PropertyFlag flag)
void RNA_def_property_override_clear_flag(PropertyRNA *prop, PropertyOverrideFlag 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)
int rna_object_shapekey_index_set(struct ID *id, PointerRNA value, int current)
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)
PointerRNA rna_object_shapekey_index_get(struct ID *id, int value)
int rna_object_vgroup_name_index_length(struct PointerRNA *ptr, int index)
float max_internal_tension
float max_internal_compression
float internal_compression
void WM_main_add_notifier(unsigned int type, void *reference)