Skip to content

Commit 9eadad0

Browse files
committed
OBJ, DAE: Added SetFamilyType in UsdGeom.Subset
1 parent f196d63 commit 9eadad0

File tree

3 files changed

+34
-0
lines changed

3 files changed

+34
-0
lines changed

tests/testMaterial.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -899,11 +899,27 @@ def test_mesh_subsets_materials(self):
899899
self.assertTrue(subset_001_prim.IsA(UsdGeom.Subset))
900900
self.check_material_binding(subset_001_prim, material_green)
901901

902+
subset = UsdGeom.Subset(subset_001_prim)
903+
element_type = subset.GetElementTypeAttr().Get()
904+
self.assertEqual(element_type, UsdGeom.Tokens.face)
905+
family_name = subset.GetFamilyNameAttr().Get()
906+
self.assertEqual(family_name, UsdShade.Tokens.materialBind)
907+
family_type = subset.GetFamilyType(UsdGeom.Mesh(box_materials_prim), family_name)
908+
self.assertEqual(family_type, UsdGeom.Tokens.partition)
909+
902910
subset_002_prim = box_materials_prim.GetChild("GeomSubset_002")
903911
self.assertTrue(subset_002_prim.IsValid())
904912
self.assertTrue(subset_002_prim.IsA(UsdGeom.Subset))
905913
self.check_material_binding(subset_002_prim, material_red)
906914

915+
subset = UsdGeom.Subset(subset_002_prim)
916+
element_type = subset.GetElementTypeAttr().Get()
917+
self.assertEqual(element_type, UsdGeom.Tokens.face)
918+
family_name = subset.GetFamilyNameAttr().Get()
919+
self.assertEqual(family_name, UsdShade.Tokens.materialBind)
920+
family_type = subset.GetFamilyType(UsdGeom.Mesh(box_materials_prim), family_name)
921+
self.assertEqual(family_type, UsdGeom.Tokens.partition)
922+
907923
link_mesh_dae_prim = link_mesh_obj_prim.GetChild("link_mesh_dae")
908924
box_materials_prim = link_mesh_dae_prim.GetChild("box_two_materials")
909925
self.assertTrue(box_materials_prim.IsValid())
@@ -915,7 +931,23 @@ def test_mesh_subsets_materials(self):
915931
self.assertTrue(subset_001_prim.IsA(UsdGeom.Subset))
916932
self.check_material_binding(subset_001_prim, material_red_1)
917933

934+
subset = UsdGeom.Subset(subset_001_prim)
935+
element_type = subset.GetElementTypeAttr().Get()
936+
self.assertEqual(element_type, UsdGeom.Tokens.face)
937+
family_name = subset.GetFamilyNameAttr().Get()
938+
self.assertEqual(family_name, UsdShade.Tokens.materialBind)
939+
family_type = subset.GetFamilyType(UsdGeom.Mesh(box_materials_prim), family_name)
940+
self.assertEqual(family_type, UsdGeom.Tokens.partition)
941+
918942
subset_002_prim = box_materials_prim.GetChild("GeomSubset_002")
919943
self.assertTrue(subset_002_prim.IsValid())
920944
self.assertTrue(subset_002_prim.IsA(UsdGeom.Subset))
921945
self.check_material_binding(subset_002_prim, material_green_1)
946+
947+
subset = UsdGeom.Subset(subset_002_prim)
948+
element_type = subset.GetElementTypeAttr().Get()
949+
self.assertEqual(element_type, UsdGeom.Tokens.face)
950+
family_name = subset.GetFamilyNameAttr().Get()
951+
self.assertEqual(family_name, UsdShade.Tokens.materialBind)
952+
family_type = subset.GetFamilyType(UsdGeom.Mesh(box_materials_prim), family_name)
953+
self.assertEqual(family_type, UsdGeom.Tokens.partition)

urdf_usd_converter/_impl/conversion_collada.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,7 @@ def _convert_mesh(
208208
geom_subset.GetIndicesAttr().Set(Vt.IntArray(face_indices))
209209
geom_subset.GetElementTypeAttr().Set(UsdGeom.Tokens.face)
210210
geom_subset.GetFamilyNameAttr().Set(UsdShade.Tokens.materialBind)
211+
geom_subset.SetFamilyType(usd_mesh, UsdShade.Tokens.materialBind, UsdGeom.Tokens.partition)
211212
subset_offset += face_offset
212213

213214
# Stores the material names referenced by geometry. Each primitive can have its own material.

urdf_usd_converter/_impl/mesh.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,7 @@ def _mesh_subsets_obj(
147147
geom_subset.GetIndicesAttr().Set(face_indices)
148148
geom_subset.GetElementTypeAttr().Set(UsdGeom.Tokens.face)
149149
geom_subset.GetFamilyNameAttr().Set(UsdShade.Tokens.materialBind)
150+
geom_subset.SetFamilyType(mesh, UsdShade.Tokens.materialBind, UsdGeom.Tokens.partition)
150151

151152
# Store the material names for the mesh.
152153
store_mesh_material_reference(input_path, mesh.GetPrim().GetName(), material_names, data)

0 commit comments

Comments
 (0)