示例#1
0
	def create( layoutName, classNameOrParameterised, classVersion=None, envVarName=None ) :

		with IECoreMaya.UndoDisabled() :

			nodeName = maya.cmds.createNode( "ieTransientParameterisedHolderNode", skipSelect = True )

			# Script jobs aren't available from maya.cmds. Maya Python bindings generate swig warnings
			# such as "swig/python detected a memory leak of type 'MCallbackId *', no destructor found"
			IECoreMaya.mel( 'scriptJob -uiDeleted "%s" "python( \\\"import IECoreMaya; IECoreMaya.FnTransientParameterisedHolderNode._deleteNode( \'%s\' )\\\" )" -protected' % ( layoutName, nodeName ) )

			fnTPH = FnTransientParameterisedHolderNode( nodeName )

			if isinstance( classNameOrParameterised, str ) :
				fnTPH.setParameterised( classNameOrParameterised, classVersion, envVarName )
			else :
				assert( not classVersion )
				assert( not envVarName )

				fnTPH.setParameterised( classNameOrParameterised )

			parameterised = fnTPH.getParameterised()[0]

			if parameterised :
				maya.cmds.setParent( layoutName )
				IECoreMaya.ParameterUI.create( fnTPH.fullPathName(), parameterised.parameters() )
				maya.cmds.setParent( layoutName )

		return fnTPH
示例#2
0
    def test(self):

        maya.cmds.undoInfo(stateWithoutFlush=True)

        with IECoreMaya.UndoChunk('test1'):
            cube = maya.cmds.createNode('polyCube')
            sphere = maya.cmds.createNode('polySphere')

        with IECoreMaya.UndoDisabled():
            plane = maya.cmds.createNode('polyPlane')

        maya.cmds.undo()

        self.assertFalse(maya.cmds.objExists(cube))
        self.assertFalse(maya.cmds.objExists(sphere))
        self.assertTrue(maya.cmds.objExists(plane))
    def _deleteNode(nodeName):

        with IECoreMaya.UndoDisabled():

            if maya.cmds.objExists(nodeName):
                maya.cmds.delete(nodeName)