Changeset View
Changeset View
Standalone View
Standalone View
source/blender/modifiers/intern/MOD_decimate.c
| Show First 20 Lines • Show All 220 Lines • ▼ Show 20 Lines | #ifdef USE_TIMEIT | ||||
| TIMEIT_END(decim); | TIMEIT_END(decim); | ||||
| #endif | #endif | ||||
| result->runtime.cd_dirty_vert |= CD_MASK_NORMAL; | result->runtime.cd_dirty_vert |= CD_MASK_NORMAL; | ||||
| return result; | return result; | ||||
| } | } | ||||
| static void panel_draw(const bContext *C, Panel *panel) | static void panel_draw(const bContext *UNUSED(C), Panel *panel) | ||||
| { | { | ||||
| uiLayout *sub, *row; | uiLayout *sub, *row; | ||||
| uiLayout *layout = panel->layout; | uiLayout *layout = panel->layout; | ||||
| PointerRNA ptr; | |||||
| PointerRNA ob_ptr; | PointerRNA ob_ptr; | ||||
| modifier_panel_get_property_pointers(C, panel, &ob_ptr, &ptr); | PointerRNA *ptr = modifier_panel_get_property_pointers(panel, &ob_ptr); | ||||
| uiLayoutSetPropSep(layout, true); | uiLayoutSetPropSep(layout, true); | ||||
| int decimate_type = RNA_enum_get(&ptr, "decimate_type"); | int decimate_type = RNA_enum_get(ptr, "decimate_type"); | ||||
| char count_info[32]; | char count_info[32]; | ||||
| snprintf(count_info, 32, "%s: %d", IFACE_("Face Count"), RNA_int_get(&ptr, "face_count")); | snprintf(count_info, 32, "%s: %d", IFACE_("Face Count"), RNA_int_get(ptr, "face_count")); | ||||
| uiItemR(layout, &ptr, "decimate_type", 0, NULL, ICON_NONE); | uiItemR(layout, ptr, "decimate_type", 0, NULL, ICON_NONE); | ||||
| if (decimate_type == MOD_DECIM_MODE_COLLAPSE) { | if (decimate_type == MOD_DECIM_MODE_COLLAPSE) { | ||||
| uiItemR(layout, &ptr, "ratio", UI_ITEM_R_SLIDER, NULL, ICON_NONE); | uiItemR(layout, ptr, "ratio", UI_ITEM_R_SLIDER, NULL, ICON_NONE); | ||||
| row = uiLayoutRowWithHeading(layout, true, IFACE_("Symmetry")); | row = uiLayoutRowWithHeading(layout, true, IFACE_("Symmetry")); | ||||
| uiLayoutSetPropDecorate(row, false); | uiLayoutSetPropDecorate(row, false); | ||||
| sub = uiLayoutRow(row, true); | sub = uiLayoutRow(row, true); | ||||
| uiItemR(sub, &ptr, "use_symmetry", 0, "", ICON_NONE); | uiItemR(sub, ptr, "use_symmetry", 0, "", ICON_NONE); | ||||
| sub = uiLayoutRow(sub, true); | sub = uiLayoutRow(sub, true); | ||||
| uiLayoutSetActive(sub, RNA_boolean_get(&ptr, "use_symmetry")); | uiLayoutSetActive(sub, RNA_boolean_get(ptr, "use_symmetry")); | ||||
| uiItemR(sub, &ptr, "symmetry_axis", UI_ITEM_R_EXPAND, NULL, ICON_NONE); | uiItemR(sub, ptr, "symmetry_axis", UI_ITEM_R_EXPAND, NULL, ICON_NONE); | ||||
| uiItemDecoratorR(row, &ptr, "symmetry_axis", 0); | uiItemDecoratorR(row, ptr, "symmetry_axis", 0); | ||||
| uiItemR(layout, &ptr, "use_collapse_triangulate", 0, NULL, ICON_NONE); | uiItemR(layout, ptr, "use_collapse_triangulate", 0, NULL, ICON_NONE); | ||||
| modifier_vgroup_ui(layout, &ptr, &ob_ptr, "vertex_group", "invert_vertex_group", NULL); | modifier_vgroup_ui(layout, ptr, &ob_ptr, "vertex_group", "invert_vertex_group", NULL); | ||||
| } | } | ||||
| else if (decimate_type == MOD_DECIM_MODE_UNSUBDIV) { | else if (decimate_type == MOD_DECIM_MODE_UNSUBDIV) { | ||||
| uiItemR(layout, &ptr, "iterations", 0, NULL, ICON_NONE); | uiItemR(layout, ptr, "iterations", 0, NULL, ICON_NONE); | ||||
| } | } | ||||
| else { /* decimate_type == MOD_DECIM_MODE_DISSOLVE. */ | else { /* decimate_type == MOD_DECIM_MODE_DISSOLVE. */ | ||||
| uiItemR(layout, &ptr, "angle_limit", 0, NULL, ICON_NONE); | uiItemR(layout, ptr, "angle_limit", 0, NULL, ICON_NONE); | ||||
| uiItemR(layout, &ptr, "delimit", 0, NULL, ICON_NONE); | uiItemR(layout, ptr, "delimit", 0, NULL, ICON_NONE); | ||||
| uiItemR(layout, &ptr, "use_dissolve_boundaries", 0, NULL, ICON_NONE); | uiItemR(layout, ptr, "use_dissolve_boundaries", 0, NULL, ICON_NONE); | ||||
| } | } | ||||
| uiItemL(layout, count_info, ICON_NONE); | uiItemL(layout, count_info, ICON_NONE); | ||||
| modifier_panel_end(layout, &ptr); | modifier_panel_end(layout, ptr); | ||||
| } | } | ||||
| static void panelRegister(ARegionType *region_type) | static void panelRegister(ARegionType *region_type) | ||||
| { | { | ||||
| modifier_panel_register(region_type, eModifierType_Decimate, panel_draw); | modifier_panel_register(region_type, eModifierType_Decimate, panel_draw); | ||||
| } | } | ||||
| ModifierTypeInfo modifierType_Decimate = { | ModifierTypeInfo modifierType_Decimate = { | ||||
| Show All 32 Lines | |||||