Beispiel #1
0
	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" ) )
Beispiel #3
0
	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 )