Explorar el Código

- commented the camlib.alpha_shape() as it is not needed but require a huge package (scipy)

Marius Stanciu hace 6 años
padre
commit
29d57caacd
Se han modificado 1 ficheros con 57 adiciones y 57 borrados
  1. 57 57
      camlib.py

+ 57 - 57
camlib.py

@@ -46,7 +46,7 @@ import ezdxf
 
 # TODO: Commented for FlatCAM packaging with cx_freeze
 # from scipy.spatial import KDTree, Delaunay
-from scipy.spatial import Delaunay
+# from scipy.spatial import Delaunay
 
 from flatcamParsers.ParseSVG import *
 from flatcamParsers.ParseDXF import *
@@ -7409,62 +7409,62 @@ def parse_gerber_number(strnumber, int_digits, frac_digits, zeros):
     return ret_val
 
 
-def alpha_shape(points, alpha):
-    """
-    Compute the alpha shape (concave hull) of a set of points.
-
-    @param points: Iterable container of points.
-    @param alpha: alpha value to influence the gooeyness of the border. Smaller
-                  numbers don't fall inward as much as larger numbers. Too large,
-                  and you lose everything!
-    """
-    if len(points) < 4:
-        # When you have a triangle, there is no sense in computing an alpha
-        # shape.
-        return MultiPoint(list(points)).convex_hull
-
-    def add_edge(edges, edge_points, coords, i, j):
-        """Add a line between the i-th and j-th points, if not in the list already"""
-        if (i, j) in edges or (j, i) in edges:
-            # already added
-            return
-        edges.add( (i, j) )
-        edge_points.append(coords[ [i, j] ])
-
-    coords = np.array([point.coords[0] for point in points])
-
-    tri = Delaunay(coords)
-    edges = set()
-    edge_points = []
-    # loop over triangles:
-    # ia, ib, ic = indices of corner points of the triangle
-    for ia, ib, ic in tri.vertices:
-        pa = coords[ia]
-        pb = coords[ib]
-        pc = coords[ic]
-
-        # Lengths of sides of triangle
-        a = math.sqrt((pa[0]-pb[0])**2 + (pa[1]-pb[1])**2)
-        b = math.sqrt((pb[0]-pc[0])**2 + (pb[1]-pc[1])**2)
-        c = math.sqrt((pc[0]-pa[0])**2 + (pc[1]-pa[1])**2)
-
-        # Semiperimeter of triangle
-        s = (a + b + c)/2.0
-
-        # Area of triangle by Heron's formula
-        area = math.sqrt(s*(s-a)*(s-b)*(s-c))
-        circum_r = a*b*c/(4.0*area)
-
-        # Here's the radius filter.
-        #print circum_r
-        if circum_r < 1.0/alpha:
-            add_edge(edges, edge_points, coords, ia, ib)
-            add_edge(edges, edge_points, coords, ib, ic)
-            add_edge(edges, edge_points, coords, ic, ia)
-
-    m = MultiLineString(edge_points)
-    triangles = list(polygonize(m))
-    return cascaded_union(triangles), edge_points
+# def alpha_shape(points, alpha):
+#     """
+#     Compute the alpha shape (concave hull) of a set of points.
+#
+#     @param points: Iterable container of points.
+#     @param alpha: alpha value to influence the gooeyness of the border. Smaller
+#                   numbers don't fall inward as much as larger numbers. Too large,
+#                   and you lose everything!
+#     """
+#     if len(points) < 4:
+#         # When you have a triangle, there is no sense in computing an alpha
+#         # shape.
+#         return MultiPoint(list(points)).convex_hull
+#
+#     def add_edge(edges, edge_points, coords, i, j):
+#         """Add a line between the i-th and j-th points, if not in the list already"""
+#         if (i, j) in edges or (j, i) in edges:
+#             # already added
+#             return
+#         edges.add( (i, j) )
+#         edge_points.append(coords[ [i, j] ])
+#
+#     coords = np.array([point.coords[0] for point in points])
+#
+#     tri = Delaunay(coords)
+#     edges = set()
+#     edge_points = []
+#     # loop over triangles:
+#     # ia, ib, ic = indices of corner points of the triangle
+#     for ia, ib, ic in tri.vertices:
+#         pa = coords[ia]
+#         pb = coords[ib]
+#         pc = coords[ic]
+#
+#         # Lengths of sides of triangle
+#         a = math.sqrt((pa[0]-pb[0])**2 + (pa[1]-pb[1])**2)
+#         b = math.sqrt((pb[0]-pc[0])**2 + (pb[1]-pc[1])**2)
+#         c = math.sqrt((pc[0]-pa[0])**2 + (pc[1]-pa[1])**2)
+#
+#         # Semiperimeter of triangle
+#         s = (a + b + c)/2.0
+#
+#         # Area of triangle by Heron's formula
+#         area = math.sqrt(s*(s-a)*(s-b)*(s-c))
+#         circum_r = a*b*c/(4.0*area)
+#
+#         # Here's the radius filter.
+#         #print circum_r
+#         if circum_r < 1.0/alpha:
+#             add_edge(edges, edge_points, coords, ia, ib)
+#             add_edge(edges, edge_points, coords, ib, ic)
+#             add_edge(edges, edge_points, coords, ic, ia)
+#
+#     m = MultiLineString(edge_points)
+#     triangles = list(polygonize(m))
+#     return cascaded_union(triangles), edge_points
 
 # def voronoi(P):
 #     """