// =========================================================================== // Copyright 2018 Autodesk, Inc. All rights reserved. // // Use of this software is subject to the terms of the Autodesk license // agreement provided at the time of installation or download, or which // otherwise accompanies this software in either electronic or hard copy form. // =========================================================================== // // Creation Date: 11 January 2002 // // Procedure Name: // polyConvertMM // // Description: // This procedure creates the popup/marking menu // for poly component conversion. See buildConvertMM. // // Input Arguments: // The parent item to parent the popup menu to. // // Return Value: // None. global proc polyConvertMM(string $parent){ string $toEdges = (uiRes("m_polyConvertMM.kToEdges")); if (`popupMenu -query -exists $parent`){ popupMenu -edit -deleteAllItems $parent; setParent -menu $parent; string $currentContext = `currentCtx`; if (`contextInfo -exists $currentContext`) { string $ctx = `contextInfo -c $currentContext`; if ($ctx == "sculptMeshCache") { sculptMeshCacheConvertMM(); return; } } menuItem -label $toEdges -subMenu 1 -radialPosition "N" ; menuItem -label $toEdges -command ("ConvertSelectionToEdges;" + "selectType -ocm -alc false;" + "selectType -ocm -polymeshEdge true;") -radialPosition "N" -annotation (getRunTimeCommandAnnotation ("ConvertSelectionToEdges")) ; menuItem -label (uiRes("m_polyConvertMM.kToContainedEdges")) -annotation (getRunTimeCommandAnnotation("ConvertSelectionToContainedEdges")) -radialPosition "S" -command "ConvertSelectionToContainedEdges" ; menuItem -label (uiRes("m_polyConvertMM.kToContiguousEdges")) -annotation (getRunTimeCommandAnnotation("ConvertSelectionToContainedEdges")) -radialPosition "NW" -command "SelectContiguousEdges" ; menuItem -optionBox true -annotation (getRunTimeCommandAnnotation("SelectContiguousEdgesOptions")) -image "polyLoopEdge.png" -command "SelectContiguousEdgesOptions" ; menuItem -version "2015" -label (uiRes("m_polyConvertMM.kToEdgePerimeter")) -annotation (getRunTimeCommandAnnotation("ConvertSelectionToEdgePerimeter")) -radialPosition "NE" -command "ConvertSelectionToEdgePerimeter" ; setParent -m ..; menuItem -label (uiRes("m_polyConvertMM.kShrinkSelection")) -subMenu 1 -radialPosition "NW" ; menuItem -label (uiRes("m_polyConvertMM.kShrink")) -command "ShrinkPolygonSelectionRegion" -radialPosition "NW" -annotation (getRunTimeCommandAnnotation ("ShrinkPolygonSelectionRegion")) ; menuItem -version "2018" -label (uiRes("m_polyConvertMM.kShrinkLoop")) -command "ShrinkLoopPolygonSelectionRegion" -radialPosition "N" -annotation (getRunTimeCommandAnnotation ("ShrinkLoopPolygonSelectionRegion")) ; setParent -m ..; menuItem -label (uiRes("m_polyConvertMM.kToUVs")) -subMenu 1 -radialPosition "E" ; menuItem -label (uiRes("m_polyConvertMM.kToUVs")) -command ("ConvertSelectionToUVs;" + "selectType -ocm -alc false;" + "selectType -ocm -polymeshUV true;") -radialPosition "E" -annotation (getRunTimeCommandAnnotation ("ConvertSelectionToUVs")) ; menuItem -version "2015" -label (uiRes("m_polyConvertMM.kToUVPerimeter")) -annotation (getRunTimeCommandAnnotation("ConvertSelectionToUVPerimeter")) -radialPosition "NE" -command "ConvertSelectionToUVPerimeter" ; setParent -m ..; menuItem -label (uiRes("m_polyConvertMM.kEdgeLoopUtilities")) -subMenu 1 -radialPosition "SE" ; menuItem -label (uiRes("m_polyConvertMM.kToEdgeLoop")) -command "SelectEdgeLoopSp" -radialPosition "SE" -annotation (getRunTimeCommandAnnotation ("SelectEdgeLoop")) ; menuItem -label (uiRes("m_polyConvertMM.kToEdgeLoopAndDelete")) -command "PolyConvertToLoopAndDelete;" -annotation (getRunTimeCommandAnnotation ("PolyConvertToLoopAndDelete")) -radialPosition "NE" -enableCommandRepeat 1 ; menuItem -label (uiRes("m_polyConvertMM.kToEdgeLoopAndDuplicate")) -command "PolyConvertToLoopAndDuplicate" -annotation (getRunTimeCommandAnnotation ("PolyConvertToLoopAndDuplicate")) -radialPosition "SW" -enableCommandRepeat 1 ; setParent -m ..; menuItem -label (uiRes("m_polyConvertMM.kEdgeRingUtilities")) -subMenu 1 -radialPosition "SW" ; menuItem -label (uiRes("m_polyConvertMM.kToEdgeRing")) -command "SelectEdgeRingSp" -radialPosition "SW" -annotation (getRunTimeCommandAnnotation ("SelectEdgeLoop")) ; menuItem -label (uiRes("m_polyConvertMM.kToEdgeRingAndSplit")) -command "PolyConvertToRingAndSplit" -annotation (getRunTimeCommandAnnotation ("PolyConvertToRingAndSplit")) -radialPosition "SE" -enableCommandRepeat 1 ; menuItem -label (uiRes("m_polyConvertMM.kToEdgeRingAndCollapse")) -command "PolyConvertToRingAndCollapse;" -annotation (getRunTimeCommandAnnotation ("PolyConvertToRingAndCollapse")) -radialPosition "NW" -enableCommandRepeat 1 ; setParent -m ..; string $toFaces = (uiRes("m_polyConvertMM.kToFaces")); menuItem -label $toFaces -subMenu 1 -radialPosition "S" ; menuItem -label $toFaces -command ("ConvertSelectionToFaces;" + "selectType -ocm -alc false;" + "selectType -ocm -polymeshFace true;") -radialPosition "S" -annotation (getRunTimeCommandAnnotation ("ConvertSelectionToFaces")) ; menuItem -label (uiRes("m_polyConvertMM.kToContainedFaces")) -annotation (getRunTimeCommandAnnotation("ConvertSelectionToContainedFaces")) -radialPosition "N" -command "ConvertSelectionToContainedFaces" ; menuItem -label (uiRes("m_polyConvertMM.kToFacePerimeter")) -annotation (getRunTimeCommandAnnotation("ConvertSelectionToFacePerimeter")) -radialPosition "SE" -command "ConvertSelectionToFacePerimeter" ; setParent -m ..; menuItem -label (uiRes("m_subdConvertMM.kToVertices")) -subMenu 1 -radialPosition "W" ; menuItem -label (uiRes("m_subdConvertMM.kToVertices")) -command ("ConvertSelectionToVertices;" + "selectType -ocm -alc false;" + "selectType -ocm -polymeshVertex true;") -radialPosition "W" -annotation (getRunTimeCommandAnnotation ("ConvertSelectionToVertices")) ; menuItem -version "2015" -label (uiRes("m_polyConvertMM.kToVertexPerimeter")) -annotation (getRunTimeCommandAnnotation("ConvertSelectionToVertexPerimeter")) -radialPosition "NW" -command "ConvertSelectionToVertexPerimeter" ; setParent -m ..; menuItem -label (uiRes("m_polyConvertMM.kGrowSelection")) -subMenu 1 -radialPosition "NE" ; menuItem -label (uiRes("m_polyConvertMM.kGrow")) -command "GrowPolygonSelectionRegion" -radialPosition "NE" -annotation (getRunTimeCommandAnnotation ("GrowPolygonSelectionRegion")) ; menuItem -version "2018" -label (uiRes("m_polyConvertMM.kGrowLoop")) -command "GrowLoopPolygonSelectionRegion" -radialPosition "N" -annotation (getRunTimeCommandAnnotation ("GrowLoopPolygonSelectionRegion")) ; setParent -m ..; menuItem -label (uiRes("m_polyConvertMM.kToFacePath")) -command "SelectFacePath" -annotation (getRunTimeCommandAnnotation ("SelectFacePath")) ; menuItem -label (uiRes("m_polyConvertMM.kToUVShell")) -command "ConvertSelectionToUVShell" -annotation (getRunTimeCommandAnnotation ("ConvertSelectionToUVShell")) ; menuItem -label (uiRes("m_polyConvertMM.kToShell")) -command "ConvertSelectionToShell" -annotation (getRunTimeCommandAnnotation ("ConvertSelectionToShell")) ; menuItem -label (uiRes("m_polyConvertMM.kToShellBorder")) -command "ConvertSelectionToShellBorder" -annotation (getRunTimeCommandAnnotation ("ConvertSelectionToShellBorder")) ; menuItem -divider true; menuItem -label (uiRes("m_polyConvertMM.kSelectBorderEdgeTool")) -annotation (getRunTimeCommandAnnotation ("SelectBorderEdgeTool")) -command ("SelectBorderEdgeTool") ; menuItem -divider true; menuItem -label (uiRes("m_polyConvertMM.kSelectionBoundary")) -command "SelectPolygonSelectionBoundary" -annotation (getRunTimeCommandAnnotation ("SelectPolygonSelectionBoundary")) ; menuItem -label (uiRes("m_polyConvertMM.kSelectionConstraints")) -command "PolygonSelectionConstraints" -annotation (getRunTimeCommandAnnotation ("PolygonSelectionConstraints")) ; setParent -menu ..; // allow user to define a proc with additional menu items if (`exists polyConvertUserMM`) polyConvertUserMM $parent; } }