Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/makesrna/intern/rna_modifier.c')
-rw-r--r--source/blender/makesrna/intern/rna_modifier.c283
1 files changed, 169 insertions, 114 deletions
diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c
index 27c4bf0e985..0c4b3ba485d 100644
--- a/source/blender/makesrna/intern/rna_modifier.c
+++ b/source/blender/makesrna/intern/rna_modifier.c
@@ -61,7 +61,7 @@
#include "WM_api.h"
#include "WM_types.h"
-EnumPropertyItem modifier_type_items[] = {
+EnumPropertyItem rna_enum_object_modifier_type_items[] = {
{0, "", 0, N_("Modify"), ""},
{eModifierType_DataTransfer, "DATA_TRANSFER", ICON_MOD_DATA_TRANSFER, "Data Transfer", ""},
{eModifierType_MeshCache, "MESH_CACHE", ICON_MOD_MESHDEFORM, "Mesh Cache", ""},
@@ -120,7 +120,7 @@ EnumPropertyItem modifier_type_items[] = {
{0, NULL, 0, NULL, NULL}
};
-EnumPropertyItem modifier_triangulate_quad_method_items[] = {
+EnumPropertyItem rna_enum_modifier_triangulate_quad_method_items[] = {
{MOD_TRIANGULATE_QUAD_BEAUTY, "BEAUTY", 0, "Beauty ", "Split the quads in nice triangles, slower method"},
{MOD_TRIANGULATE_QUAD_FIXED, "FIXED", 0, "Fixed", "Split the quads on the first and third vertices"},
{MOD_TRIANGULATE_QUAD_ALTERNATE, "FIXED_ALTERNATE", 0, "Fixed Alternate",
@@ -130,7 +130,7 @@ EnumPropertyItem modifier_triangulate_quad_method_items[] = {
{0, NULL, 0, NULL, NULL}
};
-EnumPropertyItem modifier_triangulate_ngon_method_items[] = {
+EnumPropertyItem rna_enum_modifier_triangulate_ngon_method_items[] = {
{MOD_TRIANGULATE_NGON_BEAUTY, "BEAUTY", 0, "Beauty", "Arrange the new triangles evenly (slow)"},
{MOD_TRIANGULATE_NGON_EARCLIP, "CLIP", 0, "Clip", "Split the polygons with an ear clipping algorithm"},
{0, NULL, 0, NULL, NULL}
@@ -154,7 +154,7 @@ static EnumPropertyItem modifier_warp_falloff_items[] = {
/* ***** Data Transfer ***** */
-EnumPropertyItem DT_method_vertex_items[] = {
+EnumPropertyItem rna_enum_dt_method_vertex_items[] = {
{MREMAP_MODE_TOPOLOGY, "TOPOLOGY", 0, "Topology",
"Copy from identical topology meshes"},
{MREMAP_MODE_VERT_NEAREST, "NEAREST", 0, "Nearest vertex",
@@ -172,11 +172,11 @@ EnumPropertyItem DT_method_vertex_items[] = {
{0, NULL, 0, NULL, NULL}
};
-EnumPropertyItem DT_method_edge_items[] = {
+EnumPropertyItem rna_enum_dt_method_edge_items[] = {
{MREMAP_MODE_TOPOLOGY, "TOPOLOGY", 0, "Topology",
"Copy from identical topology meshes"},
{MREMAP_MODE_EDGE_VERT_NEAREST, "VERT_NEAREST", 0, "Nearest Vertices",
- "Copy from most similar edge (edge which vertices are the closest of destination edge’s ones)"},
+ "Copy from most similar edge (edge which vertices are the closest of destination edge's ones)"},
{MREMAP_MODE_EDGE_NEAREST, "NEAREST", 0, "Nearest Edge",
"Copy from closest edge (using midpoints)"},
{MREMAP_MODE_EDGE_POLY_NEAREST, "POLY_NEAREST", 0, "Nearest Face Edge",
@@ -186,7 +186,7 @@ EnumPropertyItem DT_method_edge_items[] = {
{0, NULL, 0, NULL, NULL}
};
-EnumPropertyItem DT_method_loop_items[] = {
+EnumPropertyItem rna_enum_dt_method_loop_items[] = {
{MREMAP_MODE_TOPOLOGY, "TOPOLOGY", 0, "Topology",
"Copy from identical topology meshes"},
{MREMAP_MODE_LOOP_NEAREST_LOOPNOR, "NEAREST_NORMAL", 0, "Nearest Corner And Best Matching Normal",
@@ -202,7 +202,7 @@ EnumPropertyItem DT_method_loop_items[] = {
{0, NULL, 0, NULL, NULL}
};
-EnumPropertyItem DT_method_poly_items[] = {
+EnumPropertyItem rna_enum_dt_method_poly_items[] = {
{MREMAP_MODE_TOPOLOGY, "TOPOLOGY", 0, "Topology",
"Copy from identical topology meshes"},
{MREMAP_MODE_POLY_NEAREST, "NEAREST", 0, "Nearest Face",
@@ -214,7 +214,7 @@ EnumPropertyItem DT_method_poly_items[] = {
{0, NULL, 0, NULL, NULL}
};
-EnumPropertyItem DT_mix_mode_items[] = {
+EnumPropertyItem rna_enum_dt_mix_mode_items[] = {
{CDT_MIX_TRANSFER, "REPLACE", 0, "Replace",
"Overwrite all elements' data"},
{CDT_MIX_REPLACE_ABOVE_THRESHOLD, "ABOVE_THRESHOLD", 0, "Above Threshold",
@@ -233,7 +233,7 @@ EnumPropertyItem DT_mix_mode_items[] = {
{0, NULL, 0, NULL, NULL}
};
-EnumPropertyItem DT_layers_select_src_items[] = {
+EnumPropertyItem rna_enum_dt_layers_select_src_items[] = {
{DT_LAYERS_ACTIVE_SRC, "ACTIVE", 0, "Active Layer",
"Only transfer active data layer"},
{DT_LAYERS_ALL_SRC, "ALL", 0, "All Layers",
@@ -245,7 +245,7 @@ EnumPropertyItem DT_layers_select_src_items[] = {
{0, NULL, 0, NULL, NULL}
};
-EnumPropertyItem DT_layers_select_dst_items[] = {
+EnumPropertyItem rna_enum_dt_layers_select_dst_items[] = {
{DT_LAYERS_ACTIVE_DST, "ACTIVE", 0, "Active Layer",
"Affect active data layer of all targets"},
{DT_LAYERS_NAME_DST, "NAME", 0, "By Name",
@@ -255,6 +255,25 @@ EnumPropertyItem DT_layers_select_dst_items[] = {
{0, NULL, 0, NULL, NULL}
};
+EnumPropertyItem rna_enum_axis_xy_items[] = {
+ {0, "X", 0, "X", ""},
+ {1, "Y", 0, "Y", ""},
+ {0, NULL, 0, NULL, NULL}
+};
+
+EnumPropertyItem rna_enum_axis_xyz_items[] = {
+ {0, "X", 0, "X", ""},
+ {1, "Y", 0, "Y", ""},
+ {2, "Z", 0, "Z", ""},
+ {0, NULL, 0, NULL, NULL}
+};
+
+EnumPropertyItem rna_enum_axis_flag_xyz_items[] = {
+ {(1 << 0), "X", 0, "X", ""},
+ {(1 << 1), "Y", 0, "Y", ""},
+ {(1 << 2), "Z", 0, "Z", ""},
+ {0, NULL, 0, NULL, NULL}
+};
#ifdef RNA_RUNTIME
@@ -549,9 +568,11 @@ RNA_MOD_OBJECT_SET(Shrinkwrap, auxTarget, OB_MESH);
static void rna_HookModifier_object_set(PointerRNA *ptr, PointerRNA value)
{
HookModifierData *hmd = ptr->data;
+ Object *ob = (Object *)value.data;
- hmd->object = (Object *)value.data;
- BKE_object_modifier_hook_reset((Object *)ptr->id.data, hmd);
+ hmd->object = ob;
+ id_lib_extern((ID *)ob);
+ BKE_object_modifier_hook_reset(ob, hmd);
}
static PointerRNA rna_UVProjector_object_get(PointerRNA *ptr)
@@ -562,8 +583,10 @@ static PointerRNA rna_UVProjector_object_get(PointerRNA *ptr)
static void rna_UVProjector_object_set(PointerRNA *ptr, PointerRNA value)
{
- Object **ob = (Object **)ptr->data;
- *ob = value.data;
+ Object **ob_p = (Object **)ptr->data;
+ Object *ob = (Object *)value.data;
+ id_lib_extern((ID *)ob);
+ *ob_p = ob;
}
#undef RNA_MOD_OBJECT_SET
@@ -821,6 +844,38 @@ static void rna_DataTransferModifier_data_types_update(Main *bmain, Scene *scene
rna_Modifier_update(bmain, scene, ptr);
}
+static void rna_DataTransferModifier_verts_data_types_set(struct PointerRNA *ptr, int value)
+{
+ DataTransferModifierData *dtmd = (DataTransferModifierData *)ptr->data;
+
+ dtmd->data_types &= ~DT_TYPE_VERT_ALL;
+ dtmd->data_types |= value;
+}
+
+static void rna_DataTransferModifier_edges_data_types_set(struct PointerRNA *ptr, int value)
+{
+ DataTransferModifierData *dtmd = (DataTransferModifierData *)ptr->data;
+
+ dtmd->data_types &= ~DT_TYPE_EDGE_ALL;
+ dtmd->data_types |= value;
+}
+
+static void rna_DataTransferModifier_loops_data_types_set(struct PointerRNA *ptr, int value)
+{
+ DataTransferModifierData *dtmd = (DataTransferModifierData *)ptr->data;
+
+ dtmd->data_types &= ~DT_TYPE_LOOP_ALL;
+ dtmd->data_types |= value;
+}
+
+static void rna_DataTransferModifier_polys_data_types_set(struct PointerRNA *ptr, int value)
+{
+ DataTransferModifierData *dtmd = (DataTransferModifierData *)ptr->data;
+
+ dtmd->data_types &= ~DT_TYPE_POLY_ALL;
+ dtmd->data_types |= value;
+}
+
static EnumPropertyItem *rna_DataTransferModifier_layers_select_src_itemf(bContext *C, PointerRNA *ptr, PropertyRNA *prop, bool *r_free)
{
DataTransferModifierData *dtmd = (DataTransferModifierData *)ptr->data;
@@ -828,19 +883,19 @@ static EnumPropertyItem *rna_DataTransferModifier_layers_select_src_itemf(bConte
int totitem = 0;
if (!C) { /* needed for docs and i18n tools */
- return DT_layers_select_src_items;
+ return rna_enum_dt_layers_select_src_items;
}
/* No active here! */
- RNA_enum_items_add_value(&item, &totitem, DT_layers_select_src_items, DT_LAYERS_ALL_SRC);
+ RNA_enum_items_add_value(&item, &totitem, rna_enum_dt_layers_select_src_items, DT_LAYERS_ALL_SRC);
if (STREQ(RNA_property_identifier(prop), "layers_vgroup_select_src")) {
Object *ob_src = dtmd->ob_source;
#if 0 /* XXX Don't think we want this in modifier version... */
if (BKE_object_pose_armature_get(ob_src)) {
- RNA_enum_items_add_value(&item, &totitem, DT_layers_select_src_items, DT_LAYERS_VGROUP_SRC_BONE_SELECT);
- RNA_enum_items_add_value(&item, &totitem, DT_layers_select_src_items, DT_LAYERS_VGROUP_SRC_BONE_DEFORM);
+ RNA_enum_items_add_value(&item, &totitem, rna_enum_dt_layers_select_src_items, DT_LAYERS_VGROUP_SRC_BONE_SELECT);
+ RNA_enum_items_add_value(&item, &totitem, rna_enum_dt_layers_select_src_items, DT_LAYERS_VGROUP_SRC_BONE_DEFORM);
}
#endif
@@ -918,12 +973,12 @@ static EnumPropertyItem *rna_DataTransferModifier_layers_select_dst_itemf(bConte
int totitem = 0;
if (!C) { /* needed for docs and i18n tools */
- return DT_layers_select_dst_items;
+ return rna_enum_dt_layers_select_dst_items;
}
/* No active here! */
- RNA_enum_items_add_value(&item, &totitem, DT_layers_select_dst_items, DT_LAYERS_NAME_DST);
- RNA_enum_items_add_value(&item, &totitem, DT_layers_select_dst_items, DT_LAYERS_INDEX_DST);
+ RNA_enum_items_add_value(&item, &totitem, rna_enum_dt_layers_select_dst_items, DT_LAYERS_NAME_DST);
+ RNA_enum_items_add_value(&item, &totitem, rna_enum_dt_layers_select_dst_items, DT_LAYERS_INDEX_DST);
if (STREQ(RNA_property_identifier(prop), "layers_vgroup_select_dst")) {
/* Only list destination layers if we have a single source! */
@@ -1012,24 +1067,24 @@ static EnumPropertyItem *rna_DataTransferModifier_mix_mode_itemf(bContext *C, Po
bool support_advanced_mixing, support_threshold;
if (!C) { /* needed for docs and i18n tools */
- return DT_mix_mode_items;
+ return rna_enum_dt_mix_mode_items;
}
- RNA_enum_items_add_value(&item, &totitem, DT_mix_mode_items, CDT_MIX_TRANSFER);
+ RNA_enum_items_add_value(&item, &totitem, rna_enum_dt_mix_mode_items, CDT_MIX_TRANSFER);
BKE_object_data_transfer_get_dttypes_capacity(dtmd->data_types, &support_advanced_mixing, &support_threshold);
if (support_threshold) {
- RNA_enum_items_add_value(&item, &totitem, DT_mix_mode_items, CDT_MIX_REPLACE_ABOVE_THRESHOLD);
- RNA_enum_items_add_value(&item, &totitem, DT_mix_mode_items, CDT_MIX_REPLACE_BELOW_THRESHOLD);
+ RNA_enum_items_add_value(&item, &totitem, rna_enum_dt_mix_mode_items, CDT_MIX_REPLACE_ABOVE_THRESHOLD);
+ RNA_enum_items_add_value(&item, &totitem, rna_enum_dt_mix_mode_items, CDT_MIX_REPLACE_BELOW_THRESHOLD);
}
if (support_advanced_mixing) {
RNA_enum_item_add_separator(&item, &totitem);
- RNA_enum_items_add_value(&item, &totitem, DT_mix_mode_items, CDT_MIX_MIX);
- RNA_enum_items_add_value(&item, &totitem, DT_mix_mode_items, CDT_MIX_ADD);
- RNA_enum_items_add_value(&item, &totitem, DT_mix_mode_items, CDT_MIX_SUB);
- RNA_enum_items_add_value(&item, &totitem, DT_mix_mode_items, CDT_MIX_MUL);
+ RNA_enum_items_add_value(&item, &totitem, rna_enum_dt_mix_mode_items, CDT_MIX_MIX);
+ RNA_enum_items_add_value(&item, &totitem, rna_enum_dt_mix_mode_items, CDT_MIX_ADD);
+ RNA_enum_items_add_value(&item, &totitem, rna_enum_dt_mix_mode_items, CDT_MIX_SUB);
+ RNA_enum_items_add_value(&item, &totitem, rna_enum_dt_mix_mode_items, CDT_MIX_MUL);
}
RNA_enum_item_end(&item, &totitem);
@@ -1514,6 +1569,17 @@ static void rna_def_modifier_decimate(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Triangulate", "Keep triangulated faces resulting from decimation (collapse only)");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
+ prop = RNA_def_property(srna, "use_symmetry", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_DECIM_FLAG_SYMMETRY);
+ RNA_def_property_ui_text(prop, "Symmetry", "Maintain symmetry on an axis");
+ RNA_def_property_update(prop, 0, "rna_Modifier_update");
+
+ prop = RNA_def_property(srna, "symmetry_axis", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_sdna(prop, NULL, "symmetry_axis");
+ RNA_def_property_enum_items(prop, rna_enum_axis_xyz_items);
+ RNA_def_property_ui_text(prop, "Axis", "Axis of symmetry");
+ RNA_def_property_update(prop, 0, "rna_Modifier_update");
+
prop = RNA_def_property(srna, "vertex_group_factor", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "defgrp_factor");
RNA_def_property_range(prop, 0, 1000);
@@ -1530,7 +1596,7 @@ static void rna_def_modifier_decimate(BlenderRNA *brna)
prop = RNA_def_property(srna, "delimit", PROP_ENUM, PROP_NONE);
RNA_def_property_flag(prop, PROP_ENUM_FLAG); /* important to run before default set */
- RNA_def_property_enum_items(prop, mesh_delimit_mode_items);
+ RNA_def_property_enum_items(prop, rna_enum_mesh_delimit_mode_items);
RNA_def_property_ui_text(prop, "Delimit", "Limit merging geometry");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
@@ -1836,6 +1902,36 @@ static void rna_def_modifier_boolean(BlenderRNA *brna)
RNA_def_property_enum_items(prop, prop_operation_items);
RNA_def_property_ui_text(prop, "Operation", "");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
+
+#if 0 /* WITH_MOD_BOOLEAN */
+ /* BMesh intersection options */
+ prop = RNA_def_property(srna, "use_bmesh", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "bm_flag", eBooleanModifierBMeshFlag_Enabled);
+ RNA_def_property_ui_text(prop, "Use BMesh", "Use BMesh boolean calculation");
+ RNA_def_property_update(prop, 0, "rna_Modifier_update");
+
+ prop = RNA_def_property(srna, "use_bmesh_separate", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "bm_flag", eBooleanModifierBMeshFlag_BMesh_Separate);
+ RNA_def_property_ui_text(prop, "Separate", "Keep edges separate");
+ RNA_def_property_update(prop, 0, "rna_Modifier_update");
+
+ prop = RNA_def_property(srna, "use_bmesh_dissolve", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_negative_sdna(prop, NULL, "bm_flag", eBooleanModifierBMeshFlag_BMesh_NoDissolve);
+ RNA_def_property_ui_text(prop, "Dissolve", "Dissolve verts created from tessellated intersection");
+ RNA_def_property_update(prop, 0, "rna_Modifier_update");
+
+ prop = RNA_def_property(srna, "use_bmesh_connect_regions", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_negative_sdna(prop, NULL, "bm_flag", eBooleanModifierBMeshFlag_BMesh_NoConnectRegions);
+ RNA_def_property_ui_text(prop, "Calculate Holes", "Connect regions (needed for hole filling)");
+ RNA_def_property_update(prop, 0, "rna_Modifier_update");
+
+ prop = RNA_def_property(srna, "threshold", PROP_FLOAT, PROP_DISTANCE);
+ RNA_def_property_float_sdna(prop, NULL, "threshold");
+ RNA_def_property_range(prop, 0, 1.0f);
+ RNA_def_property_ui_range(prop, 0, 1, 1, 7);
+ RNA_def_property_ui_text(prop, "Threshold", "");
+ RNA_def_property_update(prop, 0, "rna_Modifier_update");
+#endif
}
static void rna_def_modifier_array(BlenderRNA *brna)
@@ -2469,13 +2565,6 @@ static void rna_def_modifier_particleinstance(BlenderRNA *brna)
StructRNA *srna;
PropertyRNA *prop;
- static EnumPropertyItem particleinstance_axis[] = {
- {0, "X", 0, "X", ""},
- {1, "Y", 0, "Y", ""},
- {2, "Z", 0, "Z", ""},
- {0, NULL, 0, NULL, NULL}
- };
-
srna = RNA_def_struct(brna, "ParticleInstanceModifier", "Modifier");
RNA_def_struct_ui_text(srna, "ParticleInstance Modifier", "Particle system instancing modifier");
RNA_def_struct_sdna(srna, "ParticleInstanceModifierData");
@@ -2496,7 +2585,7 @@ static void rna_def_modifier_particleinstance(BlenderRNA *brna)
prop = RNA_def_property(srna, "axis", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_sdna(prop, NULL, "axis");
- RNA_def_property_enum_items(prop, particleinstance_axis);
+ RNA_def_property_enum_items(prop, rna_enum_axis_xyz_items);
RNA_def_property_ui_text(prop, "Axis", "Pole axis for rotation");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
@@ -2709,7 +2798,7 @@ static void rna_def_modifier_dynamic_paint(BlenderRNA *brna)
prop = RNA_def_property(srna, "ui_type", PROP_ENUM, PROP_NONE);
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_enum_items(prop, rna_enum_prop_dynamicpaint_type_items);
RNA_def_property_ui_text(prop, "Type", "");
}
@@ -2954,6 +3043,11 @@ static void rna_def_modifier_shrinkwrap(BlenderRNA *brna)
RNA_def_property_boolean_sdna(prop, NULL, "shrinkOpts", MOD_SHRINKWRAP_KEEP_ABOVE_SURFACE);
RNA_def_property_ui_text(prop, "Keep Above Surface", "");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
+
+ prop = RNA_def_property(srna, "invert_vertex_group", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "shrinkOpts", MOD_SHRINKWRAP_INVERT_VGROUP);
+ RNA_def_property_ui_text(prop, "Invert", "Invert vertex group influence");
+ RNA_def_property_update(prop, 0, "rna_Modifier_update");
}
static void rna_def_modifier_fluidsim(BlenderRNA *brna)
@@ -3080,6 +3174,11 @@ static void rna_def_modifier_simpledeform(BlenderRNA *brna)
RNA_def_property_boolean_sdna(prop, NULL, "axis", MOD_SIMPLEDEFORM_LOCK_AXIS_Y);
RNA_def_property_ui_text(prop, "Lock Y Axis", "Do not allow deformation along the Y axis");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
+
+ prop = RNA_def_property(srna, "invert_vertex_group", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_SIMPLEDEFORM_FLAG_INVERT_VGROUP);
+ RNA_def_property_ui_text(prop, "Invert", "Invert vertex group influence");
+ RNA_def_property_update(prop, 0, "rna_Modifier_update");
}
static void rna_def_modifier_surface(BlenderRNA *brna)
@@ -3209,13 +3308,6 @@ static void rna_def_modifier_solidify(BlenderRNA *brna)
static void rna_def_modifier_screw(BlenderRNA *brna)
{
- static EnumPropertyItem axis_items[] = {
- {0, "X", 0, "X Axis", ""},
- {1, "Y", 0, "Y Axis", ""},
- {2, "Z", 0, "Z Axis", ""},
- {0, NULL, 0, NULL, NULL}
- };
-
StructRNA *srna;
PropertyRNA *prop;
@@ -3250,7 +3342,7 @@ static void rna_def_modifier_screw(BlenderRNA *brna)
RNA_def_property_update(prop, 0, "rna_Modifier_update");
prop = RNA_def_property(srna, "axis", PROP_ENUM, PROP_NONE);
- RNA_def_property_enum_items(prop, axis_items);
+ RNA_def_property_enum_items(prop, rna_enum_axis_xyz_items);
RNA_def_property_ui_text(prop, "Axis", "Screw axis");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
@@ -3308,13 +3400,6 @@ static void rna_def_modifier_uvwarp(BlenderRNA *brna)
StructRNA *srna;
PropertyRNA *prop;
- static EnumPropertyItem uvwarp_axis[] = {
- {0, "X", 0, "X", ""},
- {1, "Y", 0, "Y", ""},
- {2, "Z", 0, "Z", ""},
- {0, NULL, 0, NULL, NULL}
- };
-
srna = RNA_def_struct(brna, "UVWarpModifier", "Modifier");
RNA_def_struct_ui_text(srna, "UVWarp Modifier", "Add target position to uv coordinates");
RNA_def_struct_sdna(srna, "UVWarpModifierData");
@@ -3322,13 +3407,13 @@ static void rna_def_modifier_uvwarp(BlenderRNA *brna)
prop = RNA_def_property(srna, "axis_u", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_sdna(prop, NULL, "axis_u");
- RNA_def_property_enum_items(prop, uvwarp_axis);
+ RNA_def_property_enum_items(prop, rna_enum_axis_xyz_items);
RNA_def_property_ui_text(prop, "U-Axis", "Pole axis for rotation");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
prop = RNA_def_property(srna, "axis_v", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_sdna(prop, NULL, "axis_v");
- RNA_def_property_enum_items(prop, uvwarp_axis);
+ RNA_def_property_enum_items(prop, rna_enum_axis_xyz_items);
RNA_def_property_ui_text(prop, "V-Axis", "Pole axis for rotation");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
@@ -3979,13 +4064,13 @@ static void rna_def_modifier_triangulate(BlenderRNA *brna)
prop = RNA_def_property(srna, "quad_method", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_sdna(prop, NULL, "quad_method");
- RNA_def_property_enum_items(prop, modifier_triangulate_quad_method_items);
+ RNA_def_property_enum_items(prop, rna_enum_modifier_triangulate_quad_method_items);
RNA_def_property_ui_text(prop, "Quad Method", "Method for splitting the quads into triangles");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
prop = RNA_def_property(srna, "ngon_method", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_sdna(prop, NULL, "ngon_method");
- RNA_def_property_enum_items(prop, modifier_triangulate_ngon_method_items);
+ RNA_def_property_enum_items(prop, rna_enum_modifier_triangulate_ngon_method_items);
RNA_def_property_ui_text(prop, "Polygon Method", "Method for splitting the polygons into triangles");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
}
@@ -4031,13 +4116,6 @@ static void rna_def_modifier_meshcache(BlenderRNA *brna)
{0, NULL, 0, NULL, NULL}
};
- static EnumPropertyItem prop_flip_axis_flag_items[] = {
- {(1 << 0), "X", 0, "X", ""},
- {(1 << 1), "Y", 0, "Y", ""},
- {(1 << 2), "Z", 0, "Z", ""},
- {0, NULL, 0, NULL, NULL}
- };
-
StructRNA *srna;
PropertyRNA *prop;
@@ -4090,19 +4168,19 @@ static void rna_def_modifier_meshcache(BlenderRNA *brna)
/* Axis Conversion */
prop = RNA_def_property(srna, "forward_axis", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_sdna(prop, NULL, "forward_axis");
- RNA_def_property_enum_items(prop, object_axis_items);
+ RNA_def_property_enum_items(prop, rna_enum_object_axis_items);
RNA_def_property_ui_text(prop, "Forward", "");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
prop = RNA_def_property(srna, "up_axis", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_sdna(prop, NULL, "up_axis");
- RNA_def_property_enum_items(prop, object_axis_items);
+ RNA_def_property_enum_items(prop, rna_enum_object_axis_items);
RNA_def_property_ui_text(prop, "Up", "");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
prop = RNA_def_property(srna, "flip_axis", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_sdna(prop, NULL, "flip_axis");
- RNA_def_property_enum_items(prop, prop_flip_axis_flag_items);
+ RNA_def_property_enum_items(prop, rna_enum_axis_flag_xyz_items);
RNA_def_property_flag(prop, PROP_ENUM_FLAG);
RNA_def_property_ui_text(prop, "Flip Axis", "");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
@@ -4262,22 +4340,16 @@ static void rna_def_modifier_datatransfer(BlenderRNA *brna)
PropertyRNA *prop;
static EnumPropertyItem DT_layer_vert_items[] = {
+ {DT_TYPE_MDEFORMVERT, "VGROUP_WEIGHTS", 0, "Vertex Group(s)", "Transfer active or all vertex groups"},
+#if 0 /* TODO */
+ {DT_TYPE_SHAPEKEY, "SHAPEKEYS", 0, "Shapekey(s)", "Transfer active or all shape keys"},
+#endif
#if 0 /* XXX When SkinModifier is enabled, it seems to erase its own CD_MVERT_SKIN layer from final DM :( */
{DT_TYPE_SKIN, "SKIN", 0, "Skin Weight", "Transfer skin weights"},
#endif
{DT_TYPE_BWEIGHT_VERT, "BEVEL_WEIGHT_VERT", 0, "Bevel Weight", "Transfer bevel weights"},
{0, NULL, 0, NULL, NULL}
};
- static EnumPropertyItem DT_layer_vert_vgroup_items[] = {
- {DT_TYPE_MDEFORMVERT, "VGROUP_WEIGHTS", 0, "Vertex Group(s)", "Transfer active or all vertex groups"},
- {0, NULL, 0, NULL, NULL}
- };
-#if 0 /* XXX For now, would like to finish/merge work from 2014 gsoc first. */
- static EnumPropertyItem DT_layer_vert_shapekey_items[] = {
- {DT_TYPE_SHAPEKEY, "SHAPEKEYS", 0, "Shapekey(s)", "Transfer active or all shape keys"},
- {0, NULL, 0, NULL, NULL}
- };
-#endif
static EnumPropertyItem DT_layer_edge_items[] = {
{DT_TYPE_SHARP_EDGE, "SHARP_EDGE", 0, "Sharp", "Transfer sharp mark"},
@@ -4290,13 +4362,7 @@ static void rna_def_modifier_datatransfer(BlenderRNA *brna)
static EnumPropertyItem DT_layer_loop_items[] = {
{DT_TYPE_LNOR, "CUSTOM_NORMAL", 0, "Custom Normals", "Transfer custom normals"},
- {0, NULL, 0, NULL, NULL}
- };
- static EnumPropertyItem DT_layer_loop_vcol_items[] = {
{DT_TYPE_VCOL, "VCOL", 0, "VCol", "Vertex (face corners) colors"},
- {0, NULL, 0, NULL, NULL}
- };
- static EnumPropertyItem DT_layer_loop_uv_items[] = {
{DT_TYPE_UV, "UV", 0, "UVs", "Transfer UV layers"},
{0, NULL, 0, NULL, NULL}
};
@@ -4346,58 +4412,47 @@ static void rna_def_modifier_datatransfer(BlenderRNA *brna)
"Which vertex data layers to transfer");
RNA_def_property_flag(prop, PROP_ENUM_FLAG);
RNA_def_property_enum_sdna(prop, NULL, "data_types");
- RNA_def_property_update(prop, 0, "rna_DataTransferModifier_data_types_update");
- prop = RNA_def_enum(srna, "data_types_verts_vgroup", DT_layer_vert_vgroup_items, 0, "Vertex Data Types",
- "Which vertex data layers to transfer");
- RNA_def_property_flag(prop, PROP_ENUM_FLAG);
- RNA_def_property_enum_sdna(prop, NULL, "data_types");
+ RNA_def_property_enum_funcs(prop, NULL, "rna_DataTransferModifier_verts_data_types_set", NULL);
RNA_def_property_update(prop, 0, "rna_DataTransferModifier_data_types_update");
prop = RNA_def_enum(srna, "data_types_edges", DT_layer_edge_items, 0, "Edge Data Types",
"Which edge data layers to transfer");
RNA_def_property_flag(prop, PROP_ENUM_FLAG);
RNA_def_property_enum_sdna(prop, NULL, "data_types");
+ RNA_def_property_enum_funcs(prop, NULL, "rna_DataTransferModifier_edges_data_types_set", NULL);
RNA_def_property_update(prop, 0, "rna_DataTransferModifier_data_types_update");
prop = RNA_def_enum(srna, "data_types_loops", DT_layer_loop_items, 0, "Face Corner Data Types",
"Which face corner data layers to transfer");
RNA_def_property_flag(prop, PROP_ENUM_FLAG);
RNA_def_property_enum_sdna(prop, NULL, "data_types");
- RNA_def_property_update(prop, 0, "rna_DataTransferModifier_data_types_update");
- prop = RNA_def_enum(srna, "data_types_loops_vcol", DT_layer_loop_vcol_items, 0, "Face Corner Data Types",
- "Which face corner data layers to transfer");
- RNA_def_property_flag(prop, PROP_ENUM_FLAG);
- RNA_def_property_enum_sdna(prop, NULL, "data_types");
- RNA_def_property_update(prop, 0, "rna_DataTransferModifier_data_types_update");
- prop = RNA_def_enum(srna, "data_types_loops_uv", DT_layer_loop_uv_items, 0, "Face Corner Data Types",
- "Which face corner data layers to transfer");
- RNA_def_property_flag(prop, PROP_ENUM_FLAG);
- RNA_def_property_enum_sdna(prop, NULL, "data_types");
+ RNA_def_property_enum_funcs(prop, NULL, "rna_DataTransferModifier_loops_data_types_set", NULL);
RNA_def_property_update(prop, 0, "rna_DataTransferModifier_data_types_update");
prop = RNA_def_enum(srna, "data_types_polys", DT_layer_poly_items, 0, "Poly Data Types",
"Which poly data layers to transfer");
RNA_def_property_flag(prop, PROP_ENUM_FLAG);
RNA_def_property_enum_sdna(prop, NULL, "data_types");
+ RNA_def_property_enum_funcs(prop, NULL, "rna_DataTransferModifier_polys_data_types_set", NULL);
RNA_def_property_update(prop, 0, "rna_DataTransferModifier_data_types_update");
/* Mapping methods. */
- prop = RNA_def_enum(srna, "vert_mapping", DT_method_vertex_items, MREMAP_MODE_VERT_NEAREST, "Vertex Mapping",
+ prop = RNA_def_enum(srna, "vert_mapping", rna_enum_dt_method_vertex_items, MREMAP_MODE_VERT_NEAREST, "Vertex Mapping",
"Method used to map source vertices to destination ones");
RNA_def_property_enum_sdna(prop, NULL, "vmap_mode");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
- prop = RNA_def_enum(srna, "edge_mapping", DT_method_edge_items, MREMAP_MODE_EDGE_NEAREST, "Edge Mapping",
+ prop = RNA_def_enum(srna, "edge_mapping", rna_enum_dt_method_edge_items, MREMAP_MODE_EDGE_NEAREST, "Edge Mapping",
"Method used to map source edges to destination ones");
RNA_def_property_enum_sdna(prop, NULL, "emap_mode");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
- prop = RNA_def_enum(srna, "loop_mapping", DT_method_loop_items, MREMAP_MODE_LOOP_NEAREST_POLYNOR,
+ prop = RNA_def_enum(srna, "loop_mapping", rna_enum_dt_method_loop_items, MREMAP_MODE_LOOP_NEAREST_POLYNOR,
"Face Corner Mapping", "Method used to map source faces' corners to destination ones");
RNA_def_property_enum_sdna(prop, NULL, "lmap_mode");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
- prop = RNA_def_enum(srna, "poly_mapping", DT_method_poly_items, MREMAP_MODE_POLY_NEAREST, "Face Mapping",
+ prop = RNA_def_enum(srna, "poly_mapping", rna_enum_dt_method_poly_items, MREMAP_MODE_POLY_NEAREST, "Face Mapping",
"Method used to map source faces to destination ones");
RNA_def_property_enum_sdna(prop, NULL, "pmap_mode");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
@@ -4428,60 +4483,60 @@ static void rna_def_modifier_datatransfer(BlenderRNA *brna)
RNA_def_property_update(prop, 0, "rna_Modifier_update");
/* How to handle multi-layers types of data. */
- prop = RNA_def_enum(srna, "layers_vgroup_select_src", DT_layers_select_src_items, DT_LAYERS_ALL_SRC,
+ prop = RNA_def_enum(srna, "layers_vgroup_select_src", rna_enum_dt_layers_select_src_items, DT_LAYERS_ALL_SRC,
"Source Layers Selection", "Which layers to transfer, in case of multi-layers types");
RNA_def_property_enum_sdna(prop, NULL, "layers_select_src[DT_MULTILAYER_INDEX_MDEFORMVERT]");
RNA_def_property_enum_funcs(prop, NULL, NULL, "rna_DataTransferModifier_layers_select_src_itemf");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
#if 0
- prop = RNA_def_enum(srna, "layers_shapekey_select_src", DT_layers_select_src_items, DT_LAYERS_ALL_SRC,
+ prop = RNA_def_enum(srna, "layers_shapekey_select_src", rna_enum_dt_layers_select_src_items, DT_LAYERS_ALL_SRC,
"Source Layers Selection", "Which layers to transfer, in case of multi-layers types");
RNA_def_property_enum_sdna(prop, NULL, "layers_select_src[DT_MULTILAYER_INDEX_SHAPEKEY]");
RNA_def_property_enum_funcs(prop, NULL, NULL, "rna_DataTransferModifier_layers_select_src_itemf");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
#endif
- prop = RNA_def_enum(srna, "layers_vcol_select_src", DT_layers_select_src_items, DT_LAYERS_ALL_SRC,
+ prop = RNA_def_enum(srna, "layers_vcol_select_src", rna_enum_dt_layers_select_src_items, DT_LAYERS_ALL_SRC,
"Source Layers Selection", "Which layers to transfer, in case of multi-layers types");
RNA_def_property_enum_sdna(prop, NULL, "layers_select_src[DT_MULTILAYER_INDEX_VCOL]");
RNA_def_property_enum_funcs(prop, NULL, NULL, "rna_DataTransferModifier_layers_select_src_itemf");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
- prop = RNA_def_enum(srna, "layers_uv_select_src", DT_layers_select_src_items, DT_LAYERS_ALL_SRC,
+ prop = RNA_def_enum(srna, "layers_uv_select_src", rna_enum_dt_layers_select_src_items, DT_LAYERS_ALL_SRC,
"Source Layers Selection", "Which layers to transfer, in case of multi-layers types");
RNA_def_property_enum_sdna(prop, NULL, "layers_select_src[DT_MULTILAYER_INDEX_UV]");
RNA_def_property_enum_funcs(prop, NULL, NULL, "rna_DataTransferModifier_layers_select_src_itemf");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
- prop = RNA_def_enum(srna, "layers_vgroup_select_dst", DT_layers_select_dst_items, DT_LAYERS_NAME_DST,
+ prop = RNA_def_enum(srna, "layers_vgroup_select_dst", rna_enum_dt_layers_select_dst_items, DT_LAYERS_NAME_DST,
"Destination Layers Matching", "How to match source and destination layers");
RNA_def_property_enum_sdna(prop, NULL, "layers_select_dst[DT_MULTILAYER_INDEX_MDEFORMVERT]");
RNA_def_property_enum_funcs(prop, NULL, NULL, "rna_DataTransferModifier_layers_select_dst_itemf");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
#if 0
- prop = RNA_def_enum(srna, "layers_shapekey_select_dst", DT_layers_select_dst_items, DT_LAYERS_NAME_DST,
+ prop = RNA_def_enum(srna, "layers_shapekey_select_dst", rna_enum_dt_layers_select_dst_items, DT_LAYERS_NAME_DST,
"Destination Layers Matching", "How to match source and destination layers");
RNA_def_property_enum_sdna(prop, NULL, "layers_select_dst[DT_MULTILAYER_INDEX_SHAPEKEY]");
RNA_def_property_enum_funcs(prop, NULL, NULL, "rna_DataTransferModifier_layers_select_dst_itemf");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
#endif
- prop = RNA_def_enum(srna, "layers_vcol_select_dst", DT_layers_select_dst_items, DT_LAYERS_NAME_DST,
+ prop = RNA_def_enum(srna, "layers_vcol_select_dst", rna_enum_dt_layers_select_dst_items, DT_LAYERS_NAME_DST,
"Destination Layers Matching", "How to match source and destination layers");
RNA_def_property_enum_sdna(prop, NULL, "layers_select_dst[DT_MULTILAYER_INDEX_VCOL]");
RNA_def_property_enum_funcs(prop, NULL, NULL, "rna_DataTransferModifier_layers_select_dst_itemf");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
- prop = RNA_def_enum(srna, "layers_uv_select_dst", DT_layers_select_dst_items, DT_LAYERS_NAME_DST,
+ prop = RNA_def_enum(srna, "layers_uv_select_dst", rna_enum_dt_layers_select_dst_items, DT_LAYERS_NAME_DST,
"Destination Layers Matching", "How to match source and destination layers");
RNA_def_property_enum_sdna(prop, NULL, "layers_select_dst[DT_MULTILAYER_INDEX_UV]");
RNA_def_property_enum_funcs(prop, NULL, NULL, "rna_DataTransferModifier_layers_select_dst_itemf");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
/* Mix stuff */
- prop = RNA_def_enum(srna, "mix_mode", DT_mix_mode_items, CDT_MIX_TRANSFER, "Mix Mode",
+ prop = RNA_def_enum(srna, "mix_mode", rna_enum_dt_mix_mode_items, CDT_MIX_TRANSFER, "Mix Mode",
"How to affect destination elements with source values");
RNA_def_property_enum_funcs(prop, NULL, NULL, "rna_DataTransferModifier_mix_mode_itemf");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
@@ -4596,7 +4651,7 @@ void RNA_def_modifier(BlenderRNA *brna)
prop = RNA_def_property(srna, "type", PROP_ENUM, PROP_NONE);
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
RNA_def_property_enum_sdna(prop, NULL, "type");
- RNA_def_property_enum_items(prop, modifier_type_items);
+ RNA_def_property_enum_items(prop, rna_enum_object_modifier_type_items);
RNA_def_property_ui_text(prop, "Type", "");
/* flags */