// =========================================================================== // 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. // =========================================================================== proc setUITemplates() { if (`uiTemplate -exists ModelPanelIconBarUITemplate`) { deleteUI -uiTemplate ModelPanelIconBarUITemplate; } uiTemplate ModelPanelIconBarUITemplate; iconTextButton -defineTemplate ModelPanelIconBarUITemplate -width 18 -height 18; iconTextCheckBox -defineTemplate ModelPanelIconBarUITemplate -width 18 -height 18; setUITemplate -pushTemplate ModelPanelIconBarUITemplate; } proc addPopupMenuForButton(string $parent, string $modelEditor, string $postCmd) { string $fullName = `popupMenu -parent $parent -postMenuCommand $postCmd`; string $cmd = ($postCmd + " " + $fullName + " " + $modelEditor); popupMenu -e -postMenuCommand $cmd $fullName; } proc string addAnIconButton(string $modelEditor, string $parent, string $btnName, string $icon, string $ann, string $cmd) { string $callbackCmd = ($cmd + "(\"" + $btnName + "\", \"" + $modelEditor + "\", \"" + $parent + "\")"); return `iconTextButton -image $icon -command ($callbackCmd) -annotation $ann $btnName`; } proc string addAnIconCheckBoxButton(string $modelEditor, string $parent, string $btnName, string $icon, string $ann, string $cmd) { string $callbackCmd = ($cmd + "(\"" + $btnName + "\", \"" + $modelEditor + "\", \"" + $parent + "\"); restoreLastPanelWithFocus();"); return `iconTextCheckBox -image $icon -changeCommand ($callbackCmd) -annotation $ann $btnName`; } proc string[] createShadingSection(string $modelEditor, string $parent) { string $groups[7]; string $wAnn = (uiRes("m_createModelPanelBar.kWireframeAnnot")); string $smAnn = (uiRes("m_createModelPanelBar.kShadeAnnot")); string $udAnn = (uiRes("m_createModelPanelBar.kUseDefaultMaterialAnnot")); string $wosAnn = (uiRes("m_createModelPanelBar.kWOSAnnot")); string $lAnn = (uiRes("m_createModelPanelBar.kLightsAnnot")); string $shAnn = (uiRes("m_createModelPanelBar.kShadowsAnnot")); string $tAnn = (uiRes("m_createModelPanelBar.kTexturedAnnot")); $groups[0] = addAnIconCheckBoxButton($modelEditor, $parent, "WireframeBtn", "WireFrame.png", $wAnn, "modelPanelBarShadingCallback"); $groups[1] = addAnIconCheckBoxButton($modelEditor, $parent, "ShadedBtn", "Shaded.png", $smAnn, "modelPanelBarShadingCallback"); $groups[2] = addAnIconCheckBoxButton($modelEditor, $parent, "UseDefaultMaterialBtn", "UseDefaultMaterial.png", $udAnn, "modelPanelBarShadingCallback"); iconTextCheckBox -e -version "2015" $groups[2]; $groups[3] = addAnIconCheckBoxButton($modelEditor, $parent, "WireframeOnShadedBtn", "WireFrameOnShaded.png", $wosAnn, "modelPanelBarShadingCallback"); $groups[4] = addAnIconCheckBoxButton($modelEditor, $parent, "TexturedBtn", "Textured.png", $tAnn, "modelPanelBarShadingCallback"); $groups[5] = addAnIconCheckBoxButton($modelEditor, $parent, "LightBtn", "Light.png", $lAnn, "modelPanelBarShadingCallback"); $groups[6] = addAnIconCheckBoxButton($modelEditor, $parent, "ShadowsBtn", "Shadows.png", $shAnn, "modelPanelBarShadingCallback"); return $groups; } proc string[] createShadingOptionsSection(string $modelEditor, string $parent) { global int $gModelPanelToolBarV2ScriptJob = -1; string $groups[4]; string $ssaoAnn = (uiRes("m_createModelPanelBar.kSSAOAnnot")); string $mbAnn = (uiRes("m_createModelPanelBar.kMotionBlurAnnot")); string $msaaAnn = (uiRes("m_createModelPanelBar.kMSAAAnnot")); string $dofAnn = (uiRes("m_createModelPanelBar.kDOFAnn")); $groups[0] = addAnIconCheckBoxButton($modelEditor, $parent, "SSAOBtn", "SSAO.png", $ssaoAnn, "modelPanelBarShadingOptionsCallback"); $groups[1] = addAnIconCheckBoxButton($modelEditor, $parent, "MBBtn", "MotionBlur.png", $mbAnn, "modelPanelBarShadingOptionsCallback"); $groups[2] = addAnIconCheckBoxButton($modelEditor, $parent, "MSAABtn", "MultisampleAA.png", $msaaAnn, "modelPanelBarShadingOptionsCallback"); $groups[3] = addAnIconCheckBoxButton($modelEditor, $parent, "DOFBtn", "DepthOfField.png", $dofAnn, "modelPanelBarShadingCallback"); if (-1 == $gModelPanelToolBarV2ScriptJob) { $gModelPanelToolBarV2ScriptJob = `scriptJob -attributeChange hardwareRenderingGlobals.ssaoEnable updateModelPanelBarV2Settings`; scriptJob -attributeChange hardwareRenderingGlobals.motionBlurEnable updateModelPanelBarV2Settings; scriptJob -attributeChange hardwareRenderingGlobals.multiSampleEnable updateModelPanelBarV2Settings; scriptJob -e "SceneOpened" updateModelPanelBarV2Settings; } return $groups; } proc string[] createCameraSection(string $modelEditor, string $parent) { string $groups[6]; string $scAnn = (uiRes("m_createModelPanelBar.kCameraAnnot")); string $caAnn = (uiRes("m_createModelPanelBar.kCameraAttrsAnnot")); string $bAnn = (uiRes("m_createModelPanelBar.kBookmarksAnnot")); string $gpAnn = (uiRes("m_createModelPanelBar.kGreasePencilAnnot")); string $pzAnn = (uiRes("m_createModelPanelBar.kPanZoomAnnot")); string $ipAnn = (uiRes("m_createModelPanelBar.kImagePlaneAnnot")); string $lcAnn = (uiRes("m_createModelPanelBar.kLockCameraAnnot")); $groups[0] = addAnIconButton($modelEditor, $parent, "CameraBtn", "Camera.png", $scAnn, "modelPanelBarCameraCallback"); $groups[1] = addAnIconCheckBoxButton($modelEditor, $parent, "LockCameraBtn", "CameraLock.png", $lcAnn, "modelPanelBarCameraCallback"); iconTextCheckBox -e -version "2017" $groups[1]; $groups[2] = addAnIconButton($modelEditor, $parent, "CameraAEBtn", "CameraAE.png", $caAnn, "modelPanelBarCameraCallback"); $groups[3] = addAnIconButton($modelEditor, $parent, "BookmarkBtn", "Bookmark.png", $bAnn, "modelPanelBarCameraCallback"); $groups[5] = addAnIconCheckBoxButton($modelEditor, $parent, "PanZoomBtn", "PanZoom.png", $pzAnn, "modelPanelBarCameraCallback"); $groups[6] = addAnIconButton($modelEditor, $parent, "GreasePencilBtn", "GreasePencil.png", $gpAnn, "modelPanelBarCameraCallback"); iconTextButton -e -version "2014" $groups[6]; $groups[4] = addAnIconButton($modelEditor, $parent, "ImageplaneBtn", "ImagePlane.png", $ipAnn, "modelPanelBarCameraCallback"); addPopupMenuForButton($groups[3], $modelEditor, "modelPanelBarCreate3DBookmarkPopup"); addPopupMenuForButton($groups[5], $modelEditor, "modelPanelBarCreate2DBookmarkPopup"); addPopupMenuForButton($groups[0], $modelEditor, "modelPanelBarCreateCameraPopup"); addPopupMenuForButton($groups[4], $modelEditor, "modelPanelBarCreateImagePlanePopup"); return $groups; } proc string[] createIsolateSelectSection(string $modelEditor, string $parent) { string $groups[1]; string $isAnn = (uiRes("m_createModelPanelBar.kIsolateSelectAnnot")); $groups[0] = addAnIconCheckBoxButton($modelEditor, $parent, "IsolateSelectedBtn", "IsolateSelected.png", $isAnn, "modelPanelBarIsolateSelectCallback"); addPopupMenuForButton($groups[0], $modelEditor, "modelPanelBarIsolateSelectPopup"); return $groups; } proc string[] createXraySection(string $modelEditor, string $parent) { string $groups[3]; string $xrAnn = (uiRes("m_createModelPanelBar.kXrayAnnot")); string $xraAnn = (uiRes("m_createModelPanelBar.kXRayCompsAnnot")); string $xrbAnn = (uiRes("m_createModelPanelBar.kXRayJointsAnnot")); $groups[0] = addAnIconCheckBoxButton($modelEditor, $parent, "XRayBtn", "XRay.png", $xrAnn, "modelPanelBarXRayCallback"); $groups[1] = addAnIconCheckBoxButton($modelEditor, $parent, "XRayActiveComponentsBtn", "XRayActiveComponents.png", $xraAnn, "modelPanelBarXRayCallback"); $groups[2] = addAnIconCheckBoxButton($modelEditor, $parent, "XRayJointsBtn", "XRayJoints.png", $xrbAnn, "modelPanelBarXRayCallback"); return $groups; } proc string[] createDecorationsSection(string $modelEditor, string $parent) { string $groups[7]; string $gAnn = (uiRes("m_createModelPanelBar.kGridAnnot")); string $fgAnn = (uiRes("m_createModelPanelBar.kFilmAnnot")); string $rgAnn = (uiRes("m_createModelPanelBar.kResolutionAnnot")); string $gmAnn = (uiRes("m_createModelPanelBar.kGateMaskAnnot")); string $fcAnn = (uiRes("m_createModelPanelBar.kFieldChartAnnot")); string $saAnn = (uiRes("m_createModelPanelBar.kSafeActionAnnot")); string $stAnn = (uiRes("m_createModelPanelBar.kSafeTitleAnnot")); $groups[0] = addAnIconCheckBoxButton($modelEditor, $parent, "GridBtn", "Grid.png", $gAnn, "modelPanelBarDecorationsCallback"); $groups[1] = addAnIconCheckBoxButton($modelEditor, $parent, "FilmGateBtn", "FilmGate.png", $fgAnn, "modelPanelBarDecorationsCallback"); iconTextCheckBox -edit -ltVersion "2017" $groups[1]; $groups[2] = addAnIconCheckBoxButton($modelEditor, $parent, "ResolutionGateBtn", "ResolutionGate.png", $rgAnn, "modelPanelBarDecorationsCallback"); iconTextCheckBox -edit -ltVersion "2017" $groups[2]; $groups[3] = addAnIconCheckBoxButton($modelEditor, $parent, "GateMaskBtn", "GateMask.png", $gmAnn, "modelPanelBarDecorationsCallback"); iconTextCheckBox -edit -ltVersion "2017" $groups[3]; $groups[4] = addAnIconCheckBoxButton($modelEditor, $parent, "FieldChartBtn", "FieldChart.png", $fcAnn, "modelPanelBarDecorationsCallback"); $groups[5] = addAnIconCheckBoxButton($modelEditor, $parent, "SafeActionBtn", "SafeAction.png", $saAnn, "modelPanelBarDecorationsCallback"); $groups[6] = addAnIconCheckBoxButton($modelEditor, $parent, "SafeTitleBtn", "SafeTitle.png", $stAnn, "modelPanelBarDecorationsCallback"); addPopupMenuForButton($groups[0], $modelEditor, "modelPanelBarGridOptionsPopup"); return $groups; } proc attachGroup(string $form, string $groups[]) { int $i; int $previousGroup; int $numGroups = `size($groups)`; if ($numGroups > 0) { formLayout -edit -attachForm $groups[0] "top" 0 -attachNone $groups[0] "bottom" -attachForm $groups[0] "left" 1 -attachNone $groups[0] "right" $form; $previousGroup = 0; } for ($i=1; $i<$numGroups; $i++) { if ($groups[$i] != "") { formLayout -edit -attachForm $groups[$i] "top" 0 -attachNone $groups[$i] "bottom" -attachControl $groups[$i] "left" 1 $groups[$previousGroup] -attachNone $groups[$i] "right" $form; $previousGroup = $i; } } } proc string createToggleIcon(string $parent, int $index) { string $cmd = ("modelPanelBarToggleButtonCallback(\"" + $parent + "\", " + $index + ")"); string $toggleIcon = `iconTextButton -width 9 -command $cmd -i1 ShortOpenBar.png`; return $toggleIcon; } global proc createModelPanelBar(string $parent, string $modelEditor) { if (`frameLayout -q -exists $parent`) { string $currentParent = `setParent -query`; setParent $parent; string $flowLayout = `flowLayout`, $grpFormLayout; int $i, $numGroups = 0; string $mainGroups[], $subGroups[]; setUITemplates(); $mainGroups[$numGroups] = createToggleIcon($flowLayout, $numGroups); $numGroups++; $mainGroups[$numGroups] = `formLayout`; $subGroups = createCameraSection($modelEditor, $parent); attachGroup($mainGroups[$numGroups], $subGroups); clear $subGroups; setParent ..; $numGroups++; $mainGroups[$numGroups] = createToggleIcon($flowLayout, $numGroups); $numGroups++; $mainGroups[$numGroups] = `formLayout`; $subGroups = createDecorationsSection($modelEditor, $parent); attachGroup($mainGroups[$numGroups], $subGroups); clear $subGroups; setParent ..; $numGroups++; $mainGroups[$numGroups] = createToggleIcon($flowLayout, $numGroups); $numGroups++; $mainGroups[$numGroups] = `formLayout`; $subGroups = createShadingSection($modelEditor, $parent); attachGroup($mainGroups[$numGroups], $subGroups); clear $subGroups; setParent ..; $numGroups++; $mainGroups[$numGroups] = createToggleIcon($flowLayout, $numGroups); $numGroups++; $mainGroups[$numGroups] = `formLayout`; $subGroups = createShadingOptionsSection($modelEditor, $parent); attachGroup($mainGroups[$numGroups], $subGroups); clear $subGroups; setParent ..; $numGroups++; $mainGroups[$numGroups] = createToggleIcon($flowLayout, $numGroups); $numGroups++; $mainGroups[$numGroups] = `formLayout`; $subGroups = createIsolateSelectSection($modelEditor, $parent); attachGroup($mainGroups[$numGroups], $subGroups); clear $subGroups; setParent ..; $numGroups++; $mainGroups[$numGroups] = createToggleIcon($flowLayout, $numGroups); $numGroups++; $mainGroups[$numGroups] = `formLayout`; $subGroups = createXraySection($modelEditor, $parent); attachGroup($mainGroups[$numGroups], $subGroups); clear $subGroups; setParent ..; $numGroups++; // ADSK_CLR_MGT_BEGIN $mainGroups[$numGroups] = createToggleIcon($flowLayout, $numGroups); $numGroups++; $mainGroups[$numGroups] = `formLayout`; $subGroups = createColorManagementSection($modelEditor, $parent, ""); attachGroup($mainGroups[$numGroups], $subGroups); clear $subGroups; setParent ..; $numGroups++; // ADSK_CLR_MGT_END int $collapse = false; if ((!`optionVar -exists "collapseIconBarsInPanels"`) || ( `optionVar -query "collapseIconBarsInPanels"`)) { $collapse = true; } frameLayout -e -collapse $collapse $parent; setUITemplate -popTemplate; setParent $currentParent; } }