def test_mClassConversion_r9(self): n1 = cgmMeta.cgmNode(name='test_setClass', nodeType='transform') self.assertEqual(type(n1), cgmMeta.cgmNode) n1 = r9Meta.convertMClassType(n1, 'cgmObject') self.assertEqual(type(n1), cgmMeta.cgmObject) n1 = r9Meta.convertMClassType(n1, 'cgmControl') self.assertEqual(type(n1), cgmMeta.cgmControl) n1 = r9Meta.convertMClassType(n1, 'MetaClass') self.assertEqual(type(n1), r9Meta.MetaClass) n1.delete()
def test_mClassConversion_cgm(self): _str_grp = mc.group(em=True) n1 = cgmMeta.cgmNode(_str_grp) n1 = r9Meta.convertMClassType(n1, 'cgmControl') self.assertEqual(type(n1), cgmMeta.cgmControl) n1 = cgmMeta.validateObjArg(n1.mNode, 'cgmObject', setClass=True) self.assertEqual(type(n1), cgmMeta.cgmObject) n1 = cgmMeta.validateObjArg(n1.mNode, 'cgmControl', setClass=True) self.assertEqual(type(n1), cgmMeta.cgmControl) n1.delete()
o3 #...it's gonna reuturn as a MetaClass because it's mClass is unknown cgmMeta.cgmNode( 'invalidMClass' ) #...I can also call it as a cgmNode with no issue because no valid mClass is set o3.mClass = 'cgmNode' #...if i set it's mClass to a known mClass however r9Meta.MetaClass( 'invalidMClass' ) #...it's gonna now always return as a cgmNode as it's a valid mClass value #...so, long story short. Manually changing a node's mClass attribute is not a reliable method of changing the type it instantiates to #...The right way... #r9's method n3 = r9Meta.MetaClass(nodeType='network', name='r9Convert') #...let's make one via meta call r9Meta.convertMClassType( n3, 'cgmNode') #... This converts our node to a cgmNode type #cgm's Method cgmMeta.validateObjArg( n3.mNode, 'MetaClass', setLogLevel='debug' ) #...this initially wont' change because our current class is a subclass of MetaClass, trust that this is a feature and not a bug cgmMeta.validateObjArg( n3.mNode, 'MetaClass', setClass=True, setLogLevel='debug' ) #...this pass will get it as we have our setClass flag on cgmMeta.validateObjArg( n3.mNode, 'cgmNode', setClass=True, setLogLevel='info') #...convert it back and get out of debug #============================================================================================== #>> Data storage #==============================================================================================
#...what if we give a node an unknown mClass? mc.createNode('network', n = 'invalidMClass')#...let's make a null via cmd call mc.addAttr ('invalidMClass', ln = 'mClass', dt = 'string') mc.setAttr('invalidMClass.mClass','noIdea',type = 'string') o3 = r9Meta.MetaClass('invalidMClass')#...and instantiating it o3#...it's gonna reuturn as a MetaClass because it's mClass is unknown cgmMeta.cgmNode('invalidMClass')#...I can also call it as a cgmNode with no issue because no valid mClass is set o3.mClass = 'cgmNode'#...if i set it's mClass to a known mClass however r9Meta.MetaClass('invalidMClass')#...it's gonna now always return as a cgmNode as it's a valid mClass value #...so, long story short. Manually changing a node's mClass attribute is not a reliable method of changing the type it instantiates to #...The right way... #r9's method n3 = r9Meta.MetaClass(nodeType='network', name='r9Convert')#...let's make one via meta call r9Meta.convertMClassType(n3,'cgmNode')#... This converts our node to a cgmNode type #cgm's Method cgmMeta.validateObjArg(n3.mNode,'MetaClass',setLogLevel = 'debug')#...this initially wont' change because our current class is a subclass of MetaClass, trust that this is a feature and not a bug cgmMeta.validateObjArg(n3.mNode,'MetaClass',setClass = True, setLogLevel = 'debug')#...this pass will get it as we have our setClass flag on cgmMeta.validateObjArg(n3.mNode,'cgmNode',setClass = True, setLogLevel = 'info')#...convert it back and get out of debug #============================================================================================== #>> Data storage #============================================================================================== mc.file(new=True,f=True)#...let's start with a clean file #Go to the outliner and make sure DAG objects only is off n1 = r9Meta.MetaClass(nodeType='network', name='r9Example')#...let's make one via meta call #>>Json =========================================================================