bdd: move grid generation code into geometry factory

This commit is contained in:
Sarah Hoffmann
2021-01-04 17:04:47 +01:00
parent f727620859
commit 14e5bc7a17
2 changed files with 18 additions and 21 deletions

View File

@@ -9,7 +9,7 @@ class GeometryFactory:
defpath = Path(__file__) / '..' / '..' / '..' / 'scenes' / 'data'
self.scene_path = os.environ.get('SCENE_PATH', defpath.resolve())
self.scene_cache = {}
self.clear_grid()
self.grid = {}
def parse_geometry(self, geom, scene):
""" Create a WKT SQL term for the given geometry.
@@ -103,11 +103,20 @@ class GeometryFactory:
return scene
def clear_grid(self):
def set_grid(self, lines, grid_step):
""" Replace the grid with one from the given lines.
"""
self.grid = {}
def add_grid_node(self, nodeid, x, y):
self.grid[nodeid] = (x, y)
y = 0
for line in lines:
x = 0
for pt_id in line:
if pt_id.isdigit():
self.grid[int(pt_id)] = (x, y)
x += grid_step
y += grid_step
def grid_node(self, nodeid):
""" Get the coordinates for the given grid node.
"""
return self.grid.get(nodeid)