Beispiel #1
0
    def test_CollectionRetrieval(self):
        geometryCollection = UsdGeom.CollectionAPI(root, "geometry")
        (valid, reason) = geometryCollection.Validate()
        self.assertTrue(valid)

        self.assertEqual(geometryCollection.GetTargets(), [
            Sdf.Path('/CollectionTest/Geom/pSphere1'),
            Sdf.Path('/CollectionTest/Geom/pCube1')
        ])
        self.assertEqual(list(geometryCollection.GetTargetFaceCounts()),
                         [0, 3])
        self.assertEqual(list(geometryCollection.GetTargetFaceIndices()),
                         [1, 3, 5])

        animatedCollection = UsdGeom.CollectionAPI(Usd.ModelAPI(root),
                                                   "animated")
        self.assertEqual(animatedCollection.GetTargets(), [
            Sdf.Path('/CollectionTest/Geom/pSphere1'),
            Sdf.Path('/CollectionTest/Geom/pCone1')
        ])
        self.assertEqual(list(animatedCollection.GetTargetFaceCounts()),
                         [2, 6])
        self.assertEqual(list(animatedCollection.GetTargetFaceIndices()),
                         [1, 2, 1, 3, 5, 7, 9, 11])

        time = Usd.TimeCode(1)
        self.assertEqual(list(animatedCollection.GetTargetFaceCounts(time)),
                         [0, 0])
        self.assertEqual(list(animatedCollection.GetTargetFaceIndices(time)),
                         [])

        time = Usd.TimeCode(3)
        self.assertEqual(list(animatedCollection.GetTargetFaceCounts(time)),
                         [1, 2])
        self.assertEqual(list(animatedCollection.GetTargetFaceIndices(time)),
                         [0, 0, 1])

        time = Usd.TimeCode(5)
        self.assertEqual(list(animatedCollection.GetTargetFaceCounts(time)),
                         [2, 2])
        self.assertEqual(list(animatedCollection.GetTargetFaceIndices(time)),
                         [1, 2, 0, 1])

        hasRelCollection = UsdGeom.CollectionAPI(root, "hasRel")
        self.assertEqual(hasRelCollection.GetTargets(), [
            Sdf.Path('/CollectionTest/Geom/pSphere1.cube'),
            Sdf.Path('/CollectionTest/Geom/pCube1.sphere')
        ])

        hasInstancedTargetCollection = UsdGeom.CollectionAPI(
            root, "hasInstancedTarget")
        targetPath = hasInstancedTargetCollection.GetTargets()[0]
        self.assertEqual(targetPath,
                         Sdf.Path('/CollectionTest/Geom/iCube/Geom/cube'))
Beispiel #2
0
 def test_ValidCases(self):
     validCollectionNames = ("includes", "geometry", "animated")
     for name in validCollectionNames:
         collection = UsdGeom.CollectionAPI(root, name)
         (valid, reason) = collection.Validate()
         self.assertTrue(
             valid,
             "Collection '%s' was found to be invalid: %s" % (name, reason))
Beispiel #3
0
 def test_ErrorCases(self):
     invalidCollectionNames = ("nonExistentCollection",
                               "faceCountsMismatch", "indicesMismatch")
     for name in invalidCollectionNames:
         collection = UsdGeom.CollectionAPI(root, name)
         (valid, reason) = collection.Validate()
         print "Collection '%s' is invalid because: %s" % \
             (name, reason)
         self.assertFalse(valid)