Пример #1
0
 def line_intersection(self, s1: int, e1: int, s2: int, e2: int) -> None:
     line1 = self.p1[s1], self.p1[e1]
     line2 = self.p2[s2], self.p2[e2]
     p = intersection_line_line_3d(line1,
                                   line2,
                                   virtual=False,
                                   abs_tol=self.abs_tol)
     if p is not None and not any(
             p.isclose(ip, abs_tol=self.abs_tol)
             for ip in self.intersections):
         self.intersections.append(p)
Пример #2
0
 def test_coincident_lines_do_not_intersect(self, p2):
     line = (Vec3(), Vec3(p2))
     assert intersection_line_line_3d(line, line, virtual=False) is None
Пример #3
0
 def test_touching_lines_do_intersect(self, line1, line4):
     assert intersection_line_line_3d(line1, line4, virtual=False).isclose(
         (2, 0, 0))
Пример #4
0
 def test_not_intersecting_lines(self, line1, line3):
     assert intersection_line_line_3d(line1, line3, virtual=False) is None
Пример #5
0
 def test_virtual_intersecting_lines(self, line1, line3):
     assert intersection_line_line_3d(line1, line3, virtual=True).isclose(
         (3, 0, 0))
Пример #6
0
 def test_real_intersecting_lines(self, line1, line2):
     assert intersection_line_line_3d(line1, line2, virtual=False).isclose(
         (1, 0, 0))