| import unittest |
|
|
| from pyrep.const import ObjectType |
|
|
| from tests.core import TestCore |
| from pyrep.objects.object import Object |
| from pyrep.objects.shape import Shape |
| from pyrep.objects.octree import Octree |
|
|
| class TestOctrees(TestCore): |
|
|
| def setUp(self): |
| super().setUp() |
| self.octree = Octree.create(0.025) |
| self.shape = Shape('Panda_link0_visual') |
|
|
| def test_octree_insert_and_remove_voxels(self): |
| point = [0.0, 0.0, 0.0] |
| self.octree.insert_voxels(point) |
| voxels = self.octree.get_voxels() |
| |
| self.assertTrue(1 <= len(voxels)//3 and len(voxels)/3 <= 8) |
| self.assertTrue(self.octree.check_point_occupancy(point)) |
| self.octree.remove_voxels(point) |
| voxels = self.octree.get_voxels() |
| self.assertTrue(len(voxels)//3 is 0) |
| self.assertFalse(self.octree.check_point_occupancy(point)) |
|
|
| def test_octree_insert_and_subtract_object(self): |
| self.octree.insert_object(self.shape) |
| voxels = self.octree.get_voxels() |
| self.assertTrue(1 <= len(voxels)//3) |
| self.octree.subtract_object(self.shape) |
| voxels = self.octree.get_voxels() |
| self.assertTrue(len(voxels)//3 is 0) |
|
|
| def test_octree_insert_and_clear(self): |
| self.octree.insert_object(self.shape) |
| voxels = self.octree.get_voxels() |
| self.assertTrue(1 <= len(voxels)//3) |
| self.octree.clear_voxels() |
| voxels = self.octree.get_voxels() |
| self.assertTrue(len(voxels)//3 is 0) |
|
|