( self )
| 208 | self.assertEqual( p.numPoints, p[attr].data.size() ) |
| 209 | |
| 210 | def testConversion( self ) : |
| 211 | |
| 212 | r = IECore.Reader.create( os.path.join( "test", "IECore", "data", "iffFiles", "nParticleMultipleFrames.mc" ) ) |
| 213 | self.assertEqual( type( r ), IECoreScene.NParticleReader ) |
| 214 | |
| 215 | r.parameters()["realType"].setValue( "float" ) |
| 216 | r.parameters()['frameIndex'].setValue( 5 ) |
| 217 | |
| 218 | attrNames = r.attributeNames() |
| 219 | expectedAttrNamesAndTypes = { |
| 220 | "testParticleShape_id" : IECore.FloatVectorData, |
| 221 | "testParticleShape_birthTime" : IECore.FloatVectorData, |
| 222 | "testParticleShape_position" : IECore.V3fVectorData, |
| 223 | "testParticleShape_lifespanPP" : IECore.FloatVectorData, |
| 224 | "testParticleShape_finalLifespanPP" : IECore.FloatVectorData, |
| 225 | "testParticleShape_velocity" : IECore.V3fVectorData, |
| 226 | } |
| 227 | |
| 228 | c = r.read() |
| 229 | expectedConvertedAttrNamesAndTypes = { |
| 230 | "testParticleShape_id" : IECore.FloatVectorData, |
| 231 | "testParticleShape_birthTime" : IECore.FloatVectorData, |
| 232 | "P" : IECore.V3fVectorData, |
| 233 | "testParticleShape_lifespanPP" : IECore.FloatVectorData, |
| 234 | "testParticleShape_finalLifespanPP" : IECore.FloatVectorData, |
| 235 | "testParticleShape_velocity" : IECore.V3fVectorData, |
| 236 | } |
| 237 | self.assertEqual( type( c ), IECoreScene.PointsPrimitive ) |
| 238 | self.assertEqual( len( c ), len( expectedConvertedAttrNamesAndTypes ) ) |
| 239 | for i in expectedConvertedAttrNamesAndTypes.keys() : |
| 240 | self.assertTrue( i in c ) |
| 241 | self.assertEqual( type(c[i].data), expectedConvertedAttrNamesAndTypes[i] ) |
| 242 | self.assertEqual( len(c[i].data), r.numParticles() ) |
| 243 | |
| 244 | for p in c["P"].data : |
| 245 | self.assertTrue( abs( p.x ) < 0.159 ) |
| 246 | self.assertTrue( abs( p.y ) < 0.145 ) |
| 247 | self.assertTrue( abs( p.z ) < 0.138 ) |
| 248 | |
| 249 | def testFileNameChange( self ) : |
| 250 |
nothing calls this directly
no test coverage detected