def testCanDeleteCurves(self): curvesScene = self.makeCurves() deleteCurves = GafferScene.DeleteCurves() deleteCurves["in"].setInput(curvesScene["out"]) pathFilter = GafferScene.PathFilter("PathFilter") pathFilter["paths"].setValue(IECore.StringVectorData(['/object'])) deleteCurves["filter"].setInput(pathFilter["out"]) curveDeletedObject = deleteCurves["out"].object("/object") self.assertEqual(curveDeletedObject.verticesPerCurve(), IECore.IntVectorData([7])) self.assertEqual(curveDeletedObject.numCurves(), 1) self.assertEqual( curveDeletedObject["P"].data, IECore.V3fVectorData([ imath.V3f(0, 0, 0), imath.V3f(0, 1, 0), imath.V3f(1, 1, 0), imath.V3f(1, 0, 0), imath.V3f(1, -1, 0), imath.V3f(2, -1, 0), imath.V3f(2, 0, 0) ])) # verify the primvars are correct self.assertEqual(curveDeletedObject["a"].data, IECore.FloatData(0.5)) self.assertEqual(curveDeletedObject["a"].interpolation, IECoreScene.PrimitiveVariable.Interpolation.Constant) self.assertEqual(curveDeletedObject["b"].data, IECore.FloatVectorData(range(0, 7))) self.assertEqual(curveDeletedObject["b"].interpolation, IECoreScene.PrimitiveVariable.Interpolation.Vertex) self.assertEqual(curveDeletedObject["c"].data, IECore.FloatVectorData([0])) self.assertEqual(curveDeletedObject["c"].interpolation, IECoreScene.PrimitiveVariable.Interpolation.Uniform) self.assertEqual(curveDeletedObject["d"].data, IECore.FloatVectorData(range(0, 3))) self.assertEqual(curveDeletedObject["d"].interpolation, IECoreScene.PrimitiveVariable.Interpolation.Varying) self.assertEqual(curveDeletedObject["e"].data, IECore.FloatVectorData(range(0, 3))) self.assertEqual( curveDeletedObject["e"].interpolation, IECoreScene.PrimitiveVariable.Interpolation.FaceVarying)
def testIgnoreMissing(self): curvesScene = self.makeCurves() deleteCurves = GafferScene.DeleteCurves() deleteCurves["in"].setInput(curvesScene["out"]) pathFilter = GafferScene.PathFilter("PathFilter") pathFilter["paths"].setValue(IECore.StringVectorData(['/object'])) deleteCurves["filter"].setInput(pathFilter["out"]) self.assertNotEqual(deleteCurves["in"].object("/object"), deleteCurves["out"].object("/object")) deleteCurves["curves"].setValue("doesNotExist") self.assertRaises(RuntimeError, deleteCurves["out"].object, "/object") deleteCurves["ignoreMissingVariable"].setValue(True) self.assertEqual(deleteCurves["in"].object("/object"), deleteCurves["out"].object("/object"))
def testBoundsUpdate(self): curvesScene = self.makeCurves() actualOriginalBound = curvesScene["out"].bound("/object") self.assertEqual(actualOriginalBound, imath.Box3f(imath.V3f(0, -1, -1), imath.V3f(2, 1, 1))) deleteCurves = GafferScene.DeleteCurves() deleteCurves["in"].setInput(curvesScene["out"]) pathFilter = GafferScene.PathFilter("PathFilter") pathFilter["paths"].setValue(IECore.StringVectorData(['/object'])) deleteCurves["filter"].setInput(pathFilter["out"]) actualCurveDeletedBounds = deleteCurves["out"].bound("/object") expectedBoundingBox = imath.Box3f(imath.V3f(0, -1, 0), imath.V3f(2, 1, 0)) self.assertEqual(actualCurveDeletedBounds, expectedBoundingBox)