示例#1
0
	def connectToDependNode(self, node):
		nodeFn = OpenMaya.MFnDependencyNode(node)
		
		try:
			syPlug = nodeFn.findPlug("scaleY")
			tPlug = nodeFn.findPlug("translate")
			distanceManipFn = OpenMayaUI.MFnDistanceManip(self.fDistanceManip)
			distanceManipFn.connectToDistancePlug(syPlug)
			freePointManipFn = OpenMayaUI.MFnFreePointTriadManip(self.fFreePointManip)
			freePointManipFn.connectToPointPlug(tPlug)
			OpenMayaMPx.MPxManipContainer.finishAddingManips(self)
			OpenMayaMPx.MPxManipContainer.connectToDependNode(self,node)
		except:
			sys.stderr.write( "Error finding and connecting plugs\n" )
			raise
示例#2
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)
示例#3
0
文件: pick.py 项目: jpasserin/brigks
    def __init__(self,
                 min=1,
                 max=-1,
                 show=False,
                 delete=True,
                 messages=[],
                 returnAsMatrix=False):
        self._mainWindow = gui.getMayaWindow()
        super(PickPositions, self).__init__(self._mainWindow)

        self._min, self._max = min, max
        self._clickFilter = ClickFilter(self)
        self._keyFilter = KeyFilter(self)
        x, self._viewWidgets = gui.get3dViews()
        self._fnFreePoint = mui.MFnFreePointTriadManip()
        self._fnDependNode = om.MFnDependencyNode()
        self._positions = []
        self._show = show
        self._delete = delete
        self._messages = messages or [""]
        self._messageCount = 0
        self._returnAsMatrix = returnAsMatrix
        self._guides = []
        self._manipulators = []
		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: