def test_cylinder_collision_model_dist_problem(self): """ check where is problem in two lines dist function :return: """ cm = g3.CollisionModelSpheres(areasize=[150, 151, 155]) distance = 25 pt1 = [20, 20, 20] pt2 = [20, 20, 60] pt3 = [20, 20 + distance, 20] pt4 = [20, 20 + distance, 60] ptC1 = [0, 0, 0] ptC2 = [0, 60, 0] rA = 10 rB = 10 rC = 15 cylA = g3.CylinderObject( [8.2932388, -0.65185999, 9.54170155], [8.2932388, 11.23408448, 21.42764602], radius=5.691834898023455, ) cylB = g3.CylinderObject( [2.76365903, 0.86076129, 4.30361747], [2.76365903, 7.00253318, 10.44538936], radius=7.2248666037231875, ) collision1 = cylA.collision(cylB) self.assertEqual(collision1, True)
def test_collision_model_n_closest(self): cm = g3.CollisionModelSpheres(areasize=[150, 151, 155]) distance = 30 pt1 = [20, 20, 20] pt2 = [20, 20, 60] pt3 = [20, 20 + distance, 20] pt4 = [20, 20 + distance, 60] r1 = 10 r2 = 10 collision1 = cm.add_cylinder_if_no_collision(pt1, pt2, radius=r1) nodes, indexes, distances = cm.n_closest_points([25, 35, 41], 3)
def test_collision_model_collision(self): cm = g3.CollisionModelSpheres(areasize=[150, 151, 155]) distance = 15 pt1 = [20, 20, 20] pt2 = [20, 20, 60] pt3 = [20, 20 + distance, 20] pt4 = [20, 20 + distance, 60] r1 = 10 r2 = 10 collision1 = cm.add_cylinder_if_no_collision(pt1, pt2, radius=r1) collision2 = cm.add_cylinder_if_no_collision(pt3, pt4, radius=r2) self.assertEqual(collision2, True)
def test_collision_model_out_of_area(self): """ Cylinder end point should be in safe distance from boundary :return: """ cm = g3.CollisionModelSpheres(areasize=[150, 151, 65]) distance = 25 pt1 = [20, 20, 20] pt2 = [20, 20, 60] pt3 = [20, 20 + distance, 20] pt4 = [20, 20 + distance, 60] r1 = 10 r2 = 10 collision1 = cm.add_cylinder_if_no_collision(pt1, pt2, radius=r1) collision2 = cm.add_cylinder_if_no_collision(pt3, pt4, radius=r2) self.assertEqual(collision2, True)
def test_cylinder_collision_model_collision(self): cm = g3.CollisionModelSpheres(areasize=[150, 151, 155]) distance = 25 pt1 = [20, 20, 20] pt2 = [20, 20, 60] pt3 = [20, 20 + distance, 20] pt4 = [20, 20 + distance, 60] ptC1 = [0, 0, 0] ptC2 = [0, 60, 0] rA = 10 rB = 10 rC = 15 cylA = g3.CylinderObject(pt1, pt2, radius=rA) cylB = g3.CylinderObject(pt3, pt4, radius=rB) cylC = g3.CylinderObject(ptC1, ptC2, radius=rC) collision1 = cylA.collision(cylB) collision2 = cylA.collision(cylC) self.assertEqual(collision1, False) self.assertEqual(collision2, False)