OverviewFilesCommitsIssuesDocsReleasesPeers

hardops / ui / Panels / a4_operations.py

147 lines · python ref:
import bpy
from bpy.props import *
from ... icons import get_icon_id


class HOPS_PT_OperationsPanel(bpy.types.Panel):
    bl_label = "Operations"
    # bl_category = "HardOps"
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'TOOLS'
    bl_options = {'DEFAULT_CLOSED'}

    def draw(self, context):
        layout = self.layout

        active_object = context.active_object

        if active_object is None:
            layout.label(text="Select object first")
        elif active_object.mode == "OBJECT":

            layout = self.layout

            col = layout.column(align=True)

            col.separator()

            colrow = col.row(align=True)
            colrow.operator_context = 'INVOKE_DEFAULT'

            colrow.operator("hops.draw_uv", text="UV Preview", icon_value=get_icon_id("CUnwrap"))

            col.separator()

            colrow = col.row(align=True)
            colrow.operator("hops.soft_sharpen", text="(S) Sharpen", icon_value=get_icon_id("Ssharpen"))
            colrow.operator("hops.soft_sharpen", text="(C) Sharpen", icon_value=get_icon_id("CSharpen"))

            colrow = col.row(align=True)
            colrow.operator("hops.step", text="Step", icon_value=get_icon_id("Sstep"))

            colrow = col.row(align=True)
            colrow.operator("hops.adjust_bevel", text="(B) Width", icon_value=get_icon_id("AdjustBevel"))

            col.separator()

            colrow = col.row(align=True)
            colrow.operator("hops.slash", text="(C) Slash", icon_value=get_icon_id("Csplit"))

            col.separator()

            colrow = col.row(align=True)
            colrow.operator("hops.cut_in", text="Cut-in")

            col.separator()

            colrow = col.row(align=True)
            colrow.operator("hops.adjust_array", text="(Q) Array", icon_value=get_icon_id("Qarray"))
            colrow.operator("hops.adjust_tthick", text="(T) Thick", icon_value=get_icon_id("Tthick"))

            col.separator()

            colrow = col.row(align=True)
            colrow.operator("hops.clean_sharps", text="Clear S/C/Sharps", icon_value=get_icon_id("CleansharpsE"))
            colrow.operator("view3d.clean_mesh", text="Clean Mesh (E)", icon_value=get_icon_id("CleansharpsE"))

            colrow = col.row(align=True)
            colrow.operator("hops.2d_bevel", text="Bevel (2d)", icon_value=get_icon_id("AdjustBevel"))

            col.separator()
            colrow = col.row(align=True)
            colrow.operator("hops.parent_merge", text="(C) merge", icon_value=get_icon_id("Merge"))
            colrow.operator("hops.parent_merge_soft", text="(C) merge(soft)", icon_value=get_icon_id("CSharpen"))
            colrow = col.row(align=True)
            colrow.operator("hops.simple_parent_merge", text="(S) merge", icon_value=get_icon_id("Merge"))
            colrow.operator("hops.remove_merge", text="Remove Merge", icon_value=get_icon_id("Merge"))

            col.separator()
            colrow = col.row(align=True)
            colrow.operator("material.simplify", text="Material Link", icon_value=get_icon_id("Noicon"))

            col.separator()

            colrow = col.row(align=True)
            colrow.operator("view3d.bevel_multiplier", text="Bevel Multiplier", icon_value=get_icon_id("Noicon"))

            col.separator()

            colrow = col.row(align=True)
            colrow.operator("hops.sharp_manager", text="Sharps Manager", icon_value=get_icon_id("Noicon"))

        elif active_object.mode == "EDIT":

            layout = self.layout
            col = layout.column(align=True)

            col.separator()

            colrow = col.row(align=True)
            colrow.operator_context = 'INVOKE_DEFAULT'
            colrow.operator("hops.set_edit_sharpen", text="Set SSharp", icon_value=get_icon_id("MakeSharpE"))
            colrow = col.row(align=True)
            colrow.operator("hops.bevel_weight", text="Bweight", icon_value=get_icon_id("AdjustBevel"))
            col.separator()
            colrow = col.row(align=True)
            colrow.operator("hops.clean1_objects", text="Clean SSharps", icon_value=get_icon_id("CleansharpsE")).clearsharps = False
            col.separator()

            colrow = col.row(align=True)
            colrow.menu("HOPS_MT_edgeWizardSubmenu", text="AUX", icon="PLUGIN")
            colrow.operator("hops.meshdisp", text="M_Disp", icon="PLUGIN")

            col.separator()

            colrow.operator_context = 'INVOKE_DEFAULT'
            colrow = col.row(align=True)
            colrow.operator("hops.draw_uv", text="UV Preview", icon_value=get_icon_id("CUnwrap"))
            colrow = col.row(align=True)
            colrow.operator("view3d.vertcircle", text="Circle (E)", icon_value=get_icon_id("NthCircle"))
            colrow = col.row(align=True)
            colrow.operator("view3d.vertcircle", text="Circle (Nth)(E)", icon_value=get_icon_id("NthCircle")).nth_mode = True
            # colrow = col.row(align=True)
            # colrow.operator("hops.circle", text="NEW Circle", icon_value=get_icon_id("NthCircle"))

            col.separator()
            colrow = col.row(align=True)
            colrow.operator("hops.fgrate_op", text="Grate (Face)", icon_value=get_icon_id("FaceGrate"))
            colrow = col.row(align=True)
            colrow.operator("hops.fknurl_op", text="Knurl (Face)", icon_value=get_icon_id("FaceKnurl"))

            col.separator()
            colrow = col.row(align=True)
            colrow.operator("hops.quick_panel", text="Panel (Face)", icon_value=get_icon_id("EdgeRingPanel"))
            colrow = col.row(align=True)
            colrow.operator("hops.entrench_selection", text="Panel (Edge)", icon_value=get_icon_id("FacePanel"))
            colrow = col.row(align=True)
            colrow.operator("hops.star_connect", text="Star Connect")

            if any("mira_tools" in s for s in bpy.context.preferences.addons.keys()):
                col.separator()
                colrow = col.row(align=True)
                colrow.menu("HOPS_MT_MiraSubmenu", text="Mira (T)", icon="PLUGIN")
            else:
                col.separator()
            colrow = col.row(align=True)
            colrow.menu("HOPS_MT_SymmetrySubmenu", text="Symmetrize", icon_value=get_icon_id("Xslap"))