Esempio n. 1
0
    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)
Esempio n. 2
0
    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"))
Esempio n. 3
0
    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)