Changeset View
Changeset View
Standalone View
Standalone View
source/blender/makesrna/intern/rna_modifier.c
| Show First 20 Lines • Show All 66 Lines • ▼ Show 20 Lines | EnumPropertyItem rna_enum_object_modifier_type_items[] = { | ||||
| {eModifierType_MeshCache, "MESH_CACHE", ICON_MOD_MESHDEFORM, "Mesh Cache", ""}, | {eModifierType_MeshCache, "MESH_CACHE", ICON_MOD_MESHDEFORM, "Mesh Cache", ""}, | ||||
| {eModifierType_NormalEdit, "NORMAL_EDIT", ICON_MOD_NORMALEDIT, "Normal Edit", ""}, | {eModifierType_NormalEdit, "NORMAL_EDIT", ICON_MOD_NORMALEDIT, "Normal Edit", ""}, | ||||
| {eModifierType_UVProject, "UV_PROJECT", ICON_MOD_UVPROJECT, "UV Project", ""}, | {eModifierType_UVProject, "UV_PROJECT", ICON_MOD_UVPROJECT, "UV Project", ""}, | ||||
| {eModifierType_UVWarp, "UV_WARP", ICON_MOD_UVPROJECT, "UV Warp", ""}, | {eModifierType_UVWarp, "UV_WARP", ICON_MOD_UVPROJECT, "UV Warp", ""}, | ||||
| {eModifierType_WeightVGEdit, "VERTEX_WEIGHT_EDIT", ICON_MOD_VERTEX_WEIGHT, "Vertex Weight Edit", ""}, | {eModifierType_WeightVGEdit, "VERTEX_WEIGHT_EDIT", ICON_MOD_VERTEX_WEIGHT, "Vertex Weight Edit", ""}, | ||||
| {eModifierType_WeightVGMix, "VERTEX_WEIGHT_MIX", ICON_MOD_VERTEX_WEIGHT, "Vertex Weight Mix", ""}, | {eModifierType_WeightVGMix, "VERTEX_WEIGHT_MIX", ICON_MOD_VERTEX_WEIGHT, "Vertex Weight Mix", ""}, | ||||
| {eModifierType_WeightVGProximity, "VERTEX_WEIGHT_PROXIMITY", ICON_MOD_VERTEX_WEIGHT, | {eModifierType_WeightVGProximity, "VERTEX_WEIGHT_PROXIMITY", ICON_MOD_VERTEX_WEIGHT, | ||||
| "Vertex Weight Proximity", ""}, | "Vertex Weight Proximity", ""}, | ||||
| {eModifierType_VertexColorEdit, "VERTEX_COLOR_EDIT", ICON_GROUP_VCOL, "Vertex Color Edit", ""}, | |||||
| {0, "", 0, N_("Generate"), ""}, | {0, "", 0, N_("Generate"), ""}, | ||||
| {eModifierType_Array, "ARRAY", ICON_MOD_ARRAY, "Array", ""}, | {eModifierType_Array, "ARRAY", ICON_MOD_ARRAY, "Array", ""}, | ||||
| {eModifierType_Bevel, "BEVEL", ICON_MOD_BEVEL, "Bevel", ""}, | {eModifierType_Bevel, "BEVEL", ICON_MOD_BEVEL, "Bevel", ""}, | ||||
| {eModifierType_Boolean, "BOOLEAN", ICON_MOD_BOOLEAN, "Boolean", ""}, | {eModifierType_Boolean, "BOOLEAN", ICON_MOD_BOOLEAN, "Boolean", ""}, | ||||
| {eModifierType_Build, "BUILD", ICON_MOD_BUILD, "Build", ""}, | {eModifierType_Build, "BUILD", ICON_MOD_BUILD, "Build", ""}, | ||||
| {eModifierType_Decimate, "DECIMATE", ICON_MOD_DECIM, "Decimate", ""}, | {eModifierType_Decimate, "DECIMATE", ICON_MOD_DECIM, "Decimate", ""}, | ||||
| {eModifierType_EdgeSplit, "EDGE_SPLIT", ICON_MOD_EDGESPLIT, "Edge Split", ""}, | {eModifierType_EdgeSplit, "EDGE_SPLIT", ICON_MOD_EDGESPLIT, "Edge Split", ""}, | ||||
| {eModifierType_Mask, "MASK", ICON_MOD_MASK, "Mask", ""}, | {eModifierType_Mask, "MASK", ICON_MOD_MASK, "Mask", ""}, | ||||
| ▲ Show 20 Lines • Show All 311 Lines • ▼ Show 20 Lines | switch ((ModifierType)md->type) { | ||||
| case eModifierType_Wireframe: | case eModifierType_Wireframe: | ||||
| return &RNA_WireframeModifier; | return &RNA_WireframeModifier; | ||||
| case eModifierType_DataTransfer: | case eModifierType_DataTransfer: | ||||
| return &RNA_DataTransferModifier; | return &RNA_DataTransferModifier; | ||||
| case eModifierType_NormalEdit: | case eModifierType_NormalEdit: | ||||
| return &RNA_NormalEditModifier; | return &RNA_NormalEditModifier; | ||||
| case eModifierType_CorrectiveSmooth: | case eModifierType_CorrectiveSmooth: | ||||
| return &RNA_CorrectiveSmoothModifier; | return &RNA_CorrectiveSmoothModifier; | ||||
| case eModifierType_VertexColorEdit: | |||||
| return &RNA_VertexColorEditModifier; | |||||
| /* Default */ | /* Default */ | ||||
| case eModifierType_None: | case eModifierType_None: | ||||
| case eModifierType_ShapeKey: | case eModifierType_ShapeKey: | ||||
| case NUM_MODIFIER_TYPES: | case NUM_MODIFIER_TYPES: | ||||
| return &RNA_Modifier; | return &RNA_Modifier; | ||||
| } | } | ||||
| return &RNA_Modifier; | return &RNA_Modifier; | ||||
| ▲ Show 20 Lines • Show All 65 Lines • ▼ Show 20 Lines | |||||
| RNA_MOD_VGROUP_NAME_SET(Mask, vgroup); | RNA_MOD_VGROUP_NAME_SET(Mask, vgroup); | ||||
| RNA_MOD_VGROUP_NAME_SET(MeshDeform, defgrp_name); | RNA_MOD_VGROUP_NAME_SET(MeshDeform, defgrp_name); | ||||
| RNA_MOD_VGROUP_NAME_SET(NormalEdit, defgrp_name); | RNA_MOD_VGROUP_NAME_SET(NormalEdit, defgrp_name); | ||||
| RNA_MOD_VGROUP_NAME_SET(Shrinkwrap, vgroup_name); | RNA_MOD_VGROUP_NAME_SET(Shrinkwrap, vgroup_name); | ||||
| RNA_MOD_VGROUP_NAME_SET(SimpleDeform, vgroup_name); | RNA_MOD_VGROUP_NAME_SET(SimpleDeform, vgroup_name); | ||||
| RNA_MOD_VGROUP_NAME_SET(Smooth, defgrp_name); | RNA_MOD_VGROUP_NAME_SET(Smooth, defgrp_name); | ||||
| RNA_MOD_VGROUP_NAME_SET(Solidify, defgrp_name); | RNA_MOD_VGROUP_NAME_SET(Solidify, defgrp_name); | ||||
| RNA_MOD_VGROUP_NAME_SET(UVWarp, vgroup_name); | RNA_MOD_VGROUP_NAME_SET(UVWarp, vgroup_name); | ||||
| RNA_MOD_VGROUP_NAME_SET(VertexColorEdit, defgrp_name); | |||||
| RNA_MOD_VGROUP_NAME_SET(Warp, defgrp_name); | RNA_MOD_VGROUP_NAME_SET(Warp, defgrp_name); | ||||
| RNA_MOD_VGROUP_NAME_SET(Wave, defgrp_name); | RNA_MOD_VGROUP_NAME_SET(Wave, defgrp_name); | ||||
| RNA_MOD_VGROUP_NAME_SET(WeightVGEdit, defgrp_name); | RNA_MOD_VGROUP_NAME_SET(WeightVGEdit, defgrp_name); | ||||
| RNA_MOD_VGROUP_NAME_SET(WeightVGEdit, mask_defgrp_name); | RNA_MOD_VGROUP_NAME_SET(WeightVGEdit, mask_defgrp_name); | ||||
| RNA_MOD_VGROUP_NAME_SET(WeightVGMix, defgrp_name_a); | RNA_MOD_VGROUP_NAME_SET(WeightVGMix, defgrp_name_a); | ||||
| RNA_MOD_VGROUP_NAME_SET(WeightVGMix, defgrp_name_b); | RNA_MOD_VGROUP_NAME_SET(WeightVGMix, defgrp_name_b); | ||||
| RNA_MOD_VGROUP_NAME_SET(WeightVGMix, mask_defgrp_name); | RNA_MOD_VGROUP_NAME_SET(WeightVGMix, mask_defgrp_name); | ||||
| RNA_MOD_VGROUP_NAME_SET(WeightVGProximity, defgrp_name); | RNA_MOD_VGROUP_NAME_SET(WeightVGProximity, defgrp_name); | ||||
| Show All 33 Lines | |||||
| RNA_MOD_UVLAYER_NAME_SET(UVProject, uvlayer_name); | RNA_MOD_UVLAYER_NAME_SET(UVProject, uvlayer_name); | ||||
| RNA_MOD_UVLAYER_NAME_SET(UVWarp, uvlayer_name); | RNA_MOD_UVLAYER_NAME_SET(UVWarp, uvlayer_name); | ||||
| RNA_MOD_UVLAYER_NAME_SET(WeightVGEdit, mask_tex_uvlayer_name); | RNA_MOD_UVLAYER_NAME_SET(WeightVGEdit, mask_tex_uvlayer_name); | ||||
| RNA_MOD_UVLAYER_NAME_SET(WeightVGMix, mask_tex_uvlayer_name); | RNA_MOD_UVLAYER_NAME_SET(WeightVGMix, mask_tex_uvlayer_name); | ||||
| RNA_MOD_UVLAYER_NAME_SET(WeightVGProximity, mask_tex_uvlayer_name); | RNA_MOD_UVLAYER_NAME_SET(WeightVGProximity, mask_tex_uvlayer_name); | ||||
| #undef RNA_MOD_UVLAYER_NAME_SET | #undef RNA_MOD_UVLAYER_NAME_SET | ||||
| /* XXX The rna_object_vcollayer_name_set doesn't seem to work properly. | |||||
| * Guess it was never fully tested, looks like no other code actually uses it. | |||||
| */ | |||||
| #if 0 | |||||
| /* Vertex Colors */ | |||||
| #define RNA_MOD_VCOLLAYER_NAME_SET(_type, _prop) \ | |||||
| static void rna_##_type##Modifier_##_prop##_set(PointerRNA *ptr, const char *value) \ | |||||
| { \ | |||||
| _type##ModifierData *tmd = (_type##ModifierData *)ptr->data; \ | |||||
| rna_object_vcollayer_name_set(ptr, value, tmd->_prop, sizeof(tmd->_prop)); \ | |||||
| } | |||||
| RNA_MOD_VCOLLAYER_NAME_SET(VertexColorEdit, vcol_name); | |||||
| #endif | |||||
| /* Objects */ | /* Objects */ | ||||
| static void modifier_object_set(Object *self, Object **ob_p, int type, PointerRNA value) | static void modifier_object_set(Object *self, Object **ob_p, int type, PointerRNA value) | ||||
| { | { | ||||
| Object *ob = value.data; | Object *ob = value.data; | ||||
| if (!self || ob != self) { | if (!self || ob != self) { | ||||
| if (!ob || type == OB_EMPTY || ob->type == type) { | if (!ob || type == OB_EMPTY || ob->type == type) { | ||||
| ▲ Show 20 Lines • Show All 4,083 Lines • ▼ Show 20 Lines | static void rna_def_modifier_normaledit(BlenderRNA *brna) | ||||
| RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_NORMALEDIT_USE_DIRECTION_PARALLEL); | RNA_def_property_boolean_sdna(prop, NULL, "flag", MOD_NORMALEDIT_USE_DIRECTION_PARALLEL); | ||||
| RNA_def_property_boolean_default(prop, true); | RNA_def_property_boolean_default(prop, true); | ||||
| RNA_def_property_ui_text(prop, "Parallel Normals", | RNA_def_property_ui_text(prop, "Parallel Normals", | ||||
| "Use same direction for all normals, from origin to target's center " | "Use same direction for all normals, from origin to target's center " | ||||
| "(Directional mode only)"); | "(Directional mode only)"); | ||||
| RNA_def_property_update(prop, 0, "rna_Modifier_update"); | RNA_def_property_update(prop, 0, "rna_Modifier_update"); | ||||
| } | } | ||||
| static void rna_def_modifier_vertex_color_edit(BlenderRNA *brna) | |||||
| { | |||||
| StructRNA *srna; | |||||
| PropertyRNA *prop; | |||||
| srna = RNA_def_struct(brna, "VertexColorEditModifier", "Modifier"); | |||||
| RNA_def_struct_ui_text(srna, "Vertex Color Edit Modifier", "Modifier for mixing vertex color with a texture"); | |||||
| RNA_def_struct_sdna(srna, "VertexColorEditModifierData"); | |||||
| RNA_def_struct_ui_icon(srna, ICON_GROUP_VCOL); | |||||
| prop = RNA_def_property(srna, "vertex_color", PROP_STRING, PROP_NONE); | |||||
| RNA_def_property_string_sdna(prop, NULL, "vcol_name"); | |||||
| RNA_def_property_ui_text(prop, "Vertex Color", | |||||
| "Name of Vertex Color layer to modify"); | |||||
| // RNA_def_property_string_funcs(prop, NULL, NULL, "rna_VertexColorEditModifier_vcol_name_set"); | |||||
| RNA_def_property_update(prop, 0, "rna_Modifier_update"); | |||||
| prop = RNA_def_property(srna, "vertex_group", PROP_STRING, PROP_NONE); | |||||
| RNA_def_property_string_sdna(prop, NULL, "defgrp_name"); | |||||
| RNA_def_property_ui_text(prop, "Vertex Group", | |||||
| "Name of Vertex Group which determines influence of modifier per point"); | |||||
| RNA_def_property_string_funcs(prop, NULL, NULL, "rna_VertexColorEditModifier_defgrp_name_set"); | |||||
| RNA_def_property_update(prop, 0, "rna_Modifier_update"); | |||||
| prop = RNA_def_property(srna, "blend_mode", PROP_ENUM, PROP_NONE); | |||||
| RNA_def_property_enum_items(prop, rna_enum_ramp_blend_items); | |||||
| RNA_def_property_ui_text(prop, "Blend Mode", ""); | |||||
| RNA_def_property_update(prop, 0, "rna_Modifier_update"); | |||||
| prop = RNA_def_property(srna, "blend_factor", PROP_FLOAT, PROP_FACTOR); | |||||
| RNA_def_property_range(prop, 0.0f, 1.0f); | |||||
| RNA_def_property_ui_text(prop, "Blend Factor", "Blending factor"); | |||||
| RNA_def_property_update(prop, 0, "rna_Modifier_update"); | |||||
| rna_def_modifier_generic_map_info(srna); | |||||
| } | |||||
| void RNA_def_modifier(BlenderRNA *brna) | void RNA_def_modifier(BlenderRNA *brna) | ||||
| { | { | ||||
| StructRNA *srna; | StructRNA *srna; | ||||
| PropertyRNA *prop; | PropertyRNA *prop; | ||||
| /* data */ | /* data */ | ||||
| srna = RNA_def_struct(brna, "Modifier", NULL); | srna = RNA_def_struct(brna, "Modifier", NULL); | ||||
| RNA_def_struct_ui_text(srna, "Modifier", "Modifier affecting the geometry data of an object"); | RNA_def_struct_ui_text(srna, "Modifier", "Modifier affecting the geometry data of an object"); | ||||
| ▲ Show 20 Lines • Show All 100 Lines • ▼ Show 20 Lines | void RNA_def_modifier(BlenderRNA *brna) | ||||
| rna_def_modifier_skin(brna); | rna_def_modifier_skin(brna); | ||||
| rna_def_modifier_laplaciansmooth(brna); | rna_def_modifier_laplaciansmooth(brna); | ||||
| rna_def_modifier_triangulate(brna); | rna_def_modifier_triangulate(brna); | ||||
| rna_def_modifier_meshcache(brna); | rna_def_modifier_meshcache(brna); | ||||
| rna_def_modifier_laplaciandeform(brna); | rna_def_modifier_laplaciandeform(brna); | ||||
| rna_def_modifier_wireframe(brna); | rna_def_modifier_wireframe(brna); | ||||
| rna_def_modifier_datatransfer(brna); | rna_def_modifier_datatransfer(brna); | ||||
| rna_def_modifier_normaledit(brna); | rna_def_modifier_normaledit(brna); | ||||
| rna_def_modifier_vertex_color_edit(brna); | |||||
| } | } | ||||
| #endif | #endif | ||||