def testUVConversionFromMayaMesh(self): mayaMesh = maya.cmds.ls(maya.cmds.polyPlane(), dag=True, type="mesh")[0] coreMesh = IECoreMaya.FromMayaMeshConverter(mayaMesh).convert() transform = maya.cmds.createNode("transform") self.failUnless( IECoreMaya.ToMayaMeshConverter(coreMesh).convert(transform)) mayaMesh2 = maya.cmds.listRelatives(transform, shapes=True)[0] l = OpenMaya.MSelectionList() l.add(mayaMesh) l.add(mayaMesh2) p = OpenMaya.MDagPath() p2 = OpenMaya.MDagPath() l.getDagPath(0, p) l.getDagPath(1, p2) uvSets = [] fnMesh = OpenMaya.MFnMesh(p) fnMesh.getUVSetNames(uvSets) uvSets2 = [] fnMesh2 = OpenMaya.MFnMesh(p2) fnMesh2.getUVSetNames(uvSets2) self.assertEqual(uvSets, uvSets2) # Check uvIndices coreMesh2 = IECoreMaya.FromMayaMeshConverter(mayaMesh2).convert() # self.assertEqual( coreMesh["uv"].data, coreMesh2["uv"].data ) self.assertEqual(coreMesh["uv"].indices, coreMesh2["uv"].indices)
def testConstructor( self ) : sphere = maya.cmds.polySphere( subdivisionsX=10, subdivisionsY=5, constructionHistory=False ) sphere = maya.cmds.listRelatives( sphere, shapes=True )[0] converter = IECoreMaya.FromMayaMeshConverter( sphere ) m = converter.convert() self.failUnless( isinstance( m, IECore.MeshPrimitive ) )
def testManyUVConversionsFromPlug(self): # load a mesh with indexed UVs scc = IECoreScene.SceneCache( "test/IECore/data/sccFiles/animatedSpheres.scc", IECore.IndexedIO.OpenMode.Read) coreMesh = scc.scene(["A", "a"]).readObject(0) self.assertTrue("uv" in coreMesh) self.assertEqual(coreMesh["uv"].data.getInterpretation(), IECore.GeometricData.Interpretation.UV) for i in range(0, 7): coreMesh["testUVSet%d" % i] = IECoreScene.PrimitiveVariable( coreMesh["uv"].interpolation, coreMesh["uv"].data.copy(), coreMesh["uv"].indices.copy()) self.assertTrue(coreMesh.arePrimitiveVariablesValid()) fn = IECoreMaya.FnOpHolder.create("test", "meshMerge") mayaMesh = maya.cmds.ls(maya.cmds.polyPlane(), dag=True, type="mesh")[0] maya.cmds.connectAttr(fn.name() + ".result", mayaMesh + ".inMesh", force=True) op = fn.getOp() with fn.parameterModificationContext(): op["input"].setValue(coreMesh) maya.cmds.file(rename="/tmp/test.ma") maya.cmds.file(save=True) maya.cmds.file(new=True, f=True) maya.cmds.file("/tmp/test.ma", open=True) result = IECoreMaya.FromMayaMeshConverter(mayaMesh).convert() self.assertTrue(result.arePrimitiveVariablesValid()) self.assertEqual( result.variableSize( IECoreScene.PrimitiveVariable.Interpolation.Uniform), 400) self.assertEqual( result.variableSize( IECoreScene.PrimitiveVariable.Interpolation.FaceVarying), 1560) self.assertEqual(coreMesh["uv"], result["uv"]) for i in range(0, 7): self.assertEqual(coreMesh["testUVSet%d" % i], result["testUVSet%d" % i])
def testManyUVConversionsFromPlug( self ) : coreMesh = IECore.Reader.create( "test/IECore/data/cobFiles/pSphereShape1.cob" ).read() self.assertTrue( "s" in coreMesh ) self.assertTrue( "t" in coreMesh ) for i in range( 0, 7 ) : coreMesh[ "testUVSet%d_s" % i ] = IECore.PrimitiveVariable( coreMesh["s"].interpolation, coreMesh["s"].data.copy() ) coreMesh[ "testUVSet%d_t" % i ] = IECore.PrimitiveVariable( coreMesh["t"].interpolation, coreMesh["t"].data.copy() ) fn = IECoreMaya.FnOpHolder.create( "test", "meshMerge" ) mayaMesh = maya.cmds.ls( maya.cmds.polyPlane(), dag=True, type="mesh" )[0] maya.cmds.connectAttr( fn.name()+".result", mayaMesh+".inMesh", force=True ) op = fn.getOp() with fn.parameterModificationContext() : op["input"].setValue( coreMesh ) maya.cmds.file( rename="/tmp/test.ma" ) maya.cmds.file( save=True ) maya.cmds.file( new=True, f=True ) maya.cmds.file( "/tmp/test.ma", open=True ) result = IECoreMaya.FromMayaMeshConverter( mayaMesh ).convert() self.assertTrue( result.arePrimitiveVariablesValid() ) self.assertEqual( result.variableSize( IECore.PrimitiveVariable.Interpolation.Uniform ), 760 ) self.assertEqual( result.variableSize( IECore.PrimitiveVariable.Interpolation.FaceVarying ), 2280 ) self.assertEqual( coreMesh["s"], result["s"] ) self.assertEqual( coreMesh["t"], result["t"] ) for i in range( 0, 7 ) : self.assertEqual( coreMesh[ "testUVSet%d_s" % i ], result[ "testUVSet%d_s" % i ] ) self.assertEqual( coreMesh[ "testUVSet%d_t" % i ], result[ "testUVSet%d_t" % i ] )