MCPcopy Create free account
hub / github.com/ImageEngine/cortex / testSimple

Method testSimple

test/IECoreScene/TriangulateOp.py:46–107  ·  view source on GitHub ↗

Test TriangulateOp with a single polygon

( self )

Source from the content-addressed store, hash-verified

44class TestTriangulateOp( unittest.TestCase ) :
45
46 def testSimple( self ) :
47 """ Test TriangulateOp with a single polygon"""
48
49 verticesPerFace = IECore.IntVectorData()
50 verticesPerFace.append( 4 )
51
52 vertexIds = IECore.IntVectorData()
53 vertexIds.append( 0 )
54 vertexIds.append( 1 )
55 vertexIds.append( 2 )
56 vertexIds.append( 3 )
57
58 P = IECore.V3fVectorData()
59 P.append( imath.V3f( -1, 0, -1 ) )
60 P.append( imath.V3f( -1, 0, 1 ) )
61 P.append( imath.V3f( 1, 0, 1 ) )
62 P.append( imath.V3f( 1, 0, -1 ) )
63
64 m = IECoreScene.MeshPrimitive( verticesPerFace, vertexIds )
65 m["P"] = IECoreScene.PrimitiveVariable( IECoreScene.PrimitiveVariable.Interpolation.Vertex, P )
66
67 fv = IECore.IntVectorData()
68 fv.append( 5 )
69 fv.append( 6 )
70 fv.append( 7 )
71 fv.append( 8 )
72 m["fv"] = IECoreScene.PrimitiveVariable( IECoreScene.PrimitiveVariable.Interpolation.FaceVarying, fv )
73
74 u = IECore.FloatVectorData()
75 u.append( 1.0 )
76 m["u"] = IECoreScene.PrimitiveVariable( IECoreScene.PrimitiveVariable.Interpolation.Uniform, u )
77
78 op = IECoreScene.TriangulateOp()
79
80 result = op(
81 input = m
82 )
83
84 self.assertTrue( "P" in result )
85
86 self.assertTrue( result.arePrimitiveVariablesValid() )
87
88 resultP = result["P"].data
89
90 self.assertEqual( len(resultP), 4 )
91 for i in range(0, 4) :
92 self.assertTrue( ( resultP[i] - P[i] ).length() < 0.001 )
93
94 self.assertEqual( len(result.vertexIds), 6 )
95
96 for faceVertexCount in result.verticesPerFace :
97 self.assertEqual( faceVertexCount, 3 )
98
99 for vId in result.vertexIds:
100 self.assertTrue( vId < len(resultP) )
101
102 self.assertTrue( "fv" in result )
103 fv = result["fv"]

Callers

nothing calls this directly

Calls 6

appendMethod · 0.80
PrimitiveVariableMethod · 0.80
TriangulateOpMethod · 0.80
lenFunction · 0.50
MeshPrimitiveMethod · 0.45

Tested by

no test coverage detected