parameters: (self, plug, data)
return_statement: return OpenMaya.MStatus.kSuccess
docstring: Description:
  			This method computes the value of the given output plug based
  			on the values of the input attributes.
  	
  		Arguments:
  			plug - the plug to compute
  			data - object that provides access to the attributes for this node
docstring_summary: Description:
  			This method computes the value of the given output plug based
  			on the values of the input attributes.
  	
  		Arguments:
  			plug - the plug to compute
  			data - object that provides access to the attributes for this node
docstring_tokens: Description : This method computes the value of the given output plug based on the values of the input attributes . Arguments : plug - the plug to compute data - object that provides access to the attributes for this node
function: def compute(self, plug, data):
  		"""
  		Description:
  			This method computes the value of the given output plug based
  			on the values of the input attributes.
  	
  		Arguments:
  			plug - the plug to compute
  			data - object that provides access to the attributes for this node
  		"""
  		stateData = 0
  		state = OpenMayaMPx.cvar.MPxNode_state
  		try:
  			stateData = data.outputValue(state)
  		except:
  			statusError("ERROR getting state")
  
  		# Check for the HasNoEffect/PassThrough flag on the node.
  		#
  		# (stateData is an enumeration standard in all depend nodes - stored as short)
  		# 
  		# (0 = Normal)
  		# (1 = HasNoEffect/PassThrough)
  		# (2 = Blocking)
  		# ...
  		#
  		if stateData.asShort() == 1:
  			try:
  				inputData = data.inputValue(splitUVNode.inMesh)
  			except:
  				statusError("ERROR getting inMesh")
  
  			try:
  				outputData = data.outputValue(splitUVNode.outMesh)
  			except:
  				statusError("ERROR getting outMesh")
  
  			# Simply redirect the inMesh to the outMesh for the PassThrough effect
  			#
  			outputData.setMObject(inputData.asMesh())
  		else:
  			# Check which output attribute we have been asked to 
  			# compute. If this node doesn't know how to compute it, 
  			# we must return MS::kUnknownParameter
  			# 
  			if plug == splitUVNode.outMesh:
  				try:
  					inputData = data.inputValue(splitUVNode.inMesh)
  				except:
  					statusError("ERROR getting inMesh")
  
  				try:
  					outputData = data.outputValue(splitUVNode.outMesh)
  				except:
  					statusError("ERROR getting outMesh") 
  
  				# Now, we get the value of the uvList and use it to perform
  				# the operation on this mesh
  				#
  				try:
  					inputUVs = data.inputValue(splitUVNode.uvList)
  				except:
  					statusError("ERROR getting uvList")
  
  				# Copy the inMesh to the outMesh, and now you can
  				# perform operations in-place on the outMesh
  				#
  				outputData.setMObject(inputData.asMesh())
  				mesh = outputData.asMesh()
  
  				# Retrieve the UV list from the component list.
  				#
  				# Note, we use a component list to store the components
  				# because it is more compact memory wise. (ie. comp[81:85]
  				# is smaller than comp[81], comp[82],...,comp[85])
  				#
  				compList = inputUVs.data()
  				compListFn = OpenMaya.MFnComponentListData(compList)
  
  				uvIds = OpenMaya.MIntArray()
  				for i in range(compListFn.length()):
  					comp = compListFn[i]
  					if comp.apiType() == OpenMaya.MFn.kMeshMapComponent:
  						uvComp = OpenMaya.MFnSingleIndexedComponent(comp)
  						for j in range(uvComp.elementCount()):
  							uvId = uvComp.element(j)
  							uvIds.append(uvId)
  
  				# Set the mesh object and uvList on the factory
  				#
  				self.fSplitUVFactory.setMesh(mesh)
  				self.fSplitUVFactory.setUVIds(uvIds)
  
  				# Now, perform the splitUV
  				#
  				try:
  					self.fSplitUVFactory.doIt()
  				except:
  					statusError("ERROR in splitUVFty.doIt()")
  
  				# Mark the output mesh as clean
  				#
  				outputData.setClean()
  			else:
  				return OpenMaya.MStatus.kUnknownParameter
  
  		return OpenMaya.MStatus.kSuccess
function_tokens: def compute ( self , plug , data ) : stateData = 0 state = OpenMayaMPx . cvar . MPxNode_state try : stateData = data . outputValue ( state ) except : statusError ( "ERROR getting state" ) # Check for the HasNoEffect/PassThrough flag on the node. # # (stateData is an enumeration standard in all depend nodes - stored as short) #  # (0 = Normal) # (1 = HasNoEffect/PassThrough) # (2 = Blocking) # ... # if stateData . asShort ( ) == 1 : try : inputData = data . inputValue ( splitUVNode . inMesh ) except : statusError ( "ERROR getting inMesh" ) try : outputData = data . outputValue ( splitUVNode . outMesh ) except : statusError ( "ERROR getting outMesh" ) # Simply redirect the inMesh to the outMesh for the PassThrough effect # outputData . setMObject ( inputData . asMesh ( ) ) else : # Check which output attribute we have been asked to  # compute. If this node doesn't know how to compute it,  # we must return MS::kUnknownParameter #  if plug == splitUVNode . outMesh : try : inputData = data . inputValue ( splitUVNode . inMesh ) except : statusError ( "ERROR getting inMesh" ) try : outputData = data . outputValue ( splitUVNode . outMesh ) except : statusError ( "ERROR getting outMesh" ) # Now, we get the value of the uvList and use it to perform # the operation on this mesh # try : inputUVs = data . inputValue ( splitUVNode . uvList ) except : statusError ( "ERROR getting uvList" ) # Copy the inMesh to the outMesh, and now you can # perform operations in-place on the outMesh # outputData . setMObject ( inputData . asMesh ( ) ) mesh = outputData . asMesh ( ) # Retrieve the UV list from the component list. # # Note, we use a component list to store the components # because it is more compact memory wise. (ie. comp[81:85] # is smaller than comp[81], comp[82],...,comp[85]) # compList = inputUVs . data ( ) compListFn = OpenMaya . MFnComponentListData ( compList ) uvIds = OpenMaya . MIntArray ( ) for i in range ( compListFn . length ( ) ) : comp = compListFn [ i ] if comp . apiType ( ) == OpenMaya . MFn . kMeshMapComponent : uvComp = OpenMaya . MFnSingleIndexedComponent ( comp ) for j in range ( uvComp . elementCount ( ) ) : uvId = uvComp . element ( j ) uvIds . append ( uvId ) # Set the mesh object and uvList on the factory # self . fSplitUVFactory . setMesh ( mesh ) self . fSplitUVFactory . setUVIds ( uvIds ) # Now, perform the splitUV # try : self . fSplitUVFactory . doIt ( ) except : statusError ( "ERROR in splitUVFty.doIt()" ) # Mark the output mesh as clean # outputData . setClean ( ) else : return OpenMaya . MStatus . kUnknownParameter return OpenMaya . MStatus . kSuccess