Beispiel #1
0
    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)
Beispiel #2
0
 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)
Beispiel #3
0
    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)
Beispiel #4
0
    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)
Beispiel #5
0
    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)