示例#1
0
 def test_link_iterator(self):
   model_shapes = iDynTree.ModelSolidShapes()
   model_shapes.resize(2)
   # Create one mesh for link 0.
   mesh = iDynTree.ExternalMesh()
   mesh.name = "mesh_l0"
   model_shapes[0].append(mesh)
   # Create two meshes for link 1.
   mesh = iDynTree.ExternalMesh()
   mesh.name = "mesh_l1_1"
   model_shapes[1].append(mesh)
   mesh = iDynTree.ExternalMesh()
   mesh.name = "mesh_l1_2"
   model_shapes[1].append(mesh)
   # Test that the iterator iterates once on the first link.
   i = 0
   for m in model_shapes[0]:
     i += 1
     self.assertTrue(m.name)
   self.assertEqual(i, 1)
   # Test that the iterator iterates twice on the first link.
   i = 0
   for m in model_shapes[1]:
     i += 1
     self.assertTrue(m.name)
   self.assertEqual(i, 2)
示例#2
0
 def test_clone(self):
   mesh = iDynTree.ExternalMesh()
   mesh.name = "a_name"
   mesh_clone = mesh.clone()
   mesh_clone.name = "cloned_name"
   self.assertEqual(mesh_clone.name, "cloned_name")
   self.assertEqual(mesh.name, "a_name")
示例#3
0
 def test_mesh_scale(self):
   mesh = iDynTree.ExternalMesh()
   scale = iDynTree.Vector3()
   scale[0] = 1
   scale[1] = 2
   scale[2] = 3
   mesh.scale = scale
   self.assertEqual(list(mesh.scale), list(scale))
示例#4
0
 def test_add_mesh(self):
   model_shapes = iDynTree.ModelSolidShapes()
   model_shapes.resize(2)
   mesh = iDynTree.ExternalMesh()
   mesh.name = "a_mesh"
   model_shapes[0].append(mesh)
   self.assertEqual(len(model_shapes[1]), 0)
   self.assertEqual(model_shapes[0, 0].name, "a_mesh")
示例#5
0
 def test_cast_to_wrong_object_raises(self):
   sphere = iDynTree.Sphere()
   sphere.radius = 3.14
   mesh = iDynTree.ExternalMesh()
   mesh.filename = "a_filename"
   with self.assertRaises(ValueError):
     sphere.as_external_mesh()
   with self.assertRaises(ValueError):
     mesh.as_sphere()
示例#6
0
 def test_clear_on_model_shapes(self):
   model_shapes = iDynTree.ModelSolidShapes()
   model_shapes.resize(2)
   mesh = iDynTree.ExternalMesh()
   mesh.name = "a_mesh"
   model_shapes[0].append(mesh)
   self.assertEqual(len(model_shapes), 2)
   model_shapes.clear()
   self.assertEqual(len(model_shapes), 0)
示例#7
0
 def test_overwrite_shape_on_model_list(self):
   model_shapes = iDynTree.ModelSolidShapes()
   model_shapes.resize(1)
   mesh = iDynTree.ExternalMesh()
   mesh.name = "a_mesh"
   model_shapes[0].append(mesh)
   # Now change the shape in [0][0]
   mesh.name = "a_different_mesh"
   model_shapes[0, 0] = mesh
   self.assertEqual(model_shapes[0, 0].name, "a_different_mesh")
示例#8
0
 def test_cast_to_correct_object_is_ok(self):
   sphere = iDynTree.Sphere()
   sphere.radius = 3.14
   mesh = iDynTree.ExternalMesh()
   mesh.filename = "a_filename"
   to_sphere = sphere.as_sphere()
   self.assertIsNotNone(to_sphere)
   self.assertEqual(to_sphere.radius, 3.14)
   to_mesh = mesh.as_external_mesh()
   self.assertIsNotNone(to_mesh)
   self.assertEqual(to_mesh.filename, "a_filename")
示例#9
0
    def test_transform(self):
        position = iDynTree.Position(1, 2, 3)
        rotation = iDynTree.Rotation(0, 0, 1, 1, 0, 0, 0, 1, 0)
        transform = iDynTree.Transform(rotation, position)
        mesh = iDynTree.ExternalMesh()
        mesh.link_H_geometry = transform

        self.assertEqual(list(mesh.link_H_geometry.position), list(position))
        for r, c in itertools.product(range(3), range(3)):
            self.assertEqual(mesh.link_H_geometry.rotation[r, c], rotation[r,
                                                                           c])
示例#10
0
 def test_model_shapes(self):
   model = iDynTree.Model()
   link1 = iDynTree.Link()
   link2 = iDynTree.Link()
   model.add_link("link1", link1)
   model.add_link("link2", link2)
   self.assertEqual(len(model.visual_solid_shapes), model.get_nr_of_links())
   self.assertEqual(len(model.collision_solid_shapes), model.get_nr_of_links())
   # Append a shape to test that the objects are writable.
   mesh = iDynTree.ExternalMesh()
   mesh.name = "a_mesh"
   old_len = len(model.visual_solid_shapes[0])
   model.visual_solid_shapes[0].append(mesh)
   self.assertEqual(len(model.visual_solid_shapes[0]), old_len + 1)
示例#11
0
 def test_mesh_filename(self):
   mesh = iDynTree.ExternalMesh()
   mesh.filename = "a_filename"
   self.assertEqual(mesh.filename, "a_filename")
示例#12
0
 def test_material(self):
   mesh = iDynTree.ExternalMesh()
   mesh.material = iDynTree.Material("a_material")
   self.assertEqual(mesh.material.name, "a_material")