Exemplo n.º 1
0
 def test_downscaling_valueerror(self):
     poly = Polygon2D(
         [Vector(0, 0),
          Vector(1, 0),
          Vector(1, 1),
          Vector(0, 1)])
     self.assertRaises(ValueError, lambda: poly.downscale(2))
Exemplo n.º 2
0
 def test_path(self):
     poly = Polygon2D(
         [Vector(0, 0),
          Vector(10, 0),
          Vector(10, 10),
          Vector(0, 10)])
     path = cover_polygon2d_with_path(poly, Vector(1, 1), 1, 0.5, 0.0)
Exemplo n.º 3
0
 def test_point_of_polygon(self):
     poly = Polygon2D(
         [Vector(0, 0),
          Vector(10, 0),
          Vector(10, 10),
          Vector(0, 10)])
     point = poly.get_point_on_polygon(10)
     segment, point = point.get_segment_and_vector()
Exemplo n.º 4
0
 def test_to_path(self):
     poly = Polygon2D(
         [Vector(0, 0),
          Vector(10, 0),
          Vector(10, 10),
          Vector(0, 10)])
     path1 = poly.to_path(0.1, Vector(1, 1))
     path2 = Path.from_to(Vector(0, 0), Vector(10, 0), Vector(1, 1), 0.1)
     intersects = list(path1.get_intersecting_boxes(path2))
     self.assertGreater(len(intersects), 1)
Exemplo n.º 5
0
 def test_iter_from(self):
     poly = Polygon2D(
         [Vector(0, 0),
          Vector(10, 0),
          Vector(10, 10),
          Vector(0, 10)])
     self.assertEqual(
         list(poly.iter_from(12)),
         [Vector(10, 0),
          Vector(10, 10),
          Vector(0, 10),
          Vector(0, 0)])
Exemplo n.º 6
0
 def test_downscaling(self):
     poly = Polygon2D(
         [Vector(0, 0),
          Vector(10, 0),
          Vector(10, 10),
          Vector(0, 10)])
     poly = poly.downscale(1)
     self.assertEqual(poly.points[0], Vector(1, 1).unitize())
     self.assertEqual(poly.points[1],
                      Vector(10, 0) + Vector(-1, 1).unitize())
     self.assertEqual(poly.points[2],
                      Vector(10, 10) + Vector(-1, -1).unitize())
     self.assertEqual(poly.points[3],
                      Vector(0, 10) + Vector(1, -1).unitize())
Exemplo n.º 7
0
 def test_nonintersecting(self):
     pc = [
         Coordinates(50.022313, 21.990220),
         Coordinates(50.022935, 21.990492),
         Coordinates(50.021613, 21.991670),
         Coordinates(50.021544, 21.991540),
         Coordinates(50.022149, 21.991335),
         Coordinates(50.021385, 21.992079)
     ]
     xy_pc = XYPointCollection(pc)
     poly1 = Polygon2D([xypoint.to_vector() for xypoint in xy_pc[:3]])
     poly2 = Polygon2D([xypoint.to_vector() for xypoint in xy_pc[3:]])
     path1 = cover_polygon2d_with_path(poly1, Vector(5, 5, 5), 10, 0.3, 0)
     path1.set_z(50)
     path2 = cover_polygon2d_with_path(poly2, Vector(5, 5, 5), 10, 0.3, 0)
     path2.set_z(50)
     path1, path2 = make_nonintersecting([
         MakeNonintersectingPaths(0, 100, path1),
         MakeNonintersectingPaths(0, 100, path2)
     ])
     self.assertGreater(path2.length, 400)
     self.assertTrue(are_mutually_nonintersecting([path1, path2]))
     path1.simplify()
     path2.simplify()
Exemplo n.º 8
0
 def test_get_unit_vector_towards_polygon(self):
     poly = Polygon2D(
         [Vector(0, 0),
          Vector(10, 0),
          Vector(10, 10),
          Vector(0, 10)])
     self.assertEqual(poly.total_perimeter_length, 40)
     self.assertEqual(poly.len_segments, [10, 10, 10, 10])
     point = poly.get_point_on_polygon(0)
     self.assertEqual(point.get_unit_vector_towards_polygon(),
                      Vector(1, 1).unitize())
     point.advance(5)
     self.assertEqual(point.to_vector(), Vector(5, 0))
     self.assertEqual(point.get_unit_vector_towards_polygon(), Vector(0, 1))
     self.assertEqual(point.get_unit_vector_away_polygon(), Vector(0, -1))
     point.advance(-10)
     self.assertEqual(point.to_vector(), Vector(0, 5))
     self.assertEqual(point.get_unit_vector_towards_polygon(), Vector(1, 0))
     point = poly.get_point_on_polygon(10)
     self.assertTrue(point.is_on_vertex())
     self.assertEqual(point.get_unit_vector_towards_polygon(),
                      Vector(-1, 1).unitize())
Exemplo n.º 9
0
 def test_point_contains(self):
     poly = Polygon2D([Vector(0, 0, 0), Vector(1, 0, 0), Vector(1, 1, 0)])
     self.assertIn(Vector(0.5, 0.5, 0), poly)
     self.assertIn(Vector(0, 0, 0), poly)
     self.assertNotIn(Vector(2, 0.5, 0), poly)
     self.assertNotIn(Vector(2, 2, 0), poly)
Exemplo n.º 10
0
 def test_point_closest(self):
     poly = Polygon2D([Vector(0, 0, 0), Vector(1, 0, 0), Vector(1, 1, 0)])
     closest = poly.get_closest_to(Vector(0.5, -0.5, 0), 10)
     self.assertLess(abs(closest - 0.5), 0.01)
     closest = poly.get_closest_to(Vector(2, 2, 0), 10)
     self.assertLess(abs(closest - 2), 0.01)