Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions tests/data/assets/box_transparent_material.dae
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@
<transparent opaque="RGB_ZERO">
<color sid="alpha">0.2 0.3 0.1 1</color>
</transparent>
<transparency>
<float sid="transparency">1.0</float>
</transparency>
<index_of_refraction>
<float sid="ior">1.45</float>
</index_of_refraction>
Expand Down
124 changes: 124 additions & 0 deletions tests/data/assets/box_two_materials_same_names.dae
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
<?xml version="1.0" encoding="utf-8"?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<asset>
<unit name="meter" meter="1"/>
<up_axis>Z_UP</up_axis>
</asset>
<library_effects>
<effect id="Material_red-effect">
<profile_COMMON>
<technique sid="common">
<lambert>
<emission>
<color sid="emission">0 0 0 1</color>
</emission>
<diffuse>
<color sid="diffuse">1 0 0 1</color>
</diffuse>
<index_of_refraction>
<float sid="ior">1.45</float>
</index_of_refraction>
</lambert>
</technique>
</profile_COMMON>
</effect>
<effect id="Material_green-effect">
<profile_COMMON>
<technique sid="common">
<lambert>
<emission>
<color sid="emission">0 0 0 1</color>
</emission>
<diffuse>
<color sid="diffuse">0 1 0 1</color>
</diffuse>
<index_of_refraction>
<float sid="ior">1.5</float>
</index_of_refraction>
</lambert>
</technique>
</profile_COMMON>
</effect>
</library_effects>
<library_images/>
<library_materials>
<material id="Material_red-material" name="Material_same">
<instance_effect url="#Material_red-effect"/>
</material>
<material id="Material_green-material" name="Material_same">
<instance_effect url="#Material_green-effect"/>
</material>
</library_materials>
<library_geometries>
<geometry id="Cube-mesh" name="Cube">
<mesh>
<source id="Cube-mesh-positions">
<float_array id="Cube-mesh-positions-array" count="24">1 1 1 1 1 -1 1 -1 1 1 -1 -1 -1 1 1 -1 1 -1 -1 -1 1 -1 -1 -1</float_array>
<technique_common>
<accessor source="#Cube-mesh-positions-array" count="8" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube-mesh-normals">
<float_array id="Cube-mesh-normals-array" count="36">0 0 1 0 -1 0 -1 0 0 0 0 -1 1 0 0 0 1 0 0 0 1 0 -1 0 -1 0 0 0 0 -1 1 0 0 0 1 0</float_array>
<technique_common>
<accessor source="#Cube-mesh-normals-array" count="12" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube-mesh-map-0">
<float_array id="Cube-mesh-map-0-array" count="72">0.875 0.5 0.625 0.75 0.625 0.5 0.625 0.75 0.375 1 0.375 0.75 0.625 0 0.375 0.25 0.375 0 0.375 0.5 0.125 0.75 0.125 0.5 0.625 0.5 0.375 0.75 0.375 0.5 0.625 0.25 0.375 0.5 0.375 0.25 0.875 0.5 0.875 0.75 0.625 0.75 0.625 0.75 0.625 1 0.375 1 0.625 0 0.625 0.25 0.375 0.25 0.375 0.5 0.375 0.75 0.125 0.75 0.625 0.5 0.625 0.75 0.375 0.75 0.625 0.25 0.625 0.5 0.375 0.5</float_array>
<technique_common>
<accessor source="#Cube-mesh-map-0-array" count="36" stride="2">
<param name="S" type="float"/>
<param name="T" type="float"/>
</accessor>
</technique_common>
</source>
<vertices id="Cube-mesh-vertices">
<input semantic="POSITION" source="#Cube-mesh-positions"/>
</vertices>
<triangles material="Material_red-material" count="6">
<input semantic="VERTEX" source="#Cube-mesh-vertices" offset="0"/>
<input semantic="NORMAL" source="#Cube-mesh-normals" offset="1"/>
<input semantic="TEXCOORD" source="#Cube-mesh-map-0" offset="2" set="0"/>
<p>2 1 3 7 1 4 3 1 5 6 2 6 5 2 7 7 2 8 1 3 9 7 3 10 5 3 11 2 7 21 6 7 22 7 7 23 6 8 24 4 8 25 5 8 26 1 9 27 3 9 28 7 9 29</p>
</triangles>
<triangles material="Material_green-material" count="6">
<input semantic="VERTEX" source="#Cube-mesh-vertices" offset="0"/>
<input semantic="NORMAL" source="#Cube-mesh-normals" offset="1"/>
<input semantic="TEXCOORD" source="#Cube-mesh-map-0" offset="2" set="0"/>
<p>4 0 0 2 0 1 0 0 2 0 4 12 3 4 13 1 4 14 4 5 15 1 5 16 5 5 17 4 6 18 6 6 19 2 6 20 0 10 30 2 10 31 3 10 32 4 11 33 0 11 34 1 11 35</p>
</triangles>
</mesh>
</geometry>
</library_geometries>
<library_visual_scenes>
<visual_scene id="Scene" name="Scene">
<node id="Cube" name="Cube" type="NODE">
<matrix sid="transform">0.5 0 0 0 0 0.5 0 0 0 0 0.5 0 0 0 0 1</matrix>
<instance_geometry url="#Cube-mesh" name="Cube">
<bind_material>
<technique_common>
<instance_material symbol="Material_red-material" target="#Material_red-material">
<bind_vertex_input semantic="UVMap" input_semantic="TEXCOORD" input_set="0"/>
</instance_material>
<instance_material symbol="Material_green-material" target="#Material_green-material">
<bind_vertex_input semantic="UVMap" input_semantic="TEXCOORD" input_set="0"/>
</instance_material>
</technique_common>
</bind_material>
</instance_geometry>
</node>
</visual_scene>
</library_visual_scenes>
<scene>
<instance_visual_scene url="#Scene"/>
</scene>
</COLLADA>
14 changes: 13 additions & 1 deletion tests/data/test_displayname.urdf
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,14 @@
</geometry>
</visual>
</link>
<link name="link-box_two_materials_same_names">
<visual>
<geometry>
<!-- With the same material name (IDs differ) -->
<mesh filename="assets/box_two_materials_same_names.dae" scale="0.5 0.5 0.5"/>
</geometry>
</visual>
</link>

<joint name="joint:root" type="fixed">
<origin rpy="0 0 0" xyz="1 0 0"/>
Expand All @@ -51,5 +59,9 @@
<parent link="link-box2"/>
<child link="link-mesh_dae"/>
</joint>

<joint name="box_two_materials_same_names" type="fixed">
<origin rpy="0 0 0" xyz="0 3 0"/>
<parent link="link-box2"/>
<child link="link-box_two_materials_same_names"/>
</joint>
</robot>
25 changes: 25 additions & 0 deletions tests/testAssetStructure.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,31 @@ def test_display_name(self):
self.assertTrue(material_red_prim.IsA(UsdShade.Material))
self.assertEqual(usdex.core.getDisplayName(material_red_prim), "material:red")

material_red_prim = material_scope_prim.GetChild("tn__red_matmaterial_jM")
self.assertTrue(material_red_prim.IsValid())
self.assertTrue(material_red_prim.IsA(UsdShade.Material))
self.assertEqual(usdex.core.getDisplayName(material_red_prim), "red_mat")

material_blue_prim = material_scope_prim.GetChild("tn__blue_matmaterial_yN")
self.assertTrue(material_blue_prim.IsValid())
self.assertTrue(material_blue_prim.IsA(UsdShade.Material))
self.assertEqual(usdex.core.getDisplayName(material_blue_prim), "blue_mat")

material_green_prim = material_scope_prim.GetChild("tn__green_matmaterial_iP")
self.assertTrue(material_green_prim.IsValid())
self.assertTrue(material_green_prim.IsA(UsdShade.Material))
self.assertEqual(usdex.core.getDisplayName(material_green_prim), "green_mat")

material_red_prim = material_scope_prim.GetChild("tn__Material_redmaterial_wT")
self.assertTrue(material_red_prim.IsValid())
self.assertTrue(material_red_prim.IsA(UsdShade.Material))
self.assertEqual(usdex.core.getDisplayName(material_red_prim), "Material_same")

material_green_prim = material_scope_prim.GetChild("tn__Material_greenmaterial_vW0")
self.assertTrue(material_green_prim.IsValid())
self.assertTrue(material_green_prim.IsA(UsdShade.Material))
self.assertEqual(usdex.core.getDisplayName(material_green_prim), "Material_same")

def test_interface_layer(self):
input_path = "tests/data/simple_box.urdf"
robot_name = pathlib.Path(input_path).stem
Expand Down
26 changes: 13 additions & 13 deletions tests/testMaterial.py
Original file line number Diff line number Diff line change
Expand Up @@ -564,7 +564,7 @@ def test_material_mesh_override(self):
opacity = self.get_material_opacity(green_material)
self.assertAlmostEqual(opacity, 1.0, places=6)

dae_material_prim = material_scope_prim.GetChild("Material")
dae_material_prim = material_scope_prim.GetChild("tn__Materialmaterial_yN")
self.assertTrue(dae_material_prim.IsValid())
self.assertTrue(dae_material_prim.IsA(UsdShade.Material))
dae_material = UsdShade.Material(dae_material_prim)
Expand Down Expand Up @@ -626,7 +626,7 @@ def test_dae_materials(self):
material_scope_prim = default_prim.GetChild("Materials")
self.assertTrue(material_scope_prim.IsValid())

material_prim = material_scope_prim.GetChild("texture_mat")
material_prim = material_scope_prim.GetChild("tn__texture_matmaterial_hS")
self.assertTrue(material_prim.IsValid())
self.assertTrue(material_prim.IsA(UsdShade.Material))
texture_material = UsdShade.Material(material_prim)
Expand All @@ -636,7 +636,7 @@ def test_dae_materials(self):
opacity = self.get_material_opacity(texture_material)
self.assertAlmostEqual(opacity, 1.0, places=6)

material_prim = material_scope_prim.GetChild("emissive_mat")
material_prim = material_scope_prim.GetChild("tn__emissive_matmaterial_wT")
self.assertTrue(material_prim.IsValid())
self.assertTrue(material_prim.IsA(UsdShade.Material))
emissive_material = UsdShade.Material(material_prim)
Expand All @@ -650,7 +650,7 @@ def test_dae_materials(self):
opacity = self.get_material_opacity(emissive_material)
self.assertAlmostEqual(opacity, 1.0, places=6)

material_prim = material_scope_prim.GetChild("emissive_color_tex_mat")
material_prim = material_scope_prim.GetChild("tn__emissive_color_tex_matmaterial_ri0")
self.assertTrue(material_prim.IsValid())
self.assertTrue(material_prim.IsA(UsdShade.Material))
emissive_color_tex_material = UsdShade.Material(material_prim)
Expand All @@ -660,7 +660,7 @@ def test_dae_materials(self):
emissive_color_texture_path = self.get_material_texture_path(emissive_color_tex_material, "emissiveColor")
self.assertEqual(emissive_color_texture_path, pathlib.Path("./Textures/emissive.png"))

material_prim = material_scope_prim.GetChild("opacity_mat")
material_prim = material_scope_prim.GetChild("tn__opacity_matmaterial_hS")
self.assertTrue(material_prim.IsValid())
self.assertTrue(material_prim.IsA(UsdShade.Material))
opacity_material = UsdShade.Material(material_prim)
Expand All @@ -670,7 +670,7 @@ def test_dae_materials(self):
opacity = self.get_material_opacity(opacity_material)
self.assertAlmostEqual(opacity, 0.4, places=6)

material_prim = material_scope_prim.GetChild("opacity_texture_mat")
material_prim = material_scope_prim.GetChild("tn__opacity_texture_matmaterial_de0")
self.assertTrue(material_prim.IsValid())
self.assertTrue(material_prim.IsA(UsdShade.Material))
opacity_texture_material = UsdShade.Material(material_prim)
Expand All @@ -680,7 +680,7 @@ def test_dae_materials(self):
opacity_texture_path = self.get_material_texture_path(opacity_texture_material, "opacity")
self.assertEqual(opacity_texture_path, pathlib.Path("./Textures/opacity.png"))

material_prim = material_scope_prim.GetChild("specular_mat")
material_prim = material_scope_prim.GetChild("tn__specular_matmaterial_wT")
self.assertTrue(material_prim.IsValid())
self.assertTrue(material_prim.IsA(UsdShade.Material))
specular_material = UsdShade.Material(material_prim)
Expand All @@ -696,7 +696,7 @@ def test_dae_materials(self):
specular_workflow = self.get_material_specular_workflow(specular_material)
self.assertTrue(specular_workflow)

material_prim = material_scope_prim.GetChild("specular_texture_mat")
material_prim = material_scope_prim.GetChild("tn__specular_texture_mat_001material_ql0")
self.assertTrue(material_prim.IsValid())
self.assertTrue(material_prim.IsA(UsdShade.Material))
specular_texture_material = UsdShade.Material(material_prim)
Expand All @@ -711,7 +711,7 @@ def test_dae_materials(self):
specular_workflow = self.get_material_specular_workflow(specular_texture_material)
self.assertTrue(specular_workflow)

material_prim = material_scope_prim.GetChild("Material_red")
material_prim = material_scope_prim.GetChild("tn__Material_redmaterial_wT")
self.assertTrue(material_prim.IsValid())
self.assertTrue(material_prim.IsA(UsdShade.Material))
material_red = UsdShade.Material(material_prim)
Expand All @@ -722,7 +722,7 @@ def test_dae_materials(self):
opacity = self.get_material_opacity(material_red)
self.assertAlmostEqual(opacity, 1.0, places=6)

material_prim = material_scope_prim.GetChild("Material_green")
material_prim = material_scope_prim.GetChild("tn__Material_greenmaterial_vW0")
self.assertTrue(material_prim.IsValid())
self.assertTrue(material_prim.IsA(UsdShade.Material))
material_green = UsdShade.Material(material_prim)
Expand All @@ -733,7 +733,7 @@ def test_dae_materials(self):
opacity = self.get_material_opacity(material_green)
self.assertAlmostEqual(opacity, 1.0, places=6)

material_prim = material_scope_prim.GetChild("transparent_mat")
material_prim = material_scope_prim.GetChild("tn__transparent_matmaterial_fY0")
self.assertTrue(material_prim.IsValid())
self.assertTrue(material_prim.IsA(UsdShade.Material))
material_transparent = UsdShade.Material(material_prim)
Expand Down Expand Up @@ -853,7 +853,7 @@ def test_mesh_subsets_materials(self):
opacity = self.get_material_opacity(material_red)
self.assertAlmostEqual(opacity, 1.0, places=6)

material_red_1_prim = material_scope_prim.GetChild("Material_red_1")
material_red_1_prim = material_scope_prim.GetChild("tn__Material_redmaterial_wT")
self.assertTrue(material_red_1_prim.IsValid())
self.assertTrue(material_red_1_prim.IsA(UsdShade.Material))
material_red_1 = UsdShade.Material(material_red_1_prim)
Expand All @@ -863,7 +863,7 @@ def test_mesh_subsets_materials(self):
opacity = self.get_material_opacity(material_red_1)
self.assertAlmostEqual(opacity, 1.0, places=6)

material_green_1_prim = material_scope_prim.GetChild("Material_green_1")
material_green_1_prim = material_scope_prim.GetChild("tn__Material_greenmaterial_vW0")
self.assertTrue(material_green_1_prim.IsValid())
self.assertTrue(material_green_1_prim.IsA(UsdShade.Material))
material_green_1 = UsdShade.Material(material_green_1_prim)
Expand Down
Loading
Loading