def testSingleNumericPlugs(self): locator = maya.cmds.spaceLocator()[0] attr = ("tBool", IECore.BoolData, True) maya.cmds.addAttr(ln=attr[0], at="bool") maya.cmds.setAttr(locator + '.' + attr[0], attr[2]) converter = IECoreMaya.FromMayaPlugConverter.create( IECoreMaya.plugFromString(locator + '.' + attr[0])) self.assert_(converter) cValue = converter.convert() self.assert_(isinstance(cValue, attr[1])) self.assertAlmostEqual(cValue.value, attr[2]) attr = ("tFloat", IECore.FloatData, 0.123456) maya.cmds.addAttr(ln=attr[0], at="float") maya.cmds.setAttr(locator + '.' + attr[0], attr[2]) converter = IECoreMaya.FromMayaPlugConverter.create( IECoreMaya.plugFromString(locator + '.' + attr[0])) self.assert_(converter) cValue = converter.convert() self.assert_(isinstance(cValue, attr[1])) self.assertAlmostEqual(cValue.value, attr[2]) attr = ("tDouble", IECore.DoubleData, 0.123456) maya.cmds.addAttr(ln=attr[0], at="double") maya.cmds.setAttr(locator + '.' + attr[0], attr[2]) converter = IECoreMaya.FromMayaPlugConverter.create( IECoreMaya.plugFromString(locator + '.' + attr[0])) self.assert_(converter) cValue = converter.convert() self.assert_(isinstance(cValue, attr[1])) self.assertAlmostEqual(cValue.value, attr[2]) attr = ("tShort", IECore.ShortData, 1) maya.cmds.addAttr(ln=attr[0], at="enum", en="A:B:C") maya.cmds.setAttr(locator + '.' + attr[0], attr[2]) converter = IECoreMaya.FromMayaPlugConverter.create( IECoreMaya.plugFromString(locator + '.' + attr[0])) self.assert_(converter) cValue = converter.convert() self.assert_(isinstance(cValue, attr[1])) self.assertAlmostEqual(cValue.value, attr[2]) # read enum as string converter = IECoreMaya.FromMayaPlugConverter.create( IECoreMaya.plugFromString(locator + '.' + attr[0]), IECore.StringData.staticTypeId()) self.assert_(converter) cValue = converter.convert() self.assert_(isinstance(cValue, IECore.StringData)) self.assertAlmostEqual(cValue.value, "B")
def testFactory(self): locator = maya.cmds.spaceLocator(position=(1, 2, 3))[0] converter = IECoreMaya.FromMayaPlugConverter.create(locator + ".translateX") self.assert_(converter) self.assert_( converter.isInstanceOf( IECoreMaya.FromMayaPlugConverter.staticTypeId())) converter = IECoreMaya.FromMayaPlugConverter.create(locator + ".scaleX") self.assert_(converter) self.assert_( converter.isInstanceOf( IECoreMaya.FromMayaPlugConverter.staticTypeId())) converter = IECoreMaya.FromMayaPlugConverter.create(locator + ".scale") self.assert_(converter) self.assert_( converter.isInstanceOf( IECoreMaya.FromMayaPlugConverter.staticTypeId())) converter = IECoreMaya.FromMayaPlugConverter.create( IECoreMaya.plugFromString(locator + ".translateX")) self.assert_(converter) self.assert_( converter.isInstanceOf( IECoreMaya.FromMayaPlugConverter.staticTypeId()))
def testAttributes( self ) : maya.cmds.currentTime( "0sec" ) t = maya.cmds.createNode( "transform", name="t1" ) maya.cmds.addAttr( t, ln="ieAttr_bool", at="bool" ) maya.cmds.addAttr( t, ln="ieAttr_float", at="float" ) maya.cmds.addAttr( t, ln="ieAttr_double", at="double" ) maya.cmds.addAttr( t, ln="ieAttr_doubleAngle", at="doubleAngle" ) maya.cmds.addAttr( t, ln="ieAttr_doubleLinear", at="doubleLinear" ) maya.cmds.addAttr( t, ln="ieAttr_message", at="message" ) maya.cmds.addAttr( t, ln="ieAttr_time", at="time" ) maya.cmds.addAttr( t, ln="ieAttr_fltMatrix", at="fltMatrix" ) maya.cmds.addAttr( t, ln="ieAttr_string", dt="string" ) maya.cmds.addAttr( t, ln="ieAttr_with__namespace", dt="string" ) maya.cmds.addAttr( t, ln="ieAttr_enum", at="enum", en="ABC:DEF:" ) maya.cmds.addAttr( t, ln="ieAttr_enumAsString", at="enum", en="GHI:JKL:" ) # add ieConvertToStringData category p = IECoreMaya.plugFromString( t+'.ieAttr_enumAsString' ) fn = OpenMaya.MFnEnumAttribute( p.attribute() ) fn.addToCategory( IECoreMaya.FromMayaEnumPlugConverterst.convertToStringCategory ) scene = IECoreMaya.LiveScene() transformScene = scene.child(str(t)) self.assertEqual( set( transformScene.attributeNames()), set( [ "scene:visible", "user:bool", "user:enum", "user:enumAsString", "user:float", "user:double", "user:doubleAngle", "user:doubleLinear", "user:message", "user:time", "user:fltMatrix", "user:string", "user:with:namespace" ] ) ) self.failUnless( isinstance( transformScene.readAttribute("user:bool",0), IECore.BoolData ) ) self.failUnless( isinstance( transformScene.readAttribute("user:enum",0), IECore.ShortData ) ) self.failUnless( isinstance( transformScene.readAttribute("user:enumAsString",0), IECore.StringData ) ) self.failUnless( isinstance( transformScene.readAttribute("user:float",0), IECore.FloatData ) ) self.failUnless( isinstance( transformScene.readAttribute("user:double",0), IECore.DoubleData ) ) self.failUnless( isinstance( transformScene.readAttribute("user:doubleAngle",0), IECore.DoubleData ) ) self.failUnless( isinstance( transformScene.readAttribute("user:doubleLinear",0), IECore.DoubleData ) ) self.failUnless( isinstance( transformScene.readAttribute("user:message",0), IECore.NullObject ) ) self.failUnless( isinstance( transformScene.readAttribute("user:time",0), IECore.DoubleData ) ) self.failUnless( isinstance( transformScene.readAttribute("user:fltMatrix",0), IECore.M44dData ) ) self.failUnless( isinstance( transformScene.readAttribute("user:string",0), IECore.StringData ) ) self.failUnless( isinstance( transformScene.readAttribute("user:with:namespace",0), IECore.StringData ) )
def testSingleNumericPlugs(self): locator = maya.cmds.spaceLocator()[0] attr = ("tBool", IECore.BoolData, True) maya.cmds.addAttr(ln=attr[0], at="bool") maya.cmds.setAttr(locator + '.' + attr[0], attr[2]) converter = IECoreMaya.FromMayaPlugConverter.create( IECoreMaya.plugFromString(locator + '.' + attr[0]) ) self.assert_(converter) cValue = converter.convert() self.assert_(isinstance(cValue, attr[1])) self.assertAlmostEqual(cValue.value, attr[2]) attr = ("tFloat", IECore.FloatData, 0.123456) maya.cmds.addAttr(ln=attr[0], at="float") maya.cmds.setAttr(locator + '.' + attr[0], attr[2]) converter = IECoreMaya.FromMayaPlugConverter.create( IECoreMaya.plugFromString(locator + '.' + attr[0]) ) self.assert_(converter) cValue = converter.convert() self.assert_(isinstance(cValue, attr[1])) self.assertAlmostEqual(cValue.value, attr[2]) attr = ("tDouble", IECore.DoubleData, 0.123456) maya.cmds.addAttr(ln=attr[0], at="double") maya.cmds.setAttr(locator + '.' + attr[0], attr[2]) converter = IECoreMaya.FromMayaPlugConverter.create( IECoreMaya.plugFromString(locator + '.' + attr[0]) ) self.assert_(converter) cValue = converter.convert() self.assert_(isinstance(cValue, attr[1])) self.assertAlmostEqual(cValue.value, attr[2]) attr = ("tShort", IECore.ShortData, 1) maya.cmds.addAttr(ln=attr[0], at="enum", en="A:B:C") maya.cmds.setAttr(locator + '.' + attr[0], attr[2]) converter = IECoreMaya.FromMayaPlugConverter.create( IECoreMaya.plugFromString(locator + '.' + attr[0]) ) self.assert_(converter) cValue = converter.convert() self.assert_(isinstance(cValue, attr[1])) self.assertAlmostEqual(cValue.value, attr[2])
def testFactory( self ) : locator = maya.cmds.spaceLocator( position=( 1, 2, 3 ) )[0] converter = IECoreMaya.FromMayaPlugConverter.create( locator + ".translateX" ) self.assert_( converter ) self.assert_( converter.isInstanceOf( IECoreMaya.FromMayaPlugConverter.staticTypeId() ) ) converter = IECoreMaya.FromMayaPlugConverter.create( locator + ".scaleX" ) self.assert_( converter ) self.assert_( converter.isInstanceOf( IECoreMaya.FromMayaPlugConverter.staticTypeId() ) ) converter = IECoreMaya.FromMayaPlugConverter.create( locator + ".scale" ) self.assert_( converter ) self.assert_( converter.isInstanceOf( IECoreMaya.FromMayaPlugConverter.staticTypeId() ) ) converter = IECoreMaya.FromMayaPlugConverter.create( IECoreMaya.plugFromString( locator + ".translateX" ) ) self.assert_( converter ) self.assert_( converter.isInstanceOf( IECoreMaya.FromMayaPlugConverter.staticTypeId() ) )