def createChildren(self): # FreePointTriadManip self.fFreePointTriadManip = self.addFreePointTriadManip( "freePointTriadManip", "point") freePointTriadManipFn = OpenMayaUI.MFnFreePointTriadManip( self.fFreePointTriadManip) # DirectionManip self.fDirectionManip = self.addDirectionManip("directionManip", "direction") directionManipFn = OpenMayaUI.MFnDirectionManip(self.fDirectionManip) # ToggleManip self.fToggleManip = self.addToggleManip("toggleManip", "toggle") toggleManipFn = OpenMayaUI.MFnToggleManip(self.fToggleManip) # StateManip self.fStateManip = self.addStateManip("stateManip", "state") stateManipFn = OpenMayaUI.MFnStateManip(self.fStateManip) # DiscManip self.fDiscManip = self.addDiscManip("discManip", "angle") discManipFn = OpenMayaUI.MFnDiscManip(self.fDiscManip) # CircleSweepManip self.fCircleSweepManip = self.addCircleSweepManip( "circleSweepManip", "angle") circleSweepManipFn = OpenMayaUI.MFnCircleSweepManip( self.fCircleSweepManip) circleSweepManipFn.setCenterPoint(OpenMaya.MPoint(0, 0, 0)) circleSweepManipFn.setNormal(OpenMaya.MVector(0, 1, 0)) circleSweepManipFn.setRadius(2.0) circleSweepManipFn.setDrawAsArc(True) # DistanceManip self.fDistanceManip = self.addDistanceManip("distanceManip", "distance") distanceManipFn = OpenMayaUI.MFnDistanceManip(self.fDistanceManip) distanceManipFn.setStartPoint(OpenMaya.MPoint(0, 0, 0)) distanceManipFn.setDirection(OpenMaya.MVector(0, 1, 0)) # RotateManip self.fRotateManip = self.addRotateManip("RotateManip", "rotation") rotateManipFn = OpenMayaUI.MFnRotateManip(self.fRotateManip) # ScaleManip self.fScaleManip = self.addScaleManip("scaleManip", "scale") scaleManipFn = OpenMayaUI.MFnScaleManip(self.fScaleManip)
self.fScaleManip = self.addScaleManip("scaleManip", "scale") scaleManipFn = OpenMayaUI.MFnScaleManip(self.fScaleManip) def connectToDependNode(self, node): # Get the DAG path dagNodeFn = OpenMaya.MFnDagNode(node) dagNodeFn.getPath(self.fNodePath) parentNode = dagNodeFn.parent(0) parentNodeFn = OpenMaya.MFnDagNode(parentNode) # Connect the plugs nodeFn = OpenMaya.MFnDependencyNode() nodeFn.setObject(node) # FreePointTriadManip freePointTriadManipFn = OpenMayaUI.MFnFreePointTriadManip(self.fFreePointTriadManip) try: translationPlug = parentNodeFn.findPlug("t") freePointTriadManipFn.connectToPointPlug(translationPlug) except: pass # DirectionManip directionManipFn = OpenMayaUI.MFnDirectionManip() directionManipFn.setObject(self.fDirectionManip) try: directionPlug = nodeFn.findPlug("arrow2Direction") directionManipFn.connectToDirectionPlug(directionPlug) startPointIndex = directionManipFn.startPointIndex() self.addPlugToManipConversion(startPointIndex) except: pass # DistanceManip distanceManipFn = OpenMayaUI.MFnDistanceManip() distanceManipFn.setObject(self.fDistanceManip) try: sizePlug = nodeFn.findPlug("size") distanceManipFn.connectToDistancePlug(sizePlug) startPointIndex = distanceManipFn.startPointIndex() self.addPlugToManipConversion(startPointIndex) except: pass # CircleSweepManip circleSweepManipFn = OpenMayaUI.MFnCircleSweepManip(self.fCircleSweepManip) try: arrow1AnglePlug = nodeFn.findPlug("arrow1Angle") circleSweepManipFn.connectToAnglePlug(arrow1AnglePlug) centerIndex = circleSweepManipFn.centerIndex() self.addPlugToManipConversion(centerIndex) except: pass # DiscManip discManipFn = OpenMayaUI.MFnDiscManip(self.fDiscManip) try: arrow3AnglePlug = nodeFn.findPlug("arrow3Angle") discManipFn.connectToAnglePlug(arrow3AnglePlug) centerIndex = discManipFn.centerIndex() self.addPlugToManipConversion(centerIndex) except: pass # StateManip stateManipFn = OpenMayaUI.MFnStateManip(self.fStateManip) try: statePlug = nodeFn.findPlug("state") stateManipFn.connectToStatePlug(statePlug) positionIndex = stateManipFn.positionIndex() self.addPlugToManipConversion(positionIndex) except: pass # ToggleManip toggleManipFn = OpenMayaUI.MFnToggleManip(self.fToggleManip) try: togglePlug = nodeFn.findPlug("toggle") toggleManipFn.connectToTogglePlug(togglePlug) startPointIndex = toggleManipFn.startPointIndex() self.addPlugToManipConversion(startPointIndex) except: pass # Determine the transform node for the locator transformPath = OpenMaya.MDagPath(self.fNodePath) transformPath.pop() transformNode = OpenMaya.MFnTransform(transformPath) # RotateManip rotateManipFn = OpenMayaUI.MFnRotateManip(self.fRotateManip) try: rotatePlug = transformNode.findPlug("rotate") rotateManipFn.connectToRotationPlug(rotatePlug) rotateManipFn.displayWithNode(node) except: pass # ScaleManip scaleManipFn = OpenMayaUI.MFnScaleManip(self.fScaleManip) try: scalePlug = transformNode.findPlug("scale") scaleManipFn.connectToScalePlug(scalePlug) scaleManipFn.displayWithNode(node) except: