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

Method testTimeRemapping

test/IECoreScene/LinkedSceneTest.py:252–332  ·  view source on GitHub ↗
( self )

Source from the content-addressed store, hash-verified

250 self.fail( messageInfo.message )
251
252 def testTimeRemapping( self ):
253
254 m = IECoreScene.SceneCache( os.path.join( "test", "IECore", "data", "sccFiles", "animatedSpheres.scc" ), IECore.IndexedIO.OpenMode.Read )
255
256 l = IECoreScene.LinkedScene( os.path.join( self.tempDir, "test.lscc" ), IECore.IndexedIO.OpenMode.Write )
257 # save animated spheres with double the speed and with offset, using less samples (time remapping)
258 i0 = l.createChild("instance0")
259 i0.writeAttribute( IECoreScene.LinkedScene.linkAttribute, IECoreScene.LinkedScene.linkAttributeData( m, 0.0 ), 1.0 )
260 i0.writeAttribute( IECoreScene.LinkedScene.linkAttribute, IECoreScene.LinkedScene.linkAttributeData( m, 3.0 ), 2.0 )
261 # save animated spheres with same speed and with offset, same samples (time remapping is identity)
262 i1 = l.createChild("instance1")
263 i1.writeAttribute( IECoreScene.LinkedScene.linkAttribute, IECoreScene.LinkedScene.linkAttributeData( m, 0.0 ), 1.0 )
264 i1.writeAttribute( IECoreScene.LinkedScene.linkAttribute, IECoreScene.LinkedScene.linkAttributeData( m, 1.0 ), 2.0 )
265 i1.writeAttribute( IECoreScene.LinkedScene.linkAttribute, IECoreScene.LinkedScene.linkAttributeData( m, 2.0 ), 3.0 )
266 i1.writeAttribute( IECoreScene.LinkedScene.linkAttribute, IECoreScene.LinkedScene.linkAttributeData( m, 3.0 ), 4.0 )
267 # save animated spheres with half the speed, adding more samples to a range of the original (time remapping)
268 i2 = l.createChild("instance2")
269 i2.writeAttribute( IECoreScene.LinkedScene.linkAttribute, IECoreScene.LinkedScene.linkAttributeData( m, 0.0 ), 0.0 )
270 i2.writeAttribute( IECoreScene.LinkedScene.linkAttribute, IECoreScene.LinkedScene.linkAttributeData( m, 0.5 ), 1.0 )
271 i2.writeAttribute( IECoreScene.LinkedScene.linkAttribute, IECoreScene.LinkedScene.linkAttributeData( m, 1.0 ), 2.0 )
272
273 del i0, i1, i2, l
274
275 l = IECoreScene.LinkedScene( os.path.join( self.tempDir, "test.lscc" ), IECore.IndexedIO.OpenMode.Read )
276 self.assertEqual( l.numBoundSamples(), 5 )
277 self.assertEqual( l.hasAttribute( "sceneInterface:link.time" ), False )
278 i0 = l.child("instance0")
279
280 self.assertEqual( i0.hasAttribute( "sceneInterface:link.time" ), True )
281 self.assertEqual( i0.readAttribute( "sceneInterface:link.time", 1 ).value, 0 )
282 self.assertEqual( i0.readAttribute( "sceneInterface:link.time", 2 ).value, 3 )
283
284 self.assertEqual( i0.numBoundSamples(), 2 )
285 self.assertEqual( i0.numTransformSamples(), 1 )
286 self.assertEqual( i0.readTransformAtSample(0), IECore.M44dData() )
287 A0 = i0.child("A")
288 self.assertEqual( A0.hasAttribute( "sceneInterface:link.time" ), False )
289
290 self.assertEqual( A0.numBoundSamples(), 2 )
291 self.assertEqual( A0.numTransformSamples(), 2 )
292 self.assertTrue( LinkedSceneTest.compareBBox( A0.readBoundAtSample(0), imath.Box3d(imath.V3d( -1,-1,-1 ), imath.V3d( 1,1,1 ) ) ) )
293 self.assertTrue( LinkedSceneTest.compareBBox( A0.readBoundAtSample(1), imath.Box3d(imath.V3d( 0,-1,-1 ), imath.V3d( 2,1,1 ) ) ) )
294 self.assertEqual( A0.readTransformAtSample(0), IECore.M44dData( imath.M44d().translate( imath.V3d( 1, 0, 0 ) ) ) )
295 self.assertEqual( A0.readTransformAtSample(1), IECore.M44dData( imath.M44d().translate( imath.V3d( 2, 0, 0 ) ) ) )
296 i1 = l.child("instance1")
297
298 self.assertEqual( i1.hasAttribute( "sceneInterface:link.time" ), True )
299 self.assertEqual( i1.readAttribute( "sceneInterface:link.time", 1 ).value, 0 )
300 self.assertEqual( i1.readAttribute( "sceneInterface:link.time", 2 ).value, 1 )
301 self.assertEqual( i1.readAttribute( "sceneInterface:link.time", 3 ).value, 2 )
302 self.assertEqual( i1.readAttribute( "sceneInterface:link.time", 4 ).value, 3 )
303
304 self.assertEqual( i1.numBoundSamples(), 4 )
305 self.assertEqual( i1.numTransformSamples(), 1 )
306 A1 = i1.child("A")
307 self.assertEqual( A1.numTransformSamples(), 4 )
308 self.assertEqual( A1.readTransformAtSample(0), IECore.M44dData( imath.M44d().translate( imath.V3d( 1, 0, 0 ) ) ) )
309 self.assertEqual( A1.readTransformAtSample(1), IECore.M44dData( imath.M44d().translate( imath.V3d( 2, 0, 0 ) ) ) )

Callers

nothing calls this directly

Calls 15

createChildMethod · 0.95
numBoundSamplesMethod · 0.95
hasAttributeMethod · 0.95
childMethod · 0.95
SceneCacheMethod · 0.80
joinMethod · 0.80
LinkedSceneMethod · 0.80
linkAttributeDataMethod · 0.80
writeAttributeMethod · 0.45
hasAttributeMethod · 0.45
readAttributeMethod · 0.45
numBoundSamplesMethod · 0.45

Tested by

no test coverage detected