2011-02-23 10:52:22 +00:00
|
|
|
/*
|
2008-12-01 13:01:48 +00:00
|
|
|
* ***** 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,
|
2010-02-12 13:34:04 +00:00
|
|
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
2008-12-01 13:01:48 +00:00
|
|
|
*
|
2009-01-03 07:25:22 +00:00
|
|
|
* Contributor(s): Blender Foundation (2008), Juho Veps‰l‰inen
|
2008-12-01 13:01:48 +00:00
|
|
|
*
|
|
|
|
* ***** END GPL LICENSE BLOCK *****
|
|
|
|
*/
|
|
|
|
|
2011-02-27 20:20:01 +00:00
|
|
|
/** \file blender/makesrna/intern/rna_modifier.c
|
|
|
|
* \ingroup RNA
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
2009-01-02 02:25:29 +00:00
|
|
|
#include <float.h>
|
2009-01-02 04:45:13 +00:00
|
|
|
#include <limits.h>
|
2008-12-01 13:01:48 +00:00
|
|
|
#include <stdlib.h>
|
|
|
|
|
|
|
|
#include "RNA_define.h"
|
2011-08-28 05:06:30 +00:00
|
|
|
#include "RNA_enum_types.h"
|
2008-12-01 13:01:48 +00:00
|
|
|
|
|
|
|
#include "rna_internal.h"
|
|
|
|
|
2009-01-02 01:28:02 +00:00
|
|
|
#include "DNA_armature_types.h"
|
2012-02-19 22:17:30 +00:00
|
|
|
#include "DNA_mesh_types.h"
|
2008-12-01 13:01:48 +00:00
|
|
|
#include "DNA_modifier_types.h"
|
2009-01-08 13:57:29 +00:00
|
|
|
#include "DNA_object_types.h"
|
2009-08-02 19:39:33 +00:00
|
|
|
#include "DNA_object_force.h"
|
2009-01-01 21:49:04 +00:00
|
|
|
#include "DNA_scene_types.h"
|
2008-12-01 13:01:48 +00:00
|
|
|
|
2010-08-16 05:46:10 +00:00
|
|
|
#include "MEM_guardedalloc.h"
|
|
|
|
|
2010-03-22 08:49:12 +00:00
|
|
|
#include "BLI_math.h"
|
|
|
|
|
2009-11-01 00:06:53 +00:00
|
|
|
#include "BKE_animsys.h"
|
2009-01-02 10:19:58 +00:00
|
|
|
#include "BKE_bmesh.h" /* For BevelModifierData */
|
2011-09-10 08:55:44 +00:00
|
|
|
#include "BKE_dynamicpaint.h"
|
2010-06-01 19:26:35 +00:00
|
|
|
#include "BKE_multires.h"
|
2009-07-31 01:40:15 +00:00
|
|
|
#include "BKE_smoke.h" /* For smokeModifier_free & smokeModifier_createType */
|
2009-01-02 10:19:58 +00:00
|
|
|
|
2009-09-16 17:43:09 +00:00
|
|
|
#include "WM_api.h"
|
2009-01-03 07:25:22 +00:00
|
|
|
#include "WM_types.h"
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
EnumPropertyItem modifier_type_items[] = {
|
2011-10-20 09:53:02 +00:00
|
|
|
{0, "", 0, "Modify", ""},
|
|
|
|
{eModifierType_UVProject, "UV_PROJECT", ICON_MOD_UVPROJECT, "UV Project", ""},
|
|
|
|
{eModifierType_WeightVGEdit, "VERTEX_WEIGHT_EDIT", ICON_MOD_VERTEX_WEIGHT, "Vertex Weight Edit", ""},
|
|
|
|
{eModifierType_WeightVGMix, "VERTEX_WEIGHT_MIX", ICON_MOD_VERTEX_WEIGHT, "Vertex Weight Mix", ""},
|
2012-03-18 09:27:36 +00:00
|
|
|
{eModifierType_WeightVGProximity, "VERTEX_WEIGHT_PROXIMITY", ICON_MOD_VERTEX_WEIGHT,
|
|
|
|
"Vertex Weight Proximity", ""},
|
2009-08-21 02:51:56 +00:00
|
|
|
{0, "", 0, "Generate", ""},
|
2009-06-23 11:00:35 +00:00
|
|
|
{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", ""},
|
2009-08-21 02:51:56 +00:00
|
|
|
{eModifierType_Decimate, "DECIMATE", ICON_MOD_DECIM, "Decimate", ""},
|
|
|
|
{eModifierType_EdgeSplit, "EDGE_SPLIT", ICON_MOD_EDGESPLIT, "Edge Split", ""},
|
|
|
|
{eModifierType_Mask, "MASK", ICON_MOD_MASK, "Mask", ""},
|
|
|
|
{eModifierType_Mirror, "MIRROR", ICON_MOD_MIRROR, "Mirror", ""},
|
|
|
|
{eModifierType_Multires, "MULTIRES", ICON_MOD_MULTIRES, "Multiresolution", ""},
|
2011-12-30 21:11:40 +00:00
|
|
|
{eModifierType_Remesh, "REMESH", ICON_MOD_REMESH, "Remesh", ""},
|
2010-05-17 14:56:00 +00:00
|
|
|
{eModifierType_Screw, "SCREW", ICON_MOD_SCREW, "Screw", ""},
|
2010-01-22 02:23:28 +00:00
|
|
|
{eModifierType_Solidify, "SOLIDIFY", ICON_MOD_SOLIDIFY, "Solidify", ""},
|
2009-08-21 02:51:56 +00:00
|
|
|
{eModifierType_Subsurf, "SUBSURF", ICON_MOD_SUBSURF, "Subdivision Surface", ""},
|
2009-08-23 21:56:32 +00:00
|
|
|
{0, "", 0, "Deform", ""},
|
2009-08-21 02:51:56 +00:00
|
|
|
{eModifierType_Armature, "ARMATURE", ICON_MOD_ARMATURE, "Armature", ""},
|
2009-06-23 11:00:35 +00:00
|
|
|
{eModifierType_Cast, "CAST", ICON_MOD_CAST, "Cast", ""},
|
|
|
|
{eModifierType_Curve, "CURVE", ICON_MOD_CURVE, "Curve", ""},
|
|
|
|
{eModifierType_Displace, "DISPLACE", ICON_MOD_DISPLACE, "Displace", ""},
|
|
|
|
{eModifierType_Hook, "HOOK", ICON_HOOK, "Hook", ""},
|
|
|
|
{eModifierType_Lattice, "LATTICE", ICON_MOD_LATTICE, "Lattice", ""},
|
|
|
|
{eModifierType_MeshDeform, "MESH_DEFORM", ICON_MOD_MESHDEFORM, "Mesh Deform", ""},
|
|
|
|
{eModifierType_Shrinkwrap, "SHRINKWRAP", ICON_MOD_SHRINKWRAP, "Shrinkwrap", ""},
|
|
|
|
{eModifierType_SimpleDeform, "SIMPLE_DEFORM", ICON_MOD_SIMPLEDEFORM, "Simple Deform", ""},
|
2009-08-21 02:51:56 +00:00
|
|
|
{eModifierType_Smooth, "SMOOTH", ICON_MOD_SMOOTH, "Smooth", ""},
|
2012-02-12 19:57:47 +00:00
|
|
|
{eModifierType_Warp, "WARP", ICON_MOD_WARP, "Warp", ""},
|
2009-08-21 02:51:56 +00:00
|
|
|
{eModifierType_Wave, "WAVE", ICON_MOD_WAVE, "Wave", ""},
|
2009-11-01 00:06:53 +00:00
|
|
|
{0, "", 0, "Simulate", ""},
|
2009-08-21 02:51:56 +00:00
|
|
|
{eModifierType_Cloth, "CLOTH", ICON_MOD_CLOTH, "Cloth", ""},
|
|
|
|
{eModifierType_Collision, "COLLISION", ICON_MOD_PHYSICS, "Collision", ""},
|
2011-11-13 14:54:11 +00:00
|
|
|
{eModifierType_DynamicPaint, "DYNAMIC_PAINT", ICON_MOD_DYNAMICPAINT, "Dynamic Paint", ""},
|
2009-08-21 02:51:56 +00:00
|
|
|
{eModifierType_Explode, "EXPLODE", ICON_MOD_EXPLODE, "Explode", ""},
|
|
|
|
{eModifierType_Fluidsim, "FLUID_SIMULATION", ICON_MOD_FLUIDSIM, "Fluid Simulation", ""},
|
2012-02-12 19:57:47 +00:00
|
|
|
{eModifierType_Ocean, "OCEAN", ICON_MOD_OCEAN, "Ocean", ""},
|
2009-08-21 02:51:56 +00:00
|
|
|
{eModifierType_ParticleInstance, "PARTICLE_INSTANCE", ICON_MOD_PARTICLES, "Particle Instance", ""},
|
|
|
|
{eModifierType_ParticleSystem, "PARTICLE_SYSTEM", ICON_MOD_PARTICLES, "Particle System", ""},
|
2009-09-16 17:43:09 +00:00
|
|
|
{eModifierType_Smoke, "SMOKE", ICON_MOD_SMOKE, "Smoke", ""},
|
2009-08-06 13:15:23 +00:00
|
|
|
{eModifierType_Softbody, "SOFT_BODY", ICON_MOD_SOFT, "Soft Body", ""},
|
2009-07-02 19:41:31 +00:00
|
|
|
{eModifierType_Surface, "SURFACE", ICON_MOD_PHYSICS, "Surface", ""},
|
2009-06-16 00:52:21 +00:00
|
|
|
{0, NULL, 0, NULL, NULL}};
|
2009-04-27 18:05:58 +00:00
|
|
|
|
2008-12-01 13:01:48 +00:00
|
|
|
#ifdef RNA_RUNTIME
|
|
|
|
|
Smoke Patch + additions: a) Applying patch #22765 by Miika Hämäläinen (domain border collision settings, vorticity settings, time scale, non absolute density, smooth high res emitter, initial velocity multiplier, high res strength available to be set to 0), b) Additions by me: --Initial velocity is now per flow object, not per domain; --Using boundingbox as standard display mode for domains (was wire before); --When adding a flow object, an initial nice SmokeParticle system is added too with nice initial settings (life=1, no_render, unborn, etc) fitting smoke simulation; --Adaptive timesteps introduced to the smoke sim (depending on the magnitude of the velocity) because it was quite unstable when used for fire simulations, still needs to be tested and will also slow down some simulations.
2010-07-27 14:53:20 +00:00
|
|
|
#include "DNA_particle_types.h"
|
|
|
|
#include "DNA_smoke_types.h"
|
|
|
|
|
2009-01-03 07:25:22 +00:00
|
|
|
#include "BKE_context.h"
|
|
|
|
#include "BKE_depsgraph.h"
|
2009-05-27 00:03:49 +00:00
|
|
|
#include "BKE_library.h"
|
2009-10-22 23:22:05 +00:00
|
|
|
#include "BKE_modifier.h"
|
Smoke Patch + additions: a) Applying patch #22765 by Miika Hämäläinen (domain border collision settings, vorticity settings, time scale, non absolute density, smooth high res emitter, initial velocity multiplier, high res strength available to be set to 0), b) Additions by me: --Initial velocity is now per flow object, not per domain; --Using boundingbox as standard display mode for domains (was wire before); --When adding a flow object, an initial nice SmokeParticle system is added too with nice initial settings (life=1, no_render, unborn, etc) fitting smoke simulation; --Adaptive timesteps introduced to the smoke sim (depending on the magnitude of the velocity) because it was quite unstable when used for fire simulations, still needs to be tested and will also slow down some simulations.
2010-07-27 14:53:20 +00:00
|
|
|
#include "BKE_particle.h"
|
2009-01-03 07:25:22 +00:00
|
|
|
|
2009-01-03 23:14:33 +00:00
|
|
|
static void rna_UVProject_projectors_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
UVProjectModifierData *uvp = (UVProjectModifierData*)ptr->data;
|
2009-08-21 02:51:56 +00:00
|
|
|
rna_iterator_array_begin(iter, (void*)uvp->projectors, sizeof(Object*), uvp->num_projectors, 0, NULL);
|
2009-01-03 23:14:33 +00:00
|
|
|
}
|
|
|
|
|
2008-12-29 17:36:06 +00:00
|
|
|
static StructRNA* rna_Modifier_refine(struct PointerRNA *ptr)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
ModifierData *md = (ModifierData*)ptr->data;
|
2008-12-29 17:36:06 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
switch (md->type) {
|
2008-12-29 17:36:06 +00:00
|
|
|
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:
|
2009-07-02 19:41:31 +00:00
|
|
|
return &RNA_SoftBodyModifier;
|
2008-12-29 17:36:06 +00:00
|
|
|
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;
|
2009-01-06 20:15:23 +00:00
|
|
|
case eModifierType_Multires:
|
|
|
|
return &RNA_MultiresModifier;
|
2009-07-02 19:41:31 +00:00
|
|
|
case eModifierType_Surface:
|
|
|
|
return &RNA_SurfaceModifier;
|
2009-07-30 15:00:26 +00:00
|
|
|
case eModifierType_Smoke:
|
|
|
|
return &RNA_SmokeModifier;
|
2009-12-21 01:02:08 +00:00
|
|
|
case eModifierType_Solidify:
|
|
|
|
return &RNA_SolidifyModifier;
|
2010-03-22 00:22:52 +00:00
|
|
|
case eModifierType_Screw:
|
|
|
|
return &RNA_ScrewModifier;
|
2011-11-13 12:17:27 +00:00
|
|
|
case eModifierType_Ocean:
|
|
|
|
return &RNA_OceanModifier;
|
2011-05-01 15:16:59 +00:00
|
|
|
case eModifierType_Warp:
|
|
|
|
return &RNA_WarpModifier;
|
2011-07-25 15:27:01 +00:00
|
|
|
case eModifierType_WeightVGEdit:
|
2011-09-07 07:46:26 +00:00
|
|
|
return &RNA_VertexWeightEditModifier;
|
2011-07-25 15:27:01 +00:00
|
|
|
case eModifierType_WeightVGMix:
|
2011-09-07 07:46:26 +00:00
|
|
|
return &RNA_VertexWeightMixModifier;
|
2011-07-25 15:27:01 +00:00
|
|
|
case eModifierType_WeightVGProximity:
|
2011-09-07 07:46:26 +00:00
|
|
|
return &RNA_VertexWeightProximityModifier;
|
2011-05-24 07:08:58 +00:00
|
|
|
case eModifierType_DynamicPaint:
|
|
|
|
return &RNA_DynamicPaintModifier;
|
2011-12-30 21:11:40 +00:00
|
|
|
case eModifierType_Remesh:
|
|
|
|
return &RNA_RemeshModifier;
|
2008-12-29 17:36:06 +00:00
|
|
|
default:
|
|
|
|
return &RNA_Modifier;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2009-10-22 23:22:05 +00:00
|
|
|
void rna_Modifier_name_set(PointerRNA *ptr, const char *value)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
ModifierData *md = ptr->data;
|
2010-04-04 14:33:41 +00:00
|
|
|
char oldname[sizeof(md->name)];
|
2009-11-01 00:06:53 +00:00
|
|
|
|
|
|
|
/* make a copy of the old name first */
|
2010-04-04 14:33:41 +00:00
|
|
|
BLI_strncpy(oldname, md->name, sizeof(md->name));
|
2009-10-22 23:22:05 +00:00
|
|
|
|
|
|
|
/* copy the new name into the name slot */
|
2011-09-15 12:26:48 +00:00
|
|
|
BLI_strncpy_utf8(md->name, value, sizeof(md->name));
|
2009-10-22 23:22:05 +00:00
|
|
|
|
|
|
|
/* make sure the name is truly unique */
|
|
|
|
if (ptr->id.data) {
|
2012-03-05 23:30:41 +00:00
|
|
|
Object *ob = ptr->id.data;
|
2009-10-22 23:22:05 +00:00
|
|
|
modifier_unique_name(&ob->modifiers, md);
|
|
|
|
}
|
2009-11-01 00:06:53 +00:00
|
|
|
|
|
|
|
/* fix all the animation data which may link to this */
|
|
|
|
BKE_all_animdata_fix_paths_rename("modifiers", oldname, md->name);
|
2009-10-22 23:22:05 +00:00
|
|
|
}
|
|
|
|
|
2009-05-27 00:03:49 +00:00
|
|
|
static char *rna_Modifier_path(PointerRNA *ptr)
|
|
|
|
{
|
2009-10-22 23:22:05 +00:00
|
|
|
return BLI_sprintfN("modifiers[\"%s\"]", ((ModifierData*)ptr->data)->name);
|
2009-05-27 00:03:49 +00:00
|
|
|
}
|
|
|
|
|
2011-05-31 02:14:25 +00:00
|
|
|
static void rna_Modifier_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
|
2009-01-03 07:25:22 +00:00
|
|
|
{
|
2010-12-05 18:59:23 +00:00
|
|
|
DAG_id_tag_update(ptr->id.data, OB_RECALC_DATA);
|
2009-12-08 17:23:48 +00:00
|
|
|
WM_main_add_notifier(NC_OBJECT|ND_MODIFIER, ptr->id.data);
|
2009-01-03 07:25:22 +00:00
|
|
|
}
|
|
|
|
|
2009-12-08 17:23:48 +00:00
|
|
|
static void rna_Modifier_dependency_update(Main *bmain, Scene *scene, PointerRNA *ptr)
|
2009-05-27 00:03:49 +00:00
|
|
|
{
|
2009-12-08 17:23:48 +00:00
|
|
|
rna_Modifier_update(bmain, scene, ptr);
|
2010-08-01 12:47:49 +00:00
|
|
|
DAG_scene_sort(bmain, scene);
|
2009-05-27 00:03:49 +00:00
|
|
|
}
|
|
|
|
|
2009-12-08 17:23:48 +00:00
|
|
|
static void rna_Smoke_set_type(Main *bmain, Scene *scene, PointerRNA *ptr)
|
2009-07-30 15:00:26 +00:00
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
SmokeModifierData *smd = (SmokeModifierData *)ptr->data;
|
|
|
|
Object *ob = (Object*)ptr->id.data;
|
Smoke Patch + additions: a) Applying patch #22765 by Miika Hämäläinen (domain border collision settings, vorticity settings, time scale, non absolute density, smooth high res emitter, initial velocity multiplier, high res strength available to be set to 0), b) Additions by me: --Initial velocity is now per flow object, not per domain; --Using boundingbox as standard display mode for domains (was wire before); --When adding a flow object, an initial nice SmokeParticle system is added too with nice initial settings (life=1, no_render, unborn, etc) fitting smoke simulation; --Adaptive timesteps introduced to the smoke sim (depending on the magnitude of the velocity) because it was quite unstable when used for fire simulations, still needs to be tested and will also slow down some simulations.
2010-07-27 14:53:20 +00:00
|
|
|
ParticleSystemModifierData *psmd = NULL;
|
|
|
|
ParticleSystem *psys = NULL;
|
|
|
|
ParticleSettings *part = NULL;
|
2009-08-20 00:33:59 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
/* nothing changed */
|
|
|
|
if ((smd->type & MOD_SMOKE_TYPE_DOMAIN) && smd->domain)
|
2009-08-20 00:33:59 +00:00
|
|
|
return;
|
2009-07-30 15:00:26 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
smokeModifier_free(smd); /* XXX TODO: completely free all 3 pointers */
|
|
|
|
smokeModifier_createType(smd); /* create regarding of selected type */
|
2009-07-30 22:11:28 +00:00
|
|
|
|
2009-11-11 11:49:46 +00:00
|
|
|
switch (smd->type) {
|
|
|
|
case MOD_SMOKE_TYPE_DOMAIN:
|
|
|
|
ob->dt = OB_WIRE;
|
|
|
|
break;
|
|
|
|
case MOD_SMOKE_TYPE_FLOW:
|
2012-03-05 23:30:41 +00:00
|
|
|
for (psys = ob->particlesystem.first; psys; psys = psys->next)
|
|
|
|
if (psys->part->type == PART_EMITTER)
|
Smoke Patch + additions: a) Applying patch #22765 by Miika Hämäläinen (domain border collision settings, vorticity settings, time scale, non absolute density, smooth high res emitter, initial velocity multiplier, high res strength available to be set to 0), b) Additions by me: --Initial velocity is now per flow object, not per domain; --Using boundingbox as standard display mode for domains (was wire before); --When adding a flow object, an initial nice SmokeParticle system is added too with nice initial settings (life=1, no_render, unborn, etc) fitting smoke simulation; --Adaptive timesteps introduced to the smoke sim (depending on the magnitude of the velocity) because it was quite unstable when used for fire simulations, still needs to be tested and will also slow down some simulations.
2010-07-27 14:53:20 +00:00
|
|
|
break;
|
2012-03-05 23:30:41 +00:00
|
|
|
if (ob->type == OB_MESH && !psys) {
|
Smoke Patch + additions: a) Applying patch #22765 by Miika Hämäläinen (domain border collision settings, vorticity settings, time scale, non absolute density, smooth high res emitter, initial velocity multiplier, high res strength available to be set to 0), b) Additions by me: --Initial velocity is now per flow object, not per domain; --Using boundingbox as standard display mode for domains (was wire before); --When adding a flow object, an initial nice SmokeParticle system is added too with nice initial settings (life=1, no_render, unborn, etc) fitting smoke simulation; --Adaptive timesteps introduced to the smoke sim (depending on the magnitude of the velocity) because it was quite unstable when used for fire simulations, still needs to be tested and will also slow down some simulations.
2010-07-27 14:53:20 +00:00
|
|
|
/* add particle system */
|
2010-07-29 00:44:53 +00:00
|
|
|
psmd = (ParticleSystemModifierData *)object_add_particle_system(scene, ob, NULL);
|
2012-03-06 18:40:15 +00:00
|
|
|
if (psmd) {
|
Smoke Patch + additions: a) Applying patch #22765 by Miika Hämäläinen (domain border collision settings, vorticity settings, time scale, non absolute density, smooth high res emitter, initial velocity multiplier, high res strength available to be set to 0), b) Additions by me: --Initial velocity is now per flow object, not per domain; --Using boundingbox as standard display mode for domains (was wire before); --When adding a flow object, an initial nice SmokeParticle system is added too with nice initial settings (life=1, no_render, unborn, etc) fitting smoke simulation; --Adaptive timesteps introduced to the smoke sim (depending on the magnitude of the velocity) because it was quite unstable when used for fire simulations, still needs to be tested and will also slow down some simulations.
2010-07-27 14:53:20 +00:00
|
|
|
psys = psmd->psys;
|
|
|
|
part = psys->part;
|
|
|
|
part->lifetime = 1.0f;
|
|
|
|
part->sta = 1.0f;
|
|
|
|
part->end = 250.0f;
|
|
|
|
part->ren_as = PART_DRAW_NOT;
|
2010-12-20 10:23:23 +00:00
|
|
|
part->draw_as = PART_DRAW_DOT;
|
2011-10-09 06:03:38 +00:00
|
|
|
BLI_strncpy(psys->name, "SmokeParticles", sizeof(psys->name));
|
Smoke Patch + additions: a) Applying patch #22765 by Miika Hämäläinen (domain border collision settings, vorticity settings, time scale, non absolute density, smooth high res emitter, initial velocity multiplier, high res strength available to be set to 0), b) Additions by me: --Initial velocity is now per flow object, not per domain; --Using boundingbox as standard display mode for domains (was wire before); --When adding a flow object, an initial nice SmokeParticle system is added too with nice initial settings (life=1, no_render, unborn, etc) fitting smoke simulation; --Adaptive timesteps introduced to the smoke sim (depending on the magnitude of the velocity) because it was quite unstable when used for fire simulations, still needs to be tested and will also slow down some simulations.
2010-07-27 14:53:20 +00:00
|
|
|
psys->recalc |= (PSYS_RECALC_RESET|PSYS_RECALC_PHYS);
|
2010-12-05 18:59:23 +00:00
|
|
|
DAG_id_tag_update(ptr->id.data, OB_RECALC_DATA);
|
Smoke Patch + additions: a) Applying patch #22765 by Miika Hämäläinen (domain border collision settings, vorticity settings, time scale, non absolute density, smooth high res emitter, initial velocity multiplier, high res strength available to be set to 0), b) Additions by me: --Initial velocity is now per flow object, not per domain; --Using boundingbox as standard display mode for domains (was wire before); --When adding a flow object, an initial nice SmokeParticle system is added too with nice initial settings (life=1, no_render, unborn, etc) fitting smoke simulation; --Adaptive timesteps introduced to the smoke sim (depending on the magnitude of the velocity) because it was quite unstable when used for fire simulations, still needs to be tested and will also slow down some simulations.
2010-07-27 14:53:20 +00:00
|
|
|
}
|
|
|
|
}
|
2012-03-05 23:30:41 +00:00
|
|
|
if (smd->flow)
|
Smoke Patch + additions: a) Applying patch #22765 by Miika Hämäläinen (domain border collision settings, vorticity settings, time scale, non absolute density, smooth high res emitter, initial velocity multiplier, high res strength available to be set to 0), b) Additions by me: --Initial velocity is now per flow object, not per domain; --Using boundingbox as standard display mode for domains (was wire before); --When adding a flow object, an initial nice SmokeParticle system is added too with nice initial settings (life=1, no_render, unborn, etc) fitting smoke simulation; --Adaptive timesteps introduced to the smoke sim (depending on the magnitude of the velocity) because it was quite unstable when used for fire simulations, still needs to be tested and will also slow down some simulations.
2010-07-27 14:53:20 +00:00
|
|
|
smd->flow->psys = psys;
|
2009-11-11 11:49:46 +00:00
|
|
|
case MOD_SMOKE_TYPE_COLL:
|
|
|
|
case 0:
|
|
|
|
default:
|
2009-12-07 10:28:36 +00:00
|
|
|
ob->dt = OB_TEXTURE;
|
2009-11-11 11:49:46 +00:00
|
|
|
break;
|
|
|
|
}
|
2009-07-30 15:00:26 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
/* update dependency since a domain - other type switch could have happened */
|
2009-12-08 17:23:48 +00:00
|
|
|
rna_Modifier_dependency_update(bmain, scene, ptr);
|
2009-07-30 15:00:26 +00:00
|
|
|
}
|
|
|
|
|
2009-01-04 19:25:24 +00:00
|
|
|
static void rna_ExplodeModifier_vgroup_get(PointerRNA *ptr, char *value)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
ExplodeModifierData *emd = (ExplodeModifierData*)ptr->data;
|
2009-01-04 19:25:24 +00:00
|
|
|
rna_object_vgroup_name_index_get(ptr, value, emd->vgroup);
|
|
|
|
}
|
|
|
|
|
|
|
|
static int rna_ExplodeModifier_vgroup_length(PointerRNA *ptr)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
ExplodeModifierData *emd = (ExplodeModifierData*)ptr->data;
|
2009-01-04 19:25:24 +00:00
|
|
|
return rna_object_vgroup_name_index_length(ptr, emd->vgroup);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_ExplodeModifier_vgroup_set(PointerRNA *ptr, const char *value)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
ExplodeModifierData *emd = (ExplodeModifierData*)ptr->data;
|
2009-01-04 19:25:24 +00:00
|
|
|
rna_object_vgroup_name_index_set(ptr, value, &emd->vgroup);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_SimpleDeformModifier_vgroup_set(PointerRNA *ptr, const char *value)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
SimpleDeformModifierData *smd = (SimpleDeformModifierData*)ptr->data;
|
2009-01-04 19:25:24 +00:00
|
|
|
rna_object_vgroup_name_set(ptr, value, smd->vgroup_name, sizeof(smd->vgroup_name));
|
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_ShrinkwrapModifier_vgroup_set(PointerRNA *ptr, const char *value)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
ShrinkwrapModifierData *smd = (ShrinkwrapModifierData*)ptr->data;
|
2009-01-04 19:25:24 +00:00
|
|
|
rna_object_vgroup_name_set(ptr, value, smd->vgroup_name, sizeof(smd->vgroup_name));
|
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_LatticeModifier_vgroup_set(PointerRNA *ptr, const char *value)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
LatticeModifierData *lmd = (LatticeModifierData*)ptr->data;
|
2009-01-04 19:25:24 +00:00
|
|
|
rna_object_vgroup_name_set(ptr, value, lmd->name, sizeof(lmd->name));
|
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_ArmatureModifier_vgroup_set(PointerRNA *ptr, const char *value)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
ArmatureModifierData *lmd = (ArmatureModifierData*)ptr->data;
|
2009-01-04 19:25:24 +00:00
|
|
|
rna_object_vgroup_name_set(ptr, value, lmd->defgrp_name, sizeof(lmd->defgrp_name));
|
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_CurveModifier_vgroup_set(PointerRNA *ptr, const char *value)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
CurveModifierData *lmd = (CurveModifierData*)ptr->data;
|
2009-01-04 19:25:24 +00:00
|
|
|
rna_object_vgroup_name_set(ptr, value, lmd->name, sizeof(lmd->name));
|
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_DisplaceModifier_vgroup_set(PointerRNA *ptr, const char *value)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
DisplaceModifierData *lmd = (DisplaceModifierData*)ptr->data;
|
2009-01-04 19:25:24 +00:00
|
|
|
rna_object_vgroup_name_set(ptr, value, lmd->defgrp_name, sizeof(lmd->defgrp_name));
|
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_HookModifier_vgroup_set(PointerRNA *ptr, const char *value)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
HookModifierData *lmd = (HookModifierData*)ptr->data;
|
2009-01-04 19:25:24 +00:00
|
|
|
rna_object_vgroup_name_set(ptr, value, lmd->name, sizeof(lmd->name));
|
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_MaskModifier_vgroup_set(PointerRNA *ptr, const char *value)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
MaskModifierData *lmd = (MaskModifierData*)ptr->data;
|
2009-01-04 19:25:24 +00:00
|
|
|
rna_object_vgroup_name_set(ptr, value, lmd->vgroup, sizeof(lmd->vgroup));
|
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_MeshDeformModifier_vgroup_set(PointerRNA *ptr, const char *value)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
MeshDeformModifierData *lmd = (MeshDeformModifierData*)ptr->data;
|
2009-01-04 19:25:24 +00:00
|
|
|
rna_object_vgroup_name_set(ptr, value, lmd->defgrp_name, sizeof(lmd->defgrp_name));
|
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_SmoothModifier_vgroup_set(PointerRNA *ptr, const char *value)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
SmoothModifierData *lmd = (SmoothModifierData*)ptr->data;
|
2009-01-04 19:25:24 +00:00
|
|
|
rna_object_vgroup_name_set(ptr, value, lmd->defgrp_name, sizeof(lmd->defgrp_name));
|
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_WaveModifier_vgroup_set(PointerRNA *ptr, const char *value)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
WaveModifierData *lmd = (WaveModifierData*)ptr->data;
|
2009-01-04 19:25:24 +00:00
|
|
|
rna_object_vgroup_name_set(ptr, value, lmd->defgrp_name, sizeof(lmd->defgrp_name));
|
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_CastModifier_vgroup_set(PointerRNA *ptr, const char *value)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
CastModifierData *lmd = (CastModifierData*)ptr->data;
|
2009-01-04 19:25:24 +00:00
|
|
|
rna_object_vgroup_name_set(ptr, value, lmd->defgrp_name, sizeof(lmd->defgrp_name));
|
|
|
|
}
|
|
|
|
|
2009-12-21 01:02:08 +00:00
|
|
|
static void rna_SolidifyModifier_vgroup_set(PointerRNA *ptr, const char *value)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
SolidifyModifierData *smd = (SolidifyModifierData*)ptr->data;
|
2010-01-26 09:36:33 +00:00
|
|
|
rna_object_vgroup_name_set(ptr, value, smd->defgrp_name, sizeof(smd->defgrp_name));
|
2009-12-21 01:02:08 +00:00
|
|
|
}
|
|
|
|
|
2011-07-25 15:27:01 +00:00
|
|
|
static void rna_WeightVGModifier_vgroup_set(PointerRNA *ptr, const char *value)
|
|
|
|
{
|
|
|
|
ModifierData *md = (ModifierData*)ptr->data;
|
|
|
|
if (md->type == eModifierType_WeightVGEdit) {
|
2012-03-05 23:30:41 +00:00
|
|
|
WeightVGEditModifierData *wmd = (WeightVGEditModifierData*)md;
|
2011-07-25 15:27:01 +00:00
|
|
|
rna_object_vgroup_name_set(ptr, value, wmd->defgrp_name, sizeof(wmd->defgrp_name));
|
|
|
|
}
|
|
|
|
else if (md->type == eModifierType_WeightVGMix) {
|
2012-03-05 23:30:41 +00:00
|
|
|
WeightVGMixModifierData *wmd = (WeightVGMixModifierData*)md;
|
2011-09-05 04:53:23 +00:00
|
|
|
rna_object_vgroup_name_set(ptr, value, wmd->defgrp_name_a, sizeof(wmd->defgrp_name_a));
|
2011-07-25 15:27:01 +00:00
|
|
|
}
|
|
|
|
else if (md->type == eModifierType_WeightVGProximity) {
|
2012-03-05 23:30:41 +00:00
|
|
|
WeightVGProximityModifierData *wmd = (WeightVGProximityModifierData*)md;
|
2011-07-25 15:27:01 +00:00
|
|
|
rna_object_vgroup_name_set(ptr, value, wmd->defgrp_name, sizeof(wmd->defgrp_name));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_WeightVGModifier_mask_vgroup_set(PointerRNA *ptr, const char *value)
|
|
|
|
{
|
|
|
|
ModifierData *md = (ModifierData*)ptr->data;
|
|
|
|
if (md->type == eModifierType_WeightVGEdit) {
|
2012-03-05 23:30:41 +00:00
|
|
|
WeightVGEditModifierData *wmd = (WeightVGEditModifierData*)md;
|
2011-07-25 15:27:01 +00:00
|
|
|
rna_object_vgroup_name_set(ptr, value, wmd->mask_defgrp_name, sizeof(wmd->mask_defgrp_name));
|
|
|
|
}
|
|
|
|
else if (md->type == eModifierType_WeightVGMix) {
|
2012-03-05 23:30:41 +00:00
|
|
|
WeightVGMixModifierData *wmd = (WeightVGMixModifierData*)md;
|
2011-07-25 15:27:01 +00:00
|
|
|
rna_object_vgroup_name_set(ptr, value, wmd->mask_defgrp_name, sizeof(wmd->mask_defgrp_name));
|
|
|
|
}
|
|
|
|
else if (md->type == eModifierType_WeightVGProximity) {
|
2012-03-05 23:30:41 +00:00
|
|
|
WeightVGProximityModifierData *wmd = (WeightVGProximityModifierData*)md;
|
2011-07-25 15:27:01 +00:00
|
|
|
rna_object_vgroup_name_set(ptr, value, wmd->mask_defgrp_name, sizeof(wmd->mask_defgrp_name));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_WeightVGMixModifier_vgroup2_set(PointerRNA *ptr, const char *value)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
WeightVGMixModifierData *wmd = (WeightVGMixModifierData*)ptr->data;
|
2011-09-05 04:53:23 +00:00
|
|
|
rna_object_vgroup_name_set(ptr, value, wmd->defgrp_name_b, sizeof(wmd->defgrp_name_b));
|
2011-07-25 15:27:01 +00:00
|
|
|
}
|
|
|
|
|
2011-05-01 15:16:59 +00:00
|
|
|
static void rna_MappingInfo_uvlayer_set(PointerRNA *ptr, const char *value)
|
2009-01-04 19:25:24 +00:00
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
MappingInfoModifierData *mmd = (MappingInfoModifierData *)ptr->data;
|
2011-05-01 15:16:59 +00:00
|
|
|
rna_object_uvlayer_name_set(ptr, value, mmd->uvlayer_name, sizeof(mmd->uvlayer_name));
|
2009-01-04 19:25:24 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_UVProjectModifier_uvlayer_set(PointerRNA *ptr, const char *value)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
UVProjectModifierData *umd = (UVProjectModifierData*)ptr->data;
|
2009-01-04 19:25:24 +00:00
|
|
|
rna_object_uvlayer_name_set(ptr, value, umd->uvlayer_name, sizeof(umd->uvlayer_name));
|
|
|
|
}
|
|
|
|
|
2011-05-01 15:16:59 +00:00
|
|
|
static void RNA_WarpModifier_vgroup_set(PointerRNA *ptr, const char *value)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
WarpModifierData *tmd = (WarpModifierData*)ptr->data;
|
2011-05-01 15:16:59 +00:00
|
|
|
rna_object_vgroup_name_set(ptr, value, tmd->defgrp_name, sizeof(tmd->defgrp_name));
|
|
|
|
}
|
|
|
|
|
2011-07-25 15:27:01 +00:00
|
|
|
static void rna_WeightVGModifier_mask_uvlayer_set(PointerRNA *ptr, const char *value)
|
|
|
|
{
|
|
|
|
ModifierData *md = (ModifierData*)ptr->data;
|
|
|
|
if (md->type == eModifierType_WeightVGEdit) {
|
|
|
|
WeightVGEditModifierData *wmd = (WeightVGEditModifierData*)md;
|
|
|
|
rna_object_uvlayer_name_set(ptr, value, wmd->mask_tex_uvlayer_name, sizeof(wmd->mask_tex_uvlayer_name));
|
|
|
|
}
|
|
|
|
else if (md->type == eModifierType_WeightVGMix) {
|
|
|
|
WeightVGMixModifierData *wmd = (WeightVGMixModifierData*)md;
|
|
|
|
rna_object_uvlayer_name_set(ptr, value, wmd->mask_tex_uvlayer_name, sizeof(wmd->mask_tex_uvlayer_name));
|
|
|
|
}
|
|
|
|
else if (md->type == eModifierType_WeightVGProximity) {
|
|
|
|
WeightVGProximityModifierData *wmd = (WeightVGProximityModifierData*)md;
|
|
|
|
rna_object_uvlayer_name_set(ptr, value, wmd->mask_tex_uvlayer_name, sizeof(wmd->mask_tex_uvlayer_name));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2009-02-05 01:12:47 +00:00
|
|
|
static void rna_MultiresModifier_level_range(PointerRNA *ptr, int *min, int *max)
|
|
|
|
{
|
|
|
|
MultiresModifierData *mmd = (MultiresModifierData*)ptr->data;
|
|
|
|
|
2009-11-25 14:07:12 +00:00
|
|
|
*min = 0;
|
2011-06-23 06:13:21 +00:00
|
|
|
*max = mmd->totlvl; /* intentionally _not_ -1 */
|
2012-03-05 23:30:41 +00:00
|
|
|
*max = MAX2(0, *max);
|
2009-02-05 01:12:47 +00:00
|
|
|
}
|
|
|
|
|
2009-11-25 14:27:50 +00:00
|
|
|
static int rna_MultiresModifier_external_get(PointerRNA *ptr)
|
2009-11-25 14:07:12 +00:00
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
Object *ob = (Object*)ptr->id.data;
|
|
|
|
Mesh *me = ob->data;
|
2009-11-25 14:07:12 +00:00
|
|
|
|
2011-04-15 05:20:18 +00:00
|
|
|
return CustomData_external_test(&me->ldata, CD_MDISPS);
|
2009-11-25 14:07:12 +00:00
|
|
|
}
|
|
|
|
|
2010-06-02 17:58:28 +00:00
|
|
|
static void rna_MultiresModifier_filepath_get(PointerRNA *ptr, char *value)
|
2009-11-25 14:07:12 +00:00
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
Object *ob = (Object*)ptr->id.data;
|
|
|
|
CustomDataExternal *external = ((Mesh*)ob->data)->fdata.external;
|
2009-12-10 14:26:06 +00:00
|
|
|
|
|
|
|
BLI_strncpy(value, (external)? external->filename: "", sizeof(external->filename));
|
|
|
|
}
|
|
|
|
|
2010-06-02 17:58:28 +00:00
|
|
|
static void rna_MultiresModifier_filepath_set(PointerRNA *ptr, const char *value)
|
2009-12-10 14:26:06 +00:00
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
Object *ob = (Object*)ptr->id.data;
|
|
|
|
CustomDataExternal *external = ((Mesh*)ob->data)->fdata.external;
|
2009-12-10 14:26:06 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
if (external && strcmp(external->filename, value)) {
|
2009-12-10 14:26:06 +00:00
|
|
|
BLI_strncpy(external->filename, value, sizeof(external->filename));
|
2010-06-01 19:26:35 +00:00
|
|
|
multires_force_external_reload(ob);
|
|
|
|
}
|
2009-12-10 14:26:06 +00:00
|
|
|
}
|
|
|
|
|
2010-06-02 17:58:28 +00:00
|
|
|
static int rna_MultiresModifier_filepath_length(PointerRNA *ptr)
|
2009-12-10 14:26:06 +00:00
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
Object *ob = (Object*)ptr->id.data;
|
|
|
|
CustomDataExternal *external = ((Mesh*)ob->data)->fdata.external;
|
2009-11-25 14:07:12 +00:00
|
|
|
|
2009-12-10 14:26:06 +00:00
|
|
|
return strlen((external)? external->filename: "");
|
2009-11-25 14:07:12 +00:00
|
|
|
}
|
|
|
|
|
2009-11-01 00:06:53 +00:00
|
|
|
static void modifier_object_set(Object *self, Object **ob_p, int type, PointerRNA value)
|
2009-05-27 00:03:49 +00:00
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
Object *ob = value.data;
|
2009-05-27 00:03:49 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
if (!self || ob != self) {
|
|
|
|
if (!ob || type == OB_EMPTY || ob->type == type) {
|
2011-03-31 08:49:52 +00:00
|
|
|
id_lib_extern((ID *)ob);
|
2012-03-05 23:30:41 +00:00
|
|
|
*ob_p = ob;
|
2011-03-31 08:49:52 +00:00
|
|
|
}
|
|
|
|
}
|
2009-05-27 00:03:49 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_LatticeModifier_object_set(PointerRNA *ptr, PointerRNA value)
|
|
|
|
{
|
2009-11-01 00:06:53 +00:00
|
|
|
modifier_object_set(ptr->id.data, &((LatticeModifierData*)ptr->data)->object, OB_LATTICE, value);
|
2009-05-27 00:03:49 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_BooleanModifier_object_set(PointerRNA *ptr, PointerRNA value)
|
|
|
|
{
|
2009-11-01 00:06:53 +00:00
|
|
|
modifier_object_set(ptr->id.data, &((BooleanModifierData*)ptr->data)->object, OB_MESH, value);
|
2009-05-27 00:03:49 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_CurveModifier_object_set(PointerRNA *ptr, PointerRNA value)
|
|
|
|
{
|
2009-11-01 00:06:53 +00:00
|
|
|
modifier_object_set(ptr->id.data, &((CurveModifierData*)ptr->data)->object, OB_CURVE, value);
|
2009-05-27 00:03:49 +00:00
|
|
|
}
|
|
|
|
|
2009-07-28 06:26:10 +00:00
|
|
|
static void rna_CastModifier_object_set(PointerRNA *ptr, PointerRNA value)
|
|
|
|
{
|
2010-03-26 18:15:06 +00:00
|
|
|
modifier_object_set(ptr->id.data, &((CastModifierData*)ptr->data)->object, OB_EMPTY, value);
|
2009-07-28 06:26:10 +00:00
|
|
|
}
|
|
|
|
|
2009-05-27 00:03:49 +00:00
|
|
|
static void rna_ArmatureModifier_object_set(PointerRNA *ptr, PointerRNA value)
|
|
|
|
{
|
2009-11-01 00:06:53 +00:00
|
|
|
modifier_object_set(ptr->id.data, &((ArmatureModifierData*)ptr->data)->object, OB_ARMATURE, value);
|
2009-05-27 00:03:49 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_MaskModifier_armature_set(PointerRNA *ptr, PointerRNA value)
|
|
|
|
{
|
2009-11-01 00:06:53 +00:00
|
|
|
modifier_object_set(ptr->id.data, &((MaskModifierData*)ptr->data)->ob_arm, OB_ARMATURE, value);
|
2009-05-27 00:03:49 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_ShrinkwrapModifier_auxiliary_target_set(PointerRNA *ptr, PointerRNA value)
|
|
|
|
{
|
2009-11-01 00:06:53 +00:00
|
|
|
modifier_object_set(ptr->id.data, &((ShrinkwrapModifierData*)ptr->data)->auxTarget, OB_MESH, value);
|
2009-05-27 00:03:49 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_ShrinkwrapModifier_target_set(PointerRNA *ptr, PointerRNA value)
|
|
|
|
{
|
2009-11-01 00:06:53 +00:00
|
|
|
modifier_object_set(ptr->id.data, &((ShrinkwrapModifierData*)ptr->data)->target, OB_MESH, value);
|
2009-05-27 00:03:49 +00:00
|
|
|
}
|
|
|
|
|
2011-02-19 09:53:38 +00:00
|
|
|
static int rna_ShrinkwrapModifier_face_cull_get(PointerRNA *ptr)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
ShrinkwrapModifierData *swm = (ShrinkwrapModifierData*)ptr->data;
|
2011-02-19 09:53:38 +00:00
|
|
|
return swm->shrinkOpts & (MOD_SHRINKWRAP_CULL_TARGET_FRONTFACE|MOD_SHRINKWRAP_CULL_TARGET_BACKFACE);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_ShrinkwrapModifier_face_cull_set(struct PointerRNA *ptr, int value)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
ShrinkwrapModifierData *swm = (ShrinkwrapModifierData*)ptr->data;
|
2011-02-19 09:53:38 +00:00
|
|
|
|
2012-03-18 09:27:36 +00:00
|
|
|
swm->shrinkOpts =
|
|
|
|
(swm->shrinkOpts & ~(MOD_SHRINKWRAP_CULL_TARGET_FRONTFACE|MOD_SHRINKWRAP_CULL_TARGET_BACKFACE)) | value;
|
2011-02-19 09:53:38 +00:00
|
|
|
}
|
|
|
|
|
2009-05-27 00:03:49 +00:00
|
|
|
static void rna_MeshDeformModifier_object_set(PointerRNA *ptr, PointerRNA value)
|
|
|
|
{
|
2009-11-01 00:06:53 +00:00
|
|
|
modifier_object_set(ptr->id.data, &((MeshDeformModifierData*)ptr->data)->object, OB_MESH, value);
|
2009-05-27 00:03:49 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_ArrayModifier_end_cap_set(PointerRNA *ptr, PointerRNA value)
|
|
|
|
{
|
2009-11-01 00:06:53 +00:00
|
|
|
modifier_object_set(ptr->id.data, &((ArrayModifierData*)ptr->data)->end_cap, OB_MESH, value);
|
2009-05-27 00:03:49 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_ArrayModifier_start_cap_set(PointerRNA *ptr, PointerRNA value)
|
|
|
|
{
|
2009-11-01 00:06:53 +00:00
|
|
|
modifier_object_set(ptr->id.data, &((ArrayModifierData*)ptr->data)->start_cap, OB_MESH, value);
|
2009-05-27 00:03:49 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_ArrayModifier_curve_set(PointerRNA *ptr, PointerRNA value)
|
|
|
|
{
|
2009-11-01 00:06:53 +00:00
|
|
|
modifier_object_set(ptr->id.data, &((ArrayModifierData*)ptr->data)->curve_ob, OB_CURVE, value);
|
2009-05-27 00:03:49 +00:00
|
|
|
}
|
|
|
|
|
2009-09-16 17:43:09 +00:00
|
|
|
static int rna_MeshDeformModifier_is_bound_get(PointerRNA *ptr)
|
|
|
|
{
|
2010-04-25 10:27:45 +00:00
|
|
|
return (((MeshDeformModifierData*)ptr->data)->bindcagecos != NULL);
|
2009-09-16 17:43:09 +00:00
|
|
|
}
|
|
|
|
|
2009-07-02 19:41:31 +00:00
|
|
|
static PointerRNA rna_SoftBodyModifier_settings_get(PointerRNA *ptr)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
Object *ob = (Object*)ptr->id.data;
|
2009-07-02 19:41:31 +00:00
|
|
|
return rna_pointer_inherit_refine(ptr, &RNA_SoftBodySettings, ob->soft);
|
|
|
|
}
|
|
|
|
|
2009-08-02 19:39:33 +00:00
|
|
|
static PointerRNA rna_SoftBodyModifier_point_cache_get(PointerRNA *ptr)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
Object *ob = (Object*)ptr->id.data;
|
2009-08-02 19:39:33 +00:00
|
|
|
return rna_pointer_inherit_refine(ptr, &RNA_PointCache, ob->soft->pointcache);
|
|
|
|
}
|
|
|
|
|
2009-07-02 19:41:31 +00:00
|
|
|
static PointerRNA rna_CollisionModifier_settings_get(PointerRNA *ptr)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
Object *ob = (Object*)ptr->id.data;
|
2009-07-02 19:41:31 +00:00
|
|
|
return rna_pointer_inherit_refine(ptr, &RNA_CollisionSettings, ob->pd);
|
|
|
|
}
|
|
|
|
|
2009-08-21 02:51:56 +00:00
|
|
|
static PointerRNA rna_UVProjector_object_get(PointerRNA *ptr)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
Object **ob = (Object**)ptr->data;
|
2009-08-21 02:51:56 +00:00
|
|
|
return rna_pointer_inherit_refine(ptr, &RNA_Object, *ob);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_UVProjector_object_set(PointerRNA *ptr, PointerRNA value)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
Object **ob = (Object**)ptr->data;
|
2009-08-21 02:51:56 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
if (*ob)
|
2009-08-21 02:51:56 +00:00
|
|
|
id_us_min((ID*)*ob);
|
2012-03-05 23:30:41 +00:00
|
|
|
if (value.data)
|
2009-08-21 02:51:56 +00:00
|
|
|
id_us_plus((ID*)value.data);
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
*ob = value.data;
|
2009-08-21 02:51:56 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_UVProjectModifier_num_projectors_set(PointerRNA *ptr, int value)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
UVProjectModifierData *md = (UVProjectModifierData*)ptr->data;
|
2009-08-21 02:51:56 +00:00
|
|
|
int a;
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
md->num_projectors = CLAMPIS(value, 1, MOD_UVPROJECT_MAX);
|
|
|
|
for (a = md->num_projectors; a<MOD_UVPROJECT_MAX; a++)
|
|
|
|
md->projectors[a] = NULL;
|
2009-08-21 02:51:56 +00:00
|
|
|
}
|
|
|
|
|
2011-11-14 07:18:32 +00:00
|
|
|
static int rna_OceanModifier_is_build_enabled_get(PointerRNA *UNUSED(ptr))
|
2011-11-13 12:17:27 +00:00
|
|
|
{
|
2011-11-14 07:18:32 +00:00
|
|
|
#ifdef WITH_OCEANSIM
|
2011-11-13 12:17:27 +00:00
|
|
|
return 1;
|
2012-03-05 23:30:41 +00:00
|
|
|
#else /* WITH_OCEANSIM */
|
2011-11-13 12:17:27 +00:00
|
|
|
return 0;
|
2012-03-05 23:30:41 +00:00
|
|
|
#endif /* WITH_OCEANSIM */
|
2011-11-13 12:17:27 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_OceanModifier_init_update(Main *bmain, Scene *scene, PointerRNA *ptr)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
OceanModifierData *omd = (OceanModifierData*)ptr->data;
|
2011-11-13 12:17:27 +00:00
|
|
|
|
|
|
|
omd->refresh |= (MOD_OCEAN_REFRESH_RESET|MOD_OCEAN_REFRESH_SIM|MOD_OCEAN_REFRESH_CLEAR_CACHE);
|
|
|
|
|
|
|
|
rna_Modifier_update(bmain, scene, ptr);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_OceanModifier_sim_update(Main *bmain, Scene *scene, PointerRNA *ptr)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
OceanModifierData *omd = (OceanModifierData*)ptr->data;
|
2011-11-13 12:17:27 +00:00
|
|
|
|
|
|
|
omd->refresh |= MOD_OCEAN_REFRESH_SIM;
|
|
|
|
|
|
|
|
rna_Modifier_update(bmain, scene, ptr);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_OceanModifier_topology_update(Main *bmain, Scene *scene, PointerRNA *ptr)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
OceanModifierData *omd = (OceanModifierData*)ptr->data;
|
2011-11-13 12:17:27 +00:00
|
|
|
|
|
|
|
omd->refresh |= MOD_OCEAN_REFRESH_TOPOLOGY;
|
|
|
|
|
|
|
|
rna_Modifier_update(bmain, scene, ptr);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_OceanModifier_ocean_chop_set(PointerRNA *ptr, float value)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
OceanModifierData *omd = (OceanModifierData*)ptr->data;
|
2011-11-13 12:17:27 +00:00
|
|
|
float old_value = omd->chop_amount;
|
|
|
|
|
|
|
|
omd->chop_amount = value;
|
|
|
|
|
2011-11-13 16:28:52 +00:00
|
|
|
if ((old_value == 0.0f && value > 0.0f) ||
|
|
|
|
(old_value > 0.0f && value == 0.0f))
|
2011-11-13 12:17:27 +00:00
|
|
|
{
|
|
|
|
omd->refresh |= MOD_OCEAN_REFRESH_RESET;
|
|
|
|
omd->refresh |= MOD_OCEAN_REFRESH_CLEAR_CACHE;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2011-06-09 08:58:27 +00:00
|
|
|
static float rna_EdgeSplitModifier_split_angle_get(PointerRNA *ptr)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
EdgeSplitModifierData *md = (EdgeSplitModifierData*)ptr->data;
|
2011-06-09 08:58:27 +00:00
|
|
|
return DEG2RADF(md->split_angle);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_EdgeSplitModifier_split_angle_set(PointerRNA *ptr, float value)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
EdgeSplitModifierData *md = (EdgeSplitModifierData*)ptr->data;
|
|
|
|
value = RAD2DEGF(value);
|
2011-06-09 08:58:27 +00:00
|
|
|
CLAMP(value, 0.0f, 180.0f);
|
2012-03-05 23:30:41 +00:00
|
|
|
md->split_angle = (int)value;
|
2011-06-09 08:58:27 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static float rna_BevelModifier_angle_limit_get(PointerRNA *ptr)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
BevelModifierData *md = (BevelModifierData*)ptr->data;
|
2011-06-09 08:58:27 +00:00
|
|
|
return DEG2RADF(md->bevel_angle);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_BevelModifier_angle_limit_set(PointerRNA *ptr, float value)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
BevelModifierData *md = (BevelModifierData*)ptr->data;
|
|
|
|
value = RAD2DEGF(value);
|
2011-06-09 08:58:27 +00:00
|
|
|
CLAMP(value, 0.0f, 180.0f);
|
2012-03-05 23:30:41 +00:00
|
|
|
md->bevel_angle = (int)value;
|
2011-06-09 08:58:27 +00:00
|
|
|
}
|
|
|
|
|
2008-12-01 13:01:48 +00:00
|
|
|
#else
|
|
|
|
|
2009-02-05 01:12:47 +00:00
|
|
|
static void rna_def_property_subdivision_common(StructRNA *srna, const char type[])
|
2008-12-29 17:36:06 +00:00
|
|
|
{
|
2009-01-01 21:16:16 +00:00
|
|
|
static EnumPropertyItem prop_subdivision_type_items[] = {
|
2009-06-16 00:52:21 +00:00
|
|
|
{0, "CATMULL_CLARK", 0, "Catmull-Clark", ""},
|
|
|
|
{1, "SIMPLE", 0, "Simple", ""},
|
|
|
|
{0, NULL, 0, NULL, NULL}};
|
2008-12-29 17:36:06 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
PropertyRNA *prop = RNA_def_property(srna, "subdivision_type", PROP_ENUM, PROP_NONE);
|
2009-01-06 20:15:23 +00:00
|
|
|
RNA_def_property_enum_sdna(prop, NULL, type);
|
2009-01-01 21:16:16 +00:00
|
|
|
RNA_def_property_enum_items(prop, prop_subdivision_type_items);
|
2011-11-28 15:41:32 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Subdivision Type", "Select type of subdivision algorithm");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-06 20:15:23 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_def_modifier_subsurf(BlenderRNA *brna)
|
|
|
|
{
|
|
|
|
StructRNA *srna;
|
|
|
|
PropertyRNA *prop;
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "SubsurfModifier", "Modifier");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "Subsurf Modifier", "Subdivision surface modifier");
|
2009-01-06 20:15:23 +00:00
|
|
|
RNA_def_struct_sdna(srna, "SubsurfModifierData");
|
2009-06-03 23:16:51 +00:00
|
|
|
RNA_def_struct_ui_icon(srna, ICON_MOD_SUBSURF);
|
2009-01-06 20:15:23 +00:00
|
|
|
|
2009-02-05 01:12:47 +00:00
|
|
|
rna_def_property_subdivision_common(srna, "subdivType");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "levels", PROP_INT, PROP_UNSIGNED);
|
2009-02-05 01:12:47 +00:00
|
|
|
RNA_def_property_int_sdna(prop, NULL, "levels");
|
2009-11-25 14:07:12 +00:00
|
|
|
RNA_def_property_ui_range(prop, 0, 6, 1, 0);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Levels", "Number of subdivisions to perform");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-01 21:16:16 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "render_levels", PROP_INT, PROP_UNSIGNED);
|
2009-01-01 21:16:16 +00:00
|
|
|
RNA_def_property_int_sdna(prop, NULL, "renderLevels");
|
2009-11-25 14:07:12 +00:00
|
|
|
RNA_def_property_ui_range(prop, 0, 6, 1, 0);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Render Levels", "Number of subdivisions to perform when rendering");
|
2009-01-01 21:16:16 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "show_only_control_edges", PROP_BOOLEAN, PROP_NONE);
|
2009-01-01 21:16:16 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flags", eSubsurfModifierFlag_ControlEdges);
|
2009-12-09 13:37:19 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Optimal Display", "Skip drawing/rendering of interior subdivided edges");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-01 21:16:16 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_subsurf_uv", PROP_BOOLEAN, PROP_NONE);
|
2009-01-01 21:16:16 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flags", eSubsurfModifierFlag_SubsurfUv);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Subdivide UVs", "Use subsurf to subdivide UVs");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2008-12-29 17:36:06 +00:00
|
|
|
}
|
|
|
|
|
2011-05-01 15:16:59 +00:00
|
|
|
static void rna_def_modifier_generic_map_info(StructRNA *srna)
|
|
|
|
{
|
|
|
|
static EnumPropertyItem prop_texture_coordinates_items[] = {
|
2011-11-28 15:41:32 +00:00
|
|
|
{MOD_DISP_MAP_LOCAL, "LOCAL", 0, "Local", "Use the local coordinate system for the texture coordinates"},
|
2011-11-26 12:30:01 +00:00
|
|
|
{MOD_DISP_MAP_GLOBAL, "GLOBAL", 0, "Global", "Use the global coordinate system for the texture coordinates"},
|
2012-03-18 09:27:36 +00:00
|
|
|
{MOD_DISP_MAP_OBJECT, "OBJECT", 0, "Object",
|
|
|
|
"Use the linked object's local coordinate system for the texture coordinates"},
|
2011-11-26 12:30:01 +00:00
|
|
|
{MOD_DISP_MAP_UV, "UV", 0, "UV", "Use UV coordinates for the texture coordinates"},
|
2011-05-01 15:16:59 +00:00
|
|
|
{0, NULL, 0, NULL, NULL}};
|
|
|
|
|
|
|
|
PropertyRNA *prop;
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "texture", PROP_POINTER, PROP_NONE);
|
2011-05-01 15:16:59 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Texture", "");
|
|
|
|
RNA_def_property_flag(prop, PROP_EDITABLE);
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "texture_coords", PROP_ENUM, PROP_NONE);
|
2011-05-01 15:16:59 +00:00
|
|
|
RNA_def_property_enum_sdna(prop, NULL, "texmapping");
|
|
|
|
RNA_def_property_enum_items(prop, prop_texture_coordinates_items);
|
|
|
|
RNA_def_property_ui_text(prop, "Texture Coordinates", "");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "uv_layer", PROP_STRING, PROP_NONE);
|
2011-05-01 15:16:59 +00:00
|
|
|
RNA_def_property_string_sdna(prop, NULL, "uvlayer_name");
|
2011-11-23 17:25:25 +00:00
|
|
|
RNA_def_property_ui_text(prop, "UV Map", "UV map name");
|
2011-05-01 15:16:59 +00:00
|
|
|
RNA_def_property_string_funcs(prop, NULL, NULL, "rna_MappingInfo_uvlayer_set");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "texture_coords_object", PROP_POINTER, PROP_NONE);
|
2011-05-01 15:16:59 +00:00
|
|
|
RNA_def_property_pointer_sdna(prop, NULL, "map_object");
|
2011-05-15 17:59:48 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Texture Coordinate Object", "Object to set the texture coordinates");
|
2011-05-01 15:16:59 +00:00
|
|
|
RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK);
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
|
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_def_modifier_warp(BlenderRNA *brna)
|
|
|
|
{
|
|
|
|
StructRNA *srna;
|
|
|
|
PropertyRNA *prop;
|
|
|
|
|
|
|
|
static EnumPropertyItem prop_falloff_items[] = {
|
|
|
|
{eWarp_Falloff_None, "NONE", 0, "No Falloff", ""},
|
|
|
|
{eWarp_Falloff_Curve, "CURVE", 0, "Curve", ""},
|
|
|
|
{eWarp_Falloff_Smooth, "SMOOTH", ICON_SMOOTHCURVE, "Smooth", ""},
|
|
|
|
{eWarp_Falloff_Sphere, "SPHERE", ICON_SPHERECURVE, "Sphere", ""},
|
|
|
|
{eWarp_Falloff_Root, "ROOT", ICON_ROOTCURVE, "Root", ""},
|
|
|
|
{eWarp_Falloff_Sharp, "SHARP", ICON_SHARPCURVE, "Sharp", ""},
|
|
|
|
{eWarp_Falloff_Linear, "LINEAR", ICON_LINCURVE, "Linear", ""},
|
|
|
|
{eWarp_Falloff_Const, "CONSTANT", ICON_NOCURVE, "Constant", ""},
|
|
|
|
{0, NULL, 0, NULL, NULL}};
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "WarpModifier", "Modifier");
|
2011-05-01 15:16:59 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "Warp Modifier", "Warp modifier");
|
|
|
|
RNA_def_struct_sdna(srna, "WarpModifierData");
|
2012-02-12 19:57:47 +00:00
|
|
|
RNA_def_struct_ui_icon(srna, ICON_MOD_WARP);
|
2011-05-01 15:16:59 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "object_from", PROP_POINTER, PROP_NONE);
|
2011-05-01 15:16:59 +00:00
|
|
|
RNA_def_property_ui_text(prop, "From", "Object to transform from");
|
|
|
|
RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK);
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "object_to", PROP_POINTER, PROP_NONE);
|
2011-05-01 15:16:59 +00:00
|
|
|
RNA_def_property_ui_text(prop, "To", "Object to transform to");
|
|
|
|
RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK);
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "strength", PROP_FLOAT, PROP_NONE);
|
2011-05-01 15:16:59 +00:00
|
|
|
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, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "falloff_type", PROP_ENUM, PROP_NONE);
|
2011-05-01 15:16:59 +00:00
|
|
|
RNA_def_property_enum_items(prop, prop_falloff_items);
|
|
|
|
RNA_def_property_ui_text(prop, "Falloff Type", "");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "falloff_radius", PROP_FLOAT, PROP_UNSIGNED | PROP_DISTANCE);
|
2011-05-01 15:16:59 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Radius", "Radius to apply");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "falloff_curve", PROP_POINTER, PROP_NONE);
|
2011-05-01 15:16:59 +00:00
|
|
|
RNA_def_property_pointer_sdna(prop, NULL, "curfalloff");
|
|
|
|
RNA_def_property_ui_text(prop, "Falloff Curve", "Custom Lamp Falloff Curve");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_volume_preserve", PROP_BOOLEAN, PROP_NONE);
|
2011-05-01 15:16:59 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_WARP_VOLUME_PRESERVE);
|
|
|
|
RNA_def_property_ui_text(prop, "Preserve Volume", "Preserve volume when rotations are used");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "vertex_group", PROP_STRING, PROP_NONE);
|
2011-05-01 15:16:59 +00:00
|
|
|
RNA_def_property_string_sdna(prop, NULL, "defgrp_name");
|
|
|
|
RNA_def_property_ui_text(prop, "Vertex Group", "Vertex group name for modulating the deform");
|
|
|
|
RNA_def_property_string_funcs(prop, NULL, NULL, "RNA_WarpModifier_vgroup_set");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
|
|
|
rna_def_modifier_generic_map_info(srna);
|
|
|
|
}
|
|
|
|
|
2009-01-06 20:15:23 +00:00
|
|
|
static void rna_def_modifier_multires(BlenderRNA *brna)
|
|
|
|
{
|
|
|
|
StructRNA *srna;
|
2009-02-05 01:12:47 +00:00
|
|
|
PropertyRNA *prop;
|
2009-01-06 20:15:23 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "MultiresModifier", "Modifier");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "Multires Modifier", "Multiresolution mesh modifier");
|
2009-01-06 20:15:23 +00:00
|
|
|
RNA_def_struct_sdna(srna, "MultiresModifierData");
|
2009-06-03 23:16:51 +00:00
|
|
|
RNA_def_struct_ui_icon(srna, ICON_MOD_MULTIRES);
|
2009-01-06 20:15:23 +00:00
|
|
|
|
2009-02-05 01:12:47 +00:00
|
|
|
rna_def_property_subdivision_common(srna, "simple");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "levels", PROP_INT, PROP_UNSIGNED);
|
2009-02-05 01:12:47 +00:00
|
|
|
RNA_def_property_int_sdna(prop, NULL, "lvl");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Levels", "Number of subdivisions to use in the viewport");
|
2009-11-25 14:07:12 +00:00
|
|
|
RNA_def_property_int_funcs(prop, NULL, NULL, "rna_MultiresModifier_level_range");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "sculpt_levels", PROP_INT, PROP_UNSIGNED);
|
2009-11-25 14:07:12 +00:00
|
|
|
RNA_def_property_int_sdna(prop, NULL, "sculptlvl");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Sculpt Levels", "Number of subdivisions to use in sculpt mode");
|
2009-02-05 01:12:47 +00:00
|
|
|
RNA_def_property_int_funcs(prop, NULL, NULL, "rna_MultiresModifier_level_range");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-11-25 14:07:12 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "render_levels", PROP_INT, PROP_UNSIGNED);
|
2009-11-25 14:07:12 +00:00
|
|
|
RNA_def_property_int_sdna(prop, NULL, "renderlvl");
|
2011-05-15 17:59:48 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Render Levels", "The subdivision level visible at render time");
|
2009-11-25 14:07:12 +00:00
|
|
|
RNA_def_property_int_funcs(prop, NULL, NULL, "rna_MultiresModifier_level_range");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "total_levels", PROP_INT, PROP_UNSIGNED);
|
2009-11-25 14:07:12 +00:00
|
|
|
RNA_def_property_int_sdna(prop, NULL, "totlvl");
|
|
|
|
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Total Levels", "Number of subdivisions for which displacements are stored");
|
2009-11-25 14:07:12 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "is_external", PROP_BOOLEAN, PROP_NONE);
|
2009-12-10 14:26:06 +00:00
|
|
|
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
|
|
|
|
RNA_def_property_boolean_funcs(prop, "rna_MultiresModifier_external_get", NULL);
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_property_ui_text(prop, "External",
|
|
|
|
"Store multires displacements outside the .blend file, to save memory");
|
2009-12-09 13:37:19 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "filepath", PROP_STRING, PROP_FILEPATH);
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_property_string_funcs(prop, "rna_MultiresModifier_filepath_get", "rna_MultiresModifier_filepath_length",
|
|
|
|
"rna_MultiresModifier_filepath_set");
|
2010-06-02 17:58:28 +00:00
|
|
|
RNA_def_property_ui_text(prop, "File Path", "Path to external displacements file");
|
2009-12-10 14:26:06 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "show_only_control_edges", PROP_BOOLEAN, PROP_NONE);
|
2009-12-09 13:37:19 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flags", eMultiresModifierFlag_ControlEdges);
|
|
|
|
RNA_def_property_ui_text(prop, "Optimal Display", "Skip drawing/rendering of interior subdivided edges");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2011-07-28 11:16:10 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_subsurf_uv", PROP_BOOLEAN, PROP_NONE);
|
2011-07-28 11:16:10 +00:00
|
|
|
RNA_def_property_boolean_negative_sdna(prop, NULL, "flags", eMultiresModifierFlag_PlainUv);
|
|
|
|
RNA_def_property_ui_text(prop, "Subdivide UVs", "Use subsurf to subdivide UVs");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-06 20:15:23 +00:00
|
|
|
}
|
|
|
|
|
2008-12-29 17:36:06 +00:00
|
|
|
static void rna_def_modifier_lattice(BlenderRNA *brna)
|
|
|
|
{
|
|
|
|
StructRNA *srna;
|
2009-01-01 21:16:16 +00:00
|
|
|
PropertyRNA *prop;
|
2008-12-29 17:36:06 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "LatticeModifier", "Modifier");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "Lattice Modifier", "Lattice deformation modifier");
|
2008-12-29 17:36:06 +00:00
|
|
|
RNA_def_struct_sdna(srna, "LatticeModifierData");
|
2009-06-03 23:16:51 +00:00
|
|
|
RNA_def_struct_ui_icon(srna, ICON_MOD_LATTICE);
|
2009-01-01 21:16:16 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "object", PROP_POINTER, PROP_NONE);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Object", "Lattice object to deform with");
|
2010-08-03 06:51:36 +00:00
|
|
|
RNA_def_property_pointer_funcs(prop, NULL, "rna_LatticeModifier_object_set", NULL, "rna_Lattice_object_poll");
|
2009-11-01 00:06:53 +00:00
|
|
|
RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK);
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
|
2009-01-01 21:16:16 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "vertex_group", PROP_STRING, PROP_NONE);
|
2009-01-01 21:16:16 +00:00
|
|
|
RNA_def_property_string_sdna(prop, NULL, "name");
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Vertex Group",
|
|
|
|
"Name of Vertex Group which determines influence of modifier per point");
|
2009-01-04 19:25:24 +00:00
|
|
|
RNA_def_property_string_funcs(prop, NULL, NULL, "rna_LatticeModifier_vgroup_set");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2012-03-25 22:14:21 +00:00
|
|
|
|
|
|
|
prop = RNA_def_property(srna, "influence", PROP_FLOAT, PROP_NONE);
|
|
|
|
RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);
|
|
|
|
RNA_def_property_ui_range(prop, 0, 1, 10, 2);
|
|
|
|
RNA_def_property_ui_text(prop, "Influence", "Strength of modifier effect");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2008-12-29 17:36:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_def_modifier_curve(BlenderRNA *brna)
|
|
|
|
{
|
|
|
|
StructRNA *srna;
|
2009-01-01 23:32:49 +00:00
|
|
|
PropertyRNA *prop;
|
|
|
|
|
|
|
|
static EnumPropertyItem prop_deform_axis_items[] = {
|
2009-06-16 00:52:21 +00:00
|
|
|
{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}};
|
2008-12-29 17:36:06 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "CurveModifier", "Modifier");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "Curve Modifier", "Curve deformation modifier");
|
2008-12-29 17:36:06 +00:00
|
|
|
RNA_def_struct_sdna(srna, "CurveModifierData");
|
2009-06-03 23:16:51 +00:00
|
|
|
RNA_def_struct_ui_icon(srna, ICON_MOD_CURVE);
|
2009-01-01 23:32:49 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "object", PROP_POINTER, PROP_NONE);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Object", "Curve object to deform with");
|
2010-08-03 06:51:36 +00:00
|
|
|
RNA_def_property_pointer_funcs(prop, NULL, "rna_CurveModifier_object_set", NULL, "rna_Curve_object_poll");
|
2009-11-01 00:06:53 +00:00
|
|
|
RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK);
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
|
2009-01-01 23:32:49 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "vertex_group", PROP_STRING, PROP_NONE);
|
2009-01-01 23:32:49 +00:00
|
|
|
RNA_def_property_string_sdna(prop, NULL, "name");
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Vertex Group",
|
|
|
|
"Name of Vertex Group which determines influence of modifier per point");
|
2009-01-04 19:25:24 +00:00
|
|
|
RNA_def_property_string_funcs(prop, NULL, NULL, "rna_CurveModifier_vgroup_set");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-01 23:32:49 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "deform_axis", PROP_ENUM, PROP_NONE);
|
2009-01-01 23:32:49 +00:00
|
|
|
RNA_def_property_enum_sdna(prop, NULL, "defaxis");
|
|
|
|
RNA_def_property_enum_items(prop, prop_deform_axis_items);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Deform Axis", "The axis that the curve deforms along");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2008-12-29 17:36:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_def_modifier_build(BlenderRNA *brna)
|
|
|
|
{
|
|
|
|
StructRNA *srna;
|
2009-01-01 21:49:04 +00:00
|
|
|
PropertyRNA *prop;
|
2008-12-29 17:36:06 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "BuildModifier", "Modifier");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "Build Modifier", "Build effect modifier");
|
2008-12-29 17:36:06 +00:00
|
|
|
RNA_def_struct_sdna(srna, "BuildModifierData");
|
2009-06-03 23:16:51 +00:00
|
|
|
RNA_def_struct_ui_icon(srna, ICON_MOD_BUILD);
|
2009-01-01 21:49:04 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "frame_start", PROP_FLOAT, PROP_TIME);
|
2010-04-22 17:35:00 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "start");
|
2009-07-07 06:56:29 +00:00
|
|
|
RNA_def_property_range(prop, MINAFRAMEF, MAXFRAMEF);
|
2011-11-28 15:41:32 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Start", "Start frame of the effect");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-01 21:49:04 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "frame_duration", PROP_FLOAT, PROP_TIME);
|
2010-08-21 04:51:00 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "length");
|
2009-01-01 21:49:04 +00:00
|
|
|
RNA_def_property_range(prop, 1, MAXFRAMEF);
|
2011-11-28 15:41:32 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Length", "Total time the build effect requires");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-01 21:49:04 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_random_order", PROP_BOOLEAN, PROP_NONE);
|
2010-08-21 04:51:00 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "randomize", 1);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Randomize", "Randomize the faces or edges during build");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-01 21:49:04 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "seed", PROP_INT, PROP_NONE);
|
2009-01-01 21:49:04 +00:00
|
|
|
RNA_def_property_range(prop, 1, MAXFRAMEF);
|
2011-11-28 15:41:32 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Seed", "Seed for random if used");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2008-12-29 17:36:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_def_modifier_mirror(BlenderRNA *brna)
|
|
|
|
{
|
|
|
|
StructRNA *srna;
|
2009-01-01 22:43:58 +00:00
|
|
|
PropertyRNA *prop;
|
2008-12-29 17:36:06 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "MirrorModifier", "Modifier");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "Mirror Modifier", "Mirroring modifier");
|
2008-12-29 17:36:06 +00:00
|
|
|
RNA_def_struct_sdna(srna, "MirrorModifierData");
|
2009-06-03 23:16:51 +00:00
|
|
|
RNA_def_struct_ui_icon(srna, ICON_MOD_MIRROR);
|
2009-01-01 22:43:58 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_x", PROP_BOOLEAN, PROP_NONE);
|
2009-01-01 22:43:58 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_MIR_AXIS_X);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "X", "Enable X axis mirror");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-01 22:43:58 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_y", PROP_BOOLEAN, PROP_NONE);
|
2009-01-01 22:43:58 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_MIR_AXIS_Y);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Y", "Enable Y axis mirror");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-01 22:43:58 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_z", PROP_BOOLEAN, PROP_NONE);
|
2009-01-01 22:43:58 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_MIR_AXIS_Z);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Z", "Enable Z axis mirror");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-01 22:43:58 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_clip", PROP_BOOLEAN, PROP_NONE);
|
2009-01-01 22:43:58 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_MIR_CLIPPING);
|
2011-11-28 15:41:32 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Clip", "Prevent vertices from going through the mirror during transform");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-01 22:43:58 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_mirror_vertex_groups", PROP_BOOLEAN, PROP_NONE);
|
2009-01-01 22:43:58 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_MIR_VGROUP);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Mirror Vertex Groups", "Mirror vertex groups (e.g. .R->.L)");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2011-02-10 00:05:03 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_mirror_merge", PROP_BOOLEAN, PROP_NONE);
|
2011-02-10 00:44:26 +00:00
|
|
|
RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", MOD_MIR_NO_MERGE);
|
2011-04-11 01:18:25 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Merge Vertices", "Merge vertices within the merge threshold");
|
2011-02-10 00:05:03 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-01 22:43:58 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_mirror_u", PROP_BOOLEAN, PROP_NONE);
|
2009-01-01 22:43:58 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_MIR_MIRROR_U);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Mirror U", "Mirror the U texture coordinate around the 0.5 point");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-01 22:43:58 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_mirror_v", PROP_BOOLEAN, PROP_NONE);
|
2009-01-01 22:43:58 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_MIR_MIRROR_V);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Mirror V", "Mirror the V texture coordinate around the 0.5 point");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-01 22:43:58 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "merge_threshold", PROP_FLOAT, PROP_DISTANCE);
|
2009-01-01 22:43:58 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "tolerance");
|
2009-01-02 02:25:29 +00:00
|
|
|
RNA_def_property_range(prop, 0, FLT_MAX);
|
2009-11-21 18:12:45 +00:00
|
|
|
RNA_def_property_ui_range(prop, 0, 1, 0.01, 6);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Merge Limit", "Distance from axis within which mirrored vertices are merged");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-01 22:43:58 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "mirror_object", PROP_POINTER, PROP_NONE);
|
2009-01-01 22:43:58 +00:00
|
|
|
RNA_def_property_pointer_sdna(prop, NULL, "mirror_ob");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Mirror Object", "Object to use as mirror");
|
2009-11-01 00:06:53 +00:00
|
|
|
RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK);
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
|
2008-12-29 17:36:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_def_modifier_decimate(BlenderRNA *brna)
|
|
|
|
{
|
|
|
|
StructRNA *srna;
|
2009-01-01 23:47:32 +00:00
|
|
|
PropertyRNA *prop;
|
2008-12-29 17:36:06 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "DecimateModifier", "Modifier");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "Decimate Modifier", "Decimation modifier");
|
2008-12-29 17:36:06 +00:00
|
|
|
RNA_def_struct_sdna(srna, "DecimateModifierData");
|
2009-06-03 23:16:51 +00:00
|
|
|
RNA_def_struct_ui_icon(srna, ICON_MOD_DECIM);
|
2009-01-01 23:47:32 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "ratio", PROP_FLOAT, PROP_NONE);
|
2009-01-01 23:47:32 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "percent");
|
|
|
|
RNA_def_property_range(prop, 0, 1);
|
2010-08-22 16:44:48 +00:00
|
|
|
RNA_def_property_ui_range(prop, 0, 1, 1, 2);
|
2011-11-28 15:41:32 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Ratio", "Ratio of triangles to reduce to");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-01 23:47:32 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "face_count", PROP_INT, PROP_NONE);
|
2009-01-01 23:47:32 +00:00
|
|
|
RNA_def_property_int_sdna(prop, NULL, "faceCount");
|
2009-03-23 13:24:48 +00:00
|
|
|
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Face Count", "The current number of faces in the decimated mesh");
|
2008-12-29 17:36:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_def_modifier_wave(BlenderRNA *brna)
|
|
|
|
{
|
|
|
|
StructRNA *srna;
|
2009-01-02 00:53:49 +00:00
|
|
|
PropertyRNA *prop;
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "WaveModifier", "Modifier");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "Wave Modifier", "Wave effect modifier");
|
2008-12-29 17:36:06 +00:00
|
|
|
RNA_def_struct_sdna(srna, "WaveModifierData");
|
2009-06-03 23:16:51 +00:00
|
|
|
RNA_def_struct_ui_icon(srna, ICON_MOD_WAVE);
|
2009-01-02 00:53:49 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_x", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 00:53:49 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_WAVE_X);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "X", "X axis motion");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 00:53:49 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_y", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 00:53:49 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_WAVE_Y);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Y", "Y axis motion");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 00:53:49 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_cyclic", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 00:53:49 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_WAVE_CYCL);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Cyclic", "Cyclic wave effect");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 00:53:49 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_normal", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 00:53:49 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_WAVE_NORM);
|
2010-05-04 05:15:53 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Normals", "Displace along normals");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 00:53:49 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_normal_x", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 00:53:49 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_WAVE_NORM_X);
|
|
|
|
RNA_def_property_ui_text(prop, "X Normal", "Enable displacement along the X normal");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 00:53:49 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_normal_y", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 00:53:49 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_WAVE_NORM_Y);
|
|
|
|
RNA_def_property_ui_text(prop, "Y Normal", "Enable displacement along the Y normal");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 00:53:49 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_normal_z", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 00:53:49 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_WAVE_NORM_Z);
|
|
|
|
RNA_def_property_ui_text(prop, "Z Normal", "Enable displacement along the Z normal");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 00:53:49 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "time_offset", PROP_FLOAT, PROP_NONE);
|
2009-01-02 00:53:49 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "timeoffs");
|
2009-07-07 06:56:29 +00:00
|
|
|
RNA_def_property_range(prop, MINAFRAMEF, MAXFRAMEF);
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Time Offset",
|
|
|
|
"Either the starting frame (for positive speed) or ending frame (for negative speed.)");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 00:53:49 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "lifetime", PROP_FLOAT, PROP_TIME);
|
2010-08-20 06:09:58 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "lifetime");
|
2009-07-07 06:56:29 +00:00
|
|
|
RNA_def_property_range(prop, MINAFRAMEF, MAXFRAMEF);
|
2011-05-15 17:59:48 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Lifetime", "Lifetime of the wave in frames, zero means infinite");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 00:53:49 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "damping_time", PROP_FLOAT, PROP_TIME);
|
2009-01-02 00:53:49 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "damp");
|
2009-07-07 06:56:29 +00:00
|
|
|
RNA_def_property_range(prop, MINAFRAMEF, MAXFRAMEF);
|
2011-11-28 15:41:32 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Damping Time", "Number of frames in which the wave damps out after it dies");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 00:53:49 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "falloff_radius", PROP_FLOAT, PROP_DISTANCE);
|
2009-01-02 00:53:49 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "falloff");
|
2009-01-02 02:25:29 +00:00
|
|
|
RNA_def_property_range(prop, 0, FLT_MAX);
|
|
|
|
RNA_def_property_ui_range(prop, 0, 100, 100, 2);
|
2011-05-15 17:59:48 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Falloff Radius", "Distance after which it fades out");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 00:53:49 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "start_position_x", PROP_FLOAT, PROP_DISTANCE);
|
2009-01-02 00:53:49 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "startx");
|
2009-06-11 16:59:59 +00:00
|
|
|
RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);
|
2009-01-02 02:25:29 +00:00
|
|
|
RNA_def_property_ui_range(prop, -100, 100, 100, 2);
|
2011-05-15 17:59:48 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Start Position X", "X coordinate of the start position");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 00:53:49 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "start_position_y", PROP_FLOAT, PROP_DISTANCE);
|
2009-01-02 00:53:49 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "starty");
|
2009-06-11 16:59:59 +00:00
|
|
|
RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);
|
2009-01-02 02:25:29 +00:00
|
|
|
RNA_def_property_ui_range(prop, -100, 100, 100, 2);
|
2011-11-28 15:41:32 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Start Position Y", "Y coordinate of the start position");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 00:53:49 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "start_position_object", PROP_POINTER, PROP_NONE);
|
2009-01-02 00:53:49 +00:00
|
|
|
RNA_def_property_pointer_sdna(prop, NULL, "objectcenter");
|
2011-05-15 17:59:48 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Start Position Object", "Object which defines the wave center");
|
2009-11-05 18:05:55 +00:00
|
|
|
RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK);
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
|
2009-01-02 00:53:49 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "vertex_group", PROP_STRING, PROP_NONE);
|
2009-01-02 00:53:49 +00:00
|
|
|
RNA_def_property_string_sdna(prop, NULL, "defgrp_name");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Vertex Group", "Vertex group name for modulating the wave");
|
2009-01-04 19:25:24 +00:00
|
|
|
RNA_def_property_string_funcs(prop, NULL, NULL, "rna_WaveModifier_vgroup_set");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 00:53:49 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "speed", PROP_FLOAT, PROP_NONE);
|
2009-06-11 16:59:59 +00:00
|
|
|
RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);
|
2009-07-15 22:58:12 +00:00
|
|
|
RNA_def_property_ui_range(prop, -1, 1, 10, 2);
|
2011-05-15 17:59:48 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Speed", "Speed of the wave, towards the starting point when negative");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 00:53:49 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "height", PROP_FLOAT, PROP_DISTANCE);
|
2009-06-11 16:59:59 +00:00
|
|
|
RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);
|
2009-01-02 02:25:29 +00:00
|
|
|
RNA_def_property_ui_range(prop, -2, 2, 10, 2);
|
2011-05-15 17:59:48 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Height", "Height of the wave");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 00:53:49 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "width", PROP_FLOAT, PROP_DISTANCE);
|
2009-01-02 02:25:29 +00:00
|
|
|
RNA_def_property_range(prop, 0, FLT_MAX);
|
|
|
|
RNA_def_property_ui_range(prop, 0, 5, 10, 2);
|
2011-05-15 17:59:48 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Width", "Distance between the waves");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 00:53:49 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "narrowness", PROP_FLOAT, PROP_DISTANCE);
|
2009-01-02 00:53:49 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "narrow");
|
2009-01-02 02:25:29 +00:00
|
|
|
RNA_def_property_range(prop, 0, FLT_MAX);
|
|
|
|
RNA_def_property_ui_range(prop, 0, 10, 10, 2);
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Narrowness",
|
|
|
|
"Distance between the top and the base of a wave, the higher the value, "
|
|
|
|
"the more narrow the wave");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2012-01-04 06:20:10 +00:00
|
|
|
|
|
|
|
rna_def_modifier_generic_map_info(srna);
|
2008-12-29 17:36:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_def_modifier_armature(BlenderRNA *brna)
|
|
|
|
{
|
|
|
|
StructRNA *srna;
|
2009-01-02 01:28:02 +00:00
|
|
|
PropertyRNA *prop;
|
2008-12-29 17:36:06 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "ArmatureModifier", "Modifier");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "Armature Modifier", "Armature deformation modifier");
|
2008-12-29 17:36:06 +00:00
|
|
|
RNA_def_struct_sdna(srna, "ArmatureModifierData");
|
2009-06-03 23:16:51 +00:00
|
|
|
RNA_def_struct_ui_icon(srna, ICON_MOD_ARMATURE);
|
2009-01-02 01:28:02 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "object", PROP_POINTER, PROP_NONE);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Object", "Armature object to deform with");
|
2010-08-03 06:51:36 +00:00
|
|
|
RNA_def_property_pointer_funcs(prop, NULL, "rna_ArmatureModifier_object_set", NULL, "rna_Armature_object_poll");
|
2009-11-01 00:06:53 +00:00
|
|
|
RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK);
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
|
2009-01-02 01:28:02 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_bone_envelopes", PROP_BOOLEAN, PROP_NONE);
|
2010-11-19 03:09:51 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "deformflag", ARM_DEF_ENVELOPE);
|
2011-11-26 12:30:01 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Use Bone Envelopes", "Bind Bone envelopes to armature modifier");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 01:28:02 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_vertex_groups", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 01:28:02 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "deformflag", ARM_DEF_VGROUP);
|
2011-11-26 12:30:01 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Use Vertex Groups", "Bind vertex groups to armature modifier");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2010-11-19 03:09:51 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_deform_preserve_volume", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 01:28:02 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "deformflag", ARM_DEF_QUATERNION);
|
2010-11-19 03:09:51 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Preserve Volume", "Deform rotation interpolation with quaternions");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 01:28:02 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_multi_modifier", PROP_BOOLEAN, PROP_NONE);
|
2009-04-27 18:05:58 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "multi", 0);
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Multi Modifier",
|
|
|
|
"Use same input as previous modifier, and mix results using overall vgroup");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2010-11-19 03:09:51 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "vertex_group", PROP_STRING, PROP_NONE);
|
2010-11-19 03:09:51 +00:00
|
|
|
RNA_def_property_string_sdna(prop, NULL, "defgrp_name");
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Vertex Group",
|
|
|
|
"Name of Vertex Group which determines influence of modifier per point");
|
2010-11-19 03:09:51 +00:00
|
|
|
RNA_def_property_string_funcs(prop, NULL, NULL, "rna_ArmatureModifier_vgroup_set");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "invert_vertex_group", PROP_BOOLEAN, PROP_NONE);
|
2010-11-19 03:09:51 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "deformflag", ARM_DEF_INVERT_VGROUP);
|
|
|
|
RNA_def_property_ui_text(prop, "Invert", "Invert vertex group influence");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2008-12-29 17:36:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_def_modifier_hook(BlenderRNA *brna)
|
|
|
|
{
|
|
|
|
StructRNA *srna;
|
2009-01-02 02:37:54 +00:00
|
|
|
PropertyRNA *prop;
|
2008-12-29 17:36:06 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "HookModifier", "Modifier");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "Hook Modifier", "Hook modifier to modify the location of vertices");
|
2008-12-29 17:36:06 +00:00
|
|
|
RNA_def_struct_sdna(srna, "HookModifierData");
|
2009-06-03 23:16:51 +00:00
|
|
|
RNA_def_struct_ui_icon(srna, ICON_HOOK);
|
2009-01-02 02:37:54 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "falloff", PROP_FLOAT, PROP_DISTANCE);
|
2009-01-02 02:37:54 +00:00
|
|
|
RNA_def_property_range(prop, 0, FLT_MAX);
|
|
|
|
RNA_def_property_ui_range(prop, 0, 100, 100, 2);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Falloff", "If not zero, the distance from the hook where influence ends");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 02:37:54 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "force", PROP_FLOAT, PROP_NONE);
|
2009-01-02 02:37:54 +00:00
|
|
|
RNA_def_property_range(prop, 0, 1);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Force", "Relative force of the hook");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 02:37:54 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "object", PROP_POINTER, PROP_NONE);
|
2009-01-02 02:37:54 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Object", "Parent Object for hook, also recalculates and clears offset");
|
2009-11-01 00:06:53 +00:00
|
|
|
RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK);
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
|
2009-08-21 10:47:27 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "subtarget", PROP_STRING, PROP_NONE);
|
2009-08-21 10:47:27 +00:00
|
|
|
RNA_def_property_string_sdna(prop, NULL, "subtarget");
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Sub-Target",
|
|
|
|
"Name of Parent Bone for hook (if applicable), also recalculates and clears offset");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
|
2009-01-02 02:37:54 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "vertex_group", PROP_STRING, PROP_NONE);
|
2009-01-02 02:37:54 +00:00
|
|
|
RNA_def_property_string_sdna(prop, NULL, "name");
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Vertex Group",
|
|
|
|
"Name of Vertex Group which determines influence of modifier per point");
|
2009-01-04 19:25:24 +00:00
|
|
|
RNA_def_property_string_funcs(prop, NULL, NULL, "rna_HookModifier_vgroup_set");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2008-12-29 17:36:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_def_modifier_softbody(BlenderRNA *brna)
|
|
|
|
{
|
|
|
|
StructRNA *srna;
|
2009-07-02 19:41:31 +00:00
|
|
|
PropertyRNA *prop;
|
2008-12-29 17:36:06 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "SoftBodyModifier", "Modifier");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "Soft Body Modifier", "Soft body simulation modifier");
|
2008-12-29 17:36:06 +00:00
|
|
|
RNA_def_struct_sdna(srna, "SoftbodyModifierData");
|
2009-06-03 23:16:51 +00:00
|
|
|
RNA_def_struct_ui_icon(srna, ICON_MOD_SOFT);
|
2009-07-02 19:41:31 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "settings", PROP_POINTER, PROP_NONE);
|
2009-10-22 23:22:05 +00:00
|
|
|
RNA_def_property_flag(prop, PROP_NEVER_NULL);
|
2009-07-02 19:41:31 +00:00
|
|
|
RNA_def_property_struct_type(prop, "SoftBodySettings");
|
2010-08-03 05:14:59 +00:00
|
|
|
RNA_def_property_pointer_funcs(prop, "rna_SoftBodyModifier_settings_get", NULL, NULL, NULL);
|
2009-07-02 19:41:31 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Soft Body Settings", "");
|
2009-08-02 19:39:33 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "point_cache", PROP_POINTER, PROP_NONE);
|
2009-10-22 23:22:05 +00:00
|
|
|
RNA_def_property_flag(prop, PROP_NEVER_NULL);
|
2009-08-02 19:39:33 +00:00
|
|
|
RNA_def_property_struct_type(prop, "PointCache");
|
2010-08-03 05:14:59 +00:00
|
|
|
RNA_def_property_pointer_funcs(prop, "rna_SoftBodyModifier_point_cache_get", NULL, NULL, NULL);
|
2009-08-02 19:39:33 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Soft Body Point Cache", "");
|
2008-12-29 17:36:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_def_modifier_boolean(BlenderRNA *brna)
|
|
|
|
{
|
|
|
|
StructRNA *srna;
|
2009-01-02 03:38:15 +00:00
|
|
|
PropertyRNA *prop;
|
|
|
|
|
|
|
|
static EnumPropertyItem prop_operation_items[] = {
|
2012-03-18 09:27:36 +00:00
|
|
|
{eBooleanModifierOp_Intersect, "INTERSECT", 0, "Intersect",
|
|
|
|
"Keep the part of the mesh that intersects with the other selected object"},
|
2011-11-26 12:30:01 +00:00
|
|
|
{eBooleanModifierOp_Union, "UNION", 0, "Union", "Combine two meshes in an additive way"},
|
|
|
|
{eBooleanModifierOp_Difference, "DIFFERENCE", 0, "Difference", "Combine two meshes in a subtractive way"},
|
2009-06-16 00:52:21 +00:00
|
|
|
{0, NULL, 0, NULL, NULL}};
|
2008-12-29 17:36:06 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "BooleanModifier", "Modifier");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "Boolean Modifier", "Boolean operations modifier");
|
2008-12-29 17:36:06 +00:00
|
|
|
RNA_def_struct_sdna(srna, "BooleanModifierData");
|
2009-06-03 23:16:51 +00:00
|
|
|
RNA_def_struct_ui_icon(srna, ICON_MOD_BOOLEAN);
|
2009-01-02 03:38:15 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "object", PROP_POINTER, PROP_NONE);
|
2010-05-04 05:15:53 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Object", "Mesh object to use for Boolean operation");
|
2011-04-07 13:14:08 +00:00
|
|
|
RNA_def_property_pointer_funcs(prop, NULL, "rna_BooleanModifier_object_set", NULL, "rna_Mesh_object_poll");
|
2009-11-01 00:06:53 +00:00
|
|
|
RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK);
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
|
2009-01-02 03:38:15 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "operation", PROP_ENUM, PROP_NONE);
|
2009-01-02 03:38:15 +00:00
|
|
|
RNA_def_property_enum_items(prop, prop_operation_items);
|
|
|
|
RNA_def_property_ui_text(prop, "Operation", "");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2008-12-29 17:36:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_def_modifier_array(BlenderRNA *brna)
|
|
|
|
{
|
|
|
|
StructRNA *srna;
|
2009-01-02 04:45:13 +00:00
|
|
|
PropertyRNA *prop;
|
|
|
|
|
|
|
|
static EnumPropertyItem prop_fit_type_items[] = {
|
2011-05-15 17:59:48 +00:00
|
|
|
{MOD_ARR_FIXEDCOUNT, "FIXED_COUNT", 0, "Fixed Count", "Duplicate the object a certain number of times"},
|
2012-03-18 09:27:36 +00:00
|
|
|
{MOD_ARR_FITLENGTH, "FIT_LENGTH", 0, "Fit Length",
|
|
|
|
"Duplicate the object as many times as fits in a certain length"},
|
2011-05-15 17:59:48 +00:00
|
|
|
{MOD_ARR_FITCURVE, "FIT_CURVE", 0, "Fit Curve", "Fit the duplicated objects to a curve"},
|
2009-06-16 00:52:21 +00:00
|
|
|
{0, NULL, 0, NULL, NULL}};
|
2008-12-29 17:36:06 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "ArrayModifier", "Modifier");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "Array Modifier", "Array duplication modifier");
|
2008-12-29 17:36:06 +00:00
|
|
|
RNA_def_struct_sdna(srna, "ArrayModifierData");
|
2009-06-03 23:16:51 +00:00
|
|
|
RNA_def_struct_ui_icon(srna, ICON_MOD_ARRAY);
|
2009-01-02 04:45:13 +00:00
|
|
|
|
|
|
|
/* Length parameters */
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "fit_type", PROP_ENUM, PROP_NONE);
|
2009-01-02 04:45:13 +00:00
|
|
|
RNA_def_property_enum_items(prop, prop_fit_type_items);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Fit Type", "Array length calculation method");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 04:45:13 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "count", PROP_INT, PROP_NONE);
|
2009-01-02 04:45:13 +00:00
|
|
|
RNA_def_property_range(prop, 1, INT_MAX);
|
|
|
|
RNA_def_property_ui_range(prop, 1, 1000, 1, 0);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Count", "Number of duplicates to make");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 04:45:13 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "fit_length", PROP_FLOAT, PROP_DISTANCE);
|
2010-08-21 04:51:00 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "length");
|
2009-01-02 04:45:13 +00:00
|
|
|
RNA_def_property_range(prop, 0, INT_MAX);
|
|
|
|
RNA_def_property_ui_range(prop, 0, 10000, 10, 2);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Length", "Length to fit array within");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 04:45:13 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "curve", PROP_POINTER, PROP_NONE);
|
2009-01-02 04:45:13 +00:00
|
|
|
RNA_def_property_pointer_sdna(prop, NULL, "curve_ob");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Curve", "Curve object to fit array length to");
|
2010-08-03 06:51:36 +00:00
|
|
|
RNA_def_property_pointer_funcs(prop, NULL, "rna_ArrayModifier_curve_set", NULL, "rna_Curve_object_poll");
|
2009-11-01 00:06:53 +00:00
|
|
|
RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK);
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
|
2009-01-02 04:45:13 +00:00
|
|
|
|
|
|
|
/* Offset parameters */
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_constant_offset", PROP_BOOLEAN, PROP_TRANSLATION);
|
2009-01-02 04:45:13 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "offset_type", MOD_ARR_OFF_CONST);
|
2010-04-16 22:42:35 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Constant Offset", "Add a constant offset");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 04:45:13 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "constant_offset_displace", PROP_FLOAT, PROP_TRANSLATION);
|
2009-01-02 04:45:13 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "offset");
|
2011-05-15 17:59:48 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Constant Offset Displacement", "Value for the distance between arrayed items");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 04:45:13 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_relative_offset", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 04:45:13 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "offset_type", MOD_ARR_OFF_RELATIVE);
|
2010-04-16 22:42:35 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Relative Offset", "Add an offset relative to the object's bounding box");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 04:45:13 +00:00
|
|
|
|
2012-03-18 09:27:36 +00:00
|
|
|
/* PROP_TRANSLATION causes units to be used which we don't want */
|
|
|
|
prop = RNA_def_property(srna, "relative_offset_displace", PROP_FLOAT, PROP_NONE);
|
2009-01-02 04:45:13 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "scale");
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Relative Offset Displacement",
|
|
|
|
"The size of the geometry will determine the distance between arrayed items");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 04:45:13 +00:00
|
|
|
|
|
|
|
/* Vertex merging parameters */
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_merge_vertices", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 04:45:13 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flags", MOD_ARR_MERGE);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Merge Vertices", "Merge vertices in adjacent duplicates");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 04:45:13 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_merge_vertices_cap", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 04:45:13 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flags", MOD_ARR_MERGEFINAL);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Merge Vertices", "Merge vertices in first and last duplicates");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 04:45:13 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "merge_threshold", PROP_FLOAT, PROP_DISTANCE);
|
2009-01-02 04:45:13 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "merge_dist");
|
|
|
|
RNA_def_property_range(prop, 0, FLT_MAX);
|
|
|
|
RNA_def_property_ui_range(prop, 0, 1, 1, 4);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Merge Distance", "Limit below which to merge vertices");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 04:45:13 +00:00
|
|
|
|
|
|
|
/* Offset object */
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_object_offset", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 04:45:13 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "offset_type", MOD_ARR_OFF_OBJ);
|
2010-04-16 22:42:35 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Object Offset", "Add another object's transformation to the total offset");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 04:45:13 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "offset_object", PROP_POINTER, PROP_NONE);
|
2009-01-02 04:45:13 +00:00
|
|
|
RNA_def_property_pointer_sdna(prop, NULL, "offset_ob");
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Object Offset",
|
|
|
|
"Use the location and rotation of another object to determine the distance and "
|
|
|
|
"rotational change between arrayed items");
|
2009-11-01 00:06:53 +00:00
|
|
|
RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK);
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
|
2009-01-02 04:45:13 +00:00
|
|
|
|
|
|
|
/* Caps */
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "start_cap", PROP_POINTER, PROP_NONE);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Start Cap", "Mesh object to use as a start cap");
|
2010-08-03 06:51:36 +00:00
|
|
|
RNA_def_property_pointer_funcs(prop, NULL, "rna_ArrayModifier_start_cap_set", NULL, "rna_Mesh_object_poll");
|
2009-11-01 00:06:53 +00:00
|
|
|
RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK);
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 04:45:13 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "end_cap", PROP_POINTER, PROP_NONE);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "End Cap", "Mesh object to use as an end cap");
|
2010-08-03 06:51:36 +00:00
|
|
|
RNA_def_property_pointer_funcs(prop, NULL, "rna_ArrayModifier_end_cap_set", NULL, "rna_Mesh_object_poll");
|
2009-11-01 00:06:53 +00:00
|
|
|
RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK);
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
|
2008-12-29 17:36:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_def_modifier_edgesplit(BlenderRNA *brna)
|
|
|
|
{
|
|
|
|
StructRNA *srna;
|
2009-01-02 03:38:15 +00:00
|
|
|
PropertyRNA *prop;
|
2008-12-29 17:36:06 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "EdgeSplitModifier", "Modifier");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "EdgeSplit Modifier", "Edge splitting modifier to create sharp edges");
|
2008-12-29 17:36:06 +00:00
|
|
|
RNA_def_struct_sdna(srna, "EdgeSplitModifierData");
|
2009-06-03 23:16:51 +00:00
|
|
|
RNA_def_struct_ui_icon(srna, ICON_MOD_EDGESPLIT);
|
2009-01-02 03:38:15 +00:00
|
|
|
|
2011-06-09 08:58:27 +00:00
|
|
|
#if 1 /* expose as radians */
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "split_angle", PROP_FLOAT, PROP_ANGLE);
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_property_float_funcs(prop, "rna_EdgeSplitModifier_split_angle_get",
|
|
|
|
"rna_EdgeSplitModifier_split_angle_set", NULL);
|
2011-06-09 08:58:27 +00:00
|
|
|
RNA_def_property_range(prop, 0, DEG2RAD(180));
|
|
|
|
RNA_def_property_ui_range(prop, 0, DEG2RAD(180), 100, 2);
|
|
|
|
#else
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "split_angle", PROP_FLOAT, PROP_NONE);
|
2009-01-02 03:38:15 +00:00
|
|
|
RNA_def_property_range(prop, 0, 180);
|
|
|
|
RNA_def_property_ui_range(prop, 0, 180, 100, 2);
|
2011-06-09 08:58:27 +00:00
|
|
|
#endif
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Split Angle", "Angle above which to split edges");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 03:38:15 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_edge_angle", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 03:38:15 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flags", MOD_EDGESPLIT_FROMANGLE);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Use Edge Angle", "Split edges with high angle between faces");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 03:38:15 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_edge_sharp", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 03:38:15 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flags", MOD_EDGESPLIT_FROMFLAG);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Use Sharp Edges", "Split edges that are marked as sharp");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2008-12-29 17:36:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_def_modifier_displace(BlenderRNA *brna)
|
|
|
|
{
|
|
|
|
StructRNA *srna;
|
2009-01-02 05:20:44 +00:00
|
|
|
PropertyRNA *prop;
|
|
|
|
|
|
|
|
static EnumPropertyItem prop_direction_items[] = {
|
2011-11-26 12:30:01 +00:00
|
|
|
{MOD_DISP_DIR_X, "X", 0, "X", "Use the texture's intensity value to displace in the X direction"},
|
|
|
|
{MOD_DISP_DIR_Y, "Y", 0, "Y", "Use the texture's intensity value to displace in the Y direction"},
|
|
|
|
{MOD_DISP_DIR_Z, "Z", 0, "Z", "Use the texture's intensity value to displace in the Z direction"},
|
2012-03-18 09:27:36 +00:00
|
|
|
{MOD_DISP_DIR_NOR, "NORMAL", 0, "Normal",
|
|
|
|
"Use the texture's intensity value to displace in the normal direction"},
|
|
|
|
{MOD_DISP_DIR_RGB_XYZ, "RGB_TO_XYZ", 0, "RGB to XYZ",
|
|
|
|
"Use the texture's RGB values to displace the mesh in the XYZ direction"},
|
2009-06-16 00:52:21 +00:00
|
|
|
{0, NULL, 0, NULL, NULL}};
|
2009-01-02 05:20:44 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "DisplaceModifier", "Modifier");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "Displace Modifier", "Displacement modifier");
|
2008-12-29 17:36:06 +00:00
|
|
|
RNA_def_struct_sdna(srna, "DisplaceModifierData");
|
2009-06-03 23:16:51 +00:00
|
|
|
RNA_def_struct_ui_icon(srna, ICON_MOD_DISPLACE);
|
2009-01-02 05:20:44 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "vertex_group", PROP_STRING, PROP_NONE);
|
2009-01-02 05:20:44 +00:00
|
|
|
RNA_def_property_string_sdna(prop, NULL, "defgrp_name");
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Vertex Group",
|
|
|
|
"Name of Vertex Group which determines influence of modifier per point");
|
2009-01-04 19:25:24 +00:00
|
|
|
RNA_def_property_string_funcs(prop, NULL, NULL, "rna_DisplaceModifier_vgroup_set");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 05:20:44 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "mid_level", PROP_FLOAT, PROP_DISTANCE);
|
2010-08-20 06:09:58 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "midlevel");
|
2011-05-16 11:46:16 +00:00
|
|
|
RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);
|
2009-01-02 05:20:44 +00:00
|
|
|
RNA_def_property_ui_range(prop, 0, 1, 10, 3);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Midlevel", "Material value that gives no displacement");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 05:20:44 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "strength", PROP_FLOAT, PROP_NONE);
|
2009-06-11 16:59:59 +00:00
|
|
|
RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);
|
2010-08-06 18:14:52 +00:00
|
|
|
RNA_def_property_ui_range(prop, -100, 100, 10, 3);
|
2011-05-15 17:59:48 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Strength", "Amount to displace geometry");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 05:20:44 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "direction", PROP_ENUM, PROP_NONE);
|
2009-01-02 05:20:44 +00:00
|
|
|
RNA_def_property_enum_items(prop, prop_direction_items);
|
|
|
|
RNA_def_property_ui_text(prop, "Direction", "");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 05:20:44 +00:00
|
|
|
|
2011-05-01 15:16:59 +00:00
|
|
|
rna_def_modifier_generic_map_info(srna);
|
2008-12-29 17:36:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_def_modifier_uvproject(BlenderRNA *brna)
|
|
|
|
{
|
|
|
|
StructRNA *srna;
|
2009-01-02 07:29:35 +00:00
|
|
|
PropertyRNA *prop;
|
2008-12-29 17:36:06 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "UVProjectModifier", "Modifier");
|
2011-11-28 15:41:32 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "UV Project Modifier", "UV projection modifier to set UVs from a projector");
|
2008-12-29 17:36:06 +00:00
|
|
|
RNA_def_struct_sdna(srna, "UVProjectModifierData");
|
2009-06-03 23:16:51 +00:00
|
|
|
RNA_def_struct_ui_icon(srna, ICON_MOD_UVPROJECT);
|
2009-01-02 07:29:35 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "uv_layer", PROP_STRING, PROP_NONE);
|
2009-01-04 19:25:24 +00:00
|
|
|
RNA_def_property_string_sdna(prop, NULL, "uvlayer_name");
|
2011-11-23 17:25:25 +00:00
|
|
|
RNA_def_property_ui_text(prop, "UV Map", "UV map name");
|
2009-01-04 19:25:24 +00:00
|
|
|
RNA_def_property_string_funcs(prop, NULL, NULL, "rna_UVProjectModifier_uvlayer_set");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 07:29:35 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "projector_count", PROP_INT, PROP_NONE);
|
2010-08-20 06:09:58 +00:00
|
|
|
RNA_def_property_int_sdna(prop, NULL, "num_projectors");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Number of Projectors", "Number of projectors to use");
|
2009-08-21 02:51:56 +00:00
|
|
|
RNA_def_property_int_funcs(prop, NULL, "rna_UVProjectModifier_num_projectors_set", NULL);
|
|
|
|
RNA_def_property_range(prop, 1, MOD_UVPROJECT_MAX);
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-08-21 02:51:56 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "projectors", PROP_COLLECTION, PROP_NONE);
|
2009-08-21 02:51:56 +00:00
|
|
|
RNA_def_property_struct_type(prop, "UVProjector");
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_property_collection_funcs(prop, "rna_UVProject_projectors_begin", "rna_iterator_array_next",
|
|
|
|
"rna_iterator_array_end", "rna_iterator_array_get", NULL, NULL, NULL, NULL);
|
2009-01-03 23:14:33 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Projectors", "");
|
2009-01-02 07:29:35 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "image", PROP_POINTER, PROP_NONE);
|
2009-01-02 07:29:35 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Image", "");
|
2009-05-27 00:03:49 +00:00
|
|
|
RNA_def_property_flag(prop, PROP_EDITABLE);
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 07:29:35 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "aspect_x", PROP_FLOAT, PROP_NONE);
|
2009-01-02 07:29:35 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "aspectx");
|
|
|
|
RNA_def_property_range(prop, 1, FLT_MAX);
|
2010-08-22 16:44:48 +00:00
|
|
|
RNA_def_property_ui_range(prop, 1, 1000, 1, 3);
|
2009-01-02 07:29:35 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Horizontal Aspect Ratio", "");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 07:29:35 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "aspect_y", PROP_FLOAT, PROP_NONE);
|
2009-01-02 07:29:35 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "aspecty");
|
|
|
|
RNA_def_property_range(prop, 1, FLT_MAX);
|
2010-08-22 16:44:48 +00:00
|
|
|
RNA_def_property_ui_range(prop, 1, 1000, 1, 3);
|
2009-01-02 07:29:35 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Vertical Aspect Ratio", "");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
* Multiply for panorama cameras
* Some cases of struct name being set where it shouldnt have been.
* Spelling: wich --> which
* Copy and initialize uv modifier scale, remove unneeded enum.
* Ability to pin any object into the context.
* Update uv window while transforming (useful when used with UVProject modifier)
* Patch by Wahooney, so new template's are internal text and dont get saved over
by mistake.
* Fix for https://bugzilla.redhat.com/show_bug.cgi?id=572186
Bug 572186 - [abrt] crash in blender-2.49b-5.fc12: Process
/usr/bin/blender.bin was killed by signal 6 (SIGABRT). Original fix submitted
by Jochen Schmitt.
* [#21816] bpy.data.add_image has stopped working on Windows. moved to
bpy.data.images.load(), missed this call.
(commits 27726,27825,27828,27831,27832,27833,27834,27836,27837,27838,27839,27858 by Campbell from render25 branch)
2010-03-30 12:15:16 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "scale_x", PROP_FLOAT, PROP_NONE);
|
* Multiply for panorama cameras
* Some cases of struct name being set where it shouldnt have been.
* Spelling: wich --> which
* Copy and initialize uv modifier scale, remove unneeded enum.
* Ability to pin any object into the context.
* Update uv window while transforming (useful when used with UVProject modifier)
* Patch by Wahooney, so new template's are internal text and dont get saved over
by mistake.
* Fix for https://bugzilla.redhat.com/show_bug.cgi?id=572186
Bug 572186 - [abrt] crash in blender-2.49b-5.fc12: Process
/usr/bin/blender.bin was killed by signal 6 (SIGABRT). Original fix submitted
by Jochen Schmitt.
* [#21816] bpy.data.add_image has stopped working on Windows. moved to
bpy.data.images.load(), missed this call.
(commits 27726,27825,27828,27831,27832,27833,27834,27836,27837,27838,27839,27858 by Campbell from render25 branch)
2010-03-30 12:15:16 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "scalex");
|
|
|
|
RNA_def_property_range(prop, 0, FLT_MAX);
|
2010-08-22 16:44:48 +00:00
|
|
|
RNA_def_property_ui_range(prop, 0, 1000, 1, 3);
|
* Multiply for panorama cameras
* Some cases of struct name being set where it shouldnt have been.
* Spelling: wich --> which
* Copy and initialize uv modifier scale, remove unneeded enum.
* Ability to pin any object into the context.
* Update uv window while transforming (useful when used with UVProject modifier)
* Patch by Wahooney, so new template's are internal text and dont get saved over
by mistake.
* Fix for https://bugzilla.redhat.com/show_bug.cgi?id=572186
Bug 572186 - [abrt] crash in blender-2.49b-5.fc12: Process
/usr/bin/blender.bin was killed by signal 6 (SIGABRT). Original fix submitted
by Jochen Schmitt.
* [#21816] bpy.data.add_image has stopped working on Windows. moved to
bpy.data.images.load(), missed this call.
(commits 27726,27825,27828,27831,27832,27833,27834,27836,27837,27838,27839,27858 by Campbell from render25 branch)
2010-03-30 12:15:16 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Horizontal Scale", "");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "scale_y", PROP_FLOAT, PROP_NONE);
|
* Multiply for panorama cameras
* Some cases of struct name being set where it shouldnt have been.
* Spelling: wich --> which
* Copy and initialize uv modifier scale, remove unneeded enum.
* Ability to pin any object into the context.
* Update uv window while transforming (useful when used with UVProject modifier)
* Patch by Wahooney, so new template's are internal text and dont get saved over
by mistake.
* Fix for https://bugzilla.redhat.com/show_bug.cgi?id=572186
Bug 572186 - [abrt] crash in blender-2.49b-5.fc12: Process
/usr/bin/blender.bin was killed by signal 6 (SIGABRT). Original fix submitted
by Jochen Schmitt.
* [#21816] bpy.data.add_image has stopped working on Windows. moved to
bpy.data.images.load(), missed this call.
(commits 27726,27825,27828,27831,27832,27833,27834,27836,27837,27838,27839,27858 by Campbell from render25 branch)
2010-03-30 12:15:16 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "scaley");
|
|
|
|
RNA_def_property_range(prop, 0, FLT_MAX);
|
2010-08-22 16:44:48 +00:00
|
|
|
RNA_def_property_ui_range(prop, 0, 1000, 1, 3);
|
* Multiply for panorama cameras
* Some cases of struct name being set where it shouldnt have been.
* Spelling: wich --> which
* Copy and initialize uv modifier scale, remove unneeded enum.
* Ability to pin any object into the context.
* Update uv window while transforming (useful when used with UVProject modifier)
* Patch by Wahooney, so new template's are internal text and dont get saved over
by mistake.
* Fix for https://bugzilla.redhat.com/show_bug.cgi?id=572186
Bug 572186 - [abrt] crash in blender-2.49b-5.fc12: Process
/usr/bin/blender.bin was killed by signal 6 (SIGABRT). Original fix submitted
by Jochen Schmitt.
* [#21816] bpy.data.add_image has stopped working on Windows. moved to
bpy.data.images.load(), missed this call.
(commits 27726,27825,27828,27831,27832,27833,27834,27836,27837,27838,27839,27858 by Campbell from render25 branch)
2010-03-30 12:15:16 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Vertical Scale", "");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 07:29:35 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_image_override", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 07:29:35 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flags", MOD_UVPROJECT_OVERRIDEIMAGE);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Override Image", "Override faces' current images with the given image");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-08-21 02:51:56 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "UVProjector", NULL);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "UVProjector", "UV projector used by the UV project modifier");
|
2009-08-21 02:51:56 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "object", PROP_POINTER, PROP_NONE);
|
2009-08-21 02:51:56 +00:00
|
|
|
RNA_def_property_struct_type(prop, "Object");
|
2010-08-03 05:14:59 +00:00
|
|
|
RNA_def_property_pointer_funcs(prop, "rna_UVProjector_object_get", "rna_UVProjector_object_set", NULL, NULL);
|
2009-11-05 18:05:55 +00:00
|
|
|
RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Object", "Object to use as projector transform");
|
2010-08-02 16:57:46 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
|
2008-12-29 17:36:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_def_modifier_smooth(BlenderRNA *brna)
|
|
|
|
{
|
|
|
|
StructRNA *srna;
|
2009-01-02 08:03:20 +00:00
|
|
|
PropertyRNA *prop;
|
2008-12-29 17:36:06 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "SmoothModifier", "Modifier");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "Smooth Modifier", "Smoothing effect modifier");
|
2008-12-29 17:36:06 +00:00
|
|
|
RNA_def_struct_sdna(srna, "SmoothModifierData");
|
2009-06-03 23:16:51 +00:00
|
|
|
RNA_def_struct_ui_icon(srna, ICON_MOD_SMOOTH);
|
2009-01-02 08:03:20 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_x", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 08:03:20 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_SMOOTH_X);
|
2011-05-15 17:59:48 +00:00
|
|
|
RNA_def_property_ui_text(prop, "X", "Smooth object along X axis");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 08:03:20 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_y", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 08:03:20 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_SMOOTH_Y);
|
2011-05-15 17:59:48 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Y", "Smooth object along Y axis");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 08:03:20 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_z", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 08:03:20 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_SMOOTH_Z);
|
2011-05-15 17:59:48 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Z", "Smooth object along Z axis");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 08:03:20 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "factor", PROP_FLOAT, PROP_NONE);
|
2009-01-02 08:03:20 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "fac");
|
2009-06-04 11:05:36 +00:00
|
|
|
RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);
|
2010-08-22 16:44:48 +00:00
|
|
|
RNA_def_property_ui_range(prop, -10, 10, 1, 3);
|
2011-05-15 17:59:48 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Factor", "Strength of modifier effect");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 08:03:20 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "iterations", PROP_INT, PROP_NONE);
|
2010-08-21 04:51:00 +00:00
|
|
|
RNA_def_property_int_sdna(prop, NULL, "repeat");
|
2009-01-02 08:03:20 +00:00
|
|
|
RNA_def_property_ui_range(prop, 0, 30, 1, 0);
|
|
|
|
RNA_def_property_ui_text(prop, "Repeat", "");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 08:03:20 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "vertex_group", PROP_STRING, PROP_NONE);
|
2009-01-02 08:03:20 +00:00
|
|
|
RNA_def_property_string_sdna(prop, NULL, "defgrp_name");
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Vertex Group",
|
|
|
|
"Name of Vertex Group which determines influence of modifier per point");
|
2009-01-04 19:25:24 +00:00
|
|
|
RNA_def_property_string_funcs(prop, NULL, NULL, "rna_SmoothModifier_vgroup_set");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2008-12-29 17:36:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_def_modifier_cast(BlenderRNA *brna)
|
|
|
|
{
|
|
|
|
StructRNA *srna;
|
2009-01-02 08:03:20 +00:00
|
|
|
PropertyRNA *prop;
|
|
|
|
|
|
|
|
static EnumPropertyItem prop_cast_type_items[] = {
|
2009-06-16 00:52:21 +00:00
|
|
|
{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}};
|
2008-12-29 17:36:06 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "CastModifier", "Modifier");
|
2011-11-28 15:41:32 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "Cast Modifier", "Modifier to cast to other shapes");
|
2008-12-29 17:36:06 +00:00
|
|
|
RNA_def_struct_sdna(srna, "CastModifierData");
|
2009-06-03 23:16:51 +00:00
|
|
|
RNA_def_struct_ui_icon(srna, ICON_MOD_CAST);
|
2009-01-02 08:03:20 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "cast_type", PROP_ENUM, PROP_NONE);
|
2009-01-02 08:03:20 +00:00
|
|
|
RNA_def_property_enum_sdna(prop, NULL, "type");
|
|
|
|
RNA_def_property_enum_items(prop, prop_cast_type_items);
|
2011-05-15 17:59:48 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Cast Type", "Target object shape");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-07-28 06:26:10 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "object", PROP_POINTER, PROP_NONE);
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Object",
|
|
|
|
"Control object: if available, its location determines the center of the effect");
|
2010-08-03 05:14:59 +00:00
|
|
|
RNA_def_property_pointer_funcs(prop, NULL, "rna_CastModifier_object_set", NULL, NULL);
|
2009-11-05 18:05:55 +00:00
|
|
|
RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK);
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
|
2009-01-02 08:03:20 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_x", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 08:03:20 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_CAST_X);
|
|
|
|
RNA_def_property_ui_text(prop, "X", "");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 08:03:20 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_y", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 08:03:20 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_CAST_Y);
|
|
|
|
RNA_def_property_ui_text(prop, "Y", "");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 08:03:20 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_z", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 08:03:20 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_CAST_Z);
|
|
|
|
RNA_def_property_ui_text(prop, "Z", "");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 08:03:20 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_radius_as_size", PROP_BOOLEAN, PROP_NONE);
|
2009-07-28 06:26:10 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_CAST_SIZE_FROM_RADIUS);
|
|
|
|
RNA_def_property_ui_text(prop, "From Radius", "Use radius as size of projection shape (0 = auto)");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-07-28 06:26:10 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_transform", PROP_BOOLEAN, PROP_NONE);
|
2009-07-28 06:26:10 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_CAST_USE_OB_TRANSFORM);
|
|
|
|
RNA_def_property_ui_text(prop, "Use transform", "Use object transform to control projection shape");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-07-28 06:26:10 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "factor", PROP_FLOAT, PROP_NONE);
|
2009-01-02 08:03:20 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "fac");
|
2009-06-04 11:16:56 +00:00
|
|
|
RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);
|
2009-01-02 08:03:20 +00:00
|
|
|
RNA_def_property_ui_range(prop, -10, 10, 5, 2);
|
|
|
|
RNA_def_property_ui_text(prop, "Factor", "");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 08:03:20 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "radius", PROP_FLOAT, PROP_DISTANCE);
|
2009-01-02 08:03:20 +00:00
|
|
|
RNA_def_property_range(prop, 0, FLT_MAX);
|
2010-08-22 16:44:48 +00:00
|
|
|
RNA_def_property_ui_range(prop, 0, 100, 5, 2);
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Radius",
|
|
|
|
"Only deform vertices within this distance from the center of the effect "
|
|
|
|
"(leave as 0 for infinite.)");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 08:03:20 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "size", PROP_FLOAT, PROP_NONE);
|
2009-01-02 08:03:20 +00:00
|
|
|
RNA_def_property_range(prop, 0, FLT_MAX);
|
2010-08-22 16:44:48 +00:00
|
|
|
RNA_def_property_ui_range(prop, 0, 100, 5, 2);
|
2011-11-28 15:41:32 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Size", "Size of projection shape (leave as 0 for auto)");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 08:03:20 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "vertex_group", PROP_STRING, PROP_NONE);
|
2009-01-02 08:03:20 +00:00
|
|
|
RNA_def_property_string_sdna(prop, NULL, "defgrp_name");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Vertex Group", "Vertex group name");
|
2009-01-04 19:25:24 +00:00
|
|
|
RNA_def_property_string_funcs(prop, NULL, NULL, "rna_CastModifier_vgroup_set");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2008-12-29 17:36:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_def_modifier_meshdeform(BlenderRNA *brna)
|
|
|
|
{
|
|
|
|
StructRNA *srna;
|
2009-01-02 08:03:20 +00:00
|
|
|
PropertyRNA *prop;
|
2010-04-02 11:39:40 +00:00
|
|
|
#if 0
|
2009-11-28 13:33:17 +00:00
|
|
|
static EnumPropertyItem prop_mode_items[] = {
|
2010-02-11 01:11:52 +00:00
|
|
|
{0, "VOLUME", 0, "Volume", "Bind to volume inside cage mesh"},
|
|
|
|
{1, "SURFACE", 0, "Surface", "Bind to surface of cage mesh"},
|
2009-11-28 13:33:17 +00:00
|
|
|
{0, NULL, 0, NULL, NULL}};
|
2010-04-02 11:39:40 +00:00
|
|
|
#endif
|
2008-12-29 17:36:06 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "MeshDeformModifier", "Modifier");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "MeshDeform Modifier", "Mesh deformation modifier to deform with other meshes");
|
2008-12-29 17:36:06 +00:00
|
|
|
RNA_def_struct_sdna(srna, "MeshDeformModifierData");
|
2009-06-03 23:16:51 +00:00
|
|
|
RNA_def_struct_ui_icon(srna, ICON_MOD_MESHDEFORM);
|
2009-01-02 08:03:20 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "object", PROP_POINTER, PROP_NONE);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Object", "Mesh object to deform with");
|
2010-08-03 05:14:59 +00:00
|
|
|
RNA_def_property_pointer_funcs(prop, NULL, "rna_MeshDeformModifier_object_set", NULL, NULL);
|
2009-11-05 18:05:55 +00:00
|
|
|
RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK);
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "is_bound", PROP_BOOLEAN, PROP_NONE);
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_boolean_funcs(prop, "rna_MeshDeformModifier_is_bound_get", NULL);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Bound", "Whether geometry has been bound to control cage");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "invert_vertex_group", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 08:03:20 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_MDEF_INVERT_VGROUP);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Invert", "Invert vertex group influence");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 08:03:20 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "vertex_group", PROP_STRING, PROP_NONE);
|
2009-01-02 08:03:20 +00:00
|
|
|
RNA_def_property_string_sdna(prop, NULL, "defgrp_name");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Vertex Group", "Vertex group name");
|
2009-01-04 19:25:24 +00:00
|
|
|
RNA_def_property_string_funcs(prop, NULL, NULL, "rna_MeshDeformModifier_vgroup_set");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 08:03:20 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "precision", PROP_INT, PROP_NONE);
|
2009-01-02 08:03:20 +00:00
|
|
|
RNA_def_property_int_sdna(prop, NULL, "gridsize");
|
|
|
|
RNA_def_property_range(prop, 2, 10);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Precision", "The grid size for binding");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 08:03:20 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_dynamic_bind", PROP_BOOLEAN, PROP_NONE);
|
2009-05-21 21:23:36 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_MDEF_DYNAMIC_BIND);
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Dynamic",
|
|
|
|
"Recompute binding dynamically on top of other deformers "
|
|
|
|
"(slower and more memory consuming)");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 08:03:20 +00:00
|
|
|
|
2010-04-02 11:39:40 +00:00
|
|
|
#if 0
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "mode", PROP_ENUM, PROP_NONE);
|
2009-11-28 13:33:17 +00:00
|
|
|
RNA_def_property_enum_items(prop, prop_mode_items);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Mode", "Method of binding vertices are bound to cage mesh");
|
2009-11-28 13:33:17 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2010-04-02 11:39:40 +00:00
|
|
|
#endif
|
2008-12-29 17:36:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_def_modifier_particlesystem(BlenderRNA *brna)
|
|
|
|
{
|
|
|
|
StructRNA *srna;
|
2010-06-06 08:51:53 +00:00
|
|
|
PropertyRNA *prop;
|
2008-12-29 17:36:06 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "ParticleSystemModifier", "Modifier");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "ParticleSystem Modifier", "Particle system simulation modifier");
|
2008-12-29 17:36:06 +00:00
|
|
|
RNA_def_struct_sdna(srna, "ParticleSystemModifierData");
|
2009-06-03 23:16:51 +00:00
|
|
|
RNA_def_struct_ui_icon(srna, ICON_MOD_PARTICLES);
|
2010-06-06 08:51:53 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "particle_system", PROP_POINTER, PROP_NONE);
|
2010-06-06 08:51:53 +00:00
|
|
|
RNA_def_property_flag(prop, PROP_NEVER_NULL);
|
|
|
|
RNA_def_property_pointer_sdna(prop, NULL, "psys");
|
|
|
|
RNA_def_property_ui_text(prop, "Particle System", "Particle System that this modifier controls");
|
2008-12-29 17:36:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_def_modifier_particleinstance(BlenderRNA *brna)
|
|
|
|
{
|
|
|
|
StructRNA *srna;
|
2009-01-02 10:19:58 +00:00
|
|
|
PropertyRNA *prop;
|
2008-12-29 17:36:06 +00:00
|
|
|
|
2009-07-04 03:50:12 +00:00
|
|
|
static EnumPropertyItem particleinstance_axis[] = {
|
|
|
|
{0, "X", 0, "X", ""},
|
|
|
|
{1, "Y", 0, "Y", ""},
|
|
|
|
{2, "Z", 0, "Z", ""},
|
|
|
|
{0, NULL, 0, NULL, NULL}
|
|
|
|
};
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "ParticleInstanceModifier", "Modifier");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "ParticleInstance Modifier", "Particle system instancing modifier");
|
2008-12-29 17:36:06 +00:00
|
|
|
RNA_def_struct_sdna(srna, "ParticleInstanceModifierData");
|
2009-06-03 23:16:51 +00:00
|
|
|
RNA_def_struct_ui_icon(srna, ICON_MOD_PARTICLES);
|
2009-01-02 10:19:58 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "object", PROP_POINTER, PROP_NONE);
|
2009-01-02 10:19:58 +00:00
|
|
|
RNA_def_property_pointer_sdna(prop, NULL, "ob");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Object", "Object that has the particle system");
|
2009-11-05 18:05:55 +00:00
|
|
|
RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK);
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
|
2009-01-02 10:19:58 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "particle_system_index", PROP_INT, PROP_NONE);
|
2009-01-02 10:19:58 +00:00
|
|
|
RNA_def_property_int_sdna(prop, NULL, "psys");
|
|
|
|
RNA_def_property_range(prop, 1, 10);
|
|
|
|
RNA_def_property_ui_text(prop, "Particle System Number", "");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-07-04 03:50:12 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "axis", PROP_ENUM, PROP_NONE);
|
2009-07-04 03:50:12 +00:00
|
|
|
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");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 10:19:58 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_normal", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 10:19:58 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", eParticleInstanceFlag_Parents);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Normal", "Create instances from normal particles");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 10:19:58 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_children", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 10:19:58 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", eParticleInstanceFlag_Children);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Children", "Create instances from child particles");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 10:19:58 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_path", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 10:19:58 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", eParticleInstanceFlag_Path);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Path", "Create instances along particle paths");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 10:19:58 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "show_unborn", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 10:19:58 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", eParticleInstanceFlag_Unborn);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Unborn", "Show instances when particles are unborn");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 10:19:58 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "show_alive", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 10:19:58 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", eParticleInstanceFlag_Alive);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Alive", "Show instances when particles are alive");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 10:19:58 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "show_dead", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 10:19:58 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", eParticleInstanceFlag_Dead);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Dead", "Show instances when particles are dead");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-07-04 03:50:12 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_preserve_shape", PROP_BOOLEAN, PROP_NONE);
|
2009-07-04 03:50:12 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", eParticleInstanceFlag_KeepShape);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Keep Shape", "Don't stretch the object");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-07-04 03:50:12 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_size", PROP_BOOLEAN, PROP_NONE);
|
2009-07-05 12:36:20 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", eParticleInstanceFlag_UseSize);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Size", "Use particle size to scale the instances");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-07-05 12:36:20 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "position", PROP_FLOAT, PROP_NONE);
|
2009-07-04 03:50:12 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "position");
|
|
|
|
RNA_def_property_range(prop, 0.0, 1.0);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Position", "Position along path");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-07-04 03:50:12 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "random_position", PROP_FLOAT, PROP_NONE);
|
2009-07-04 03:50:12 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "random_position");
|
|
|
|
RNA_def_property_range(prop, 0.0, 1.0);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Random Position", "Randomize position along path");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2008-12-29 17:36:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_def_modifier_explode(BlenderRNA *brna)
|
|
|
|
{
|
|
|
|
StructRNA *srna;
|
2009-01-02 10:19:58 +00:00
|
|
|
PropertyRNA *prop;
|
2008-12-29 17:36:06 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "ExplodeModifier", "Modifier");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "Explode Modifier", "Explosion effect modifier based on a particle system");
|
2008-12-29 17:36:06 +00:00
|
|
|
RNA_def_struct_sdna(srna, "ExplodeModifierData");
|
2009-06-03 23:16:51 +00:00
|
|
|
RNA_def_struct_ui_icon(srna, ICON_MOD_EXPLODE);
|
2009-01-02 10:19:58 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "vertex_group", PROP_STRING, PROP_NONE);
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_property_string_funcs(prop, "rna_ExplodeModifier_vgroup_get", "rna_ExplodeModifier_vgroup_length",
|
|
|
|
"rna_ExplodeModifier_vgroup_set");
|
2009-01-04 19:25:24 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Vertex Group", "");
|
2009-01-02 10:19:58 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "protect", PROP_FLOAT, PROP_NONE);
|
2009-01-02 10:19:58 +00:00
|
|
|
RNA_def_property_range(prop, 0, 1);
|
|
|
|
RNA_def_property_ui_text(prop, "Protect", "Clean vertex group edges");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 10:19:58 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_edge_cut", PROP_BOOLEAN, PROP_NONE);
|
2011-02-23 19:29:59 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", eExplodeFlag_EdgeCut);
|
|
|
|
RNA_def_property_ui_text(prop, "Cut Edges", "Cut face edges for nicer shrapnel");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 10:19:58 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "show_unborn", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 10:19:58 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", eExplodeFlag_Unborn);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Unborn", "Show mesh when particles are unborn");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 10:19:58 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "show_alive", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 10:19:58 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", eExplodeFlag_Alive);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Alive", "Show mesh when particles are alive");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 10:19:58 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "show_dead", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 10:19:58 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", eExplodeFlag_Dead);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Dead", "Show mesh when particles are dead");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2010-04-06 08:43:52 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_size", PROP_BOOLEAN, PROP_NONE);
|
2010-04-06 08:43:52 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", eExplodeFlag_PaSize);
|
|
|
|
RNA_def_property_ui_text(prop, "Size", "Use particle size for the shrapnel");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2011-02-23 19:29:59 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "particle_uv", PROP_STRING, PROP_NONE);
|
2011-02-23 19:29:59 +00:00
|
|
|
RNA_def_property_string_sdna(prop, NULL, "uvname");
|
2012-01-11 08:51:06 +00:00
|
|
|
RNA_def_property_string_maxlength(prop, MAX_CUSTOMDATA_LAYER_NAME);
|
2011-11-23 17:25:25 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Particle UV", "UV map to change with particle age");
|
2011-02-23 19:29:59 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2008-12-29 17:36:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_def_modifier_cloth(BlenderRNA *brna)
|
|
|
|
{
|
|
|
|
StructRNA *srna;
|
2009-01-04 19:25:24 +00:00
|
|
|
PropertyRNA *prop;
|
2008-12-29 17:36:06 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "ClothModifier", "Modifier");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "Cloth Modifier", "Cloth simulation modifier");
|
2008-12-29 17:36:06 +00:00
|
|
|
RNA_def_struct_sdna(srna, "ClothModifierData");
|
2009-06-03 23:16:51 +00:00
|
|
|
RNA_def_struct_ui_icon(srna, ICON_MOD_CLOTH);
|
2009-01-04 19:25:24 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "settings", PROP_POINTER, PROP_NONE);
|
2009-10-22 23:22:05 +00:00
|
|
|
RNA_def_property_flag(prop, PROP_NEVER_NULL);
|
2009-01-04 19:25:24 +00:00
|
|
|
RNA_def_property_pointer_sdna(prop, NULL, "sim_parms");
|
|
|
|
RNA_def_property_ui_text(prop, "Cloth Settings", "");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "collision_settings", PROP_POINTER, PROP_NONE);
|
2009-10-22 23:22:05 +00:00
|
|
|
RNA_def_property_flag(prop, PROP_NEVER_NULL);
|
2009-01-04 19:25:24 +00:00
|
|
|
RNA_def_property_pointer_sdna(prop, NULL, "coll_parms");
|
|
|
|
RNA_def_property_ui_text(prop, "Cloth Collision Settings", "");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "point_cache", PROP_POINTER, PROP_NONE);
|
2009-10-22 23:22:05 +00:00
|
|
|
RNA_def_property_flag(prop, PROP_NEVER_NULL);
|
2009-01-04 19:25:24 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Point Cache", "");
|
2008-12-29 17:36:06 +00:00
|
|
|
}
|
|
|
|
|
2009-07-30 15:00:26 +00:00
|
|
|
static void rna_def_modifier_smoke(BlenderRNA *brna)
|
|
|
|
{
|
|
|
|
StructRNA *srna;
|
|
|
|
PropertyRNA *prop;
|
|
|
|
|
|
|
|
static EnumPropertyItem prop_smoke_type_items[] = {
|
|
|
|
{0, "NONE", 0, "None", ""},
|
2010-06-07 15:28:17 +00:00
|
|
|
{MOD_SMOKE_TYPE_DOMAIN, "DOMAIN", 0, "Domain", ""},
|
|
|
|
{MOD_SMOKE_TYPE_FLOW, "FLOW", 0, "Flow", "Inflow/Outflow"},
|
|
|
|
{MOD_SMOKE_TYPE_COLL, "COLLISION", 0, "Collision", ""},
|
2009-07-30 15:00:26 +00:00
|
|
|
{0, NULL, 0, NULL, NULL}};
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "SmokeModifier", "Modifier");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "Smoke Modifier", "Smoke simulation modifier");
|
2009-07-30 15:00:26 +00:00
|
|
|
RNA_def_struct_sdna(srna, "SmokeModifierData");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_struct_ui_icon(srna, ICON_MOD_SMOKE);
|
2009-07-30 15:00:26 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "domain_settings", PROP_POINTER, PROP_NONE);
|
2009-07-30 15:00:26 +00:00
|
|
|
RNA_def_property_pointer_sdna(prop, NULL, "domain");
|
|
|
|
RNA_def_property_ui_text(prop, "Domain Settings", "");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "flow_settings", PROP_POINTER, PROP_NONE);
|
2009-07-30 15:00:26 +00:00
|
|
|
RNA_def_property_pointer_sdna(prop, NULL, "flow");
|
|
|
|
RNA_def_property_ui_text(prop, "Flow Settings", "");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "coll_settings", PROP_POINTER, PROP_NONE);
|
2009-07-30 15:00:26 +00:00
|
|
|
RNA_def_property_pointer_sdna(prop, NULL, "coll");
|
|
|
|
RNA_def_property_ui_text(prop, "Collision Settings", "");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "smoke_type", PROP_ENUM, PROP_NONE);
|
2009-07-30 15:00:26 +00:00
|
|
|
RNA_def_property_enum_sdna(prop, NULL, "type");
|
|
|
|
RNA_def_property_enum_items(prop, prop_smoke_type_items);
|
|
|
|
RNA_def_property_ui_text(prop, "Type", "");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Smoke_set_type");
|
2009-07-30 15:00:26 +00:00
|
|
|
}
|
|
|
|
|
2011-05-24 07:08:58 +00:00
|
|
|
static void rna_def_modifier_dynamic_paint(BlenderRNA *brna)
|
|
|
|
{
|
|
|
|
StructRNA *srna;
|
|
|
|
PropertyRNA *prop;
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "DynamicPaintModifier", "Modifier");
|
2011-05-24 07:08:58 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "Dynamic Paint Modifier", "Dynamic Paint modifier");
|
|
|
|
RNA_def_struct_sdna(srna, "DynamicPaintModifierData");
|
2011-06-16 10:41:00 +00:00
|
|
|
RNA_def_struct_ui_icon(srna, ICON_MOD_DYNAMICPAINT);
|
2011-05-24 07:08:58 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "canvas_settings", PROP_POINTER, PROP_NONE);
|
2011-05-24 07:08:58 +00:00
|
|
|
RNA_def_property_pointer_sdna(prop, NULL, "canvas");
|
|
|
|
RNA_def_property_ui_text(prop, "Canvas Settings", "");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "brush_settings", PROP_POINTER, PROP_NONE);
|
2011-06-16 10:41:00 +00:00
|
|
|
RNA_def_property_pointer_sdna(prop, NULL, "brush");
|
|
|
|
RNA_def_property_ui_text(prop, "Brush Settings", "");
|
2011-07-08 11:03:37 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "ui_type", PROP_ENUM, PROP_NONE);
|
2011-05-24 07:08:58 +00:00
|
|
|
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
|
|
|
|
RNA_def_property_enum_sdna(prop, NULL, "type");
|
|
|
|
RNA_def_property_enum_items(prop, prop_dynamicpaint_type_items);
|
|
|
|
RNA_def_property_ui_text(prop, "Type", "");
|
|
|
|
}
|
|
|
|
|
2008-12-29 17:36:06 +00:00
|
|
|
static void rna_def_modifier_collision(BlenderRNA *brna)
|
|
|
|
{
|
|
|
|
StructRNA *srna;
|
2009-06-03 22:19:04 +00:00
|
|
|
PropertyRNA *prop;
|
2008-12-29 17:36:06 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "CollisionModifier", "Modifier");
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "Collision Modifier",
|
|
|
|
"Collision modifier defining modifier stack position used for collision");
|
2008-12-29 17:36:06 +00:00
|
|
|
RNA_def_struct_sdna(srna, "CollisionModifierData");
|
2009-06-03 23:16:51 +00:00
|
|
|
RNA_def_struct_ui_icon(srna, ICON_MOD_PHYSICS);
|
2009-07-02 19:41:31 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "settings", PROP_POINTER, PROP_NONE);
|
2009-10-22 23:22:05 +00:00
|
|
|
RNA_def_property_flag(prop, PROP_NEVER_NULL);
|
2009-07-02 19:41:31 +00:00
|
|
|
RNA_def_property_struct_type(prop, "CollisionSettings");
|
2010-08-03 05:14:59 +00:00
|
|
|
RNA_def_property_pointer_funcs(prop, "rna_CollisionModifier_settings_get", NULL, NULL, NULL);
|
2009-07-02 19:41:31 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Settings", "");
|
2008-12-29 17:36:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_def_modifier_bevel(BlenderRNA *brna)
|
|
|
|
{
|
|
|
|
StructRNA *srna;
|
2009-01-02 10:19:58 +00:00
|
|
|
PropertyRNA *prop;
|
|
|
|
|
|
|
|
static EnumPropertyItem prop_limit_method_items[] = {
|
2010-02-11 01:11:52 +00:00
|
|
|
{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"},
|
2012-03-18 09:27:36 +00:00
|
|
|
{BME_BEVEL_WEIGHT, "WEIGHT", 0, "Weight",
|
|
|
|
"Use bevel weights to determine how much bevel is applied; "
|
|
|
|
"apply them separately in vert/edge select mode"},
|
2009-06-16 00:52:21 +00:00
|
|
|
{0, NULL, 0, NULL, NULL}};
|
2009-01-02 10:19:58 +00:00
|
|
|
|
|
|
|
static EnumPropertyItem prop_edge_weight_method_items[] = {
|
2009-06-16 00:52:21 +00:00
|
|
|
{0, "AVERAGE", 0, "Average", ""},
|
|
|
|
{BME_BEVEL_EMIN, "SHARPEST", 0, "Sharpest", ""},
|
|
|
|
{BME_BEVEL_EMAX, "LARGEST", 0, "Largest", ""},
|
|
|
|
{0, NULL, 0, NULL, NULL}};
|
2008-12-29 17:36:06 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "BevelModifier", "Modifier");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "Bevel Modifier", "Bevel modifier to make edges and vertices more rounded");
|
2008-12-29 17:36:06 +00:00
|
|
|
RNA_def_struct_sdna(srna, "BevelModifierData");
|
2009-06-03 23:16:51 +00:00
|
|
|
RNA_def_struct_ui_icon(srna, ICON_MOD_BEVEL);
|
2009-01-02 10:19:58 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "width", PROP_FLOAT, PROP_DISTANCE);
|
2009-01-02 10:19:58 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "value");
|
2009-12-25 18:06:05 +00:00
|
|
|
RNA_def_property_range(prop, 0, FLT_MAX);
|
|
|
|
RNA_def_property_ui_range(prop, 0, 10, 0.1, 4);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Width", "Bevel value/amount");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 10:19:58 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_only_vertices", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 10:19:58 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flags", BME_BEVEL_VERT);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Only Vertices", "Bevel verts/corners, not edges");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 10:19:58 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "limit_method", PROP_ENUM, PROP_NONE);
|
2009-01-02 10:19:58 +00:00
|
|
|
RNA_def_property_enum_sdna(prop, NULL, "lim_flags");
|
|
|
|
RNA_def_property_enum_items(prop, prop_limit_method_items);
|
|
|
|
RNA_def_property_ui_text(prop, "Limit Method", "");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 10:19:58 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "edge_weight_method", PROP_ENUM, PROP_NONE);
|
2009-01-02 10:19:58 +00:00
|
|
|
RNA_def_property_enum_sdna(prop, NULL, "e_flags");
|
|
|
|
RNA_def_property_enum_items(prop, prop_edge_weight_method_items);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Edge Weight Method", "What edge weight to use for weighting a vertex");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 10:19:58 +00:00
|
|
|
|
2011-06-09 08:58:27 +00:00
|
|
|
#if 1 /* expose as radians */
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "angle_limit", PROP_FLOAT, PROP_ANGLE);
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_property_float_funcs(prop, "rna_BevelModifier_angle_limit_get",
|
|
|
|
"rna_BevelModifier_angle_limit_set", NULL);
|
2011-06-09 08:58:27 +00:00
|
|
|
RNA_def_property_range(prop, 0, DEG2RAD(180));
|
|
|
|
RNA_def_property_ui_range(prop, 0, DEG2RAD(180), 100, 2);
|
|
|
|
#else
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "angle_limit", PROP_FLOAT, PROP_NONE);
|
2009-01-02 10:19:58 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "bevel_angle");
|
|
|
|
RNA_def_property_range(prop, 0, 180);
|
|
|
|
RNA_def_property_ui_range(prop, 0, 180, 100, 2);
|
2011-06-09 08:58:27 +00:00
|
|
|
#endif
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Angle", "Angle above which to bevel edges");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2011-12-13 09:57:19 +00:00
|
|
|
|
2012-03-15 23:56:46 +00:00
|
|
|
#ifdef USE_BM_BEVEL_OP_AS_MOD
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_even_offset", PROP_BOOLEAN, PROP_NONE); /* name matches solidify */
|
2011-12-13 09:57:19 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flags", BME_BEVEL_EVEN);
|
|
|
|
RNA_def_property_ui_text(prop, "Even", "Use even bevel distance correction");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2012-03-15 23:56:46 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_distance_offset", PROP_BOOLEAN, PROP_NONE);
|
2011-12-13 09:57:19 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flags", BME_BEVEL_DIST);
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Distance",
|
|
|
|
"Use the width as a distance in rather then a factor of the face size");
|
2011-12-13 09:57:19 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2012-03-15 23:56:46 +00:00
|
|
|
#endif
|
2011-12-13 09:57:19 +00:00
|
|
|
|
2008-12-29 17:36:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_def_modifier_shrinkwrap(BlenderRNA *brna)
|
|
|
|
{
|
|
|
|
StructRNA *srna;
|
2009-01-02 19:22:43 +00:00
|
|
|
PropertyRNA *prop;
|
|
|
|
|
2009-10-22 23:22:05 +00:00
|
|
|
static EnumPropertyItem shrink_type_items[] = {
|
2012-03-18 09:27:36 +00:00
|
|
|
{MOD_SHRINKWRAP_NEAREST_SURFACE, "NEAREST_SURFACEPOINT", 0, "Nearest Surface Point",
|
|
|
|
"Shrink the mesh to the nearest target surface"},
|
|
|
|
{MOD_SHRINKWRAP_PROJECT, "PROJECT", 0, "Project",
|
|
|
|
"Shrink the mesh to the nearest target surface along a given axis"},
|
|
|
|
{MOD_SHRINKWRAP_NEAREST_VERTEX, "NEAREST_VERTEX", 0, "Nearest Vertex",
|
|
|
|
"Shrink the mesh to the nearest target vertex"},
|
2009-06-16 00:52:21 +00:00
|
|
|
{0, NULL, 0, NULL, NULL}};
|
2011-02-19 09:53:38 +00:00
|
|
|
|
|
|
|
static EnumPropertyItem shrink_face_cull_items[] = {
|
2011-11-28 15:41:32 +00:00
|
|
|
{0, "OFF", 0, "Off", "No culling"},
|
|
|
|
{MOD_SHRINKWRAP_CULL_TARGET_FRONTFACE, "FRONT", 0, "Front", "No projection when in front of the face"},
|
|
|
|
{MOD_SHRINKWRAP_CULL_TARGET_BACKFACE, "BACK", 0, "Back", "No projection when behind the face"},
|
2011-02-19 09:53:38 +00:00
|
|
|
{0, NULL, 0, NULL, NULL}};
|
2008-12-29 17:36:06 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "ShrinkwrapModifier", "Modifier");
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "Shrinkwrap Modifier",
|
|
|
|
"Shrink wrapping modifier to shrink wrap and object to a target");
|
2008-12-29 17:36:06 +00:00
|
|
|
RNA_def_struct_sdna(srna, "ShrinkwrapModifierData");
|
2009-06-03 23:16:51 +00:00
|
|
|
RNA_def_struct_ui_icon(srna, ICON_MOD_SHRINKWRAP);
|
2009-01-02 19:22:43 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "wrap_method", PROP_ENUM, PROP_NONE);
|
2009-01-02 19:22:43 +00:00
|
|
|
RNA_def_property_enum_sdna(prop, NULL, "shrinkType");
|
2009-10-22 23:22:05 +00:00
|
|
|
RNA_def_property_enum_items(prop, shrink_type_items);
|
2009-01-02 19:22:43 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Mode", "");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 19:22:43 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "cull_face", PROP_ENUM, PROP_NONE);
|
2011-02-19 09:53:38 +00:00
|
|
|
RNA_def_property_enum_sdna(prop, NULL, "shrinkOpts");
|
|
|
|
RNA_def_property_enum_items(prop, shrink_face_cull_items);
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_property_enum_funcs(prop, "rna_ShrinkwrapModifier_face_cull_get",
|
|
|
|
"rna_ShrinkwrapModifier_face_cull_set", NULL);
|
|
|
|
RNA_def_property_ui_text(prop, "Face Cull",
|
|
|
|
"Stop vertices from projecting to a face on the target when facing towards/away");
|
2011-02-19 09:53:38 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "target", PROP_POINTER, PROP_NONE);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Target", "Mesh target to shrink to");
|
2010-08-03 06:51:36 +00:00
|
|
|
RNA_def_property_pointer_funcs(prop, NULL, "rna_ShrinkwrapModifier_target_set", NULL, "rna_Mesh_object_poll");
|
2009-11-05 18:05:55 +00:00
|
|
|
RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK);
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
|
2009-01-02 19:22:43 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "auxiliary_target", PROP_POINTER, PROP_NONE);
|
2009-01-02 19:22:43 +00:00
|
|
|
RNA_def_property_pointer_sdna(prop, NULL, "auxTarget");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Auxiliary Target", "Additional mesh target to shrink to");
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_property_pointer_funcs(prop, NULL, "rna_ShrinkwrapModifier_auxiliary_target_set", NULL,
|
|
|
|
"rna_Mesh_object_poll");
|
2009-11-05 18:05:55 +00:00
|
|
|
RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK);
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
|
2009-01-02 19:22:43 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "vertex_group", PROP_STRING, PROP_NONE);
|
2009-01-02 19:22:43 +00:00
|
|
|
RNA_def_property_string_sdna(prop, NULL, "vgroup_name");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Vertex Group", "Vertex group name");
|
2009-01-04 19:25:24 +00:00
|
|
|
RNA_def_property_string_funcs(prop, NULL, NULL, "rna_ShrinkwrapModifier_vgroup_set");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2011-02-08 02:09:59 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "offset", PROP_FLOAT, PROP_NONE);
|
2009-01-02 19:22:43 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "keepDist");
|
2011-02-08 02:09:59 +00:00
|
|
|
RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);
|
|
|
|
RNA_def_property_ui_range(prop, -100, 100, 1, 2);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Offset", "Distance to keep from the target");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 19:22:43 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_project_x", PROP_BOOLEAN, PROP_NONE);
|
2009-01-03 23:14:33 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "projAxis", MOD_SHRINKWRAP_PROJECT_OVER_X_AXIS);
|
|
|
|
RNA_def_property_ui_text(prop, "X", "");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-03 23:14:33 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_project_y", PROP_BOOLEAN, PROP_NONE);
|
2009-01-03 23:14:33 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "projAxis", MOD_SHRINKWRAP_PROJECT_OVER_Y_AXIS);
|
|
|
|
RNA_def_property_ui_text(prop, "Y", "");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-03 23:14:33 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_project_z", PROP_BOOLEAN, PROP_NONE);
|
2009-01-03 23:14:33 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "projAxis", MOD_SHRINKWRAP_PROJECT_OVER_Z_AXIS);
|
|
|
|
RNA_def_property_ui_text(prop, "Z", "");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 19:22:43 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "subsurf_levels", PROP_INT, PROP_NONE);
|
2009-01-02 19:22:43 +00:00
|
|
|
RNA_def_property_int_sdna(prop, NULL, "subsurfLevels");
|
2009-06-11 16:59:59 +00:00
|
|
|
RNA_def_property_range(prop, 0, 6);
|
2009-01-02 19:22:43 +00:00
|
|
|
RNA_def_property_ui_range(prop, 0, 6, 1, 0);
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Subsurf Levels",
|
|
|
|
"Number of subdivisions that must be performed before extracting vertices' "
|
|
|
|
"positions and normals");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 19:22:43 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_negative_direction", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 19:22:43 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "shrinkOpts", MOD_SHRINKWRAP_PROJECT_ALLOW_NEG_DIR);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Negative", "Allow vertices to move in the negative direction of axis");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 19:22:43 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_positive_direction", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 19:22:43 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "shrinkOpts", MOD_SHRINKWRAP_PROJECT_ALLOW_POS_DIR);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Positive", "Allow vertices to move in the positive direction of axis");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 19:22:43 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_keep_above_surface", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 19:22:43 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "shrinkOpts", MOD_SHRINKWRAP_KEEP_ABOVE_SURFACE);
|
|
|
|
RNA_def_property_ui_text(prop, "Keep Above Surface", "");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2008-12-29 17:36:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_def_modifier_fluidsim(BlenderRNA *brna)
|
|
|
|
{
|
|
|
|
StructRNA *srna;
|
|
|
|
PropertyRNA *prop;
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "FluidSimulationModifier", "Modifier");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "Fluid Simulation Modifier", "Fluid simulation modifier");
|
2008-12-29 17:36:06 +00:00
|
|
|
RNA_def_struct_sdna(srna, "FluidsimModifierData");
|
2009-06-03 23:16:51 +00:00
|
|
|
RNA_def_struct_ui_icon(srna, ICON_MOD_FLUIDSIM);
|
2008-12-29 17:36:06 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "settings", PROP_POINTER, PROP_NONE);
|
2009-10-22 23:22:05 +00:00
|
|
|
RNA_def_property_flag(prop, PROP_NEVER_NULL);
|
2008-12-29 17:36:06 +00:00
|
|
|
RNA_def_property_pointer_sdna(prop, NULL, "fss");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Settings", "Settings for how this object is used in the fluid simulation");
|
2008-12-29 17:36:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_def_modifier_mask(BlenderRNA *brna)
|
|
|
|
{
|
|
|
|
StructRNA *srna;
|
2009-01-02 19:22:43 +00:00
|
|
|
PropertyRNA *prop;
|
|
|
|
|
2009-10-22 23:22:05 +00:00
|
|
|
static EnumPropertyItem modifier_mask_mode_items[] = {
|
2009-06-16 00:52:21 +00:00
|
|
|
{MOD_MASK_MODE_VGROUP, "VERTEX_GROUP", 0, "Vertex Group", ""},
|
|
|
|
{MOD_MASK_MODE_ARM, "ARMATURE", 0, "Armature", ""},
|
|
|
|
{0, NULL, 0, NULL, NULL}};
|
2008-12-29 17:36:06 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "MaskModifier", "Modifier");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "Mask Modifier", "Mask modifier to hide parts of the mesh");
|
2008-12-29 17:36:06 +00:00
|
|
|
RNA_def_struct_sdna(srna, "MaskModifierData");
|
2009-06-03 23:16:51 +00:00
|
|
|
RNA_def_struct_ui_icon(srna, ICON_MOD_MASK);
|
2009-01-02 19:22:43 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "mode", PROP_ENUM, PROP_NONE);
|
2009-10-22 23:22:05 +00:00
|
|
|
RNA_def_property_enum_items(prop, modifier_mask_mode_items);
|
2009-01-02 19:22:43 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Mode", "");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 19:22:43 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "armature", PROP_POINTER, PROP_NONE);
|
2009-01-02 19:22:43 +00:00
|
|
|
RNA_def_property_pointer_sdna(prop, NULL, "ob_arm");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Armature", "Armature to use as source of bones to mask");
|
2010-08-03 06:51:36 +00:00
|
|
|
RNA_def_property_pointer_funcs(prop, NULL, "rna_MaskModifier_armature_set", NULL, "rna_Armature_object_poll");
|
2009-11-05 18:05:55 +00:00
|
|
|
RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK);
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
|
2009-01-02 19:22:43 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "vertex_group", PROP_STRING, PROP_NONE);
|
2009-01-02 19:22:43 +00:00
|
|
|
RNA_def_property_string_sdna(prop, NULL, "vgroup");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Vertex Group", "Vertex group name");
|
2009-01-04 19:25:24 +00:00
|
|
|
RNA_def_property_string_funcs(prop, NULL, NULL, "rna_MaskModifier_vgroup_set");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 19:22:43 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "invert_vertex_group", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 19:22:43 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_MASK_INV);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Invert", "Use vertices that are not part of region defined");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2008-12-29 17:36:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_def_modifier_simpledeform(BlenderRNA *brna)
|
|
|
|
{
|
|
|
|
StructRNA *srna;
|
2009-01-02 19:22:43 +00:00
|
|
|
PropertyRNA *prop;
|
|
|
|
|
2009-10-22 23:22:05 +00:00
|
|
|
static EnumPropertyItem simple_deform_mode_items[] = {
|
2011-11-28 15:41:32 +00:00
|
|
|
{MOD_SIMPLEDEFORM_MODE_TWIST, "TWIST", 0, "Twist", "Rotate around the Z axis of the modifier space"},
|
|
|
|
{MOD_SIMPLEDEFORM_MODE_BEND, "BEND", 0, "Bend", "Bend the mesh over the Z axis of the modifier space"},
|
|
|
|
{MOD_SIMPLEDEFORM_MODE_TAPER, "TAPER", 0, "Taper", "Linearly scale along Z axis of the modifier space"},
|
2012-03-18 09:27:36 +00:00
|
|
|
{MOD_SIMPLEDEFORM_MODE_STRETCH, "STRETCH", 0, "Stretch",
|
|
|
|
"Stretch the object along the Z axis of the modifier space"},
|
2009-06-16 00:52:21 +00:00
|
|
|
{0, NULL, 0, NULL, NULL}};
|
2008-12-29 17:36:06 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "SimpleDeformModifier", "Modifier");
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "SimpleDeform Modifier",
|
|
|
|
"Simple deformation modifier to apply effects such as twisting and bending");
|
2008-12-29 17:36:06 +00:00
|
|
|
RNA_def_struct_sdna(srna, "SimpleDeformModifierData");
|
2009-06-03 23:16:51 +00:00
|
|
|
RNA_def_struct_ui_icon(srna, ICON_MOD_SIMPLEDEFORM);
|
2009-01-02 19:22:43 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "deform_method", PROP_ENUM, PROP_NONE);
|
2010-08-21 04:51:00 +00:00
|
|
|
RNA_def_property_enum_sdna(prop, NULL, "mode");
|
2009-10-22 23:22:05 +00:00
|
|
|
RNA_def_property_enum_items(prop, simple_deform_mode_items);
|
2009-01-02 19:22:43 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Mode", "");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 19:22:43 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "vertex_group", PROP_STRING, PROP_NONE);
|
2009-01-02 19:22:43 +00:00
|
|
|
RNA_def_property_string_sdna(prop, NULL, "vgroup_name");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Vertex Group", "Vertex group name");
|
2009-01-04 19:25:24 +00:00
|
|
|
RNA_def_property_string_funcs(prop, NULL, NULL, "rna_SimpleDeformModifier_vgroup_set");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 19:22:43 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "origin", PROP_POINTER, PROP_NONE);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Origin", "Origin of modifier space coordinates");
|
2009-11-05 18:05:55 +00:00
|
|
|
RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK);
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
|
2009-01-02 19:22:43 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_relative", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 19:22:43 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "originOpts", MOD_SIMPLEDEFORM_ORIGIN_LOCAL);
|
2011-11-28 15:41:32 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Relative", "Set the origin of deform space to be relative to the object");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 19:22:43 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "factor", PROP_FLOAT, PROP_NONE);
|
2009-06-04 11:16:56 +00:00
|
|
|
RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);
|
2010-08-22 16:44:48 +00:00
|
|
|
RNA_def_property_ui_range(prop, -10, 10, 1, 3);
|
2011-05-15 17:59:48 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Factor", "Amount to deform object");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 19:22:43 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "limits", PROP_FLOAT, PROP_NONE);
|
2009-01-02 19:22:43 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "limit");
|
|
|
|
RNA_def_property_array(prop, 2);
|
|
|
|
RNA_def_property_range(prop, 0, 1);
|
|
|
|
RNA_def_property_ui_range(prop, 0, 1, 5, 2);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Limits", "Lower/Upper limits for deform");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 19:22:43 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "lock_x", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 19:22:43 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "axis", MOD_SIMPLEDEFORM_LOCK_AXIS_X);
|
2011-05-15 17:59:48 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Lock X Axis", "Do not allow tapering along the X axis");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-02 19:22:43 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "lock_y", PROP_BOOLEAN, PROP_NONE);
|
2009-01-02 19:22:43 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "axis", MOD_SIMPLEDEFORM_LOCK_AXIS_Y);
|
2011-05-15 17:59:48 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Lock Y Axis", "Do not allow tapering along the Y axis");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2008-12-29 17:36:06 +00:00
|
|
|
}
|
|
|
|
|
2009-07-02 19:41:31 +00:00
|
|
|
static void rna_def_modifier_surface(BlenderRNA *brna)
|
|
|
|
{
|
|
|
|
StructRNA *srna;
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "SurfaceModifier", "Modifier");
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "Surface Modifier",
|
|
|
|
"Surface modifier defining modifier stack position used for surface fields");
|
2009-07-02 19:41:31 +00:00
|
|
|
RNA_def_struct_sdna(srna, "SurfaceModifierData");
|
|
|
|
RNA_def_struct_ui_icon(srna, ICON_MOD_PHYSICS);
|
|
|
|
}
|
2009-12-21 01:02:08 +00:00
|
|
|
|
|
|
|
static void rna_def_modifier_solidify(BlenderRNA *brna)
|
|
|
|
{
|
|
|
|
StructRNA *srna;
|
|
|
|
PropertyRNA *prop;
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "SolidifyModifier", "Modifier");
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "Solidify Modifier",
|
|
|
|
"Create a solid skin by extruding, compensating for sharp angles");
|
2009-12-21 01:02:08 +00:00
|
|
|
RNA_def_struct_sdna(srna, "SolidifyModifierData");
|
2010-01-22 02:23:28 +00:00
|
|
|
RNA_def_struct_ui_icon(srna, ICON_MOD_SOLIDIFY);
|
2009-12-21 01:02:08 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "thickness", PROP_FLOAT, PROP_DISTANCE);
|
2009-12-21 01:02:08 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "offset");
|
|
|
|
RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);
|
|
|
|
RNA_def_property_ui_range(prop, -10, 10, 0.1, 4);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Thickness", "Thickness of the shell");
|
2009-12-21 01:02:08 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "thickness_vertex_group", PROP_FLOAT, PROP_FACTOR);
|
2011-08-14 06:43:58 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "offset_fac_vg");
|
|
|
|
RNA_def_property_range(prop, 0.0, 1.0);
|
|
|
|
RNA_def_property_ui_range(prop, 0, 1, 0.1, 3);
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Vertex Group Factor",
|
|
|
|
"Thickness factor to use for zero vertex group influence");
|
2011-08-14 06:43:58 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "offset", PROP_FLOAT, PROP_FACTOR);
|
2010-03-31 07:28:23 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "offset_fac");
|
|
|
|
RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);
|
|
|
|
RNA_def_property_ui_range(prop, -1, 1, 0.1, 4);
|
2010-07-14 08:24:24 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Offset", "Offset the thickness from the center");
|
2010-03-31 07:28:23 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "edge_crease_inner", PROP_FLOAT, PROP_FACTOR);
|
2009-12-21 01:02:08 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "crease_inner");
|
|
|
|
RNA_def_property_range(prop, 0, 1);
|
|
|
|
RNA_def_property_ui_range(prop, 0, 1, 0.1, 3);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Inner Crease", "Assign a crease to inner edges");
|
2009-12-21 01:02:08 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "edge_crease_outer", PROP_FLOAT, PROP_FACTOR);
|
2009-12-21 01:02:08 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "crease_outer");
|
|
|
|
RNA_def_property_range(prop, 0, 1);
|
|
|
|
RNA_def_property_ui_range(prop, 0, 1, 0.1, 3);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Outer Crease", "Assign a crease to outer edges");
|
2009-12-21 01:02:08 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "edge_crease_rim", PROP_FLOAT, PROP_FACTOR);
|
2009-12-21 01:02:08 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "crease_rim");
|
|
|
|
RNA_def_property_range(prop, 0, 1);
|
|
|
|
RNA_def_property_ui_range(prop, 0, 1, 0.1, 3);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Rim Crease", "Assign a crease to the edges making up the rim");
|
2009-12-21 01:02:08 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "material_offset", PROP_INT, PROP_NONE);
|
2011-03-03 05:09:07 +00:00
|
|
|
RNA_def_property_int_sdna(prop, NULL, "mat_ofs");
|
|
|
|
RNA_def_property_range(prop, SHRT_MIN, SHRT_MAX);
|
|
|
|
RNA_def_property_ui_text(prop, "Material Offset", "Offset material index of generated faces");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "material_offset_rim", PROP_INT, PROP_NONE);
|
2011-03-03 05:09:07 +00:00
|
|
|
RNA_def_property_int_sdna(prop, NULL, "mat_ofs_rim");
|
|
|
|
RNA_def_property_range(prop, SHRT_MIN, SHRT_MAX);
|
|
|
|
RNA_def_property_ui_text(prop, "Rim Material Offset", "Offset material index of generated rim faces");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "vertex_group", PROP_STRING, PROP_NONE);
|
2010-01-26 09:36:33 +00:00
|
|
|
RNA_def_property_string_sdna(prop, NULL, "defgrp_name");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Vertex Group", "Vertex group name");
|
2009-12-21 01:02:08 +00:00
|
|
|
RNA_def_property_string_funcs(prop, NULL, NULL, "rna_SolidifyModifier_vgroup_set");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_rim", PROP_BOOLEAN, PROP_NONE);
|
2009-12-21 01:02:08 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_SOLIDIFY_RIM);
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Fill Rim",
|
|
|
|
"Create edge loops between the inner and outer surfaces on face edges "
|
|
|
|
"(slow, disable when not needed)");
|
2009-12-21 01:02:08 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_even_offset", PROP_BOOLEAN, PROP_NONE);
|
2009-12-21 01:02:08 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_SOLIDIFY_EVEN);
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Even Thickness",
|
|
|
|
"Maintain thickness by adjusting for sharp corners (slow, disable when not needed)");
|
2009-12-21 01:02:08 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_quality_normals", PROP_BOOLEAN, PROP_NONE);
|
2009-12-21 01:02:08 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_SOLIDIFY_NORMAL_CALC);
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_property_ui_text(prop, "High Quality Normals",
|
|
|
|
"Calculate normals which result in more even thickness (slow, disable when not needed)");
|
2009-12-21 01:02:08 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2010-03-22 00:22:52 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "invert_vertex_group", PROP_BOOLEAN, PROP_NONE);
|
2010-03-31 07:28:23 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_SOLIDIFY_VGROUP_INV);
|
|
|
|
RNA_def_property_ui_text(prop, "Vertex Group Invert", "Invert the vertex group influence");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2010-06-13 13:56:13 +00:00
|
|
|
|
|
|
|
|
2010-03-22 00:22:52 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_def_modifier_screw(BlenderRNA *brna)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
static EnumPropertyItem axis_items[] = {
|
2010-03-22 00:22:52 +00:00
|
|
|
{0, "X", 0, "X Axis", ""},
|
|
|
|
{1, "Y", 0, "Y Axis", ""},
|
|
|
|
{2, "Z", 0, "Z Axis", ""},
|
|
|
|
{0, NULL, 0, NULL, NULL}};
|
|
|
|
|
|
|
|
StructRNA *srna;
|
|
|
|
PropertyRNA *prop;
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "ScrewModifier", "Modifier");
|
2010-03-22 00:22:52 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "Screw Modifier", "Revolve edges");
|
|
|
|
RNA_def_struct_sdna(srna, "ScrewModifierData");
|
|
|
|
RNA_def_struct_ui_icon(srna, ICON_MOD_SCREW);
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "object", PROP_POINTER, PROP_NONE);
|
2010-03-22 00:22:52 +00:00
|
|
|
RNA_def_property_pointer_sdna(prop, NULL, "ob_axis");
|
|
|
|
RNA_def_property_ui_text(prop, "Object", "Object to define the screw axis");
|
|
|
|
RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK);
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "steps", PROP_INT, PROP_UNSIGNED);
|
2010-03-22 09:30:00 +00:00
|
|
|
RNA_def_property_range(prop, 2, 10000);
|
2011-09-04 11:13:41 +00:00
|
|
|
RNA_def_property_ui_range(prop, 3, 512, 1, 0);
|
2010-03-22 00:22:52 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Steps", "Number of steps in the revolution");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "render_steps", PROP_INT, PROP_UNSIGNED);
|
2010-03-22 09:30:00 +00:00
|
|
|
RNA_def_property_range(prop, 2, 10000);
|
2010-03-22 08:49:12 +00:00
|
|
|
RNA_def_property_ui_range(prop, 2, 512, 1, 0);
|
2010-03-22 00:22:52 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Render Steps", "Number of steps in the revolution");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "iterations", PROP_INT, PROP_UNSIGNED);
|
2010-03-22 00:22:52 +00:00
|
|
|
RNA_def_property_int_sdna(prop, NULL, "iter");
|
2010-03-22 09:30:00 +00:00
|
|
|
RNA_def_property_range(prop, 1, 10000);
|
2010-03-22 08:49:12 +00:00
|
|
|
RNA_def_property_ui_range(prop, 1, 100, 1, 0);
|
2010-03-22 00:22:52 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Iterations", "Number of times to apply the screw operation");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "axis", PROP_ENUM, PROP_NONE);
|
2010-03-22 00:22:52 +00:00
|
|
|
RNA_def_property_enum_items(prop, axis_items);
|
|
|
|
RNA_def_property_ui_text(prop, "Axis", "Screw axis");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "angle", PROP_FLOAT, PROP_ANGLE);
|
2010-03-22 09:30:00 +00:00
|
|
|
RNA_def_property_ui_range(prop, 0, -M_PI*2, M_PI*2, 2);
|
2010-03-22 08:49:12 +00:00
|
|
|
RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);
|
2010-03-22 00:22:52 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Angle", "Angle of revolution");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "screw_offset", PROP_FLOAT, PROP_DISTANCE);
|
2010-03-22 00:22:52 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "screw_ofs");
|
|
|
|
RNA_def_property_ui_text(prop, "Screw", "Offset the revolution along its axis");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_normal_flip", PROP_BOOLEAN, PROP_NONE);
|
2010-03-22 00:22:52 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_SCREW_NORMAL_FLIP);
|
|
|
|
RNA_def_property_ui_text(prop, "Flip", "Flip normals of lathed faces");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_normal_calculate", PROP_BOOLEAN, PROP_NONE);
|
2010-03-22 00:22:52 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_SCREW_NORMAL_CALC);
|
|
|
|
RNA_def_property_ui_text(prop, "Calc Order", "Calculate the order of edges (needed for meshes, but not curves)");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_object_screw_offset", PROP_BOOLEAN, PROP_NONE);
|
2010-03-22 00:22:52 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_SCREW_OBJECT_OFFSET);
|
|
|
|
RNA_def_property_ui_text(prop, "Object Screw", "Use the distance between the objects to make a screw");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
|
|
|
/*prop= RNA_def_property(srna, "use_angle_object", PROP_BOOLEAN, PROP_NONE);
|
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_SCREW_OBJECT_ANGLE);
|
2010-05-04 05:15:53 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Object Angle", "Use the angle between the objects rather than the fixed angle");
|
2010-03-22 00:22:52 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");*/
|
2009-12-21 01:02:08 +00:00
|
|
|
}
|
|
|
|
|
2011-07-25 15:27:01 +00:00
|
|
|
static void rna_def_modifier_weightvg_mask(BlenderRNA *brna, StructRNA *srna)
|
|
|
|
{
|
|
|
|
static EnumPropertyItem weightvg_mask_tex_map_items[] = {
|
2011-11-23 14:40:15 +00:00
|
|
|
{MOD_DISP_MAP_LOCAL, "LOCAL", 0, "Local", "Use local generated coordinates"},
|
|
|
|
{MOD_DISP_MAP_GLOBAL, "GLOBAL", 0, "Global", "Use global coordinates"},
|
|
|
|
{MOD_DISP_MAP_OBJECT, "OBJECT", 0, "Object", "Use local generated coordinates of another object"},
|
|
|
|
{MOD_DISP_MAP_UV, "UV", 0, "UV", "Use coordinates from an UV layer"},
|
2011-07-25 15:27:01 +00:00
|
|
|
{0, NULL, 0, NULL, NULL}};
|
|
|
|
|
|
|
|
static EnumPropertyItem weightvg_mask_tex_used_items[] = {
|
|
|
|
{MOD_WVG_MASK_TEX_USE_INT, "INT", 0, "Intensity", ""},
|
|
|
|
{MOD_WVG_MASK_TEX_USE_RED, "RED", 0, "Red", ""},
|
|
|
|
{MOD_WVG_MASK_TEX_USE_GREEN, "GREEN", 0, "Green", ""},
|
|
|
|
{MOD_WVG_MASK_TEX_USE_BLUE, "BLUE", 0, "Blue", ""},
|
|
|
|
{MOD_WVG_MASK_TEX_USE_HUE, "HUE", 0, "Hue", ""},
|
|
|
|
{MOD_WVG_MASK_TEX_USE_SAT, "SAT", 0, "Saturation", ""},
|
|
|
|
{MOD_WVG_MASK_TEX_USE_VAL, "VAL", 0, "Value", ""},
|
|
|
|
{MOD_WVG_MASK_TEX_USE_ALPHA, "ALPHA", 0, "Alpha", ""},
|
|
|
|
{0, NULL, 0, NULL, NULL}};
|
|
|
|
|
|
|
|
PropertyRNA *prop;
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "mask_constant", PROP_FLOAT, PROP_NONE);
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);
|
2011-11-23 14:40:15 +00:00
|
|
|
RNA_def_property_ui_range(prop, 0.0, 1.0, 1, 0);
|
2011-09-19 13:23:58 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Influence", "Global influence of current modifications on vgroup");
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "mask_vertex_group", PROP_STRING, PROP_NONE);
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_string_sdna(prop, NULL, "mask_defgrp_name");
|
2011-09-19 13:23:58 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Mask VGroup", "Masking vertex group name");
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_string_funcs(prop, NULL, NULL, "rna_WeightVGModifier_mask_vgroup_set");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "mask_texture", PROP_POINTER, PROP_NONE);
|
2011-09-19 13:23:58 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Masking Tex", "Masking texture");
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_flag(prop, PROP_EDITABLE);
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "mask_tex_use_channel", PROP_ENUM, PROP_NONE);
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_enum_items(prop, weightvg_mask_tex_used_items);
|
2011-09-19 13:23:58 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Use Channel", "Which texture channel to use for masking");
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "mask_tex_mapping", PROP_ENUM, PROP_NONE);
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_enum_items(prop, weightvg_mask_tex_map_items);
|
|
|
|
RNA_def_property_ui_text(prop, "Texture Coordinates", "Which texture coordinates "
|
2011-09-19 13:23:58 +00:00
|
|
|
"to use for mapping");
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "mask_tex_uv_layer", PROP_STRING, PROP_NONE);
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_string_sdna(prop, NULL, "mask_tex_uvlayer_name");
|
2011-11-23 17:25:25 +00:00
|
|
|
RNA_def_property_ui_text(prop, "UV Map", "UV map name");
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_string_funcs(prop, NULL, NULL, "rna_WeightVGModifier_mask_uvlayer_set");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "mask_tex_map_object", PROP_POINTER, PROP_NONE);
|
2011-09-05 03:26:49 +00:00
|
|
|
RNA_def_property_pointer_sdna(prop, NULL, "mask_tex_map_obj");
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Texture Coordinate Object", "Which object to take texture "
|
2011-09-19 13:23:58 +00:00
|
|
|
"coordinates from");
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK);
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
|
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_def_modifier_weightvgedit(BlenderRNA *brna)
|
|
|
|
{
|
2011-09-07 07:46:26 +00:00
|
|
|
static EnumPropertyItem weightvg_edit_falloff_type_items[] = {
|
2011-11-23 14:40:15 +00:00
|
|
|
{MOD_WVG_MAPPING_NONE, "LINEAR", ICON_LINCURVE, "Linear", "Null action"},
|
2011-09-05 16:16:00 +00:00
|
|
|
{MOD_WVG_MAPPING_CURVE, "CURVE", ICON_RNDCURVE, "Custom Curve", ""},
|
|
|
|
{MOD_WVG_MAPPING_SHARP, "SHARP", ICON_SHARPCURVE, "Sharp", ""},
|
|
|
|
{MOD_WVG_MAPPING_SMOOTH, "SMOOTH", ICON_SMOOTHCURVE, "Smooth", ""},
|
|
|
|
{MOD_WVG_MAPPING_ROOT, "ROOT", ICON_ROOTCURVE, "Root", ""},
|
|
|
|
{MOD_WVG_MAPPING_SPHERE, "ICON_SPHERECURVE", ICON_SPHERECURVE, "Sphere", ""},
|
|
|
|
{MOD_WVG_MAPPING_RANDOM, "RANDOM", ICON_RNDCURVE, "Random", ""},
|
2011-11-23 14:40:15 +00:00
|
|
|
{MOD_WVG_MAPPING_STEP, "STEP", ICON_NOCURVE /* Would need a better icon... */, "Median Step",
|
|
|
|
"Map all values below 0.5 to 0.0, and all others to 1.0"},
|
2011-09-05 16:16:00 +00:00
|
|
|
{0, NULL, 0, NULL, NULL}};
|
|
|
|
|
2011-07-25 15:27:01 +00:00
|
|
|
StructRNA *srna;
|
|
|
|
PropertyRNA *prop;
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "VertexWeightEditModifier", "Modifier");
|
2011-08-18 06:30:59 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "WeightVG Edit Modifier",
|
2011-09-19 13:23:58 +00:00
|
|
|
"Edit the weights of vertices in a group");
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_struct_sdna(srna, "WeightVGEditModifierData");
|
2011-09-07 07:46:26 +00:00
|
|
|
RNA_def_struct_ui_icon(srna, ICON_MOD_VERTEX_WEIGHT);
|
2011-07-25 15:27:01 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "vertex_group", PROP_STRING, PROP_NONE);
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_string_sdna(prop, NULL, "defgrp_name");
|
2011-09-19 13:23:58 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Vertex Group", "Vertex group name");
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_string_funcs(prop, NULL, NULL, "rna_WeightVGModifier_vgroup_set");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "falloff_type", PROP_ENUM, PROP_NONE);
|
2011-09-07 07:46:26 +00:00
|
|
|
RNA_def_property_enum_items(prop, weightvg_edit_falloff_type_items);
|
2011-09-19 13:23:58 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Falloff Type", "How weights are mapped to there new values");
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_add", PROP_BOOLEAN, PROP_NONE);
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "edit_flags", MOD_WVG_EDIT_ADD2VG);
|
2011-09-05 05:43:01 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Group Add", "Add vertices with weight over threshold "
|
2011-09-19 13:23:58 +00:00
|
|
|
"to vgroup");
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_remove", PROP_BOOLEAN, PROP_NONE);
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "edit_flags", MOD_WVG_EDIT_REMFVG);
|
2011-09-05 05:43:01 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Group Remove", "Remove vertices with weight below threshold "
|
2011-11-28 15:41:32 +00:00
|
|
|
"from vgroup");
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "default_weight", PROP_FLOAT, PROP_NONE);
|
2011-09-05 04:53:23 +00:00
|
|
|
RNA_def_property_range(prop, 0.0, 1.0f);
|
2011-11-23 14:40:15 +00:00
|
|
|
RNA_def_property_ui_range(prop, 0.0, 1.0, 1, 0);
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Default Weight", "Default weight a vertex will have if "
|
2011-09-19 13:23:58 +00:00
|
|
|
"it is not in the vgroup");
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "map_curve", PROP_POINTER, PROP_NONE);
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_pointer_sdna(prop, NULL, "cmap_curve");
|
2011-09-19 13:23:58 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Mapping Curve", "Custom mapping curve");
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "add_threshold", PROP_FLOAT, PROP_NONE);
|
2011-07-28 01:38:48 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "add_threshold");
|
2011-09-05 04:53:23 +00:00
|
|
|
RNA_def_property_range(prop, 0.0, 1.0);
|
2011-11-23 14:40:15 +00:00
|
|
|
RNA_def_property_ui_range(prop, 0.0, 1.0, 1, 0);
|
2011-09-05 03:09:49 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Add Threshold", "Lower bound for a vertex's weight "
|
2011-09-19 13:23:58 +00:00
|
|
|
"to be added to the vgroup");
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "remove_threshold", PROP_FLOAT, PROP_NONE);
|
2011-07-28 01:38:48 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "rem_threshold");
|
2011-09-05 04:53:23 +00:00
|
|
|
RNA_def_property_range(prop, 0.0, 1.0);
|
2011-11-23 14:40:15 +00:00
|
|
|
RNA_def_property_ui_range(prop, 0.0, 1.0, 1, 0);
|
2011-09-05 03:09:49 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Rem Threshold", "Upper bound for a vertex's weight "
|
2011-09-19 13:23:58 +00:00
|
|
|
"to be removed from the vgroup");
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
|
|
|
/* Common masking properties. */
|
|
|
|
rna_def_modifier_weightvg_mask(brna, srna);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_def_modifier_weightvgmix(BlenderRNA *brna)
|
|
|
|
{
|
|
|
|
static EnumPropertyItem weightvg_mix_modes_items[] = {
|
2011-11-28 15:41:32 +00:00
|
|
|
{MOD_WVG_MIX_SET, "SET", 0, "Replace", "Replace VGroup A's weights by VGroup B's ones"},
|
2011-11-23 14:40:15 +00:00
|
|
|
{MOD_WVG_MIX_ADD, "ADD", 0, "Add", "Add VGroup B's weights to VGroup A's ones"},
|
|
|
|
{MOD_WVG_MIX_SUB, "SUB", 0, "Subtract", "Subtract VGroup B's weights from VGroup A's ones"},
|
|
|
|
{MOD_WVG_MIX_MUL, "MUL", 0, "Multiply", "Multiply VGroup A's weights by VGroup B's ones"},
|
|
|
|
{MOD_WVG_MIX_DIV, "DIV", 0, "Divide", "Divide VGroup A's weights by VGroup B's ones"},
|
|
|
|
{MOD_WVG_MIX_DIF, "DIF", 0, "Difference", "Difference between VGroup A's and VGroup B's weigths"},
|
|
|
|
{MOD_WVG_MIX_AVG, "AVG", 0, "Average", "Average value of VGroup A's and VGroup B's weigths"},
|
2011-07-25 15:27:01 +00:00
|
|
|
{0, NULL, 0, NULL, NULL}};
|
|
|
|
|
|
|
|
static EnumPropertyItem weightvg_mix_set_items[] = {
|
2012-03-18 09:27:36 +00:00
|
|
|
{MOD_WVG_SET_ALL, "ALL", 0, "All", "Affect all vertices (might add some to VGroup A)"},
|
|
|
|
{MOD_WVG_SET_A, "A", 0, "VGroup A", "Affect vertices in VGroup A"},
|
|
|
|
{MOD_WVG_SET_B, "B", 0, "VGroup B", "Affect vertices in VGroup B (might add some to VGroup A)"},
|
|
|
|
{MOD_WVG_SET_OR, "OR", 0, "VGroup A or B",
|
|
|
|
"Affect vertices in at least one of both VGroups (might add some to VGroup A)"},
|
|
|
|
{MOD_WVG_SET_AND, "AND", 0, "VGroup A and B", "Affect vertices in both groups"},
|
2011-07-25 15:27:01 +00:00
|
|
|
{0, NULL, 0, NULL, NULL}};
|
|
|
|
|
|
|
|
StructRNA *srna;
|
|
|
|
PropertyRNA *prop;
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "VertexWeightMixModifier", "Modifier");
|
2011-08-18 06:30:59 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "WeightVG Mix Modifier",
|
2011-09-19 13:23:58 +00:00
|
|
|
"Mix the weights of two vertex groups");
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_struct_sdna(srna, "WeightVGMixModifierData");
|
2011-09-07 07:46:26 +00:00
|
|
|
RNA_def_struct_ui_icon(srna, ICON_MOD_VERTEX_WEIGHT);
|
2011-07-25 15:27:01 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "vertex_group_a", PROP_STRING, PROP_NONE);
|
2011-09-05 04:53:23 +00:00
|
|
|
RNA_def_property_string_sdna(prop, NULL, "defgrp_name_a");
|
2011-09-19 13:23:58 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Vertex Group A", "First vertex group name");
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_string_funcs(prop, NULL, NULL, "rna_WeightVGModifier_vgroup_set");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "vertex_group_b", PROP_STRING, PROP_NONE);
|
2011-09-05 04:53:23 +00:00
|
|
|
RNA_def_property_string_sdna(prop, NULL, "defgrp_name_b");
|
2011-09-19 13:23:58 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Vertex Group B", "Second vertex group name");
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_string_funcs(prop, NULL, NULL, "rna_WeightVGMixModifier_vgroup2_set");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "default_weight_a", PROP_FLOAT, PROP_NONE);
|
2011-09-05 04:53:23 +00:00
|
|
|
RNA_def_property_range(prop, 0.0, 1.0f);
|
2011-11-23 14:40:15 +00:00
|
|
|
RNA_def_property_ui_range(prop, 0.0, 1.0, 1, 0);
|
2011-09-05 04:53:23 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Default Weight A", "Default weight a vertex will have if "
|
2011-11-28 15:41:32 +00:00
|
|
|
"it is not in the first A vgroup");
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "default_weight_b", PROP_FLOAT, PROP_NONE);
|
2011-09-05 04:53:23 +00:00
|
|
|
RNA_def_property_range(prop, 0.0, 1.0f);
|
2011-11-23 14:40:15 +00:00
|
|
|
RNA_def_property_ui_range(prop, 0.0, 1.0, 1, 0);
|
2011-09-05 04:53:23 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Default Weight B", "Default weight a vertex will have if "
|
2011-11-28 15:41:32 +00:00
|
|
|
"it is not in the second B vgroup");
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "mix_mode", PROP_ENUM, PROP_NONE);
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_enum_items(prop, weightvg_mix_modes_items);
|
2011-11-28 15:41:32 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Mix Mode", "How weights from vgroup B affect weights "
|
|
|
|
"of vgroup A");
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "mix_set", PROP_ENUM, PROP_NONE);
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_enum_items(prop, weightvg_mix_set_items);
|
2011-09-19 13:23:58 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Vertex Set", "Which vertices should be affected");
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
|
|
|
/* Common masking properties. */
|
|
|
|
rna_def_modifier_weightvg_mask(brna, srna);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void rna_def_modifier_weightvgproximity(BlenderRNA *brna)
|
|
|
|
{
|
|
|
|
static EnumPropertyItem weightvg_proximity_modes_items[] = {
|
2011-07-28 01:38:48 +00:00
|
|
|
{MOD_WVG_PROXIMITY_OBJECT, "OBJECT", 0, "Object Distance",
|
2011-09-19 13:23:58 +00:00
|
|
|
"Use distance between affected and target objects"},
|
2011-07-28 01:38:48 +00:00
|
|
|
{MOD_WVG_PROXIMITY_GEOMETRY, "GEOMETRY", 0, "Geometry Distance",
|
2011-09-19 13:23:58 +00:00
|
|
|
"Use distance between affected object's vertices and target "
|
|
|
|
"object, or target object's geometry"},
|
2011-07-25 15:27:01 +00:00
|
|
|
{0, NULL, 0, NULL, NULL}};
|
|
|
|
|
2011-07-28 01:38:48 +00:00
|
|
|
static EnumPropertyItem proximity_geometry_items[] = {
|
2011-09-19 13:23:58 +00:00
|
|
|
{MOD_WVG_PROXIMITY_GEOM_VERTS, "VERTEX", ICON_VERTEXSEL, "Vertex", "Compute distance to nearest vertex"},
|
|
|
|
{MOD_WVG_PROXIMITY_GEOM_EDGES, "EDGE", ICON_EDGESEL, "Edge", "Compute distance to nearest edge"},
|
|
|
|
{MOD_WVG_PROXIMITY_GEOM_FACES, "FACE", ICON_FACESEL, "Face", "Compute distance to nearest face"},
|
2011-07-28 01:38:48 +00:00
|
|
|
{0, NULL, 0, NULL, NULL}};
|
|
|
|
|
2011-09-07 07:46:26 +00:00
|
|
|
static EnumPropertyItem weightvg_proximity_falloff_type_items[] = {
|
2011-11-23 14:40:15 +00:00
|
|
|
{MOD_WVG_MAPPING_NONE, "LINEAR", ICON_LINCURVE, "Linear", "Null action"},
|
2011-09-05 16:16:00 +00:00
|
|
|
/* No curve mapping here! */
|
|
|
|
{MOD_WVG_MAPPING_SHARP, "SHARP", ICON_SHARPCURVE, "Sharp", ""},
|
|
|
|
{MOD_WVG_MAPPING_SMOOTH, "SMOOTH", ICON_SMOOTHCURVE, "Smooth", ""},
|
|
|
|
{MOD_WVG_MAPPING_ROOT, "ROOT", ICON_ROOTCURVE, "Root", ""},
|
|
|
|
{MOD_WVG_MAPPING_SPHERE, "ICON_SPHERECURVE", ICON_SPHERECURVE, "Sphere", ""},
|
|
|
|
{MOD_WVG_MAPPING_RANDOM, "RANDOM", ICON_RNDCURVE, "Random", ""},
|
2011-11-23 14:40:15 +00:00
|
|
|
{MOD_WVG_MAPPING_STEP, "STEP", ICON_NOCURVE /* Would need a better icon... */, "Median Step",
|
|
|
|
"Map all values below 0.5 to 0.0, and all others to 1.0"},
|
2011-09-05 16:16:00 +00:00
|
|
|
{0, NULL, 0, NULL, NULL}};
|
|
|
|
|
2011-07-25 15:27:01 +00:00
|
|
|
StructRNA *srna;
|
|
|
|
PropertyRNA *prop;
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "VertexWeightProximityModifier", "Modifier");
|
2011-08-18 06:30:59 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "WeightVG Proximity Modifier",
|
2011-09-05 03:09:49 +00:00
|
|
|
"Set the weights of vertices in a group from a target object's "
|
2011-09-19 13:23:58 +00:00
|
|
|
"distance");
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_struct_sdna(srna, "WeightVGProximityModifierData");
|
2011-09-07 07:46:26 +00:00
|
|
|
RNA_def_struct_ui_icon(srna, ICON_MOD_VERTEX_WEIGHT);
|
2011-07-25 15:27:01 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "vertex_group", PROP_STRING, PROP_NONE);
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_string_sdna(prop, NULL, "defgrp_name");
|
2011-09-19 13:23:58 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Vertex Group", "Vertex group name");
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_string_funcs(prop, NULL, NULL, "rna_WeightVGModifier_vgroup_set");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "proximity_mode", PROP_ENUM, PROP_NONE);
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_enum_items(prop, weightvg_proximity_modes_items);
|
2011-11-28 15:41:32 +00:00
|
|
|
RNA_def_property_enum_default(prop, MOD_WVG_PROXIMITY_GEOMETRY);
|
2011-09-19 13:23:58 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Proximity Mode", "Which distances to target object to use");
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "proximity_geometry", PROP_ENUM, PROP_NONE);
|
2011-07-28 01:38:48 +00:00
|
|
|
RNA_def_property_enum_sdna(prop, NULL, "proximity_flags");
|
|
|
|
RNA_def_property_enum_items(prop, proximity_geometry_items);
|
|
|
|
RNA_def_property_flag(prop, PROP_ENUM_FLAG); /* important to run before default set */
|
2011-11-28 15:41:32 +00:00
|
|
|
RNA_def_property_enum_default(prop, MOD_WVG_PROXIMITY_GEOM_FACES);
|
2011-09-08 07:36:59 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Proximity Geometry",
|
|
|
|
"Use the shortest computed distance to target object's geometry "
|
2011-09-19 13:23:58 +00:00
|
|
|
"as weight");
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "target", PROP_POINTER, PROP_NONE);
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_pointer_sdna(prop, NULL, "proximity_ob_target");
|
2011-09-19 13:23:58 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Target Object", "Object to calculate vertices distances from");
|
2011-07-25 15:27:01 +00:00
|
|
|
RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK);
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "min_dist", PROP_FLOAT, PROP_DISTANCE);
|
2011-09-05 03:26:49 +00:00
|
|
|
RNA_def_property_range(prop, 0.0, FLT_MAX);
|
|
|
|
RNA_def_property_ui_range(prop, 0.0, 1000.0, 10, 0);
|
2011-11-28 15:41:32 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Lowest Dist", "Distance mapping to weight 0.0");
|
2011-08-08 21:12:51 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "max_dist", PROP_FLOAT, PROP_DISTANCE);
|
2011-09-05 03:26:49 +00:00
|
|
|
RNA_def_property_range(prop, 0.0, FLT_MAX);
|
|
|
|
RNA_def_property_ui_range(prop, 0.0, 1000.0, 10, 0);
|
2011-11-28 15:41:32 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Highest Dist", "Distance mapping to weight 1.0");
|
2011-08-08 21:12:51 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "falloff_type", PROP_ENUM, PROP_NONE);
|
2011-09-07 07:46:26 +00:00
|
|
|
RNA_def_property_enum_items(prop, weightvg_proximity_falloff_type_items);
|
2011-09-19 13:23:58 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Falloff Type", "How weights are mapped to there new values");
|
2011-09-05 16:16:00 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2011-07-25 15:27:01 +00:00
|
|
|
/* Common masking properties. */
|
|
|
|
rna_def_modifier_weightvg_mask(brna, srna);
|
|
|
|
}
|
|
|
|
|
2011-12-30 21:11:40 +00:00
|
|
|
static void rna_def_modifier_remesh(BlenderRNA *brna)
|
|
|
|
{
|
2012-03-05 23:30:41 +00:00
|
|
|
static EnumPropertyItem mode_items[] = {
|
2011-12-30 21:11:40 +00:00
|
|
|
{MOD_REMESH_CENTROID, "BLOCKS", 0, "Blocks", "Output a blocky surface with no smoothing"},
|
|
|
|
{MOD_REMESH_MASS_POINT, "SMOOTH", 0, "Smooth", "Output a smooth surface with no sharp-features detection"},
|
2012-03-18 09:27:36 +00:00
|
|
|
{MOD_REMESH_SHARP_FEATURES, "SHARP", 0, "Sharp",
|
|
|
|
"Output a surface that reproduces sharp edges and corners from the input mesh"},
|
2011-12-30 21:11:40 +00:00
|
|
|
{0, NULL, 0, NULL, NULL}};
|
|
|
|
|
|
|
|
StructRNA *srna;
|
|
|
|
PropertyRNA *prop;
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "RemeshModifier", "Modifier");
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "Remesh Modifier",
|
|
|
|
"Generate a new surface with regular topology that follows the shape of the input mesh");
|
2011-12-30 21:11:40 +00:00
|
|
|
RNA_def_struct_sdna(srna, "RemeshModifierData");
|
|
|
|
RNA_def_struct_ui_icon(srna, ICON_MOD_REMESH);
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "mode", PROP_ENUM, PROP_NONE);
|
2011-12-30 21:11:40 +00:00
|
|
|
RNA_def_property_enum_items(prop, mode_items);
|
|
|
|
RNA_def_property_ui_text(prop, "Mode", "");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "scale", PROP_FLOAT, PROP_NONE);
|
2011-12-30 21:11:40 +00:00
|
|
|
RNA_def_property_ui_range(prop, 0, 0.99, 0.01, 3);
|
|
|
|
RNA_def_property_range(prop, 0, 0.99);
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Scale",
|
|
|
|
"The ratio of the largest dimension of the model over the size of the grid");
|
2011-12-30 21:11:40 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "threshold", PROP_FLOAT, PROP_NONE);
|
2011-12-30 21:11:40 +00:00
|
|
|
RNA_def_property_ui_range(prop, 0, 1, 0.1, 3);
|
|
|
|
RNA_def_property_range(prop, 0, 1);
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Threshold",
|
|
|
|
"If removing disconnected pieces, minimum size of components to preserve as a ratio "
|
|
|
|
"of the number of polygons in the largest component");
|
2011-12-30 21:11:40 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "octree_depth", PROP_INT, PROP_NONE);
|
2011-12-30 21:11:40 +00:00
|
|
|
RNA_def_property_int_sdna(prop, NULL, "depth");
|
|
|
|
RNA_def_property_range(prop, 1, 10);
|
|
|
|
RNA_def_property_ui_text(prop, "Octree Depth", "Resolution of the octree; higher values give finer details");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "sharpness", PROP_FLOAT, PROP_NONE);
|
2011-12-30 21:11:40 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "hermite_num");
|
|
|
|
RNA_def_property_ui_range(prop, 0, 2, 0.1, 3);
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Sharpness",
|
|
|
|
"Tolerance for outliers; lower values filter noise while higher values will reproduce "
|
|
|
|
"edges closer to the input");
|
2011-12-30 21:11:40 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "remove_disconnected_pieces", PROP_BOOLEAN, PROP_NONE);
|
2011-12-30 21:11:40 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_REMESH_FLOOD_FILL);
|
|
|
|
RNA_def_property_ui_text(prop, "Remove Disconnected Pieces", "");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
}
|
2011-03-25 00:32:38 +00:00
|
|
|
|
2011-11-13 12:17:27 +00:00
|
|
|
static void rna_def_modifier_ocean(BlenderRNA *brna)
|
|
|
|
{
|
|
|
|
StructRNA *srna;
|
|
|
|
PropertyRNA *prop;
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
static EnumPropertyItem geometry_items[] = {
|
2012-03-18 09:27:36 +00:00
|
|
|
{MOD_OCEAN_GEOM_GENERATE, "GENERATE", 0, "Generate",
|
|
|
|
"Generate ocean surface geometry at the specified resolution"},
|
2011-11-28 15:41:32 +00:00
|
|
|
{MOD_OCEAN_GEOM_DISPLACE, "DISPLACE", 0, "Displace", "Displace existing geometry according to simulation"},
|
2012-03-18 09:27:36 +00:00
|
|
|
#if 0
|
|
|
|
{MOD_OCEAN_GEOM_SIM_ONLY, "SIM_ONLY", 0, "Sim Only",
|
|
|
|
"Leaves geometry unchanged, but still runs simulation (to be used from texture)"},
|
|
|
|
#endif
|
2011-11-13 12:17:27 +00:00
|
|
|
{0, NULL, 0, NULL, NULL}};
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "OceanModifier", "Modifier");
|
2011-11-13 12:17:27 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "Ocean Modifier", "Simulate an ocean surface");
|
|
|
|
RNA_def_struct_sdna(srna, "OceanModifierData");
|
2012-02-12 19:57:47 +00:00
|
|
|
RNA_def_struct_ui_icon(srna, ICON_MOD_OCEAN);
|
2011-11-13 12:17:27 +00:00
|
|
|
|
2011-11-14 07:18:32 +00:00
|
|
|
/* General check if blender was built with OceanSim modifier support */
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "is_build_enabled", PROP_BOOLEAN, PROP_NONE);
|
2011-11-14 07:18:32 +00:00
|
|
|
RNA_def_property_boolean_funcs(prop, "rna_OceanModifier_is_build_enabled_get", NULL);
|
2011-11-13 12:17:27 +00:00
|
|
|
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
|
|
|
|
RNA_def_property_ui_text(prop, "Build Enabled", "True if the OceanSim modifier is enabled in this build");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "geometry_mode", PROP_ENUM, PROP_NONE);
|
2011-11-13 12:17:27 +00:00
|
|
|
RNA_def_property_enum_sdna(prop, NULL, "geometry_mode");
|
|
|
|
RNA_def_property_enum_items(prop, geometry_items);
|
|
|
|
RNA_def_property_ui_text(prop, "Geometry", "Method of modifying geometry");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "size", PROP_FLOAT, PROP_UNSIGNED);
|
2011-11-13 12:17:27 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "size");
|
|
|
|
RNA_def_property_ui_text(prop, "Size", "");
|
|
|
|
RNA_def_property_ui_range(prop, -FLT_MAX, FLT_MAX, 1, 0);
|
|
|
|
RNA_def_property_update(prop, 0, "rna_OceanModifier_topology_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "repeat_x", PROP_INT, PROP_UNSIGNED);
|
2011-11-13 12:17:27 +00:00
|
|
|
RNA_def_property_int_sdna(prop, NULL, "repeat_x");
|
|
|
|
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
|
|
|
|
RNA_def_property_range(prop, 1, 1024);
|
|
|
|
RNA_def_property_ui_range(prop, 1, 100, 1, 0);
|
|
|
|
RNA_def_property_ui_text(prop, "Repeat X", "Repetitions of the generated surface in X");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_OceanModifier_topology_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "repeat_y", PROP_INT, PROP_UNSIGNED);
|
2011-11-13 12:17:27 +00:00
|
|
|
RNA_def_property_int_sdna(prop, NULL, "repeat_y");
|
|
|
|
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
|
|
|
|
RNA_def_property_range(prop, 1, 1024);
|
|
|
|
RNA_def_property_ui_range(prop, 1, 100, 1, 0);
|
|
|
|
RNA_def_property_ui_text(prop, "Repeat Y", "Repetitions of the generated surface in Y");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_OceanModifier_topology_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_normals", PROP_BOOLEAN, PROP_NONE);
|
2011-11-13 12:17:27 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_OCEAN_GENERATE_NORMALS);
|
|
|
|
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Generate Normals",
|
|
|
|
"Output normals for bump mapping - disabling can speed up performance if its not needed");
|
2011-11-13 12:17:27 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_OceanModifier_init_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_foam", PROP_BOOLEAN, PROP_NONE);
|
2011-11-13 12:17:27 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_OCEAN_GENERATE_FOAM);
|
|
|
|
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
|
2011-11-28 15:41:32 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Generate Foam", "Generate foam mask as a vertex color channel");
|
2011-11-13 12:17:27 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_OceanModifier_init_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "resolution", PROP_INT, PROP_UNSIGNED);
|
2011-11-13 12:17:27 +00:00
|
|
|
RNA_def_property_int_sdna(prop, NULL, "resolution");
|
|
|
|
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
|
|
|
|
RNA_def_property_range(prop, 1, 1024);
|
|
|
|
RNA_def_property_ui_range(prop, 1, 32, 1, 0);
|
|
|
|
RNA_def_property_ui_text(prop, "Resolution", "Resolution of the generated surface");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_OceanModifier_init_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "spatial_size", PROP_INT, PROP_DISTANCE);
|
2011-11-13 12:17:27 +00:00
|
|
|
RNA_def_property_int_sdna(prop, NULL, "spatial_size");
|
|
|
|
RNA_def_property_ui_range(prop, 1, 512, 2, 0);
|
|
|
|
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
|
|
|
|
RNA_def_property_ui_text(prop, "Spatial Size", "Physical size of the simulation domain (m)");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_OceanModifier_init_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "wind_velocity", PROP_FLOAT, PROP_VELOCITY);
|
2011-11-13 12:17:27 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "wind_velocity");
|
|
|
|
RNA_def_property_ui_text(prop, "Wind Velocity", "Wind speed (m/s)");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_OceanModifier_init_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "damping", PROP_FLOAT, PROP_FACTOR);
|
2011-11-13 12:17:27 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "damp");
|
|
|
|
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
|
|
|
|
RNA_def_property_ui_text(prop, "Damping", "Damp reflected waves going in opposite direction to the wind");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_OceanModifier_init_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "wave_scale_min", PROP_FLOAT, PROP_DISTANCE);
|
2011-11-13 12:17:27 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "smallest_wave");
|
|
|
|
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
|
|
|
|
RNA_def_property_range(prop, 0.0, FLT_MAX);
|
|
|
|
RNA_def_property_ui_text(prop, "Smallest Wave", "Shortest allowed wavelength (m)");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_OceanModifier_init_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "wave_alignment", PROP_FLOAT, PROP_UNSIGNED);
|
2011-11-13 12:17:27 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "wave_alignment");
|
|
|
|
RNA_def_property_range(prop, 0.0, 10.0);
|
|
|
|
RNA_def_property_ui_text(prop, "Wave Alignment", "");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_OceanModifier_init_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "wave_direction", PROP_FLOAT, PROP_ANGLE);
|
2011-11-13 12:17:27 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "wave_direction");
|
|
|
|
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
|
|
|
|
RNA_def_property_ui_text(prop, "Wave Direction", "");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_OceanModifier_init_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "wave_scale", PROP_FLOAT, PROP_UNSIGNED);
|
2011-11-13 12:17:27 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "wave_scale");
|
|
|
|
RNA_def_property_ui_text(prop, "Wave Scale", "");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_OceanModifier_sim_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "depth", PROP_FLOAT, PROP_UNSIGNED);
|
2011-11-13 12:17:27 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "depth");
|
|
|
|
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
|
|
|
|
RNA_def_property_ui_text(prop, "Depth", "");
|
|
|
|
RNA_def_property_ui_range(prop, 0, 250, 1, 0);
|
|
|
|
RNA_def_property_update(prop, 0, "rna_OceanModifier_init_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "foam_coverage", PROP_FLOAT, PROP_NONE);
|
2011-11-13 12:17:27 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "foam_coverage");
|
|
|
|
RNA_def_property_ui_text(prop, "Foam Coverage", "");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "bake_foam_fade", PROP_FLOAT, PROP_UNSIGNED);
|
2011-11-13 12:17:27 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "foam_fade");
|
|
|
|
RNA_def_property_ui_text(prop, "Foam Fade", "");
|
|
|
|
RNA_def_property_ui_range(prop, -FLT_MAX, FLT_MAX, 1, 0);
|
|
|
|
RNA_def_property_update(prop, 0, NULL);
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "foam_layer_name", PROP_STRING, PROP_NONE);
|
2011-11-20 14:16:41 +00:00
|
|
|
RNA_def_property_string_sdna(prop, NULL, "foamlayername");
|
|
|
|
RNA_def_property_ui_text(prop, "Foam Layer Name", "Name of the vertex color layer used for foam");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "choppiness", PROP_FLOAT, PROP_UNSIGNED);
|
2011-11-13 12:17:27 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "chop_amount");
|
|
|
|
RNA_def_property_ui_text(prop, "Choppiness", "");
|
|
|
|
RNA_def_property_ui_range(prop, 0.0, 4.0, 3, 0);
|
|
|
|
RNA_def_property_float_funcs(prop, NULL, "rna_OceanModifier_ocean_chop_set", NULL);
|
|
|
|
RNA_def_property_update(prop, 0, "rna_OceanModifier_sim_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "time", PROP_FLOAT, PROP_UNSIGNED);
|
2011-11-13 12:17:27 +00:00
|
|
|
RNA_def_property_float_sdna(prop, NULL, "time");
|
|
|
|
RNA_def_property_ui_text(prop, "Time", "");
|
|
|
|
RNA_def_property_ui_range(prop, -FLT_MAX, FLT_MAX, 1, 0);
|
|
|
|
RNA_def_property_update(prop, 0, "rna_OceanModifier_sim_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "random_seed", PROP_INT, PROP_UNSIGNED);
|
2011-11-13 12:17:27 +00:00
|
|
|
RNA_def_property_int_sdna(prop, NULL, "seed");
|
|
|
|
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
|
|
|
|
RNA_def_property_ui_text(prop, "Random Seed", "");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_OceanModifier_init_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "frame_start", PROP_INT, PROP_UNSIGNED);
|
2011-11-13 12:17:27 +00:00
|
|
|
RNA_def_property_int_sdna(prop, NULL, "bakestart");
|
|
|
|
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
|
|
|
|
RNA_def_property_ui_text(prop, "Bake Start", "");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_OceanModifier_init_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "frame_end", PROP_INT, PROP_UNSIGNED);
|
2011-11-13 12:17:27 +00:00
|
|
|
RNA_def_property_int_sdna(prop, NULL, "bakeend");
|
|
|
|
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
|
|
|
|
RNA_def_property_ui_text(prop, "Bake End", "");
|
|
|
|
RNA_def_property_update(prop, 0, "rna_OceanModifier_init_update");
|
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "is_cached", PROP_BOOLEAN, PROP_NONE);
|
2011-11-13 12:17:27 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "cached", 1);
|
|
|
|
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
|
2011-11-28 15:41:32 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Ocean is Cached", "Whether the ocean is using cached data or simulating");
|
2011-11-13 12:17:27 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "filepath", PROP_STRING, PROP_DIRPATH);
|
2011-11-13 12:17:27 +00:00
|
|
|
RNA_def_property_string_sdna(prop, NULL, "cachepath");
|
|
|
|
RNA_def_property_ui_text(prop, "Cache Path", "Path to a folder to store external baked images");
|
2012-03-05 23:30:41 +00:00
|
|
|
/*RNA_def_property_update(prop, 0, "rna_Modifier_update"); */
|
|
|
|
/* XXX how to update? */
|
2011-11-13 12:17:27 +00:00
|
|
|
}
|
|
|
|
|
2008-12-01 13:01:48 +00:00
|
|
|
void RNA_def_modifier(BlenderRNA *brna)
|
|
|
|
{
|
|
|
|
StructRNA *srna;
|
|
|
|
PropertyRNA *prop;
|
|
|
|
|
|
|
|
/* data */
|
2012-03-05 23:30:41 +00:00
|
|
|
srna = RNA_def_struct(brna, "Modifier", NULL);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_struct_ui_text(srna , "Modifier", "Modifier affecting the geometry data of an object");
|
2009-01-01 15:52:51 +00:00
|
|
|
RNA_def_struct_refine_func(srna, "rna_Modifier_refine");
|
2009-05-27 00:03:49 +00:00
|
|
|
RNA_def_struct_path_func(srna, "rna_Modifier_path");
|
2008-12-01 13:01:48 +00:00
|
|
|
RNA_def_struct_sdna(srna, "ModifierData");
|
|
|
|
|
|
|
|
/* strings */
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "name", PROP_STRING, PROP_NONE);
|
2009-10-22 23:22:05 +00:00
|
|
|
RNA_def_property_string_funcs(prop, NULL, NULL, "rna_Modifier_name_set");
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Name", "Modifier name");
|
2009-12-13 23:51:41 +00:00
|
|
|
RNA_def_property_update(prop, NC_OBJECT|ND_MODIFIER|NA_RENAME, NULL);
|
2008-12-02 23:45:11 +00:00
|
|
|
RNA_def_struct_name_property(srna, prop);
|
2008-12-01 13:01:48 +00:00
|
|
|
|
|
|
|
/* enums */
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "type", PROP_ENUM, PROP_NONE);
|
2009-03-23 13:24:48 +00:00
|
|
|
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
|
2008-12-03 20:17:12 +00:00
|
|
|
RNA_def_property_enum_sdna(prop, NULL, "type");
|
2009-04-27 18:05:58 +00:00
|
|
|
RNA_def_property_enum_items(prop, modifier_type_items);
|
2008-12-02 23:45:11 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Type", "");
|
2008-12-01 13:01:48 +00:00
|
|
|
|
|
|
|
/* flags */
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "show_viewport", PROP_BOOLEAN, PROP_NONE);
|
2008-12-01 13:01:48 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "mode", eModifierMode_Realtime);
|
2012-03-02 21:14:37 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Realtime", "Display modifier in realtime");
|
2009-12-14 13:15:23 +00:00
|
|
|
RNA_def_property_flag(prop, PROP_LIB_EXCEPTION);
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-08-06 18:31:25 +00:00
|
|
|
RNA_def_property_ui_icon(prop, ICON_RESTRICT_VIEW_OFF, 0);
|
2008-12-01 13:01:48 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "show_render", PROP_BOOLEAN, PROP_NONE);
|
2008-12-01 13:01:48 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "mode", eModifierMode_Render);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Render", "Use modifier during rendering");
|
2009-07-02 19:41:31 +00:00
|
|
|
RNA_def_property_ui_icon(prop, ICON_SCENE, 0);
|
2010-09-18 08:37:47 +00:00
|
|
|
RNA_def_property_update(prop, NC_OBJECT|ND_MODIFIER, NULL);
|
2008-12-01 13:01:48 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "show_in_editmode", PROP_BOOLEAN, PROP_NONE);
|
2008-12-01 13:01:48 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "mode", eModifierMode_Editmode);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Editmode", "Use modifier while in the edit mode");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-07-02 19:41:31 +00:00
|
|
|
RNA_def_property_ui_icon(prop, ICON_EDITMODE_HLT, 0);
|
2008-12-01 13:01:48 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "show_on_cage", PROP_BOOLEAN, PROP_NONE);
|
2008-12-01 13:01:48 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "mode", eModifierMode_OnCage);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "On Cage", "Enable direct editing of modifier control cage");
|
2009-09-16 17:43:09 +00:00
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2008-12-01 13:01:48 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "show_expanded", PROP_BOOLEAN, PROP_NONE);
|
2008-12-01 13:01:48 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "mode", eModifierMode_Expanded);
|
2010-02-10 21:15:44 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Expanded", "Set modifier expanded in the user interface");
|
2010-01-20 05:41:59 +00:00
|
|
|
RNA_def_property_ui_icon(prop, ICON_TRIA_RIGHT, 1);
|
2008-12-01 13:01:48 +00:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
prop = RNA_def_property(srna, "use_apply_on_spline", PROP_BOOLEAN, PROP_NONE);
|
2011-01-14 16:57:53 +00:00
|
|
|
RNA_def_property_boolean_sdna(prop, NULL, "mode", eModifierMode_ApplyOnSpline);
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_property_ui_text(prop, "Apply on spline",
|
|
|
|
"Apply this and all preceding deformation modifiers on splines' points rather than "
|
|
|
|
"on filled curve/surface");
|
2011-01-14 16:57:53 +00:00
|
|
|
RNA_def_property_ui_icon(prop, ICON_SURFACE_DATA, 0);
|
|
|
|
RNA_def_property_update(prop, 0, "rna_Modifier_update");
|
2009-01-03 07:25:22 +00:00
|
|
|
|
2008-12-29 17:36:06 +00:00
|
|
|
/* 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);
|
2011-05-01 15:16:59 +00:00
|
|
|
rna_def_modifier_warp(brna);
|
2009-01-06 20:15:23 +00:00
|
|
|
rna_def_modifier_multires(brna);
|
2009-07-02 19:41:31 +00:00
|
|
|
rna_def_modifier_surface(brna);
|
2009-07-30 15:00:26 +00:00
|
|
|
rna_def_modifier_smoke(brna);
|
2009-12-21 01:02:08 +00:00
|
|
|
rna_def_modifier_solidify(brna);
|
2010-03-22 00:22:52 +00:00
|
|
|
rna_def_modifier_screw(brna);
|
2011-07-25 15:27:01 +00:00
|
|
|
rna_def_modifier_weightvgedit(brna);
|
|
|
|
rna_def_modifier_weightvgmix(brna);
|
|
|
|
rna_def_modifier_weightvgproximity(brna);
|
2011-05-24 07:08:58 +00:00
|
|
|
rna_def_modifier_dynamic_paint(brna);
|
2011-11-13 12:17:27 +00:00
|
|
|
rna_def_modifier_ocean(brna);
|
2011-12-30 21:11:40 +00:00
|
|
|
rna_def_modifier_remesh(brna);
|
2008-12-01 13:01:48 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|