( self )
| 214 | |
| 215 | |
| 216 | def testConversion( self ) : |
| 217 | |
| 218 | r = IECore.Reader.create( os.path.join( "test", "IECore", "data", "pdcFiles", "particleShape1.250.pdc" ) ) |
| 219 | self.assertEqual( type( r ), IECoreScene.PDCParticleReader ) |
| 220 | |
| 221 | r.parameters()["realType"].setValue( "float" ) |
| 222 | |
| 223 | expectedAttrNamesAndTypes = { |
| 224 | "particleId" : IECore.FloatVectorData, |
| 225 | "mass" : IECore.FloatVectorData, |
| 226 | "lastWorldVelocity" : IECore.V3fVectorData, |
| 227 | "worldVelocityInObjectSpace" : IECore.V3fVectorData, |
| 228 | "worldVelocity" : IECore.V3fVectorData, |
| 229 | "lastWorldPosition" : IECore.V3fVectorData, |
| 230 | "worldPosition" : IECore.V3fVectorData, |
| 231 | "acceleration" : IECore.V3fVectorData, |
| 232 | "lastVelocity" : IECore.V3fVectorData, |
| 233 | "velocity" : IECore.V3fVectorData, |
| 234 | "lastPosition" : IECore.V3fVectorData, |
| 235 | "P" : IECore.V3fVectorData, |
| 236 | "lifespanPP" : IECore.FloatVectorData, |
| 237 | "finalLifespanPP" : IECore.FloatVectorData, |
| 238 | "emitterId" : IECore.FloatVectorData, |
| 239 | "birthTime" : IECore.FloatVectorData, |
| 240 | "age" : IECore.FloatVectorData, |
| 241 | } |
| 242 | |
| 243 | c = r.read() |
| 244 | self.assertEqual( type( c ), IECoreScene.PointsPrimitive ) |
| 245 | self.assertEqual( len( c ), len( expectedAttrNamesAndTypes ) ) |
| 246 | for i in expectedAttrNamesAndTypes.keys() : |
| 247 | self.assertTrue( i in c ) |
| 248 | self.assertEqual( type(c[i].data), expectedAttrNamesAndTypes[i] ) |
| 249 | self.assertEqual( len(c[i].data), r.numParticles() ) |
| 250 | |
| 251 | for p in c["P"].data : |
| 252 | self.assertEqual( p.y, 0 ) |
| 253 | self.assertTrue( abs( p.x ) < 1.1 ) |
| 254 | self.assertTrue( abs( p.z ) < 1.1 ) |
| 255 | |
| 256 | def testFileNameChange( self ) : |
| 257 |
nothing calls this directly
no test coverage detected