Changeset View
Changeset View
Standalone View
Standalone View
source/blender/makesrna/intern/rna_modifier.c
- This file is larger than 256 KB, so syntax highlighting is disabled by default.
| Show All 38 Lines | |||||
| #include "BKE_animsys.h" | #include "BKE_animsys.h" | ||||
| #include "BKE_data_transfer.h" | #include "BKE_data_transfer.h" | ||||
| #include "BKE_dynamicpaint.h" | #include "BKE_dynamicpaint.h" | ||||
| #include "BKE_effect.h" | #include "BKE_effect.h" | ||||
| #include "BKE_mesh_mapping.h" | #include "BKE_mesh_mapping.h" | ||||
| #include "BKE_mesh_remap.h" | #include "BKE_mesh_remap.h" | ||||
| #include "BKE_multires.h" | #include "BKE_multires.h" | ||||
| #include "BKE_ocean.h" | #include "BKE_ocean.h" | ||||
| #include "BKE_smoke.h" /* For smokeModifier_free & smokeModifier_createType */ | #include "BKE_manta.h" /* For mantaModifier_free & mantaModifier_createType */ | ||||
| #include "RNA_access.h" | #include "RNA_access.h" | ||||
| #include "RNA_define.h" | #include "RNA_define.h" | ||||
| #include "RNA_enum_types.h" | #include "RNA_enum_types.h" | ||||
| #include "rna_internal.h" | #include "rna_internal.h" | ||||
| #include "WM_api.h" | #include "WM_api.h" | ||||
| ▲ Show 20 Lines • Show All 73 Lines • ▼ Show 20 Lines | const EnumPropertyItem rna_enum_object_modifier_type_items[] = { | ||||
| {eModifierType_SurfaceDeform, "SURFACE_DEFORM", ICON_MOD_MESHDEFORM, "Surface Deform", ""}, | {eModifierType_SurfaceDeform, "SURFACE_DEFORM", ICON_MOD_MESHDEFORM, "Surface Deform", ""}, | ||||
| {eModifierType_Warp, "WARP", ICON_MOD_WARP, "Warp", ""}, | {eModifierType_Warp, "WARP", ICON_MOD_WARP, "Warp", ""}, | ||||
| {eModifierType_Wave, "WAVE", ICON_MOD_WAVE, "Wave", ""}, | {eModifierType_Wave, "WAVE", ICON_MOD_WAVE, "Wave", ""}, | ||||
| {0, "", 0, N_("Simulate"), ""}, | {0, "", 0, N_("Simulate"), ""}, | ||||
| {eModifierType_Cloth, "CLOTH", ICON_MOD_CLOTH, "Cloth", ""}, | {eModifierType_Cloth, "CLOTH", ICON_MOD_CLOTH, "Cloth", ""}, | ||||
| {eModifierType_Collision, "COLLISION", ICON_MOD_PHYSICS, "Collision", ""}, | {eModifierType_Collision, "COLLISION", ICON_MOD_PHYSICS, "Collision", ""}, | ||||
| {eModifierType_DynamicPaint, "DYNAMIC_PAINT", ICON_MOD_DYNAMICPAINT, "Dynamic Paint", ""}, | {eModifierType_DynamicPaint, "DYNAMIC_PAINT", ICON_MOD_DYNAMICPAINT, "Dynamic Paint", ""}, | ||||
| {eModifierType_Explode, "EXPLODE", ICON_MOD_EXPLODE, "Explode", ""}, | {eModifierType_Explode, "EXPLODE", ICON_MOD_EXPLODE, "Explode", ""}, | ||||
| {eModifierType_Fluidsim, "FLUID_SIMULATION", ICON_MOD_FLUIDSIM, "Fluid Simulation", ""}, | |||||
| {eModifierType_Ocean, "OCEAN", ICON_MOD_OCEAN, "Ocean", ""}, | {eModifierType_Ocean, "OCEAN", ICON_MOD_OCEAN, "Ocean", ""}, | ||||
| {eModifierType_ParticleInstance, | {eModifierType_ParticleInstance, | ||||
| "PARTICLE_INSTANCE", | "PARTICLE_INSTANCE", | ||||
| ICON_MOD_PARTICLE_INSTANCE, | ICON_MOD_PARTICLE_INSTANCE, | ||||
| "Particle Instance", | "Particle Instance", | ||||
| ""}, | ""}, | ||||
| {eModifierType_ParticleSystem, "PARTICLE_SYSTEM", ICON_MOD_PARTICLES, "Particle System", ""}, | {eModifierType_ParticleSystem, "PARTICLE_SYSTEM", ICON_MOD_PARTICLES, "Particle System", ""}, | ||||
| {eModifierType_Smoke, "SMOKE", ICON_MOD_SMOKE, "Smoke", ""}, | {eModifierType_Manta, "MANTA", ICON_MOD_MANTA, "Fluid Simulation", ""}, | ||||
| {eModifierType_Softbody, "SOFT_BODY", ICON_MOD_SOFT, "Soft Body", ""}, | {eModifierType_Softbody, "SOFT_BODY", ICON_MOD_SOFT, "Soft Body", ""}, | ||||
| {eModifierType_Surface, "SURFACE", ICON_MODIFIER, "Surface", ""}, | {eModifierType_Surface, "SURFACE", ICON_MODIFIER, "Surface", ""}, | ||||
| {0, NULL, 0, NULL, NULL}, | {0, NULL, 0, NULL, NULL}, | ||||
| }; | }; | ||||
| const EnumPropertyItem rna_enum_modifier_triangulate_quad_method_items[] = { | const EnumPropertyItem rna_enum_modifier_triangulate_quad_method_items[] = { | ||||
| {MOD_TRIANGULATE_QUAD_BEAUTY, | {MOD_TRIANGULATE_QUAD_BEAUTY, | ||||
| "BEAUTY", | "BEAUTY", | ||||
| ▲ Show 20 Lines • Show All 277 Lines • ▼ Show 20 Lines | const EnumPropertyItem rna_enum_axis_flag_xyz_items[] = { | ||||
| {(1 << 2), "Z", 0, "Z", ""}, | {(1 << 2), "Z", 0, "Z", ""}, | ||||
| {0, NULL, 0, NULL, NULL}, | {0, NULL, 0, NULL, NULL}, | ||||
| }; | }; | ||||
| #ifdef RNA_RUNTIME | #ifdef RNA_RUNTIME | ||||
| # include "DNA_particle_types.h" | # include "DNA_particle_types.h" | ||||
| # include "DNA_curve_types.h" | # include "DNA_curve_types.h" | ||||
| # include "DNA_smoke_types.h" | # include "DNA_manta_types.h" | ||||
| # include "BKE_cachefile.h" | # include "BKE_cachefile.h" | ||||
| # include "BKE_context.h" | # include "BKE_context.h" | ||||
| # include "BKE_mesh_runtime.h" | # include "BKE_mesh_runtime.h" | ||||
| # include "BKE_modifier.h" | # include "BKE_modifier.h" | ||||
| # include "BKE_object.h" | # include "BKE_object.h" | ||||
| # include "BKE_particle.h" | # include "BKE_particle.h" | ||||
| ▲ Show 20 Lines • Show All 64 Lines • ▼ Show 20 Lines | switch ((ModifierType)md->type) { | ||||
| case eModifierType_Cloth: | case eModifierType_Cloth: | ||||
| return &RNA_ClothModifier; | return &RNA_ClothModifier; | ||||
| case eModifierType_Collision: | case eModifierType_Collision: | ||||
| return &RNA_CollisionModifier; | return &RNA_CollisionModifier; | ||||
| case eModifierType_Bevel: | case eModifierType_Bevel: | ||||
| return &RNA_BevelModifier; | return &RNA_BevelModifier; | ||||
| case eModifierType_Shrinkwrap: | case eModifierType_Shrinkwrap: | ||||
| return &RNA_ShrinkwrapModifier; | return &RNA_ShrinkwrapModifier; | ||||
| case eModifierType_Fluidsim: | |||||
| return &RNA_FluidSimulationModifier; | |||||
| case eModifierType_Mask: | case eModifierType_Mask: | ||||
| return &RNA_MaskModifier; | return &RNA_MaskModifier; | ||||
| case eModifierType_SimpleDeform: | case eModifierType_SimpleDeform: | ||||
| return &RNA_SimpleDeformModifier; | return &RNA_SimpleDeformModifier; | ||||
| case eModifierType_Multires: | case eModifierType_Multires: | ||||
| return &RNA_MultiresModifier; | return &RNA_MultiresModifier; | ||||
| case eModifierType_Surface: | case eModifierType_Surface: | ||||
| return &RNA_SurfaceModifier; | return &RNA_SurfaceModifier; | ||||
| case eModifierType_Smoke: | case eModifierType_Manta: | ||||
| return &RNA_SmokeModifier; | return &RNA_MantaModifier; | ||||
| case eModifierType_Solidify: | case eModifierType_Solidify: | ||||
| return &RNA_SolidifyModifier; | return &RNA_SolidifyModifier; | ||||
| case eModifierType_Screw: | case eModifierType_Screw: | ||||
| return &RNA_ScrewModifier; | return &RNA_ScrewModifier; | ||||
| case eModifierType_Ocean: | case eModifierType_Ocean: | ||||
| return &RNA_OceanModifier; | return &RNA_OceanModifier; | ||||
| case eModifierType_Warp: | case eModifierType_Warp: | ||||
| return &RNA_WarpModifier; | return &RNA_WarpModifier; | ||||
| Show All 29 Lines | case eModifierType_CorrectiveSmooth: | ||||
| return &RNA_CorrectiveSmoothModifier; | return &RNA_CorrectiveSmoothModifier; | ||||
| case eModifierType_MeshSequenceCache: | case eModifierType_MeshSequenceCache: | ||||
| return &RNA_MeshSequenceCacheModifier; | return &RNA_MeshSequenceCacheModifier; | ||||
| case eModifierType_SurfaceDeform: | case eModifierType_SurfaceDeform: | ||||
| return &RNA_SurfaceDeformModifier; | return &RNA_SurfaceDeformModifier; | ||||
| case eModifierType_WeightedNormal: | case eModifierType_WeightedNormal: | ||||
| return &RNA_WeightedNormalModifier; | return &RNA_WeightedNormalModifier; | ||||
| /* Default */ | /* Default */ | ||||
| case eModifierType_Fluidsim: /* deprecated */ | |||||
| case eModifierType_None: | case eModifierType_None: | ||||
| case eModifierType_ShapeKey: | case eModifierType_ShapeKey: | ||||
| case NUM_MODIFIER_TYPES: | case NUM_MODIFIER_TYPES: | ||||
| return &RNA_Modifier; | return &RNA_Modifier; | ||||
| } | } | ||||
| return &RNA_Modifier; | return &RNA_Modifier; | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 251 Lines • ▼ Show 20 Lines | static void rna_UVProjector_object_set(PointerRNA *ptr, | ||||
| id_lib_extern((ID *)ob); | id_lib_extern((ID *)ob); | ||||
| *ob_p = ob; | *ob_p = ob; | ||||
| } | } | ||||
| # undef RNA_MOD_OBJECT_SET | # undef RNA_MOD_OBJECT_SET | ||||
| /* Other rna callbacks */ | /* Other rna callbacks */ | ||||
| static void rna_Smoke_set_type(Main *bmain, Scene *scene, PointerRNA *ptr) | static void rna_manta_set_type(Main *bmain, Scene *scene, PointerRNA *ptr) | ||||
| { | { | ||||
| SmokeModifierData *smd = (SmokeModifierData *)ptr->data; | MantaModifierData *mmd = (MantaModifierData *)ptr->data; | ||||
| Object *ob = (Object *)ptr->owner_id; | Object *ob = (Object *)ptr->owner_id; | ||||
| /* nothing changed */ | /* nothing changed */ | ||||
| if ((smd->type & MOD_SMOKE_TYPE_DOMAIN) && smd->domain) { | if ((mmd->type & MOD_MANTA_TYPE_DOMAIN) && mmd->domain) { | ||||
| return; | return; | ||||
| } | } | ||||
| smokeModifier_free(smd); /* XXX TODO: completely free all 3 pointers */ | mantaModifier_free(mmd); /* XXX TODO: completely free all 3 pointers */ | ||||
| smokeModifier_createType(smd); /* create regarding of selected type */ | mantaModifier_createType(mmd); /* create regarding of selected type */ | ||||
| switch (smd->type) { | switch (mmd->type) { | ||||
| case MOD_SMOKE_TYPE_DOMAIN: | case MOD_MANTA_TYPE_DOMAIN: | ||||
| ob->dt = OB_WIRE; | ob->dt = OB_WIRE; | ||||
| break; | break; | ||||
| case MOD_SMOKE_TYPE_FLOW: | case MOD_MANTA_TYPE_FLOW: | ||||
| case MOD_SMOKE_TYPE_COLL: | case MOD_MANTA_TYPE_EFFEC: | ||||
| case 0: | case 0: | ||||
| default: | default: | ||||
| break; | break; | ||||
| } | } | ||||
| /* update dependency since a domain - other type switch could have happened */ | /* update dependency since a domain - other type switch could have happened */ | ||||
| rna_Modifier_dependency_update(bmain, scene, ptr); | rna_Modifier_dependency_update(bmain, scene, ptr); | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 2,530 Lines • ▼ Show 20 Lines | static void rna_def_modifier_cloth(BlenderRNA *brna) | ||||
| RNA_def_property_ui_text(prop, "Hair Grid Maximum", ""); | RNA_def_property_ui_text(prop, "Hair Grid Maximum", ""); | ||||
| prop = RNA_def_property(srna, "hair_grid_resolution", PROP_INT, PROP_NONE); | prop = RNA_def_property(srna, "hair_grid_resolution", PROP_INT, PROP_NONE); | ||||
| RNA_def_property_int_sdna(prop, NULL, "hair_grid_res"); | RNA_def_property_int_sdna(prop, NULL, "hair_grid_res"); | ||||
| RNA_def_property_clear_flag(prop, PROP_EDITABLE); | RNA_def_property_clear_flag(prop, PROP_EDITABLE); | ||||
| RNA_def_property_ui_text(prop, "Hair Grid Resolution", ""); | RNA_def_property_ui_text(prop, "Hair Grid Resolution", ""); | ||||
| } | } | ||||
| static void rna_def_modifier_smoke(BlenderRNA *brna) | static void rna_def_modifier_manta(BlenderRNA *brna) | ||||
| { | { | ||||
| StructRNA *srna; | StructRNA *srna; | ||||
| PropertyRNA *prop; | PropertyRNA *prop; | ||||
| static const EnumPropertyItem prop_smoke_type_items[] = { | static const EnumPropertyItem prop_manta_type_items[] = { | ||||
| {0, "NONE", 0, "None", ""}, | {0, "NONE", 0, "None", ""}, | ||||
| {MOD_SMOKE_TYPE_DOMAIN, "DOMAIN", 0, "Domain", ""}, | {MOD_MANTA_TYPE_DOMAIN, "DOMAIN", 0, "Domain", ""}, | ||||
| {MOD_SMOKE_TYPE_FLOW, "FLOW", 0, "Flow", "Inflow/Outflow"}, | {MOD_MANTA_TYPE_FLOW, "FLOW", 0, "Flow", "Inflow/Outflow"}, | ||||
| {MOD_SMOKE_TYPE_COLL, "COLLISION", 0, "Collision", ""}, | {MOD_MANTA_TYPE_EFFEC, "EFFECTOR", 0, "Effector", ""}, | ||||
| {0, NULL, 0, NULL, NULL}, | {0, NULL, 0, NULL, NULL}, | ||||
| }; | }; | ||||
| srna = RNA_def_struct(brna, "SmokeModifier", "Modifier"); | srna = RNA_def_struct(brna, "MantaModifier", "Modifier"); | ||||
| RNA_def_struct_ui_text(srna, "Smoke Modifier", "Smoke simulation modifier"); | RNA_def_struct_ui_text(srna, "Manta Modifier", "Fluid simulation modifier"); | ||||
| RNA_def_struct_sdna(srna, "SmokeModifierData"); | RNA_def_struct_sdna(srna, "MantaModifierData"); | ||||
| RNA_def_struct_ui_icon(srna, ICON_MOD_SMOKE); | RNA_def_struct_ui_icon(srna, ICON_MOD_MANTA); | ||||
| prop = RNA_def_property(srna, "domain_settings", PROP_POINTER, PROP_NONE); | prop = RNA_def_property(srna, "domain_settings", PROP_POINTER, PROP_NONE); | ||||
| RNA_def_property_pointer_sdna(prop, NULL, "domain"); | RNA_def_property_pointer_sdna(prop, NULL, "domain"); | ||||
| RNA_def_property_ui_text(prop, "Domain Settings", ""); | RNA_def_property_ui_text(prop, "Domain Settings", ""); | ||||
| prop = RNA_def_property(srna, "flow_settings", PROP_POINTER, PROP_NONE); | prop = RNA_def_property(srna, "flow_settings", PROP_POINTER, PROP_NONE); | ||||
| RNA_def_property_pointer_sdna(prop, NULL, "flow"); | RNA_def_property_pointer_sdna(prop, NULL, "flow"); | ||||
| RNA_def_property_ui_text(prop, "Flow Settings", ""); | RNA_def_property_ui_text(prop, "Flow Settings", ""); | ||||
| prop = RNA_def_property(srna, "coll_settings", PROP_POINTER, PROP_NONE); | prop = RNA_def_property(srna, "effec_settings", PROP_POINTER, PROP_NONE); | ||||
| RNA_def_property_pointer_sdna(prop, NULL, "coll"); | RNA_def_property_pointer_sdna(prop, NULL, "effec"); | ||||
| RNA_def_property_ui_text(prop, "Collision Settings", ""); | RNA_def_property_ui_text(prop, "Effector Settings", ""); | ||||
| prop = RNA_def_property(srna, "smoke_type", PROP_ENUM, PROP_NONE); | prop = RNA_def_property(srna, "type", PROP_ENUM, PROP_NONE); | ||||
| RNA_def_property_enum_sdna(prop, NULL, "type"); | RNA_def_property_enum_sdna(prop, NULL, "type"); | ||||
| RNA_def_property_enum_items(prop, prop_smoke_type_items); | RNA_def_property_enum_items(prop, prop_manta_type_items); | ||||
| RNA_def_property_ui_text(prop, "Type", ""); | RNA_def_property_ui_text(prop, "Type", ""); | ||||
| RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); | RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); | ||||
| RNA_def_property_update(prop, 0, "rna_Smoke_set_type"); | RNA_def_property_update(prop, 0, "rna_manta_set_type"); | ||||
| } | } | ||||
| static void rna_def_modifier_dynamic_paint(BlenderRNA *brna) | static void rna_def_modifier_dynamic_paint(BlenderRNA *brna) | ||||
| { | { | ||||
| StructRNA *srna; | StructRNA *srna; | ||||
| PropertyRNA *prop; | PropertyRNA *prop; | ||||
| srna = RNA_def_struct(brna, "DynamicPaintModifier", "Modifier"); | srna = RNA_def_struct(brna, "DynamicPaintModifier", "Modifier"); | ||||
| ▲ Show 20 Lines • Show All 375 Lines • ▼ Show 20 Lines | static void rna_def_modifier_shrinkwrap(BlenderRNA *brna) | ||||
| RNA_def_property_update(prop, 0, "rna_Modifier_update"); | RNA_def_property_update(prop, 0, "rna_Modifier_update"); | ||||
| prop = RNA_def_property(srna, "invert_vertex_group", PROP_BOOLEAN, PROP_NONE); | prop = RNA_def_property(srna, "invert_vertex_group", PROP_BOOLEAN, PROP_NONE); | ||||
| RNA_def_property_boolean_sdna(prop, NULL, "shrinkOpts", MOD_SHRINKWRAP_INVERT_VGROUP); | RNA_def_property_boolean_sdna(prop, NULL, "shrinkOpts", MOD_SHRINKWRAP_INVERT_VGROUP); | ||||
| RNA_def_property_ui_text(prop, "Invert", "Invert vertex group influence"); | RNA_def_property_ui_text(prop, "Invert", "Invert vertex group influence"); | ||||
| RNA_def_property_update(prop, 0, "rna_Modifier_update"); | RNA_def_property_update(prop, 0, "rna_Modifier_update"); | ||||
| } | } | ||||
| static void rna_def_modifier_fluidsim(BlenderRNA *brna) | |||||
| { | |||||
| StructRNA *srna; | |||||
| PropertyRNA *prop; | |||||
| srna = RNA_def_struct(brna, "FluidSimulationModifier", "Modifier"); | |||||
| RNA_def_struct_ui_text(srna, "Fluid Simulation Modifier", "Fluid simulation modifier"); | |||||
| RNA_def_struct_sdna(srna, "FluidsimModifierData"); | |||||
| RNA_def_struct_ui_icon(srna, ICON_MOD_FLUIDSIM); | |||||
| prop = RNA_def_property(srna, "settings", PROP_POINTER, PROP_NONE); | |||||
| RNA_def_property_flag(prop, PROP_NEVER_NULL); | |||||
| RNA_def_property_pointer_sdna(prop, NULL, "fss"); | |||||
| RNA_def_property_ui_text( | |||||
| prop, "Settings", "Settings for how this object is used in the fluid simulation"); | |||||
| } | |||||
| static void rna_def_modifier_mask(BlenderRNA *brna) | static void rna_def_modifier_mask(BlenderRNA *brna) | ||||
| { | { | ||||
| StructRNA *srna; | StructRNA *srna; | ||||
| PropertyRNA *prop; | PropertyRNA *prop; | ||||
| static const EnumPropertyItem modifier_mask_mode_items[] = { | static const EnumPropertyItem modifier_mask_mode_items[] = { | ||||
| {MOD_MASK_MODE_VGROUP, "VERTEX_GROUP", 0, "Vertex Group", ""}, | {MOD_MASK_MODE_VGROUP, "VERTEX_GROUP", 0, "Vertex Group", ""}, | ||||
| {MOD_MASK_MODE_ARM, "ARMATURE", 0, "Armature", ""}, | {MOD_MASK_MODE_ARM, "ARMATURE", 0, "Armature", ""}, | ||||
| ▲ Show 20 Lines • Show All 2,180 Lines • ▼ Show 20 Lines | void RNA_def_modifier(BlenderRNA *brna) | ||||
| rna_def_modifier_meshdeform(brna); | rna_def_modifier_meshdeform(brna); | ||||
| rna_def_modifier_particlesystem(brna); | rna_def_modifier_particlesystem(brna); | ||||
| rna_def_modifier_particleinstance(brna); | rna_def_modifier_particleinstance(brna); | ||||
| rna_def_modifier_explode(brna); | rna_def_modifier_explode(brna); | ||||
| rna_def_modifier_cloth(brna); | rna_def_modifier_cloth(brna); | ||||
| rna_def_modifier_collision(brna); | rna_def_modifier_collision(brna); | ||||
| rna_def_modifier_bevel(brna); | rna_def_modifier_bevel(brna); | ||||
| rna_def_modifier_shrinkwrap(brna); | rna_def_modifier_shrinkwrap(brna); | ||||
| rna_def_modifier_fluidsim(brna); | |||||
| rna_def_modifier_mask(brna); | rna_def_modifier_mask(brna); | ||||
| rna_def_modifier_simpledeform(brna); | rna_def_modifier_simpledeform(brna); | ||||
| rna_def_modifier_warp(brna); | rna_def_modifier_warp(brna); | ||||
| rna_def_modifier_multires(brna); | rna_def_modifier_multires(brna); | ||||
| rna_def_modifier_surface(brna); | rna_def_modifier_surface(brna); | ||||
| rna_def_modifier_smoke(brna); | rna_def_modifier_manta(brna); | ||||
| rna_def_modifier_solidify(brna); | rna_def_modifier_solidify(brna); | ||||
| rna_def_modifier_screw(brna); | rna_def_modifier_screw(brna); | ||||
| rna_def_modifier_uvwarp(brna); | rna_def_modifier_uvwarp(brna); | ||||
| rna_def_modifier_weightvgedit(brna); | rna_def_modifier_weightvgedit(brna); | ||||
| rna_def_modifier_weightvgmix(brna); | rna_def_modifier_weightvgmix(brna); | ||||
| rna_def_modifier_weightvgproximity(brna); | rna_def_modifier_weightvgproximity(brna); | ||||
| rna_def_modifier_dynamic_paint(brna); | rna_def_modifier_dynamic_paint(brna); | ||||
| rna_def_modifier_ocean(brna); | rna_def_modifier_ocean(brna); | ||||
| Show All 15 Lines | |||||