Example #1
0
 def runTest(self):
     subpath = geom.Subpath()
     subpath.AddSegment(('L', (0.0, 0.0), (3.0, 0.0)))
     subpath.AddSegment(('L', (3.0, 0.0), (3.0, 5.0)))
     subpath.AddSegment(('B', (3.0, 5.0), (0.0, 5.0), (2.0, 6.0),
         (1.0, 6.0)))
     subpath.closed = True
     opt = art2polyarea.ConvertOptions()
     pa = art2polyarea._SubpathToPolyArea(subpath, opt, geom.Points())
     self.assertEqual(pa.points.pos, [(0.0, 0.0), (3.0, 0.0), (3.0, 5.0),
         (1.5, 5.75), (0.0, 5.0)])
     self.assertEqual(pa.poly, [0, 1, 2, 3, 4])
     subpath = geom.Subpath()
     subpath.AddSegment(('L', (0.0, 0.0), (1.0, 0.0)))
     opt = art2polyarea.ConvertOptions()
     opt.smoothness = 0
     pa = art2polyarea._SubpathToPolyArea(subpath, opt, geom.Points())
     self.assertEqual(pa.poly, [])
     subpath = _MakePolySubpath([(0.0, 0.0), (0.000001, 0.0),
         (1.0, 0.0), (2.0, 2.0), (2.0, 2.0004), (3.0, 5.0),
         (0.0, -0.00003)])
     pa = art2polyarea._SubpathToPolyArea(subpath, opt, geom.Points())
     self.assertEqual(pa.points.pos, [(0.0, 0.0), (1.0, 0.0),
         (2.0, 2.0), (3.0, 5.0)])
     self.assertEqual(pa.poly, [0, 1, 2, 3])
Example #2
0
 def runTest(self):
     subpath = geom.Subpath()
     m = 0.551784  # magic number for circle approx by 4 beziers
     subpath.AddSegment(('B', (0.0, 0.0), (1.0, 1.0),
         (m, 0.0), (1.0, 1.0 - m)))
     subpath.AddSegment(('B', (1.0, 1.0), (0.0, 2.0),
         (1.0, 1.0 + m), (m, 2.0)))
     subpath.AddSegment(('L', (0.0, 2.0), (0.0, 0.0)))
     subpath.closed = True
     path = geom.Path()
     path.AddSubpath(subpath)
     opt = art2polyarea.ConvertOptions()
     opt.subdiv_kind = "EVEN"
     opt.smoothness = 0
     art2polyarea._SetEvenLength(opt, [path])
     pa = art2polyarea._SubpathToPolyArea(subpath, opt, geom.Points())
     self.assertEqual(len(pa.poly), 10)
     opt.smoothness = 1
     art2polyarea._SetEvenLength(opt, [path])
     pa = art2polyarea._SubpathToPolyArea(subpath, opt, geom.Points())
     self.assertEqual(len(pa.poly), 18)
     opt.smoothness = 2
     art2polyarea._SetEvenLength(opt, [path])
     pa = art2polyarea._SubpathToPolyArea(subpath, opt, geom.Points())
     self.assertEqual(len(pa.poly), 26)
Example #3
0
 def runTest(self):
     subpath = geom.Subpath()
     subpath.AddSegment(('L', (0.0, 0.0), (3.0, 0.0)))
     subpath.AddSegment(('L', (3.0, 0.0), (3.0, 5.0)))
     subpath.AddSegment(
         ('B', (3.0, 5.0), (0.0, 5.0), (2.0, 6.0), (1.0, 6.0)))
     subpath.closed = True
     opt = art2polyarea.ConvertOptions()
     pa = art2polyarea._SubpathToPolyArea(subpath, opt, geom.Points())
     self.assertEqual(pa.points.pos, [(0.0, 0.0), (3.0, 0.0), (3.0, 5.0),
                                      (1.5, 5.75), (0.0, 5.0)])
     self.assertEqual(pa.poly, [0, 1, 2, 3, 4])
     subpath = geom.Subpath()
     subpath.AddSegment(('L', (0.0, 0.0), (1.0, 0.0)))
     opt = art2polyarea.ConvertOptions()
     opt.smoothness = 0
     pa = art2polyarea._SubpathToPolyArea(subpath, opt, geom.Points())
     self.assertEqual(pa.poly, [])
     subpath = _MakePolySubpath([(0.0, 0.0), (0.000001, 0.0), (1.0, 0.0),
                                 (2.0, 2.0), (2.0, 2.0004), (3.0, 5.0),
                                 (0.0, -0.00003)])
     pa = art2polyarea._SubpathToPolyArea(subpath, opt, geom.Points())
     self.assertEqual(pa.points.pos, [(0.0, 0.0), (1.0, 0.0), (2.0, 2.0),
                                      (3.0, 5.0)])
     self.assertEqual(pa.poly, [0, 1, 2, 3])
Example #4
0
 def runTest(self):
     subpath = geom.Subpath()
     m = 0.551784  # magic number for circle approx by 4 beziers
     subpath.AddSegment(
         ('B', (0.0, 0.0), (1.0, 1.0), (m, 0.0), (1.0, 1.0 - m)))
     subpath.AddSegment(
         ('B', (1.0, 1.0), (0.0, 2.0), (1.0, 1.0 + m), (m, 2.0)))
     subpath.AddSegment(('L', (0.0, 2.0), (0.0, 0.0)))
     subpath.closed = True
     path = geom.Path()
     path.AddSubpath(subpath)
     opt = art2polyarea.ConvertOptions()
     opt.subdiv_kind = "EVEN"
     opt.smoothness = 0
     art2polyarea._SetEvenLength(opt, [path])
     pa = art2polyarea._SubpathToPolyArea(subpath, opt, geom.Points())
     self.assertEqual(len(pa.poly), 10)
     opt.smoothness = 1
     art2polyarea._SetEvenLength(opt, [path])
     pa = art2polyarea._SubpathToPolyArea(subpath, opt, geom.Points())
     self.assertEqual(len(pa.poly), 18)
     opt.smoothness = 2
     art2polyarea._SetEvenLength(opt, [path])
     pa = art2polyarea._SubpathToPolyArea(subpath, opt, geom.Points())
     self.assertEqual(len(pa.poly), 26)
Example #5
0
 def runTest(self):
     subpath = geom.Subpath()
     m = 0.551784  # magic number for circle approx by 4 beziers
     subpath.AddSegment(('B', (0.0, 0.0), (1.0, 1.0),
         (m, 0.0), (1.0, 1.0 - m)))
     subpath.AddSegment(('B', (1.0, 1.0), (0.0, 2.0),
         (1.0, 1.0 + m), (m, 2.0)))
     subpath.AddSegment(('B', (0.0, 2.0), (-1.0, 1.0),
         (-m, 2.0), (-1.0, 1.0 + m)))
     subpath.AddSegment(('B', (-1.0, 1.0), (0.0, 0.0),
         (-1.0, 1.0 - m), (-m, 0.0)))
     subpath.closed = True
     opt = art2polyarea.ConvertOptions()
     opt.subdiv_kind = "ADAPTIVE"
     opt.smoothness = 0
     pa = art2polyarea._SubpathToPolyArea(subpath, opt, geom.Points())
     self.assertEqual(len(pa.poly), 4)
     opt.smoothness = 1
     pa = art2polyarea._SubpathToPolyArea(subpath, opt, geom.Points())
     self.assertEqual(len(pa.poly), 8)
     opt.smoothness = 2
     pa = art2polyarea._SubpathToPolyArea(subpath, opt, geom.Points())
     self.assertEqual(len(pa.poly), 16)
     opt.smoothness = 3
     pa = art2polyarea._SubpathToPolyArea(subpath, opt, geom.Points())
     self.assertEqual(len(pa.poly), 32)
     opt.smoothness = 4
     pa = art2polyarea._SubpathToPolyArea(subpath, opt, geom.Points())
     self.assertEqual(len(pa.poly), 64)
     opt.smoothness = 5
     pa = art2polyarea._SubpathToPolyArea(subpath, opt, geom.Points())
     self.assertEqual(len(pa.poly), 128)
     opt.smoothness = 6
     pa = art2polyarea._SubpathToPolyArea(subpath, opt, geom.Points())
     self.assertEqual(len(pa.poly), 128)
Example #6
0
 def runTest(self):
     subpath = geom.Subpath()
     m = 0.551784  # magic number for circle approx by 4 beziers
     subpath.AddSegment(
         ('B', (0.0, 0.0), (1.0, 1.0), (m, 0.0), (1.0, 1.0 - m)))
     subpath.AddSegment(
         ('B', (1.0, 1.0), (0.0, 2.0), (1.0, 1.0 + m), (m, 2.0)))
     subpath.AddSegment(
         ('B', (0.0, 2.0), (-1.0, 1.0), (-m, 2.0), (-1.0, 1.0 + m)))
     subpath.AddSegment(
         ('B', (-1.0, 1.0), (0.0, 0.0), (-1.0, 1.0 - m), (-m, 0.0)))
     subpath.closed = True
     opt = art2polyarea.ConvertOptions()
     opt.subdiv_kind = "ADAPTIVE"
     opt.smoothness = 0
     pa = art2polyarea._SubpathToPolyArea(subpath, opt, geom.Points())
     self.assertEqual(len(pa.poly), 4)
     opt.smoothness = 1
     pa = art2polyarea._SubpathToPolyArea(subpath, opt, geom.Points())
     self.assertEqual(len(pa.poly), 8)
     opt.smoothness = 2
     pa = art2polyarea._SubpathToPolyArea(subpath, opt, geom.Points())
     self.assertEqual(len(pa.poly), 16)
     opt.smoothness = 3
     pa = art2polyarea._SubpathToPolyArea(subpath, opt, geom.Points())
     self.assertEqual(len(pa.poly), 32)
     opt.smoothness = 4
     pa = art2polyarea._SubpathToPolyArea(subpath, opt, geom.Points())
     self.assertEqual(len(pa.poly), 64)
     opt.smoothness = 5
     pa = art2polyarea._SubpathToPolyArea(subpath, opt, geom.Points())
     self.assertEqual(len(pa.poly), 128)
     opt.smoothness = 6
     pa = art2polyarea._SubpathToPolyArea(subpath, opt, geom.Points())
     self.assertEqual(len(pa.poly), 128)