// =========================================================================== // 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: Nov 14 1996 // // Description: // This script creates the contexts that are used to handle // the interactions of the tools. The tools will not work // without these contexts. // // Input Arguments: // None. // // Return Value: // None. // // Notes: // // All of the tool scripts need to have these contexts // created before the ui part can be created. // // ***************************************************************** // WARNING WARNING WARNING WARNING WARNING WARNING // // Do not rename or remove anything from here without first // searching all scripts for references to these names! Just // because you put a context into the app does *not* mean that // you know everywhere it is being used. // // ***************************************************************** global proc rememberCtxSettings( string $ctxName ) // // This method sees if an optionVar has been defined // for the tool. If it has, the string it contains // is evaluated to set the tool settings. SuperContexts // should not be saved this way, since they have no // particular settings. // { if ( `optionVar -exists $ctxName` ){ string $cmd = `optionVar -q $ctxName`; catch( `eval($cmd)` ); } else { // create an empty option var so that this // will be saved. optionVar -sv $ctxName ""; } } //global proc initContexts() { // Create Transform Tools global string $gSelect = "selectSuperContext"; global string $gLasso = "lassoSelectContext"; global string $gPaintSelect = "artSelectContext"; global string $gMove = "moveSuperContext"; global string $gRotate = "RotateSuperContext"; global string $gScale = "scaleSuperContext"; global string $gXformManip = "xformManipContext"; global string $gMoveNormal = "MoveNormal"; global string $gTransform = "Transform"; global string $gMoveLimits = "MoveLimits"; global string $gRotateLimits = "RotateLimits"; global string $gScaleLimits = "ScaleLimits"; global string $gPropMod = "PropMod"; global string $gPolyNormEdit = "polyVertexNormalEdit"; global string $gShowManip = "ShowManips"; global string $gSoftMod = "softModContext"; global string $gPolyshortestEdgePath = "polyShortestEdgePathContext"; global string $gSoftSelectOptionsCtx = "SoftSelectOptionsContext"; global string $gPanZoomCtx = "PanZoomContext"; string $tumble = "tumbleContext"; string $track = "trackSuperContext"; string $dolly = "dollySuperContext"; if (`isTrue "BaseMayaExists"`) { global string $gMainWindow; // // Create the contexts for the select tool // superCtx $gSelect; // Attach a modeling selection context rememberCtxSettings `selectContext nurbsSelect`; superCtx -edit -attach nurbsSelect $gSelect; // don't need to remember superContext settings // Attach a lasso pick context to the model views, // and the texture view // superCtx $gLasso; rememberCtxSettings `lassoContext SelectLasso`; superCtx -edit -attach SelectLasso $gLasso; rememberCtxSettings `textureLassoContext TextureLasso`; superCtx -edit -attach TextureLasso $gLasso; // Create context for the paint select tool // rememberCtxSettings `artSelectCtx $gPaintSelect`; // Attach a hypergraph selection context // expSelectContext expSelectContext; // superCtx -edit -attach expSelectContext $gSelect; if (`isTrue "RenderingExists"`) { rememberCtxSettings `renderWindowSelectContext renderWindowSelectContextItem`; superCtx -edit -attach renderWindowSelectContextItem $gSelect; } // // Create the contexts for the move tool // superCtx $gMove; // Attach the manipulator move context rememberCtxSettings `manipMoveContext Move`; superCtx -edit -attach Move $gMove; // Create additional single channel manips // manipMoveContext -ah 0 manipTXContext; manipMoveContext -ah 1 manipTYContext; manipMoveContext -ah 2 manipTZContext; // // Create the context for the move normal tool // rememberCtxSettings `manipMoveContext -i1 "moveNormal.png" -mode 3 $gMoveNormal`; // // Create the contexts for the scale tool // superCtx $gScale; // Attach the manipulator scale context rememberCtxSettings `manipScaleContext Scale`; superCtx -edit -attach Scale $gScale ; // Create additional single channel manips // for scale // manipScaleContext -ah 0 manipSXContext; manipScaleContext -ah 1 manipSYContext; manipScaleContext -ah 2 manipSZContext; // Create context for Universal Manipulator scriptCtx -i1 "globalManip.png" -title (uiRes("m_initContexts.kUniversalManipulator")) -baseClassName "xformManipulator" -toolStart "setXformManip -s off" -toolFinish "setXformManip -s on" -totalSelectionSets 1 -exitUponCompletion false -setAutoComplete false $gXformManip; // Create context for the softMod tool softModCtx -i1 "softMod.png" $gSoftMod; // Create contexts for manipulators // superCtx $gRotate; rememberCtxSettings `manipRotateContext Rotate`; superCtx -edit -attach Rotate $gRotate ; if (`isTrue "PolyTextureExists"`){ rememberCtxSettings `texSelectContext transformTexSelectContext`; superCtx -edit -attach transformTexSelectContext $gSelect; rememberCtxSettings `texMoveContext texMoveContext`; superCtx -edit -attach texMoveContext $gMove; rememberCtxSettings `texScaleContext texScaleContext`; superCtx -edit -attach texScaleContext $gScale; rememberCtxSettings `texRotateContext texRotateContext`; superCtx -edit -attach texRotateContext $gRotate; } // Create additional single channel manips // for rotate // manipRotateContext -ah 0 manipRXContext; manipRotateContext -ah 1 manipRYContext; manipRotateContext -ah 2 manipRZContext; rememberCtxSettings `srtContext -i1 "srt.png" $gTransform`; rememberCtxSettings `manipMoveLimitsCtx -i1 "moveLimits.xpm" $gMoveLimits`; rememberCtxSettings `manipScaleLimitsCtx -i1 "scaleLimits.xpm" $gScaleLimits`; rememberCtxSettings `manipRotateLimitsCtx -i1 "rotateLimits.xpm" $gRotateLimits`; rememberCtxSettings `propModCtx -i1 "propMod.png" $gPropMod`; rememberCtxSettings `polyVertexNormalCtx -i1 "vertexNormalEdit.png" $gPolyNormEdit`; // Create the contexts for the showManip tool // superCtx -i1 "showManip.png" $gShowManip; // Attach the show manipulator context // rememberCtxSettings `showManipCtx showManip3D`; superCtx -edit -attach showManip3D $gShowManip; if (`isTrue "PolyTextureExists"`){ // Attach the texture view context // rememberCtxSettings `texManipContext showManipTextureContext`; superCtx -edit -attach showManipTextureContext $gShowManip; } scriptJob -permanent -parent $gMainWindow -event ToolChanged changeToolIcon; // Setup the Fly Through Context. // source "flyThroughContextSetup.mel"; // Create the contexts for the Align Tool and the Snap Together Tool. // rememberCtxSettings `alignCtx -i1 "alignTool.png" alignToolCtx`; rememberCtxSettings `snapTogetherCtx -i1 "snapTogetherTool.png" snapTogetherToolCtx`; rememberCtxSettings `softSelectOptionsCtx $gSoftSelectOptionsCtx`; } // // Create Object Edit Tools // if (`isTrue "DeformersExists"`) { rememberCtxSettings `wireContext -i1 "wire.png" wireCtx`; rememberCtxSettings `wrinkleContext -i1 "wrinkle.png" wrinkleCtx`; rememberCtxSettings `setEditCtx -i1 "setEdit.png" setEditContext`; } if (`isTrue "BaseMayaExists"`) { // // Create View Tools // rememberCtxSettings `tumbleCtx -ac true -lt true -i1 "tumble.png" $tumble`; rememberCtxSettings `trackCtx -ac true trackContext`; superCtx -i1 "track.png" $track; superCtx -edit -attach trackContext $track; rememberCtxSettings `dollyCtx -oz true -ac true -ld true dollyContext`; superCtx -i1 "dolly.png" $dolly; superCtx -edit -attach dollyContext $dolly; string $yawPitchTool = (uiRes("m_initContexts.kYawPitchTool")); string $azimuthElevationTool = (uiRes("m_initContexts.kAzimuthElevationTool")); rememberCtxSettings `orbitCtx -tn $yawPitchTool -i1 "yawPitch.png" yawPitchContext`; rememberCtxSettings `orbitCtx -lo true -tn $azimuthElevationTool -i1 "azimuthElevation.png" azimuthElevationContext`; rememberCtxSettings `rollCtx -i1 "roll.png" rollContext`; rememberCtxSettings `walkCtx -i1 "walk.png" walkContext`; rememberCtxSettings `boxZoomCtx boxZoomContext`; superCtx -i1 "boxZoom.png" boxZoomSuperContext; superCtx -edit -attach boxZoomContext boxZoomSuperContext; string $panZoomTool = (uiRes("m_initContexts.kPanZoomTool")); rememberCtxSettings `panZoomCtx -toolName $panZoomTool -alternateContext true -panMode -i1 "camPanZoom.png" $gPanZoomCtx`; } if (`isTrue "ExplorerExists"`) { if (`exists view2dToolCtx`) { rememberCtxSettings `view2dToolCtx -tr track2dContext`; superCtx -edit -attach track2dContext $track; rememberCtxSettings `view2dToolCtx -do dolly2dContext`; superCtx -edit -attach dolly2dContext $dolly; rememberCtxSettings `view2dToolCtx -bz boxZoom2dContext`; superCtx -edit -attach boxZoom2dContext boxZoomSuperContext; } } if (`isTrue "AnimationUIExists"`) { // Attach a graph editor selection context rememberCtxSettings `selectKeyCtx selectKeyContext`; superCtx -edit -attach selectKeyContext $gSelect; // Attach a selection context for keyframe region of the dope sheet rememberCtxSettings `keyframeRegionSelectKeyCtx keyframeRegionSelectKeyContext`; superCtx -edit -attach keyframeRegionSelectKeyContext $gSelect; // Attach a region selection context for keyframe region of the dope sheet // rememberCtxSettings `selectKeyframeRegionCtx selectKeyframeRegionContext`; // superCtx -edit -attach selectKeyframeRegionContext $gLasso; // Attach a graph editor move context rememberCtxSettings `moveKeyCtx moveKeyContext`; superCtx -edit -attach moveKeyContext $gMove; // Attach a move context for the keyframe region of the dope sheet rememberCtxSettings `keyframeRegionMoveKeyCtx keyframeRegionMoveKeyContext`; superCtx -edit -attach keyframeRegionMoveKeyContext $gMove; // Attach a graph editor scale context rememberCtxSettings `scaleKeyCtx scaleKeyContext`; superCtx -edit -attach scaleKeyContext $gScale; // Attach a scale context for the keyframe region of the dope sheet rememberCtxSettings `keyframeRegionScaleKeyCtx keyframeRegionScaleKeyContext`; superCtx -edit -attach keyframeRegionScaleKeyContext $gScale; // // Create Animation Tools // // global string $gConstrainedMotion = "ConstrainedMotion"; superCtx -i1 "dopeSheetSelect.png" selectKeyframeSuperContext; superCtx -edit -attach selectKeyContext selectKeyframeSuperContext; rememberCtxSettings `selectKeyframeRegionCtx selectKeyframeRegionContext`; superCtx -edit -attach selectKeyframeRegionContext selectKeyframeSuperContext; superCtx -i1 "directKeySmall.png" directKeySuperContext; rememberCtxSettings `directKeyCtx directKeyContext`; superCtx -edit -attach directKeyContext directKeySuperContext; rememberCtxSettings `keyframeRegionDirectKeyCtx keyframeRegionDirectKeyContext`; superCtx -edit -attach keyframeRegionDirectKeyContext directKeySuperContext; superCtx -i1 "insertKeySmall.png" setKeySuperContext; rememberCtxSettings `setKeyCtx setKeyContext`; superCtx -edit -attach setKeyContext setKeySuperContext; rememberCtxSettings `keyframeRegionSetKeyCtx keyframeRegionSetKeyContext`; superCtx -edit -attach keyframeRegionSetKeyContext setKeySuperContext; superCtx -i1 "setKeySmall.png" insertKeySuperContext; rememberCtxSettings `insertKeyCtx insertKeyContext`; superCtx -edit -attach insertKeyContext insertKeySuperContext; rememberCtxSettings `keyframeRegionInsertKeyCtx keyframeRegionInsertKeyContext`; superCtx -edit -attach keyframeRegionInsertKeyContext insertKeySuperContext; superCtx -i1 "latticeDeformKeySmall.png" latticeDeformKeySuperContext; rememberCtxSettings `latticeDeformKeyCtx latticeDeformKeyContext`; superCtx -edit -attach latticeDeformKeyContext latticeDeformKeySuperContext; superCtx -i1 "regionSelectKeySmall.png" regionSelectKeySuperContext; rememberCtxSettings `regionSelectKeyCtx regionSelectKeyContext`; superCtx -edit -attach regionSelectKeyContext regionSelectKeySuperContext; superCtx -i1 "retimeKeySmall.png" retimeKeySuperContext; rememberCtxSettings `retimeKeyCtx retimeKeyContext`; superCtx -edit -attach retimeKeyContext retimeKeySuperContext; superCtx -i1 "greasePencilSmall.png" greasePencilSuperContext; source "greasePencilContext"; superCtx -edit -attach greasePencilContext greasePencilSuperContext; // $startTime = `playbackOptions -q -min`; // $endTime = `playbackOptions -q -max`; // pathAnimationCtx -stu $startTime -etu $endTime pathAnimationContext; // // markerCtx -pm 1 -om 0 markerContext; // // constrainedMotionCtx $gConstrainedMotion; rememberCtxSettings `graphTrackCtx graphTrackContext`; superCtx -edit -attach graphTrackContext $track; rememberCtxSettings `keyframeRegionTrackCtx keyframeRegionTrackContext`; superCtx -edit -attach keyframeRegionTrackContext $track; rememberCtxSettings `graphDollyCtx graphDollyContext`; superCtx -edit -attach graphDollyContext $dolly; rememberCtxSettings `keyframeRegionDollyCtx keyframeRegionDollyContext`; superCtx -edit -attach keyframeRegionDollyContext $dolly; rememberCtxSettings `skinBindCtx -i1 "interactiveBindTool.png" skinBindingContext`; } if (`isTrue "PolyTextureExists"`){ // Create texture window track,dolly,zoom contexts. // if (`exists texWinToolCtx`) { rememberCtxSettings `texWinToolCtx -tr tracktwContext`; superCtx -edit -attach tracktwContext $track; rememberCtxSettings `texWinToolCtx -do dollytwContext`; superCtx -edit -attach dollytwContext $dolly; rememberCtxSettings `texWinToolCtx -bz boxZoomtwContext`; superCtx -edit -attach boxZoomtwContext boxZoomSuperContext; superCtx -i1 "uvlatticeLarge.png" texLatticeDeformSuperContext; rememberCtxSettings `texLatticeDeformContext texLatticeDeformCtx`; superCtx -edit -attach texLatticeDeformCtx texLatticeDeformSuperContext; superCtx -i1 "textureEditorSmudgeUVLarge.png" texSmudgeUVSuperContext; rememberCtxSettings `texSmudgeUVContext texSmudgeUVCtx`; superCtx -edit -attach texSmudgeUVCtx texSmudgeUVSuperContext; superCtx -i1 "moveUVShellLarge.png" texMoveUVShellSuperContext; rememberCtxSettings `texMoveUVShellContext texMoveUVShellCtx`; superCtx -edit -attach texMoveUVShellCtx texMoveUVShellSuperContext; superCtx -i1 "texSmoothLarge.png" texSmoothSuperContext; rememberCtxSettings `texSmoothContext texSmoothCtx`; superCtx -edit -attach texSmoothCtx texSmoothSuperContext; superCtx -i1 "tweakUVLarge.png" texTweakSuperContext; rememberCtxSettings `texTweakUVContext texTweakContext`; superCtx -edit -attach texTweakContext texTweakSuperContext; } // // Primitive Creation Contexts // // Poly rememberCtxSettings `createPolyCubeCtx -i1 "polyCube.png" CreatePolyCubeCtx`; rememberCtxSettings `createPolyCylinderCtx -i1 "polyCylinder.png" CreatePolyCylinderCtx`; rememberCtxSettings `createPolySphereCtx -i1 "polySphere.png" CreatePolySphereCtx`; rememberCtxSettings `createPolyConeCtx -i1 "polyCone.png" CreatePolyConeCtx`; rememberCtxSettings `createPolyPlaneCtx -i1 "polyMesh.png" CreatePolyPlaneCtx`; rememberCtxSettings `createPolyTorusCtx -i1 "polyTorus.png" CreatePolyTorusCtx`; rememberCtxSettings `createPolyPrismCtx -i1 "polyPrism.png" CreatePolyPrismCtx`; rememberCtxSettings `createPolyPyramidCtx -i1 "polyPyramid.png" CreatePolyPyramidCtx`; rememberCtxSettings `createPolyPipeCtx -i1 "polyPipe.png" CreatePolyPipeCtx`; rememberCtxSettings `createPolyHelixCtx -i1 "polyHelix.png" CreatePolyHelixCtx`; rememberCtxSettings `createPolySoccerBallCtx -i1 "polySoccerBall.png" CreatePolySoccerBallCtx`; rememberCtxSettings `createPolyPlatonicSolidCtx -i1 "polySoccerBall.png" CreatePolyPlatonicSolidCtx`; // Nurbs rememberCtxSettings `createNurbsSphereCtx -i1 "sphere.png" CreateNurbsSphereCtx`; rememberCtxSettings `createNurbsPlaneCtx -i1 "plane.png" CreateNurbsPlaneCtx`; rememberCtxSettings `createNurbsCylinderCtx -i1 "cylinder.png" CreateNurbsCylinderCtx`; rememberCtxSettings `createNurbsConeCtx -i1 "cone.png" CreateNurbsConeCtx`; rememberCtxSettings `createNurbsCubeCtx -i1 "cube.png" CreateNurbsCubeCtx`; rememberCtxSettings `createNurbsTorusCtx -i1 "torus.png" CreateNurbsTorusCtx`; rememberCtxSettings `createNurbsCircleCtx -i1 "circle.png" CreateNurbsCircleCtx`; rememberCtxSettings `createNurbsSquareCtx -i1 "square.png" CreateNurbsSquareCtx`; // // Create PolyEdit Tools // rememberCtxSettings `polyCreateFacetCtx -i1 "polyCreateFacet.png" polyCreateFacetContext`; rememberCtxSettings `polyAppendFacetCtx -i1 "polyAppendFacet.png" polyAppendFacetContext`; rememberCtxSettings `polySplitCtx -i1 "polySplitFacet.png" polySplitContext`; rememberCtxSettings `polySplitCtx2 -i1 "polySplitFacet.png" polySplitContext2`; rememberCtxSettings `polySelectEditCtx -i1 "polySplitEdgeRing.png" polySelectEditContext`; rememberCtxSettings `targetWeldCtx -i1 "weld_NEX32.png" polyMergeVertexContext`; rememberCtxSettings `polyMergeEdgeCtx -i1 "polyMergeEdge.png" polyMergeEdgeContext`; rememberCtxSettings `polyMergeFacetCtx -i1 "polyMergeFacet.png" polyMergeFacetContext`; rememberCtxSettings `polyCutCtx -i1 "polyCut.png" polyCutContext`; rememberCtxSettings `polyCreaseCtx -i1 "polyCrease.png" polyCreaseContext`; rememberCtxSettings `polySelectCtx -i1 "polySelectTool.png" polySelectContext`; rememberCtxSettings `polySlideEdgeCtx -i1 "slideEdgeTool.png" polySlideEdgeContext`; // // Poly Shortest Edge Path Tool // superCtx -i1 "textureEditorShortestEdgePathLarge.png" $gPolyshortestEdgePath; rememberCtxSettings `polyShortestPathCtx PolyViewPortShortestPath`; superCtx -edit -attach PolyViewPortShortestPath $gPolyshortestEdgePath; rememberCtxSettings `texSelectShortestPathCtx PolyTexShortestPath`; superCtx -edit -attach PolyTexShortestPath $gPolyshortestEdgePath; superCtx -i1 "CutSewUVTool.png" superCutUVContext; // UV Brush rememberCtxSettings `texCutContext texCutUVContext`; superCtx -edit -attach texCutUVContext superCutUVContext; // 3D UV Cut rememberCtxSettings `polyCutUVCtx -i1 "CutSewUVTool.png" PolyCutUVCtx`; superCtx -edit -attach PolyCutUVCtx superCutUVContext; source "setUVSculptTool.mel"; } // Create Dynamics Tools int $dynamicsIsLicensed = `licenseCheck -mode "edit" -type "fx"`; if (`isTrue "DynamicsUIExists"` && $dynamicsIsLicensed) { string $dynName; if ( !catch( $dynName = `dynParticleCtx -i1 "particle.png" dynParticleContext` ) ){ rememberCtxSettings $dynName; } } if (`isTrue "KinematicsExists"`) { // // Create Kinematics Tools // rememberCtxSettings `jointCtx -i1 "kinJoint.png" jointContext`; rememberCtxSettings `ikHandleCtx -i1 "kinHandle.png" ikHandleContext`; rememberCtxSettings `ikSplineHandleCtx -i1 "kinSplineHandle.png" ikSplineHandleContext`; rememberCtxSettings `insertJointCtx -i1 "kinInsert.png" insertJointContext`; } if (`isTrue "DimensionsExists"`) { // // Create Dimension Tools // rememberCtxSettings `distanceDimContext -i1 "distanceDim.png" distanceDimContext`; rememberCtxSettings `paramDimContext -i1 "paramDim.png" paramDimContext`; rememberCtxSettings `arcLenDimContext -i1 "arcLengthDim.png" arcLenDimContext`; } if (`isTrue "RenderingExists"`) { // // Create Rendering Tools // texturePlacementContext -i1 "texturePlacement.png" defaultTexturePlacementContext; projectionContext -image1 "polyInteractiveTexturePlacement.png" shadingProjectionContext; } if (`isTrue "MayaCreatorExists"`) { global string $gCreatorWireCtx; $gCreatorWireCtx = `dynWireCtx`; rememberCtxSettings $gCreatorWireCtx; } source "setMeshSculptTool.mel"; }