예제 #1
0
    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)
예제 #2
0
		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: