def testCanDeletePoints( self ) : pointsScene = self.makePoints() deletePoints = GafferScene.DeletePoints() deletePoints["in"].setInput( pointsScene["out"] ) pathFilter = GafferScene.PathFilter( "PathFilter" ) pathFilter["paths"].setValue( IECore.StringVectorData( [ '/object' ] ) ) deletePoints["filter"].setInput( pathFilter["out"] ) pointsDeletedObject = deletePoints["out"].object( "/object" ) self.assertEqual( pointsDeletedObject.numPoints, 2 ) self.assertEqual( pointsDeletedObject["P"].data, IECore.V3fVectorData( [ imath.V3f( 0, 0, 0 ), #IECore.V3f( 0, 1, 0 ), imath.V3f( 1, 1, 0 ) #IECore.V3f( 1, 0, 0 ) ] ) ) self.assertEqual( pointsDeletedObject["r"].data, IECore.FloatVectorData( [ 0, 2 ] ) ) self.assertEqual( pointsDeletedObject["deletePoints"].data, IECore.IntVectorData( [ 0, 0 ] ) )
def testIgnoreMissing( self ) : pointsScene = self.makePoints() deletePoints = GafferScene.DeletePoints() deletePoints["in"].setInput( pointsScene["out"] ) pathFilter = GafferScene.PathFilter( "PathFilter" ) pathFilter["paths"].setValue( IECore.StringVectorData( [ '/object' ] ) ) deletePoints["filter"].setInput( pathFilter["out"] ) self.assertNotEqual( deletePoints["in"].object( "/object" ), deletePoints["out"].object( "/object" ) ) deletePoints["points"].setValue( "doesNotExist" ) self.assertRaises( RuntimeError, deletePoints["out"].object, "/object" ) deletePoints["ignoreMissingVariable"].setValue( True ) self.assertEqual( deletePoints["in"].object( "/object" ), deletePoints["out"].object( "/object" ) )
def testBoundsUpdate( self ) : pointsScene = self.makePoints() actualOriginalBound = pointsScene["out"].bound( "/object" ) self.assertEqual(actualOriginalBound, imath.Box3f( imath.V3f( -0.5, -0.5, -0.5 ), imath.V3f( 1.5, 1.5, 0.5 ) ) ) deletePoints = GafferScene.DeletePoints() deletePoints["in"].setInput( pointsScene["out"] ) pathFilter = GafferScene.PathFilter( "PathFilter" ) pathFilter["paths"].setValue( IECore.StringVectorData( [ '/object' ] ) ) deletePoints["filter"].setInput( pathFilter["out"] ) deletePoints["points"].setValue("deletePoints2") actualPointsDeletedBounds = deletePoints["out"].bound( "/object" ) expectedBoundingBox = imath.Box3f( imath.V3f( 0.5, -0.5, -0.5 ), imath.V3f( 1.5, 1.5, 0.5 ) ) self.assertEqual( actualPointsDeletedBounds, expectedBoundingBox )