FME Geometry, PythonCaller, GenerativeArt
#main_script
import fmeobjects
import numpy as np
from fmeobjects import FMELine, FMEPoint, FMEPolygon
from scipy.spatial import Delaunay
"""
triangulation from star polygon vertices
where each vertex i connects to (i+k) % n.
"""
def star_polygon(n, k, r=1.0):
pts = [(r*np.cos(2*np.pi*i/n), r*np.sin(2*np.pi*i/n)) for i in range(n)]
path, i = [], 0
while not path or i != 0:
path.append(pts[i])
i = (i + k) % n
return path + [path[0]]
class FeatureProcessor(object):
def __init__(self):
pass
def input(self, feature: fmeobjects.FMEFeature):
start_point = np.array([10,15])
trianguline = star_polygon(7, 2)
pts = trianguline
pline_input = list(map(tuple, trianguline))
line1 = FMELine(pline_input)
feature.setGeometry(line1)
self.pyoutput(feature)
tri = Delaunay(pts)
for simplex in tri.simplices:
triangle_pts = simplex
pline_input = list(map(tuple, triangle_pts))
line1 = FMELine(pline_input)
polygon = FMEPolygon(line1)
feature.setGeometry(polygon)
self.pyoutput(feature)
"""
start_point = np.array([10,10])
#trianguline = triangle_row(start_point, 10, 5)
trianguline = triangle_row2(start_point, 11, 1, 3,1)
pline_input = list(map(tuple, trianguline))
line1 = FMELine(pline_input)
feature.setGeometry(line1)
self.pyoutput(feature)
"""