From e51827246df85cbb080cf60233f47c14e2fa85e8 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 29 Dec 2008 17:36:06 +0000 Subject: [PATCH] RNA * DNA_object_fluidsim.h: done, patch by Nathaniel Garbutt, thanks! Some changes to make it more complete and adding inheritance to better hide irrelevant and reused properties. * Also added all derived types for modifiers, but only fluid is filled in currently. * Some files converted from DOS to UNIX line endings. --- source/blender/makesdna/DNA_object_fluidsim.h | 1 + source/blender/makesrna/RNA_access.h | 36 ++ source/blender/makesrna/intern/makesrna.c | 1 + source/blender/makesrna/intern/rna_fluidsim.c | 441 ++++++++++++++++++ source/blender/makesrna/intern/rna_internal.h | 1 + source/blender/makesrna/intern/rna_modifier.c | 368 ++++++++++++++- 6 files changed, 839 insertions(+), 9 deletions(-) create mode 100644 source/blender/makesrna/intern/rna_fluidsim.c diff --git a/source/blender/makesdna/DNA_object_fluidsim.h b/source/blender/makesdna/DNA_object_fluidsim.h index 2914330a2b0..13984120d90 100644 --- a/source/blender/makesdna/DNA_object_fluidsim.h +++ b/source/blender/makesdna/DNA_object_fluidsim.h @@ -157,6 +157,7 @@ typedef struct FluidsimSettings { #define OB_FSPART_DROP (1<<2) #define OB_FSPART_NEWPART (1<<3) #define OB_FSPART_FLOAT (1<<4) +#define OB_FSPART_TRACER (1<<5) // new fluid bit flags for fss->flags - dg #define OB_FLUIDSIM_REVERSE (1 << 0) diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h index 17a0556e65e..fb06dd290db 100644 --- a/source/blender/makesrna/RNA_access.h +++ b/source/blender/makesrna/RNA_access.h @@ -40,27 +40,45 @@ extern StructRNA RNA_ActuatorSensor; extern StructRNA RNA_AlwaysSensor; extern StructRNA RNA_AndController; extern StructRNA RNA_Armature; +extern StructRNA RNA_ArmatureModifier; +extern StructRNA RNA_ArrayModifier; +extern StructRNA RNA_BevelModifier; extern StructRNA RNA_BlenderRNA; extern StructRNA RNA_Bone; +extern StructRNA RNA_BooleanModifier; extern StructRNA RNA_BooleanProperty; extern StructRNA RNA_Brush; +extern StructRNA RNA_BuildModifier; extern StructRNA RNA_Camera; +extern StructRNA RNA_CastModifier; extern StructRNA RNA_CharInfo; +extern StructRNA RNA_ClothModifier; extern StructRNA RNA_CollectionProperty; +extern StructRNA RNA_CollisionModifier; extern StructRNA RNA_CollisionSensor; extern StructRNA RNA_ColorSequence; extern StructRNA RNA_Constraint; +extern StructRNA RNA_ControlFluidSettings; extern StructRNA RNA_Controller; extern StructRNA RNA_Curve; extern StructRNA RNA_CurveMap; extern StructRNA RNA_CurveMapPoint; extern StructRNA RNA_CurveMapping; +extern StructRNA RNA_CurveModifier; +extern StructRNA RNA_DecimateModifier; extern StructRNA RNA_DelaySensor; +extern StructRNA RNA_DisplaceModifier; +extern StructRNA RNA_DomainFluidSettings; +extern StructRNA RNA_EdgeSplitModifier; extern StructRNA RNA_EffectSequence; extern StructRNA RNA_EnumProperty; extern StructRNA RNA_EnumPropertyItem; +extern StructRNA RNA_ExplodeModifier; extern StructRNA RNA_ExpressionController; extern StructRNA RNA_FloatProperty; +extern StructRNA RNA_FluidFluidSettings; +extern StructRNA RNA_FluidSettings; +extern StructRNA RNA_FluidSimulationModifier; extern StructRNA RNA_GameBooleanProperty; extern StructRNA RNA_GameFloatProperty; extern StructRNA RNA_GameIntProperty; @@ -69,12 +87,14 @@ extern StructRNA RNA_GameStringProperty; extern StructRNA RNA_GameTimeProperty; extern StructRNA RNA_GlowSequence; extern StructRNA RNA_Group; +extern StructRNA RNA_HookModifier; extern StructRNA RNA_ID; extern StructRNA RNA_IDProperty; extern StructRNA RNA_IDPropertyGroup; extern StructRNA RNA_Image; extern StructRNA RNA_ImageSequence; extern StructRNA RNA_ImageUser; +extern StructRNA RNA_InflowFluidSettings; extern StructRNA RNA_IntProperty; extern StructRNA RNA_Ipo; extern StructRNA RNA_IpoCurve; @@ -84,6 +104,7 @@ extern StructRNA RNA_Key; extern StructRNA RNA_KeyboardSensor; extern StructRNA RNA_Lamp; extern StructRNA RNA_Lattice; +extern StructRNA RNA_LatticeModifier; extern StructRNA RNA_Library; extern StructRNA RNA_MCol; extern StructRNA RNA_MColLayer; @@ -102,12 +123,15 @@ extern StructRNA RNA_MTFaceLayer; extern StructRNA RNA_MVert; extern StructRNA RNA_MVertGroup; extern StructRNA RNA_Main; +extern StructRNA RNA_MaskModifier; extern StructRNA RNA_Material; extern StructRNA RNA_Mesh; +extern StructRNA RNA_MeshDeformModifier; extern StructRNA RNA_MessageSensor; extern StructRNA RNA_MetaBall; extern StructRNA RNA_MetaElement; extern StructRNA RNA_MetaSequence; +extern StructRNA RNA_MirrorModifier; extern StructRNA RNA_Modifier; extern StructRNA RNA_MouseSensor; extern StructRNA RNA_MovieSequence; @@ -117,12 +141,17 @@ extern StructRNA RNA_Node; extern StructRNA RNA_NodeTree; extern StructRNA RNA_NorController; extern StructRNA RNA_Object; +extern StructRNA RNA_ObstacleFluidSettings; extern StructRNA RNA_Operator; extern StructRNA RNA_OperatorMousePath; extern StructRNA RNA_OperatorProperties; extern StructRNA RNA_OrController; +extern StructRNA RNA_OutflowFluidSettings; extern StructRNA RNA_PackedFile; extern StructRNA RNA_Panel; +extern StructRNA RNA_ParticleFluidSettings; +extern StructRNA RNA_ParticleInstanceModifier; +extern StructRNA RNA_ParticleSystemModifier; extern StructRNA RNA_PluginSequence; extern StructRNA RNA_PointerProperty; extern StructRNA RNA_Property; @@ -151,16 +180,23 @@ extern StructRNA RNA_ShapeKey; extern StructRNA RNA_ShapeKeyBezierPoint; extern StructRNA RNA_ShapeKeyCurvePoint; extern StructRNA RNA_ShapeKeyPoint; +extern StructRNA RNA_ShrinkwrapModifier; +extern StructRNA RNA_SimpleDeformModifier; +extern StructRNA RNA_SmoothModifier; +extern StructRNA RNA_SoftbodyModifier; extern StructRNA RNA_Sound; extern StructRNA RNA_SoundSequence; extern StructRNA RNA_SpeedControlSequence; extern StructRNA RNA_StringProperty; extern StructRNA RNA_Struct; +extern StructRNA RNA_SubsurfModifier; extern StructRNA RNA_TextBox; extern StructRNA RNA_TouchSensor; extern StructRNA RNA_TransformSequence; +extern StructRNA RNA_UVProjectModifier; extern StructRNA RNA_UnknownType; extern StructRNA RNA_VectorFont; +extern StructRNA RNA_WaveModifier; extern StructRNA RNA_WindowManager; extern StructRNA RNA_WipeSequence; extern StructRNA RNA_World; diff --git a/source/blender/makesrna/intern/makesrna.c b/source/blender/makesrna/intern/makesrna.c index 86b40e6a828..90ea78c54ea 100644 --- a/source/blender/makesrna/intern/makesrna.c +++ b/source/blender/makesrna/intern/makesrna.c @@ -906,6 +906,7 @@ RNAProcessItem PROCESS_ITEMS[]= { {"rna_constraint.c", RNA_def_constraint}, {"rna_controller.c", RNA_def_controller}, {"rna_curve.c", RNA_def_curve}, + {"rna_fluidsim.c", RNA_def_fluidsim}, {"rna_group.c", RNA_def_group}, {"rna_image.c", RNA_def_image}, {"rna_ipo.c", RNA_def_ipo}, diff --git a/source/blender/makesrna/intern/rna_fluidsim.c b/source/blender/makesrna/intern/rna_fluidsim.c new file mode 100644 index 00000000000..edb053c714f --- /dev/null +++ b/source/blender/makesrna/intern/rna_fluidsim.c @@ -0,0 +1,441 @@ +/** + * $Id$ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * Contributor(s): Blender Foundation (2008). + * + * ***** END GPL LICENSE BLOCK ***** + */ + +#include + +#include "RNA_define.h" +#include "RNA_types.h" + +#include "rna_internal.h" + +#include "DNA_object_fluidsim.h" + +#ifdef RNA_RUNTIME + +static StructRNA* rna_FluidSettings_refine(struct PointerRNA *ptr) +{ + FluidsimSettings *fss= (FluidsimSettings*)ptr->data; + + switch(fss->type) { + case OB_FLUIDSIM_DOMAIN: + return &RNA_DomainFluidSettings; + case OB_FLUIDSIM_FLUID: + return &RNA_FluidFluidSettings; + case OB_FLUIDSIM_OBSTACLE: + return &RNA_ObstacleFluidSettings; + case OB_FLUIDSIM_INFLOW: + return &RNA_InflowFluidSettings; + case OB_FLUIDSIM_OUTFLOW: + return &RNA_OutflowFluidSettings; + case OB_FLUIDSIM_PARTICLE: + return &RNA_ParticleFluidSettings; + case OB_FLUIDSIM_CONTROL: + return &RNA_ControlFluidSettings; + default: + return &RNA_FluidSettings; + } +} + +#else + +static void rna_def_fluidsim_slip(StructRNA *srna) +{ + PropertyRNA *prop; + + static EnumPropertyItem slip_items[] = { + {OB_FSBND_NOSLIP, "NOSLIP", "No Slip", "Obstacle causes zero normal and tangential velocity (=sticky). Default for all. Only option for moving objects."}, + {OB_FSBND_PARTSLIP, "PARTIALSLIP", "Partial Slip", "Mix between no-slip and free-slip. Non moving objects only!"}, + {OB_FSBND_FREESLIP, "FREESLIP", "Free Slip", "Obstacle only causes zero normal velocity (=not sticky). Non moving objects only!"}, + {0, NULL, NULL, NULL}}; + + prop= RNA_def_property(srna, "slip_type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_bitflag_sdna(prop, NULL, "typeFlags"); + RNA_def_property_enum_items(prop, slip_items); + RNA_def_property_ui_text(prop, "Slip Type", ""); + + prop= RNA_def_property(srna, "partial_slip_amount", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "partSlipValue"); + RNA_def_property_range(prop, 0.0f, 1.0f); + RNA_def_property_ui_text(prop, "Partial Slip Amount", "Amount of mixing between no- and free-slip, 0 is no slip and 1 is free slip."); +} + +static void rna_def_fluidsim_domain(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + static EnumPropertyItem quality_items[] = { + {OB_FSDOM_GEOM, "GEOMETRY", "Geometry", "Display geometry."}, + {OB_FSDOM_PREVIEW, "PREVIEW", "Preview", "Display preview quality results."}, + {OB_FSDOM_FINAL, "FINAL", "Final", "Display final quality results."}, + {0, NULL, NULL, NULL}}; + + static EnumPropertyItem viscosity_items[] = { + {1, "MANUAL", "Manual", "Manual viscosity settings."}, + {2, "WATER", "Water", "Viscosity of 1.0 * 10^-6."}, + {3, "OIL", "Oil", "Viscosity of 5.0 * 10^-5."}, + {4, "HONEY", "Honey", "Viscosity of 2.0 * 10^-3."}, + {0, NULL, NULL, NULL}}; + + srna= RNA_def_struct(brna, "DomainFluidSettings", NULL); + RNA_def_struct_sdna(srna, "FluidsimSettings"); + RNA_def_struct_ui_text(srna, "Domain Fluid Simulation Settings", ""); + + /* standard settings */ + + prop= RNA_def_property(srna, "resolution", PROP_INT, PROP_NONE); + RNA_def_property_int_sdna(prop, NULL, "resolutionxyz"); + RNA_def_property_range(prop, 1, 1024); + RNA_def_property_ui_text(prop, "Resolution", "Domain resolution in X,Y and Z direction."); + + prop= RNA_def_property(srna, "preview_resolution", PROP_INT, PROP_NONE); + RNA_def_property_int_sdna(prop, NULL, "previewresxyz"); + RNA_def_property_range(prop, 1, 100); + RNA_def_property_ui_text(prop, "Preview Resolution", "Preview resolution in X,Y and Z direction."); + + prop= RNA_def_property(srna, "start_time", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "animStart"); + RNA_def_property_range(prop, 0, 100); + RNA_def_property_ui_text(prop, "Start Time", "Simulation time of the first blender frame."); + + prop= RNA_def_property(srna, "end_time", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "animEnd"); + RNA_def_property_range(prop, 0, 100); + RNA_def_property_ui_text(prop, "End Time", "Simulation time of the last blender frame."); + + prop= RNA_def_property(srna, "viewport_display_mode", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "guiDisplayMode"); + RNA_def_property_enum_items(prop, quality_items); + RNA_def_property_ui_text(prop, "Viewport Display Mode", "How to display the mesh in the viewport."); + + prop= RNA_def_property(srna, "render_display_mode", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "renderDisplayMode"); + RNA_def_property_enum_items(prop, quality_items); + RNA_def_property_ui_text(prop, "Render Display Mode", "How to display the mesh for rendering."); + + prop= RNA_def_property(srna, "reverse_frames", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", OB_FLUIDSIM_REVERSE); + RNA_def_property_ui_text(prop, "Reverse Frames", "Reverse fluid frames."); + + prop= RNA_def_property(srna, "path", PROP_STRING, PROP_DIRPATH); + RNA_def_property_string_maxlength(prop, 240); + RNA_def_property_string_sdna(prop, NULL, "surfdataPath"); + RNA_def_property_ui_text(prop, "Path", "Directory (and/or filename prefix) to store baked fluid simulation files in."); + + /* advanced settings */ + + prop= RNA_def_property(srna, "gravity", PROP_FLOAT, PROP_VECTOR); + RNA_def_property_float_sdna(prop, NULL, "gravx"); + RNA_def_property_array(prop, 3); + RNA_def_property_range(prop, -1000.0, 1000.0); + RNA_def_property_ui_text(prop, "Gravity", "Gravity in X, Y and Z direction."); + + prop= RNA_def_property(srna, "viscosity_preset", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "viscosityMode"); + RNA_def_property_enum_items(prop, viscosity_items); + RNA_def_property_ui_text(prop, "Viscosity Preset", "Set viscosity of the fluid to a preset value, or use manual input."); + + prop= RNA_def_property(srna, "viscosity_base", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "viscosityValue"); + RNA_def_property_range(prop, 0, 10); + RNA_def_property_ui_text(prop, "Viscosity Base", "Viscosity setting: value that is multiplied by 10 to the power of (exponent*-1)."); + + prop= RNA_def_property(srna, "viscosity_exponent", PROP_INT, PROP_NONE); + RNA_def_property_int_sdna(prop, NULL, "viscosityExponent"); + RNA_def_property_range(prop, 0, 10); + RNA_def_property_ui_text(prop, "Viscosity Exponent", "Negative exponent for the viscosity value (to simplify entering small values e.g. 5*10^-6.)."); + + prop= RNA_def_property(srna, "real_world_size", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "realsize"); + RNA_def_property_range(prop, 0.001, 10); + RNA_def_property_ui_text(prop, "Real World Size", "Size of the simulation domain in metres."); + + prop= RNA_def_property(srna, "grid_levels", PROP_INT, PROP_NONE); + RNA_def_property_int_sdna(prop, NULL, "maxRefine"); + RNA_def_property_range(prop, -1, 4); + RNA_def_property_ui_text(prop, "Grid Levels", "Number of coursened grids to use (-1 for automatic)."); + + prop= RNA_def_property(srna, "compressibility", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "gstar"); + RNA_def_property_range(prop, 0.001, 0.1); + RNA_def_property_ui_text(prop, "Compressibility", "Allowed compressibility due to gravitational force for standing fluid (directly affects simulation step size)."); + + /* domain boundary settings */ + + rna_def_fluidsim_slip(srna); + + prop= RNA_def_property(srna, "surface_smoothing", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "surfaceSmoothing"); + RNA_def_property_range(prop, 0.0, 5.0); + RNA_def_property_ui_text(prop, "Surface Smoothing", "Amount of surface smoothing. A value of 0 is off, 1 is normal smoothing and more than 1 is extra smoothing."); + + prop= RNA_def_property(srna, "surface_subdivisions", PROP_INT, PROP_NONE); + RNA_def_property_int_sdna(prop, NULL, "surfaceSubdivs"); + RNA_def_property_range(prop, 0, 5); + RNA_def_property_ui_text(prop, "Surface Subdivisions", "Number of isosurface subdivisions. This is necessary for the inclusion of particles into the surface generation. Warning - can lead to longer computation times!"); + + prop= RNA_def_property(srna, "generate_speed_vectors", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_negative_sdna(prop, NULL, "domainNovecgen", 0); + RNA_def_property_ui_text(prop, "Generate Speed Vectors", "Generate speed vectors for vector blur."); + + /* particles */ + + prop= RNA_def_property(srna, "tracer_particles", PROP_INT, PROP_NONE); + RNA_def_property_int_sdna(prop, NULL, "generateTracers"); + RNA_def_property_range(prop, 0, 10000); + RNA_def_property_ui_text(prop, "Tracer Particles", "Number of tracer particles to generate"); + + prop= RNA_def_property(srna, "generate_particles", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "generateParticles"); + RNA_def_property_range(prop, 0.0, 10.0); + RNA_def_property_ui_text(prop, "Generate Particles", "Amount of particles to generate (0=off, 1=normal, >1=more)."); +} + +static void rna_def_fluidsim_volume(StructRNA *srna) +{ + PropertyRNA *prop; + + static EnumPropertyItem volume_type_items[] = { + {1, "VOLUME", "Volume", "Use only the inner volume of the mesh."}, + {2, "SHELL", "Shell", "Use only the outer shell of the mesh."}, + {3, "BOTH", "Both", "Use both the inner volume and the outer shell of the mesh."}, + {0, NULL, NULL, NULL}}; + + prop= RNA_def_property(srna, "volume_initialization", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_bitflag_sdna(prop, NULL, "volumeInitType"); + RNA_def_property_enum_items(prop, volume_type_items); + RNA_def_property_ui_text(prop, "Volume Initialization", "Volume initialization type."); + + prop= RNA_def_property(srna, "export_animated_mesh", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "domainNovecgen", 0); + RNA_def_property_ui_text(prop, "Export Animated Mesh", "Export this mesh as an animated one. Slower, only use if really necessary (e.g. armatures or parented objects), animated pos/rot/scale IPOs do not require it."); +} + +static void rna_def_fluidsim_fluid(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + srna= RNA_def_struct(brna, "FluidFluidSettings", NULL); + RNA_def_struct_sdna(srna, "FluidsimSettings"); + RNA_def_struct_ui_text(srna, "Fluid Fluid Simulation Settings", ""); + + rna_def_fluidsim_volume(srna); + + prop= RNA_def_property(srna, "initial_velocity", PROP_FLOAT, PROP_VECTOR); + RNA_def_property_float_sdna(prop, NULL, "iniVelx"); + RNA_def_property_array(prop, 3); + RNA_def_property_range(prop, -1000.0, 1000.0); + RNA_def_property_ui_text(prop, "Initial Velocity", "Initial velocity of fluid."); +} + +static void rna_def_fluidsim_obstacle(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + srna= RNA_def_struct(brna, "ObstacleFluidSettings", NULL); + RNA_def_struct_sdna(srna, "FluidsimSettings"); + RNA_def_struct_ui_text(srna, "Obstacle Fluid Simulation Settings", ""); + + rna_def_fluidsim_volume(srna); + rna_def_fluidsim_slip(srna); + + prop= RNA_def_property(srna, "impact_factor", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "surfaceSmoothing"); + RNA_def_property_range(prop, -2.0, 10.0); + RNA_def_property_ui_text(prop, "Impact Factor", "This is an unphysical value for moving objects - it controls the impact an obstacle has on the fluid, =0 behaves a bit like outflow (deleting fluid), =1 is default, while >1 results in high forces. Can be used to tweak total mass."); +} + +static void rna_def_fluidsim_inflow(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + srna= RNA_def_struct(brna, "InflowFluidSettings", NULL); + RNA_def_struct_sdna(srna, "FluidsimSettings"); + RNA_def_struct_ui_text(srna, "Inflow Fluid Simulation Settings", ""); + + rna_def_fluidsim_volume(srna); + + prop= RNA_def_property(srna, "inflow_velocity", PROP_FLOAT, PROP_VECTOR); + RNA_def_property_float_sdna(prop, NULL, "iniVelx"); + RNA_def_property_array(prop, 3); + RNA_def_property_range(prop, -1000.0, 1000.0); + RNA_def_property_ui_text(prop, "Inflow Velocity", "Initial velocity of fluid."); + + prop= RNA_def_property(srna, "local_coordinates", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "typeFlags", OB_FSINFLOW_LOCALCOORD); + RNA_def_property_ui_text(prop, "Local Coordinates", "Use local coordinates for inflow (e.g. for rotating objects)."); +} + +static void rna_def_fluidsim_outflow(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + srna= RNA_def_struct(brna, "OutflowFluidSettings", NULL); + RNA_def_struct_sdna(srna, "FluidsimSettings"); + RNA_def_struct_ui_text(srna, "Outflow Fluid Simulation Settings", ""); + + rna_def_fluidsim_volume(srna); +} + +static void rna_def_fluidsim_particle(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + srna= RNA_def_struct(brna, "ParticleFluidSettings", NULL); + RNA_def_struct_sdna(srna, "FluidsimSettings"); + RNA_def_struct_ui_text(srna, "Particle Fluid Simulation Settings", ""); + + prop= RNA_def_property(srna, "drops", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "typeFlags", OB_FSPART_DROP); + RNA_def_property_ui_text(prop, "Drops", "Show drop particles."); + + prop= RNA_def_property(srna, "floats", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "typeFlags", OB_FSPART_FLOAT); + RNA_def_property_ui_text(prop, "Floats", "Show floating foam particles."); + + prop= RNA_def_property(srna, "tracer", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "typeFlags", OB_FSPART_TRACER); + RNA_def_property_ui_text(prop, "Tracer", "Show tracer particles."); + + prop= RNA_def_property(srna, "particle_influence", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "particleInfSize"); + RNA_def_property_range(prop, 0.0, 2.0); + RNA_def_property_ui_text(prop, "Particle Influence", "Amount of particle size scaling: 0=off (all same size), 1=full (range 0.2-2.0), >1=stronger."); + + prop= RNA_def_property(srna, "alpha_influence", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "particleInfAlpha"); + RNA_def_property_range(prop, 0.0, 2.0); + RNA_def_property_ui_text(prop, "Alpha Influence", "Amount of particle alpha change, inverse of size influence: 0=off (all same alpha), 1=full (large particles get lower alphas, smaller ones higher values)."); + + prop= RNA_def_property(srna, "path", PROP_STRING, PROP_DIRPATH); + RNA_def_property_string_maxlength(prop, 240); + RNA_def_property_string_sdna(prop, NULL, "surfdataPath"); + RNA_def_property_ui_text(prop, "Path", "Directory (and/or filename prefix) to store and load particles from."); +} + +static void rna_def_fluidsim_control(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + srna= RNA_def_struct(brna, "ControlFluidSettings", NULL); + RNA_def_struct_sdna(srna, "FluidsimSettings"); + RNA_def_struct_ui_text(srna, "Control Fluid Simulation Settings", ""); + + prop= RNA_def_property(srna, "start_time", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "cpsTimeStart"); + RNA_def_property_range(prop, 0.0, 100.0); + RNA_def_property_ui_text(prop, "Start Time", "Specifies time when the control particles are activated."); + + prop= RNA_def_property(srna, "end_time", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "cpsTimeEnd"); + RNA_def_property_range(prop, 0.0, 100.0); + RNA_def_property_ui_text(prop, "End Time", "Specifies time when the control particles are deactivated."); + + prop= RNA_def_property(srna, "attraction_strength", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "attractforceStrength"); + RNA_def_property_range(prop, 0.0, 2.0); + RNA_def_property_ui_text(prop, "Attraction Strength", "Force strength for directional attraction towards the control object."); + + prop= RNA_def_property(srna, "attraction_radius", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "attractforceRadius"); + RNA_def_property_range(prop, 0.0, 5.0); + RNA_def_property_ui_text(prop, "Attraction Radius", "Specifies the force field radius around the control object."); + + prop= RNA_def_property(srna, "velocity_strength", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "velocityforceStrength"); + RNA_def_property_range(prop, 0.0, 2.0); + RNA_def_property_ui_text(prop, "Velocity Strength", "Force strength of how much of the control object's velocity is influencing the fluid velocity."); + + prop= RNA_def_property(srna, "velocity_radius", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "velocityforceRadius"); + RNA_def_property_range(prop, 0.0, 2.0); + RNA_def_property_ui_text(prop, "Velocity Radius", "Specifies the force field radius around the control object."); + + prop= RNA_def_property(srna, "quality", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "cpsQuality"); + RNA_def_property_range(prop, 5.0, 100.0); + RNA_def_property_ui_text(prop, "Quality", "Specifies the quality which is used for object sampling (higher = better but slower)."); + + prop= RNA_def_property(srna, "reverse_frames", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", OB_FLUIDSIM_REVERSE); + RNA_def_property_ui_text(prop, "Reverse Frames", "Reverse control object movement."); +} + +void RNA_def_fluidsim(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + static EnumPropertyItem prop_fluid_type_items[] = { + {0, "NONE", "None", ""}, + {OB_FLUIDSIM_DOMAIN, "DOMAIN", "Domain", "Bounding box of this object represents the computational domain of the fluid simulation."}, + {OB_FLUIDSIM_FLUID, "FLUID", "Fluid", "Object represents a volume of fluid in the simulation."}, + {OB_FLUIDSIM_OBSTACLE, "OBSTACLE", "Obstacle", "Object is a fixed obstacle."}, + {OB_FLUIDSIM_INFLOW, "INFLOW", "Inflow", "Object adds fluid to the simulation."}, + {OB_FLUIDSIM_OUTFLOW, "OUTFLOW", "Outflow", "Object removes fluid from the simulation."}, + {OB_FLUIDSIM_PARTICLE, "PARTICLE", "Particle", "Object is made a particle system to display particles generated by a fluidsim domain object."}, + {OB_FLUIDSIM_CONTROL, "CONTROL", "Control", "Object is made a fluid control mesh, which influences the fluid."}, + {0, NULL, NULL, NULL}}; + + + srna= RNA_def_struct(brna, "FluidSettings", NULL); + RNA_def_struct_sdna(srna, "FluidsimSettings"); + RNA_def_struct_funcs(srna, NULL, "rna_FluidSettings_refine"); + RNA_def_struct_ui_text(srna, "Fluid Simulation Settings", ""); + + /* enable and type */ + + prop= RNA_def_property(srna, "enable", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "type", OB_FLUIDSIM_ENABLE); + RNA_def_property_flag(prop, PROP_NOT_EDITABLE); // needs to create modifier + RNA_def_property_ui_text(prop, "Enable", "Sets object to participate in fluid simulation."); + + prop= RNA_def_property(srna, "type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_bitflag_sdna(prop, NULL, "type"); + RNA_def_property_enum_items(prop, prop_fluid_type_items); + RNA_def_property_flag(prop, PROP_NOT_EDITABLE); // needs to update variables + RNA_def_property_ui_text(prop, "Type", "Type of participation in the fluid simulation."); + + prop= RNA_def_property(srna, "ipo", PROP_POINTER, PROP_NONE); + RNA_def_property_ui_text(prop, "Ipo Curves", "Ipo curves used by fluid simulation settings."); + + /* types */ + + rna_def_fluidsim_domain(brna); + rna_def_fluidsim_fluid(brna); + rna_def_fluidsim_obstacle(brna); + rna_def_fluidsim_inflow(brna); + rna_def_fluidsim_outflow(brna); + rna_def_fluidsim_particle(brna); + rna_def_fluidsim_control(brna); +} + + +#endif diff --git a/source/blender/makesrna/intern/rna_internal.h b/source/blender/makesrna/intern/rna_internal.h index 435f00c9c2b..e3c84f88fc9 100644 --- a/source/blender/makesrna/intern/rna_internal.h +++ b/source/blender/makesrna/intern/rna_internal.h @@ -103,6 +103,7 @@ void RNA_def_color(struct BlenderRNA *brna); void RNA_def_constraint(struct BlenderRNA *brna); void RNA_def_controller(struct BlenderRNA *brna); void RNA_def_curve(struct BlenderRNA *brna); +void RNA_def_fluidsim(struct BlenderRNA *brna); void RNA_def_gameproperty(struct BlenderRNA *brna); void RNA_def_group(struct BlenderRNA *brna); void RNA_def_image(struct BlenderRNA *brna); diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c index a24c25880c9..9a6cd9f2d10 100644 --- a/source/blender/makesrna/intern/rna_modifier.c +++ b/source/blender/makesrna/intern/rna_modifier.c @@ -33,8 +33,332 @@ #ifdef RNA_RUNTIME +static StructRNA* rna_Modifier_refine(struct PointerRNA *ptr) +{ + ModifierData *md= (ModifierData*)ptr->data; + + switch(md->type) { + case eModifierType_Subsurf: + return &RNA_SubsurfModifier; + case eModifierType_Lattice: + return &RNA_LatticeModifier; + case eModifierType_Curve: + return &RNA_CurveModifier; + case eModifierType_Build: + return &RNA_BuildModifier; + case eModifierType_Mirror: + return &RNA_MirrorModifier; + case eModifierType_Decimate: + return &RNA_DecimateModifier; + case eModifierType_Wave: + return &RNA_WaveModifier; + case eModifierType_Armature: + return &RNA_ArmatureModifier; + case eModifierType_Hook: + return &RNA_HookModifier; + case eModifierType_Softbody: + return &RNA_SoftbodyModifier; + case eModifierType_Boolean: + return &RNA_BooleanModifier; + case eModifierType_Array: + return &RNA_ArrayModifier; + case eModifierType_EdgeSplit: + return &RNA_EdgeSplitModifier; + case eModifierType_Displace: + return &RNA_DisplaceModifier; + case eModifierType_UVProject: + return &RNA_UVProjectModifier; + case eModifierType_Smooth: + return &RNA_SmoothModifier; + case eModifierType_Cast: + return &RNA_CastModifier; + case eModifierType_MeshDeform: + return &RNA_MeshDeformModifier; + case eModifierType_ParticleSystem: + return &RNA_ParticleSystemModifier; + case eModifierType_ParticleInstance: + return &RNA_ParticleInstanceModifier; + case eModifierType_Explode: + return &RNA_ExplodeModifier; + case eModifierType_Cloth: + return &RNA_ClothModifier; + case eModifierType_Collision: + return &RNA_CollisionModifier; + case eModifierType_Bevel: + return &RNA_BevelModifier; + case eModifierType_Shrinkwrap: + return &RNA_ShrinkwrapModifier; + case eModifierType_Fluidsim: + return &RNA_FluidSimulationModifier; + case eModifierType_Mask: + return &RNA_MaskModifier; + case eModifierType_SimpleDeform: + return &RNA_SimpleDeformModifier; + default: + return &RNA_Modifier; + } +} + #else +static void rna_def_modifier_subsurf(BlenderRNA *brna) +{ + StructRNA *srna; + + srna= RNA_def_struct(brna, "SubsurfModifier", "Modifier"); + RNA_def_struct_ui_text(srna , "Subsurf Modifier", "Subsurf Modifier."); + RNA_def_struct_sdna(srna, "SubsurfModifierData"); +} + +static void rna_def_modifier_lattice(BlenderRNA *brna) +{ + StructRNA *srna; + + srna= RNA_def_struct(brna, "LatticeModifier", "Modifier"); + RNA_def_struct_ui_text(srna, "Lattice Modifier", "Lattice Modifier."); + RNA_def_struct_sdna(srna, "LatticeModifierData"); +} + +static void rna_def_modifier_curve(BlenderRNA *brna) +{ + StructRNA *srna; + + srna= RNA_def_struct(brna, "CurveModifier", "Modifier"); + RNA_def_struct_ui_text(srna, "Curve Modifier", "Curve Modifier."); + RNA_def_struct_sdna(srna, "CurveModifierData"); +} + +static void rna_def_modifier_build(BlenderRNA *brna) +{ + StructRNA *srna; + + srna= RNA_def_struct(brna, "BuildModifier", "Modifier"); + RNA_def_struct_ui_text(srna, "Build Modifier", "Build Modifier."); + RNA_def_struct_sdna(srna, "BuildModifierData"); +} + +static void rna_def_modifier_mirror(BlenderRNA *brna) +{ + StructRNA *srna; + + srna= RNA_def_struct(brna, "MirrorModifier", "Modifier"); + RNA_def_struct_ui_text(srna, "Mirror Modifier", "Mirror Modifier."); + RNA_def_struct_sdna(srna, "MirrorModifierData"); +} + +static void rna_def_modifier_decimate(BlenderRNA *brna) +{ + StructRNA *srna; + + srna= RNA_def_struct(brna, "DecimateModifier", "Modifier"); + RNA_def_struct_ui_text(srna, "Decimate Modifier", "Decimate Modifier."); + RNA_def_struct_sdna(srna, "DecimateModifierData"); +} + +static void rna_def_modifier_wave(BlenderRNA *brna) +{ + StructRNA *srna; + + srna= RNA_def_struct(brna, "WaveModifier", "Modifier"); + RNA_def_struct_ui_text(srna, "Wave Modifier", "Wave Modifier."); + RNA_def_struct_sdna(srna, "WaveModifierData"); +} + +static void rna_def_modifier_armature(BlenderRNA *brna) +{ + StructRNA *srna; + + srna= RNA_def_struct(brna, "ArmatureModifier", "Modifier"); + RNA_def_struct_ui_text(srna, "Armature Modifier", "Armature Modifier."); + RNA_def_struct_sdna(srna, "ArmatureModifierData"); +} + +static void rna_def_modifier_hook(BlenderRNA *brna) +{ + StructRNA *srna; + + srna= RNA_def_struct(brna, "HookModifier", "Modifier"); + RNA_def_struct_ui_text(srna, "Hook Modifier", "Hook Modifier."); + RNA_def_struct_sdna(srna, "HookModifierData"); +} + +static void rna_def_modifier_softbody(BlenderRNA *brna) +{ + StructRNA *srna; + + srna= RNA_def_struct(brna, "SoftbodyModifier", "Modifier"); + RNA_def_struct_ui_text(srna, "Softbody Modifier", "Softbody Modifier."); + RNA_def_struct_sdna(srna, "SoftbodyModifierData"); +} + +static void rna_def_modifier_boolean(BlenderRNA *brna) +{ + StructRNA *srna; + + srna= RNA_def_struct(brna, "BooleanModifier", "Modifier"); + RNA_def_struct_ui_text(srna, "Boolean Modifier", "Boolean Modifier."); + RNA_def_struct_sdna(srna, "BooleanModifierData"); +} + +static void rna_def_modifier_array(BlenderRNA *brna) +{ + StructRNA *srna; + + srna= RNA_def_struct(brna, "ArrayModifier", "Modifier"); + RNA_def_struct_ui_text(srna, "Array Modifier", "Array Modifier."); + RNA_def_struct_sdna(srna, "ArrayModifierData"); +} + +static void rna_def_modifier_edgesplit(BlenderRNA *brna) +{ + StructRNA *srna; + + srna= RNA_def_struct(brna, "EdgeSplitModifier", "Modifier"); + RNA_def_struct_ui_text(srna, "EdgeSplit Modifier", "EdgeSplit Modifier."); + RNA_def_struct_sdna(srna, "EdgeSplitModifierData"); +} + +static void rna_def_modifier_displace(BlenderRNA *brna) +{ + StructRNA *srna; + + srna= RNA_def_struct(brna, "DisplaceModifier", "Modifier"); + RNA_def_struct_ui_text(srna, "Displace Modifier", "Displace Modifier."); + RNA_def_struct_sdna(srna, "DisplaceModifierData"); +} + +static void rna_def_modifier_uvproject(BlenderRNA *brna) +{ + StructRNA *srna; + + srna= RNA_def_struct(brna, "UVProjectModifier", "Modifier"); + RNA_def_struct_ui_text(srna, "UVProject Modifier", "UVProject Modifier."); + RNA_def_struct_sdna(srna, "UVProjectModifierData"); +} + +static void rna_def_modifier_smooth(BlenderRNA *brna) +{ + StructRNA *srna; + + srna= RNA_def_struct(brna, "SmoothModifier", "Modifier"); + RNA_def_struct_ui_text(srna, "Smooth Modifier", "Smooth Modifier."); + RNA_def_struct_sdna(srna, "SmoothModifierData"); +} + +static void rna_def_modifier_cast(BlenderRNA *brna) +{ + StructRNA *srna; + + srna= RNA_def_struct(brna, "CastModifier", "Modifier"); + RNA_def_struct_ui_text(srna, "Cast Modifier", "Cast Modifier."); + RNA_def_struct_sdna(srna, "CastModifierData"); +} + +static void rna_def_modifier_meshdeform(BlenderRNA *brna) +{ + StructRNA *srna; + + srna= RNA_def_struct(brna, "MeshDeformModifier", "Modifier"); + RNA_def_struct_ui_text(srna, "MeshDeform Modifier", "MeshDeform Modifier."); + RNA_def_struct_sdna(srna, "MeshDeformModifierData"); +} + +static void rna_def_modifier_particlesystem(BlenderRNA *brna) +{ + StructRNA *srna; + + srna= RNA_def_struct(brna, "ParticleSystemModifier", "Modifier"); + RNA_def_struct_ui_text(srna, "ParticleSystem Modifier", "ParticleSystem Modifier."); + RNA_def_struct_sdna(srna, "ParticleSystemModifierData"); +} + +static void rna_def_modifier_particleinstance(BlenderRNA *brna) +{ + StructRNA *srna; + + srna= RNA_def_struct(brna, "ParticleInstanceModifier", "Modifier"); + RNA_def_struct_ui_text(srna, "ParticleInstance Modifier", "ParticleInstance Modifier."); + RNA_def_struct_sdna(srna, "ParticleInstanceModifierData"); +} + +static void rna_def_modifier_explode(BlenderRNA *brna) +{ + StructRNA *srna; + + srna= RNA_def_struct(brna, "ExplodeModifier", "Modifier"); + RNA_def_struct_ui_text(srna, "Explode Modifier", "Explode Modifier."); + RNA_def_struct_sdna(srna, "ExplodeModifierData"); +} + +static void rna_def_modifier_cloth(BlenderRNA *brna) +{ + StructRNA *srna; + + srna= RNA_def_struct(brna, "ClothModifier", "Modifier"); + RNA_def_struct_ui_text(srna, "Cloth Modifier", "Cloth Modifier."); + RNA_def_struct_sdna(srna, "ClothModifierData"); +} + +static void rna_def_modifier_collision(BlenderRNA *brna) +{ + StructRNA *srna; + + srna= RNA_def_struct(brna, "CollisionModifier", "Modifier"); + RNA_def_struct_ui_text(srna, "Collision Modifier", "Collision Modifier."); + RNA_def_struct_sdna(srna, "CollisionModifierData"); +} + +static void rna_def_modifier_bevel(BlenderRNA *brna) +{ + StructRNA *srna; + + srna= RNA_def_struct(brna, "BevelModifier", "Modifier"); + RNA_def_struct_ui_text(srna, "Bevel Modifier", "Bevel Modifier."); + RNA_def_struct_sdna(srna, "BevelModifierData"); +} + +static void rna_def_modifier_shrinkwrap(BlenderRNA *brna) +{ + StructRNA *srna; + + srna= RNA_def_struct(brna, "ShrinkwrapModifier", "Modifier"); + RNA_def_struct_ui_text(srna, "Shrinkwrap Modifier", "Shrinkwrap Modifier."); + RNA_def_struct_sdna(srna, "ShrinkwrapModifierData"); +} + +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"); + + prop= RNA_def_property(srna, "settings", PROP_POINTER, PROP_NONE); + RNA_def_property_pointer_sdna(prop, NULL, "fss"); + RNA_def_property_struct_type(prop, "FluidSettings"); + 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) +{ + StructRNA *srna; + + srna= RNA_def_struct(brna, "MaskModifier", "Modifier"); + RNA_def_struct_ui_text(srna, "Mask Modifier", "Mask Modifier."); + RNA_def_struct_sdna(srna, "MaskModifierData"); +} + +static void rna_def_modifier_simpledeform(BlenderRNA *brna) +{ + StructRNA *srna; + + srna= RNA_def_struct(brna, "SimpleDeformModifier", "Modifier"); + RNA_def_struct_ui_text(srna, "SimpleDeform Modifier", "SimpleDeform Modifier."); + RNA_def_struct_sdna(srna, "SimpleDeformModifierData"); +} + void RNA_def_modifier(BlenderRNA *brna) { StructRNA *srna; @@ -53,12 +377,12 @@ void RNA_def_modifier(BlenderRNA *brna) {eModifierType_Softbody, "SOFTBODY", "Softbody", ""}, {eModifierType_Boolean, "BOOLEAN", "Boolean", ""}, {eModifierType_Array, "ARRAY", "Array", ""}, - {eModifierType_EdgeSplit, "EDGESPLIT", "EdgeSplit", ""}, + {eModifierType_EdgeSplit, "EDGESPLIT", "Edge Split", ""}, {eModifierType_Displace, "DISPLACE", "Displace", ""}, - {eModifierType_UVProject, "UVPROJECT", "UVProject", ""}, + {eModifierType_UVProject, "UVPROJECT", "UV Project", ""}, {eModifierType_Smooth, "SMOOTH", "Smooth", ""}, {eModifierType_Cast, "CAST", "Cast", ""}, - {eModifierType_MeshDeform, "MESHDEFORM", "MeshDeform", ""}, + {eModifierType_MeshDeform, "MESHDEFORM", "Mesh Deform", ""}, {eModifierType_ParticleSystem, "PARTICLESYSTEM", "Particle System", ""}, {eModifierType_ParticleInstance, "PARTICLEINSTANCE", "Particle Instance", ""}, {eModifierType_Explode, "EXPLODE", "Explode", ""}, @@ -66,14 +390,15 @@ void RNA_def_modifier(BlenderRNA *brna) {eModifierType_Collision, "COLLISION", "Collision", ""}, {eModifierType_Bevel, "BEVEL", "Bevel", ""}, {eModifierType_Shrinkwrap, "SHRINKWRAP", "Shrinkwrap", ""}, - {eModifierType_Fluidsim, "FLUIDSIM", "Fluidsim", ""}, + {eModifierType_Fluidsim, "FLUIDSIMULATION", "Fluid Simulation", ""}, {eModifierType_Mask, "MASK", "Mask", ""}, - {eModifierType_SimpleDeform, "SIMPLEDEFORM", "SimpleDeform", ""}, + {eModifierType_SimpleDeform, "SIMPLEDEFORM", "Simple Deform", ""}, {0, NULL, NULL, NULL}}; /* data */ srna= RNA_def_struct(brna, "Modifier", NULL); RNA_def_struct_ui_text(srna , "Object Modifier", "DOC_BROKEN"); + RNA_def_struct_funcs(srna, NULL, "rna_Modifier_refine"); RNA_def_struct_sdna(srna, "ModifierData"); /* strings */ @@ -108,11 +433,36 @@ void RNA_def_modifier(BlenderRNA *brna) prop= RNA_def_property(srna, "expanded", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "mode", eModifierMode_Expanded); RNA_def_property_ui_text(prop, "Expanded", "Set modifier expanded in the user interface."); - - /* TODO: expose "virtual" and "disable temporary" enum items? */ - /* pointers */ - /* TODO: expose error? */ + /* types */ + rna_def_modifier_subsurf(brna); + rna_def_modifier_lattice(brna); + rna_def_modifier_curve(brna); + rna_def_modifier_build(brna); + rna_def_modifier_mirror(brna); + rna_def_modifier_decimate(brna); + rna_def_modifier_wave(brna); + rna_def_modifier_armature(brna); + rna_def_modifier_hook(brna); + rna_def_modifier_softbody(brna); + rna_def_modifier_boolean(brna); + rna_def_modifier_array(brna); + rna_def_modifier_edgesplit(brna); + rna_def_modifier_displace(brna); + rna_def_modifier_uvproject(brna); + rna_def_modifier_smooth(brna); + rna_def_modifier_cast(brna); + rna_def_modifier_meshdeform(brna); + rna_def_modifier_particlesystem(brna); + rna_def_modifier_particleinstance(brna); + rna_def_modifier_explode(brna); + rna_def_modifier_cloth(brna); + rna_def_modifier_collision(brna); + rna_def_modifier_bevel(brna); + rna_def_modifier_shrinkwrap(brna); + rna_def_modifier_fluidsim(brna); + rna_def_modifier_mask(brna); + rna_def_modifier_simpledeform(brna); } #endif