diff options
Diffstat (limited to 'source/blender/makesrna/intern/rna_modifier.c')
-rw-r--r-- | source/blender/makesrna/intern/rna_modifier.c | 285 |
1 files changed, 180 insertions, 105 deletions
diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c index be1e6a317a2..f207f4f605d 100644 --- a/source/blender/makesrna/intern/rna_modifier.c +++ b/source/blender/makesrna/intern/rna_modifier.c @@ -41,36 +41,37 @@ #include "WM_types.h" EnumPropertyItem modifier_type_items[] ={ - {eModifierType_Armature, "ARMATURE", "Armature", ""}, - {eModifierType_Array, "ARRAY", "Array", ""}, - {eModifierType_Bevel, "BEVEL", "Bevel", ""}, - {eModifierType_Boolean, "BOOLEAN", "Boolean", ""}, - {eModifierType_Build, "BUILD", "Build", ""}, - {eModifierType_Cast, "CAST", "Cast", ""}, - {eModifierType_Cloth, "CLOTH", "Cloth", ""}, - {eModifierType_Collision, "COLLISION", "Collision", ""}, - {eModifierType_Curve, "CURVE", "Curve", ""}, - {eModifierType_Decimate, "DECIMATE", "Decimate", ""}, - {eModifierType_Displace, "DISPLACE", "Displace", ""}, - {eModifierType_EdgeSplit, "EDGE_SPLIT", "Edge Split", ""}, - {eModifierType_Explode, "EXPLODE", "Explode", ""}, - {eModifierType_Fluidsim, "FLUID_SIMULATION", "Fluid Simulation", ""}, - {eModifierType_Hook, "HOOK", "Hook", ""}, - {eModifierType_Lattice, "LATTICE", "Lattice", ""}, - {eModifierType_Mask, "MASK", "Mask", ""}, - {eModifierType_MeshDeform, "MESH_DEFORM", "Mesh Deform", ""}, - {eModifierType_Mirror, "MIRROR", "Mirror", ""}, - {eModifierType_Multires, "MULTIRES", "Multires", ""}, - {eModifierType_ParticleInstance, "PARTICLE_INSTANCE", "Particle Instance", ""}, - {eModifierType_ParticleSystem, "PARTICLE_SYSTEM", "Particle System", ""}, - {eModifierType_Shrinkwrap, "SHRINKWRAP", "Shrinkwrap", ""}, - {eModifierType_SimpleDeform, "SIMPLE_DEFORM", "Simple Deform", ""}, - {eModifierType_Smooth, "SMOOTH", "Smooth", ""}, - {eModifierType_Softbody, "SOFTBODY", "Softbody", ""}, - {eModifierType_Subsurf, "SUBSURF", "Subsurf", ""}, - {eModifierType_UVProject, "UV_PROJECT", "UV Project", ""}, - {eModifierType_Wave, "WAVE", "Wave", ""}, - {0, NULL, NULL, NULL}}; + {eModifierType_Armature, "ARMATURE", ICON_MOD_ARMATURE, "Armature", ""}, + {eModifierType_Array, "ARRAY", ICON_MOD_ARRAY, "Array", ""}, + {eModifierType_Bevel, "BEVEL", ICON_MOD_BEVEL, "Bevel", ""}, + {eModifierType_Boolean, "BOOLEAN", ICON_MOD_BOOLEAN, "Boolean", ""}, + {eModifierType_Build, "BUILD", ICON_MOD_BUILD, "Build", ""}, + {eModifierType_Cast, "CAST", ICON_MOD_CAST, "Cast", ""}, + {eModifierType_Cloth, "CLOTH", ICON_MOD_CLOTH, "Cloth", ""}, + {eModifierType_Collision, "COLLISION", ICON_MOD_PHYSICS, "Collision", ""}, + {eModifierType_Curve, "CURVE", ICON_MOD_CURVE, "Curve", ""}, + {eModifierType_Decimate, "DECIMATE", ICON_MOD_DECIM, "Decimate", ""}, + {eModifierType_Displace, "DISPLACE", ICON_MOD_DISPLACE, "Displace", ""}, + {eModifierType_EdgeSplit, "EDGE_SPLIT", ICON_MOD_EDGESPLIT, "Edge Split", ""}, + {eModifierType_Explode, "EXPLODE", ICON_MOD_EXPLODE, "Explode", ""}, + {eModifierType_Fluidsim, "FLUID_SIMULATION", ICON_MOD_FLUIDSIM, "Fluid Simulation", ""}, + {eModifierType_Hook, "HOOK", ICON_HOOK, "Hook", ""}, + {eModifierType_Lattice, "LATTICE", ICON_MOD_LATTICE, "Lattice", ""}, + {eModifierType_Mask, "MASK", ICON_MOD_MASK, "Mask", ""}, + {eModifierType_MeshDeform, "MESH_DEFORM", ICON_MOD_MESHDEFORM, "Mesh Deform", ""}, + {eModifierType_Mirror, "MIRROR", ICON_MOD_MIRROR, "Mirror", ""}, + {eModifierType_Multires, "MULTIRES", ICON_MOD_MULTIRES, "Multires", ""}, + {eModifierType_ParticleInstance, "PARTICLE_INSTANCE", ICON_MOD_PARTICLES, "Particle Instance", ""}, + {eModifierType_ParticleSystem, "PARTICLE_SYSTEM", ICON_MOD_PARTICLES, "Particle System", ""}, + {eModifierType_Shrinkwrap, "SHRINKWRAP", ICON_MOD_SHRINKWRAP, "Shrinkwrap", ""}, + {eModifierType_SimpleDeform, "SIMPLE_DEFORM", ICON_MOD_SIMPLEDEFORM, "Simple Deform", ""}, + {eModifierType_Smooth, "SMOOTH", ICON_MOD_SMOOTH, "Smooth", ""}, + {eModifierType_Softbody, "SOFTBODY", ICON_MOD_SOFT, "Soft Body", ""}, + {eModifierType_Subsurf, "SUBSURF", ICON_MOD_SUBSURF, "Subsurf", ""}, + {eModifierType_Surface, "SURFACE", ICON_MOD_PHYSICS, "Surface", ""}, + {eModifierType_UVProject, "UV_PROJECT", ICON_MOD_UVPROJECT, "UV Project", ""}, + {eModifierType_Wave, "WAVE", ICON_MOD_WAVE, "Wave", ""}, + {0, NULL, 0, NULL, NULL}}; #ifdef RNA_RUNTIME @@ -82,7 +83,7 @@ EnumPropertyItem modifier_type_items[] ={ static void rna_UVProject_projectors_begin(CollectionPropertyIterator *iter, PointerRNA *ptr) { UVProjectModifierData *uvp= (UVProjectModifierData*)ptr->data; - rna_iterator_array_begin(iter, (void*)uvp->projectors, sizeof(Object*), 10, NULL); + rna_iterator_array_begin(iter, (void*)uvp->projectors, sizeof(Object*), 10, 0, NULL); } static StructRNA* rna_Modifier_refine(struct PointerRNA *ptr) @@ -109,7 +110,7 @@ static StructRNA* rna_Modifier_refine(struct PointerRNA *ptr) case eModifierType_Hook: return &RNA_HookModifier; case eModifierType_Softbody: - return &RNA_SoftbodyModifier; + return &RNA_SoftBodyModifier; case eModifierType_Boolean: return &RNA_BooleanModifier; case eModifierType_Array: @@ -148,6 +149,8 @@ static StructRNA* rna_Modifier_refine(struct PointerRNA *ptr) return &RNA_SimpleDeformModifier; case eModifierType_Multires: return &RNA_MultiresModifier; + case eModifierType_Surface: + return &RNA_SurfaceModifier; default: return &RNA_Modifier; } @@ -348,14 +351,26 @@ static void rna_ArrayModifier_curve_set(PointerRNA *ptr, PointerRNA value) modifier_object_set(&((ArrayModifierData*)ptr->data)->curve_ob, OB_CURVE, value); } +static PointerRNA rna_SoftBodyModifier_settings_get(PointerRNA *ptr) +{ + Object *ob= (Object*)ptr->id.data; + return rna_pointer_inherit_refine(ptr, &RNA_SoftBodySettings, ob->soft); +} + +static PointerRNA rna_CollisionModifier_settings_get(PointerRNA *ptr) +{ + Object *ob= (Object*)ptr->id.data; + return rna_pointer_inherit_refine(ptr, &RNA_CollisionSettings, ob->pd); +} + #else static void rna_def_property_subdivision_common(StructRNA *srna, const char type[]) { static EnumPropertyItem prop_subdivision_type_items[] = { - {0, "CATMULL_CLARK", "Catmull-Clark", ""}, - {1, "SIMPLE", "Simple", ""}, - {0, NULL, NULL, NULL}}; + {0, "CATMULL_CLARK", 0, "Catmull-Clark", ""}, + {1, "SIMPLE", 0, "Simple", ""}, + {0, NULL, 0, NULL, NULL}}; PropertyRNA *prop= RNA_def_property(srna, "subdivision_type", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, type); @@ -378,14 +393,14 @@ static void rna_def_modifier_subsurf(BlenderRNA *brna) prop= RNA_def_property(srna, "levels", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "levels"); - RNA_def_property_range(prop, 1, 20); + RNA_def_property_range(prop, 1, 6); RNA_def_property_ui_range(prop, 1, 6, 1, 0); RNA_def_property_ui_text(prop, "Levels", "Number of subdivisions to perform."); RNA_def_property_update(prop, NC_OBJECT|ND_MODIFIER, "rna_Modifier_update"); prop= RNA_def_property(srna, "render_levels", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "renderLevels"); - RNA_def_property_range(prop, 1, 20); + RNA_def_property_range(prop, 1, 6); RNA_def_property_ui_range(prop, 1, 6, 1, 0); RNA_def_property_ui_text(prop, "Render Levels", "Number of subdivisions to perform when rendering."); @@ -448,13 +463,13 @@ static void rna_def_modifier_curve(BlenderRNA *brna) PropertyRNA *prop; static EnumPropertyItem prop_deform_axis_items[] = { - {MOD_CURVE_POSX, "POS_X", "X", ""}, - {MOD_CURVE_POSY, "POS_Y", "Y", ""}, - {MOD_CURVE_POSZ, "POS_Z", "Z", ""}, - {MOD_CURVE_NEGX, "NEG_X", "-X", ""}, - {MOD_CURVE_NEGY, "NEG_Y", "-Y", ""}, - {MOD_CURVE_NEGZ, "NEG_Z", "-Z", ""}, - {0, NULL, NULL, NULL}}; + {MOD_CURVE_POSX, "POS_X", 0, "X", ""}, + {MOD_CURVE_POSY, "POS_Y", 0, "Y", ""}, + {MOD_CURVE_POSZ, "POS_Z", 0, "Z", ""}, + {MOD_CURVE_NEGX, "NEG_X", 0, "-X", ""}, + {MOD_CURVE_NEGY, "NEG_Y", 0, "-Y", ""}, + {MOD_CURVE_NEGZ, "NEG_Z", 0, "-Z", ""}, + {0, NULL, 0, NULL, NULL}}; srna= RNA_def_struct(brna, "CurveModifier", "Modifier"); RNA_def_struct_ui_text(srna, "Curve Modifier", "Curve deformation modifier."); @@ -491,7 +506,7 @@ static void rna_def_modifier_build(BlenderRNA *brna) RNA_def_struct_ui_icon(srna, ICON_MOD_BUILD); prop= RNA_def_property(srna, "start", PROP_FLOAT, PROP_NONE); - RNA_def_property_range(prop, 1, MAXFRAMEF); + RNA_def_property_range(prop, MINAFRAMEF, MAXFRAMEF); RNA_def_property_ui_text(prop, "Start", "Specify the start frame of the effect."); RNA_def_property_update(prop, NC_OBJECT|ND_MODIFIER, "rna_Modifier_update"); @@ -597,11 +612,11 @@ static void rna_def_modifier_wave(BlenderRNA *brna) PropertyRNA *prop; static EnumPropertyItem prop_texture_coordinates_items[] = { - {MOD_WAV_MAP_LOCAL, "LOCAL", "Local", ""}, - {MOD_WAV_MAP_GLOBAL, "GLOBAL", "Global", ""}, - {MOD_WAV_MAP_OBJECT, "OBJECT", "Object", ""}, - {MOD_WAV_MAP_UV, "MAP_UV", "UV", ""}, - {0, NULL, NULL, NULL}}; + {MOD_WAV_MAP_LOCAL, "LOCAL", 0, "Local", ""}, + {MOD_WAV_MAP_GLOBAL, "GLOBAL", 0, "Global", ""}, + {MOD_WAV_MAP_OBJECT, "OBJECT", 0, "Object", ""}, + {MOD_WAV_MAP_UV, "MAP_UV", 0, "UV", ""}, + {0, NULL, 0, NULL, NULL}}; srna= RNA_def_struct(brna, "WaveModifier", "Modifier"); RNA_def_struct_ui_text(srna, "Wave Modifier", "Wave effect modifier."); @@ -645,18 +660,18 @@ static void rna_def_modifier_wave(BlenderRNA *brna) prop= RNA_def_property(srna, "time_offset", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "timeoffs"); - RNA_def_property_range(prop, -MAXFRAMEF, MAXFRAMEF); + RNA_def_property_range(prop, MINAFRAMEF, MAXFRAMEF); RNA_def_property_ui_text(prop, "Time Offset", "Either the starting frame (for positive speed) or ending frame (for negative speed.)"); RNA_def_property_update(prop, NC_OBJECT|ND_MODIFIER, "rna_Modifier_update"); prop= RNA_def_property(srna, "lifetime", PROP_FLOAT, PROP_NONE); - RNA_def_property_range(prop, -MAXFRAMEF, MAXFRAMEF); + RNA_def_property_range(prop, MINAFRAMEF, MAXFRAMEF); RNA_def_property_ui_text(prop, "Lifetime", ""); RNA_def_property_update(prop, NC_OBJECT|ND_MODIFIER, "rna_Modifier_update"); prop= RNA_def_property(srna, "damping_time", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "damp"); - RNA_def_property_range(prop, -MAXFRAMEF, MAXFRAMEF); + RNA_def_property_range(prop, MINAFRAMEF, MAXFRAMEF); RNA_def_property_ui_text(prop, "Damping Time", ""); RNA_def_property_update(prop, NC_OBJECT|ND_MODIFIER, "rna_Modifier_update"); @@ -669,14 +684,14 @@ static void rna_def_modifier_wave(BlenderRNA *brna) prop= RNA_def_property(srna, "start_position_x", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "startx"); - RNA_def_property_range(prop, FLT_MIN, FLT_MAX); + RNA_def_property_range(prop, -FLT_MAX, FLT_MAX); RNA_def_property_ui_range(prop, -100, 100, 100, 2); RNA_def_property_ui_text(prop, "Start Position X", ""); RNA_def_property_update(prop, NC_OBJECT|ND_MODIFIER, "rna_Modifier_update"); prop= RNA_def_property(srna, "start_position_y", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "starty"); - RNA_def_property_range(prop, FLT_MIN, FLT_MAX); + RNA_def_property_range(prop, -FLT_MAX, FLT_MAX); RNA_def_property_ui_range(prop, -100, 100, 100, 2); RNA_def_property_ui_text(prop, "Start Position Y", ""); RNA_def_property_update(prop, NC_OBJECT|ND_MODIFIER, "rna_Modifier_update"); @@ -717,13 +732,13 @@ static void rna_def_modifier_wave(BlenderRNA *brna) RNA_def_property_update(prop, NC_OBJECT|ND_MODIFIER, "rna_Modifier_dependency_update"); prop= RNA_def_property(srna, "speed", PROP_FLOAT, PROP_NONE); - RNA_def_property_range(prop, FLT_MIN, FLT_MAX); + RNA_def_property_range(prop, -FLT_MAX, FLT_MAX); RNA_def_property_ui_range(prop, -2, 2, 10, 2); RNA_def_property_ui_text(prop, "Speed", ""); RNA_def_property_update(prop, NC_OBJECT|ND_MODIFIER, "rna_Modifier_update"); prop= RNA_def_property(srna, "height", PROP_FLOAT, PROP_NONE); - RNA_def_property_range(prop, FLT_MIN, FLT_MAX); + RNA_def_property_range(prop, -FLT_MAX, FLT_MAX); RNA_def_property_ui_range(prop, -2, 2, 10, 2); RNA_def_property_ui_text(prop, "Height", ""); RNA_def_property_update(prop, NC_OBJECT|ND_MODIFIER, "rna_Modifier_update"); @@ -831,11 +846,17 @@ static void rna_def_modifier_hook(BlenderRNA *brna) static void rna_def_modifier_softbody(BlenderRNA *brna) { StructRNA *srna; + PropertyRNA *prop; - srna= RNA_def_struct(brna, "SoftbodyModifier", "Modifier"); - RNA_def_struct_ui_text(srna, "Softbody Modifier", "Softbody simulation modifier."); + srna= RNA_def_struct(brna, "SoftBodyModifier", "Modifier"); + RNA_def_struct_ui_text(srna, "Soft Body Modifier", "Soft body simulation modifier."); RNA_def_struct_sdna(srna, "SoftbodyModifierData"); RNA_def_struct_ui_icon(srna, ICON_MOD_SOFT); + + prop= RNA_def_property(srna, "settings", PROP_POINTER, PROP_NEVER_NULL); + RNA_def_property_struct_type(prop, "SoftBodySettings"); + RNA_def_property_pointer_funcs(prop, "rna_SoftBodyModifier_settings_get", NULL, NULL); + RNA_def_property_ui_text(prop, "Soft Body Settings", ""); } static void rna_def_modifier_boolean(BlenderRNA *brna) @@ -844,10 +865,10 @@ static void rna_def_modifier_boolean(BlenderRNA *brna) PropertyRNA *prop; static EnumPropertyItem prop_operation_items[] = { - {eBooleanModifierOp_Intersect, "INTERSECT", "Intersect", ""}, - {eBooleanModifierOp_Union, "UNION", "Union", ""}, - {eBooleanModifierOp_Difference, "DIFFERENCE", "Difference", ""}, - {0, NULL, NULL, NULL}}; + {eBooleanModifierOp_Intersect, "INTERSECT", 0, "Intersect", ""}, + {eBooleanModifierOp_Union, "UNION", 0, "Union", ""}, + {eBooleanModifierOp_Difference, "DIFFERENCE", 0, "Difference", ""}, + {0, NULL, 0, NULL, NULL}}; srna= RNA_def_struct(brna, "BooleanModifier", "Modifier"); RNA_def_struct_ui_text(srna, "Boolean Modifier", "Boolean operations modifier."); @@ -872,10 +893,10 @@ static void rna_def_modifier_array(BlenderRNA *brna) PropertyRNA *prop; static EnumPropertyItem prop_fit_type_items[] = { - {MOD_ARR_FIXEDCOUNT, "FIXED_COUNT", "Fixed Count", ""}, - {MOD_ARR_FITLENGTH, "FIT_LENGTH", "Fit Length", ""}, - {MOD_ARR_FITCURVE, "FIT_CURVE", "Fit Curve", ""}, - {0, NULL, NULL, NULL}}; + {MOD_ARR_FIXEDCOUNT, "FIXED_COUNT", 0, "Fixed Count", ""}, + {MOD_ARR_FITLENGTH, "FIT_LENGTH", 0, "Fit Length", ""}, + {MOD_ARR_FITCURVE, "FIT_CURVE", 0, "Fit Curve", ""}, + {0, NULL, 0, NULL, NULL}}; srna= RNA_def_struct(brna, "ArrayModifier", "Modifier"); RNA_def_struct_ui_text(srna, "Array Modifier", "Array duplication modifier."); @@ -1005,19 +1026,19 @@ static void rna_def_modifier_displace(BlenderRNA *brna) PropertyRNA *prop; static EnumPropertyItem prop_direction_items[] = { - {MOD_DISP_DIR_X, "X", "X", ""}, - {MOD_DISP_DIR_Y, "Y", "Y", ""}, - {MOD_DISP_DIR_Z, "Z", "Z", ""}, - {MOD_DISP_DIR_NOR, "NORMAL", "Normal", ""}, - {MOD_DISP_DIR_RGB_XYZ, "RGB_TO_XYZ", "RGB to XYZ", ""}, - {0, NULL, NULL, NULL}}; + {MOD_DISP_DIR_X, "X", 0, "X", ""}, + {MOD_DISP_DIR_Y, "Y", 0, "Y", ""}, + {MOD_DISP_DIR_Z, "Z", 0, "Z", ""}, + {MOD_DISP_DIR_NOR, "NORMAL", 0, "Normal", ""}, + {MOD_DISP_DIR_RGB_XYZ, "RGB_TO_XYZ", 0, "RGB to XYZ", ""}, + {0, NULL, 0, NULL, NULL}}; static EnumPropertyItem prop_texture_coordinates_items[] = { - {MOD_DISP_MAP_LOCAL, "LOCAL", "Map", ""}, - {MOD_DISP_MAP_GLOBAL, "GLOBAL", "Global", ""}, - {MOD_DISP_MAP_OBJECT, "OBJECT", "Object", ""}, - {MOD_DISP_MAP_UV, "UV", "UV", ""}, - {0, NULL, NULL, NULL}}; + {MOD_DISP_MAP_LOCAL, "LOCAL", 0, "Map", ""}, + {MOD_DISP_MAP_GLOBAL, "GLOBAL", 0, "Global", ""}, + {MOD_DISP_MAP_OBJECT, "OBJECT", 0, "Object", ""}, + {MOD_DISP_MAP_UV, "UV", 0, "UV", ""}, + {0, NULL, 0, NULL, NULL}}; srna= RNA_def_struct(brna, "DisplaceModifier", "Modifier"); RNA_def_struct_ui_text(srna, "Displace Modifier", "Displacement modifier."); @@ -1042,7 +1063,7 @@ static void rna_def_modifier_displace(BlenderRNA *brna) RNA_def_property_update(prop, NC_OBJECT|ND_MODIFIER, "rna_Modifier_update"); prop= RNA_def_property(srna, "strength", PROP_FLOAT, PROP_NONE); - RNA_def_property_range(prop, FLT_MIN, FLT_MAX); + RNA_def_property_range(prop, -FLT_MAX, FLT_MAX); RNA_def_property_ui_range(prop, -100, 100, 10, 2); RNA_def_property_ui_text(prop, "Strength", ""); RNA_def_property_update(prop, NC_OBJECT|ND_MODIFIER, "rna_Modifier_update"); @@ -1089,7 +1110,7 @@ static void rna_def_modifier_uvproject(BlenderRNA *brna) prop= RNA_def_property(srna, "projectors", PROP_COLLECTION, PROP_NONE); RNA_def_property_struct_type(prop, "Object"); - RNA_def_property_collection_funcs(prop, "rna_UVProject_projectors_begin", "rna_iterator_array_next", "rna_iterator_array_end", "rna_iterator_array_dereference_get", 0, 0, 0); + RNA_def_property_collection_funcs(prop, "rna_UVProject_projectors_begin", "rna_iterator_array_next", "rna_iterator_array_end", "rna_iterator_array_dereference_get", 0, 0, 0, 0, 0); RNA_def_property_ui_text(prop, "Projectors", ""); prop= RNA_def_property(srna, "image", PROP_POINTER, PROP_NONE); @@ -1167,10 +1188,10 @@ static void rna_def_modifier_cast(BlenderRNA *brna) PropertyRNA *prop; static EnumPropertyItem prop_cast_type_items[] = { - {MOD_CAST_TYPE_SPHERE, "SPHERE", "Sphere", ""}, - {MOD_CAST_TYPE_CYLINDER, "CYLINDER", "Cylinder", ""}, - {MOD_CAST_TYPE_CUBOID, "CUBOID", "Cuboid", ""}, - {0, NULL, NULL, NULL}}; + {MOD_CAST_TYPE_SPHERE, "SPHERE", 0, "Sphere", ""}, + {MOD_CAST_TYPE_CYLINDER, "CYLINDER", 0, "Cylinder", ""}, + {MOD_CAST_TYPE_CUBOID, "CUBOID", 0, "Cuboid", ""}, + {0, NULL, 0, NULL, NULL}}; srna= RNA_def_struct(brna, "CastModifier", "Modifier"); RNA_def_struct_ui_text(srna, "Cast Modifier", "Cast modifier to cast to other shapes."); @@ -1279,6 +1300,13 @@ static void rna_def_modifier_particleinstance(BlenderRNA *brna) StructRNA *srna; PropertyRNA *prop; + static EnumPropertyItem particleinstance_axis[] = { + {0, "X", 0, "X", ""}, + {1, "Y", 0, "Y", ""}, + {2, "Z", 0, "Z", ""}, + {0, NULL, 0, NULL, NULL} + }; + srna= RNA_def_struct(brna, "ParticleInstanceModifier", "Modifier"); RNA_def_struct_ui_text(srna, "ParticleInstance Modifier", "Particle system instancing modifier."); RNA_def_struct_sdna(srna, "ParticleInstanceModifierData"); @@ -1295,6 +1323,12 @@ static void rna_def_modifier_particleinstance(BlenderRNA *brna) RNA_def_property_range(prop, 1, 10); RNA_def_property_ui_text(prop, "Particle System Number", ""); RNA_def_property_update(prop, NC_OBJECT|ND_MODIFIER, "rna_Modifier_update"); + + prop= RNA_def_property(srna, "axis", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "axis"); + RNA_def_property_enum_items(prop, particleinstance_axis); + RNA_def_property_ui_text(prop, "Axis", "Pole axis for rotation"); + RNA_def_property_update(prop, NC_OBJECT|ND_MODIFIER, "rna_Modifier_update"); prop= RNA_def_property(srna, "normal", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", eParticleInstanceFlag_Parents); @@ -1325,6 +1359,28 @@ static void rna_def_modifier_particleinstance(BlenderRNA *brna) RNA_def_property_boolean_sdna(prop, NULL, "flag", eParticleInstanceFlag_Dead); RNA_def_property_ui_text(prop, "Dead", "Show instances when particles are dead."); RNA_def_property_update(prop, NC_OBJECT|ND_MODIFIER, "rna_Modifier_update"); + + prop= RNA_def_property(srna, "keep_shape", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", eParticleInstanceFlag_KeepShape); + RNA_def_property_ui_text(prop, "Keep Shape", "Don't stretch the object."); + RNA_def_property_update(prop, NC_OBJECT|ND_MODIFIER, "rna_Modifier_update"); + + prop= RNA_def_property(srna, "size", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", eParticleInstanceFlag_UseSize); + RNA_def_property_ui_text(prop, "Size", "Use particle size to scale the instances."); + RNA_def_property_update(prop, NC_OBJECT|ND_MODIFIER, "rna_Modifier_update"); + + prop= RNA_def_property(srna, "position", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "position"); + RNA_def_property_range(prop, 0.0, 1.0); + RNA_def_property_ui_text(prop, "Position", "Position along path."); + RNA_def_property_update(prop, NC_OBJECT|ND_MODIFIER, "rna_Modifier_update"); + + prop= RNA_def_property(srna, "random_position", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "random_position"); + RNA_def_property_range(prop, 0.0, 1.0); + RNA_def_property_ui_text(prop, "Random Position", "Randomize position along path."); + RNA_def_property_update(prop, NC_OBJECT|ND_MODIFIER, "rna_Modifier_update"); } static void rna_def_modifier_explode(BlenderRNA *brna) @@ -1398,6 +1454,11 @@ static void rna_def_modifier_collision(BlenderRNA *brna) RNA_def_struct_ui_text(srna, "Collision Modifier", "Collision modifier defining modifier stack position used for collision."); RNA_def_struct_sdna(srna, "CollisionModifierData"); RNA_def_struct_ui_icon(srna, ICON_MOD_PHYSICS); + + prop= RNA_def_property(srna, "settings", PROP_POINTER, PROP_NEVER_NULL); + RNA_def_property_struct_type(prop, "CollisionSettings"); + RNA_def_property_pointer_funcs(prop, "rna_CollisionModifier_settings_get", NULL, NULL); + RNA_def_property_ui_text(prop, "Settings", ""); prop= RNA_def_property(srna, "absorption", PROP_INT, PROP_PERCENTAGE); RNA_def_property_int_sdna(prop, NULL, "absorption"); @@ -1412,16 +1473,16 @@ static void rna_def_modifier_bevel(BlenderRNA *brna) PropertyRNA *prop; static EnumPropertyItem prop_limit_method_items[] = { - {0, "NONE", "None", "Bevel the entire mesh by a constant amount."}, - {BME_BEVEL_ANGLE, "ANGLE", "Angle", "Only bevel edges with sharp enough angles between faces."}, - {BME_BEVEL_WEIGHT, "WEIGHT", "Weight", "Use bevel weights to determine how much bevel is applied; apply them separately in vert/edge select mode."}, - {0, NULL, NULL, NULL}}; + {0, "NONE", 0, "None", "Bevel the entire mesh by a constant amount."}, + {BME_BEVEL_ANGLE, "ANGLE", 0, "Angle", "Only bevel edges with sharp enough angles between faces."}, + {BME_BEVEL_WEIGHT, "WEIGHT", 0, "Weight", "Use bevel weights to determine how much bevel is applied; apply them separately in vert/edge select mode."}, + {0, NULL, 0, NULL, NULL}}; static EnumPropertyItem prop_edge_weight_method_items[] = { - {0, "AVERAGE", "Average", ""}, - {BME_BEVEL_EMIN, "SHARPEST", "Sharpest", ""}, - {BME_BEVEL_EMAX, "LARGEST", "Largest", ""}, - {0, NULL, NULL, NULL}}; + {0, "AVERAGE", 0, "Average", ""}, + {BME_BEVEL_EMIN, "SHARPEST", 0, "Sharpest", ""}, + {BME_BEVEL_EMAX, "LARGEST", 0, "Largest", ""}, + {0, NULL, 0, NULL, NULL}}; srna= RNA_def_struct(brna, "BevelModifier", "Modifier"); RNA_def_struct_ui_text(srna, "Bevel Modifier", "Bevel modifier to make edges and vertices more rounded."); @@ -1465,10 +1526,10 @@ static void rna_def_modifier_shrinkwrap(BlenderRNA *brna) PropertyRNA *prop; static EnumPropertyItem prop_mode_items[] = { - {MOD_SHRINKWRAP_NEAREST_SURFACE, "NEAREST_SURFACEPOINT", "Nearest Surface Point", ""}, - {MOD_SHRINKWRAP_PROJECT, "PROJECT", "Project", ""}, - {MOD_SHRINKWRAP_NEAREST_VERTEX, "NEAREST_VERTEX", "Nearest Vertex", ""}, - {0, NULL, NULL, NULL}}; + {MOD_SHRINKWRAP_NEAREST_SURFACE, "NEAREST_SURFACEPOINT", 0, "Nearest Surface Point", ""}, + {MOD_SHRINKWRAP_PROJECT, "PROJECT", 0, "Project", ""}, + {MOD_SHRINKWRAP_NEAREST_VERTEX, "NEAREST_VERTEX", 0, "Nearest Vertex", ""}, + {0, NULL, 0, NULL, NULL}}; srna= RNA_def_struct(brna, "ShrinkwrapModifier", "Modifier"); RNA_def_struct_ui_text(srna, "Shrinkwrap Modifier", "Shrink wrapping modifier to shrink wrap and object to a target."); @@ -1524,7 +1585,7 @@ static void rna_def_modifier_shrinkwrap(BlenderRNA *brna) prop= RNA_def_property(srna, "subsurf_levels", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "subsurfLevels"); - RNA_def_property_range(prop, 0, 20); + RNA_def_property_range(prop, 0, 6); RNA_def_property_ui_range(prop, 0, 6, 1, 0); RNA_def_property_ui_text(prop, "Subsurf Levels", "Number of subdivisions that must be performed before extracting vertices' positions and normals."); RNA_def_property_update(prop, NC_OBJECT|ND_MODIFIER, "rna_Modifier_update"); @@ -1576,9 +1637,9 @@ static void rna_def_modifier_mask(BlenderRNA *brna) PropertyRNA *prop; static EnumPropertyItem prop_mode_items[] = { - {MOD_MASK_MODE_VGROUP, "VERTEX_GROUP", "Vertex Group", ""}, - {MOD_MASK_MODE_ARM, "ARMATURE", "Armature", ""}, - {0, NULL, NULL, NULL}}; + {MOD_MASK_MODE_VGROUP, "VERTEX_GROUP", 0, "Vertex Group", ""}, + {MOD_MASK_MODE_ARM, "ARMATURE", 0, "Armature", ""}, + {0, NULL, 0, NULL, NULL}}; srna= RNA_def_struct(brna, "MaskModifier", "Modifier"); RNA_def_struct_ui_text(srna, "Mask Modifier", "Mask modifier to hide parts of the mesh."); @@ -1615,11 +1676,11 @@ static void rna_def_modifier_simpledeform(BlenderRNA *brna) PropertyRNA *prop; static EnumPropertyItem prop_mode_items[] = { - {MOD_SIMPLEDEFORM_MODE_TWIST, "TWIST", "Twist", ""}, - {MOD_SIMPLEDEFORM_MODE_BEND, "BEND", "Bend", ""}, - {MOD_SIMPLEDEFORM_MODE_TAPER, "TAPER", "Taper", ""}, - {MOD_SIMPLEDEFORM_MODE_STRETCH, "STRETCH", "Stretch", ""}, - {0, NULL, NULL, NULL}}; + {MOD_SIMPLEDEFORM_MODE_TWIST, "TWIST", 0, "Twist", ""}, + {MOD_SIMPLEDEFORM_MODE_BEND, "BEND", 0, "Bend", ""}, + {MOD_SIMPLEDEFORM_MODE_TAPER, "TAPER", 0, "Taper", ""}, + {MOD_SIMPLEDEFORM_MODE_STRETCH, "STRETCH", 0, "Stretch", ""}, + {0, NULL, 0, NULL, NULL}}; srna= RNA_def_struct(brna, "SimpleDeformModifier", "Modifier"); RNA_def_struct_ui_text(srna, "SimpleDeform Modifier", "Simple deformation modifier to apply effects such as twisting and bending."); @@ -1672,6 +1733,16 @@ static void rna_def_modifier_simpledeform(BlenderRNA *brna) RNA_def_property_update(prop, NC_OBJECT|ND_MODIFIER, "rna_Modifier_update"); } +static void rna_def_modifier_surface(BlenderRNA *brna) +{ + StructRNA *srna; + + srna= RNA_def_struct(brna, "SurfaceModifier", "Modifier"); + RNA_def_struct_ui_text(srna, "Surface Modifier", "Surface modifier defining modifier stack position used for surface fields."); + RNA_def_struct_sdna(srna, "SurfaceModifierData"); + RNA_def_struct_ui_icon(srna, ICON_MOD_PHYSICS); +} + void RNA_def_modifier(BlenderRNA *brna) { StructRNA *srna; @@ -1701,15 +1772,18 @@ void RNA_def_modifier(BlenderRNA *brna) RNA_def_property_boolean_sdna(prop, NULL, "mode", eModifierMode_Realtime); RNA_def_property_ui_text(prop, "Realtime", "Realtime display of a modifier."); RNA_def_property_update(prop, NC_OBJECT|ND_MODIFIER, "rna_Modifier_update"); + RNA_def_property_ui_icon(prop, ICON_VIEW3D, 0); prop= RNA_def_property(srna, "render", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "mode", eModifierMode_Render); RNA_def_property_ui_text(prop, "Render", "Use modifier during rendering."); + RNA_def_property_ui_icon(prop, ICON_SCENE, 0); prop= RNA_def_property(srna, "editmode", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "mode", eModifierMode_Editmode); RNA_def_property_ui_text(prop, "Editmode", "Use modifier while in the edit mode."); RNA_def_property_update(prop, NC_OBJECT|ND_MODIFIER, "rna_Modifier_update"); + RNA_def_property_ui_icon(prop, ICON_EDITMODE_HLT, 0); prop= RNA_def_property(srna, "on_cage", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "mode", eModifierMode_OnCage); @@ -1751,6 +1825,7 @@ void RNA_def_modifier(BlenderRNA *brna) rna_def_modifier_mask(brna); rna_def_modifier_simpledeform(brna); rna_def_modifier_multires(brna); + rna_def_modifier_surface(brna); } #endif |