Almost there. What a slog
This commit is contained in:
parent
df1088f30f
commit
150ab35d04
1 changed files with 7 additions and 18 deletions
|
@ -3,17 +3,7 @@ import enum
|
||||||
import math
|
import math
|
||||||
import shapely
|
import shapely
|
||||||
|
|
||||||
from typing import Self, Union
|
from typing import Self
|
||||||
|
|
||||||
def each_intermediate_point(p1: shapely.Point,
|
|
||||||
p2: shapely.Point,
|
|
||||||
intersection: Union[shapely.LineString, shapely.MultiLineString]):
|
|
||||||
typeof = type(intersection)
|
|
||||||
|
|
||||||
if typeof is shapely.LineString:
|
|
||||||
pass
|
|
||||||
elif typeof is shapely.MultiLineString:
|
|
||||||
pass
|
|
||||||
|
|
||||||
class PointDirection(enum.Enum):
|
class PointDirection(enum.Enum):
|
||||||
EQUAL = 0
|
EQUAL = 0
|
||||||
|
@ -125,10 +115,12 @@ class PolygonBuilder():
|
||||||
def each_intermediate_point(self, p1: shapely.Point, p2: shapely.Point):
|
def each_intermediate_point(self, p1: shapely.Point, p2: shapely.Point):
|
||||||
count = len(self.bounds)
|
count = len(self.bounds)
|
||||||
|
|
||||||
i1 = self.bounds.nearest_index(p1) + count
|
i1 = self.bounds.nearest_index(p1)
|
||||||
i2 = self.bounds.nearest_index(p2) + count
|
i2 = self.bounds.nearest_index(p2)
|
||||||
|
|
||||||
if i1 > i2:
|
dist, direction = self.bounds.index_distance(i1, i2)
|
||||||
|
|
||||||
|
if direction is not PointDirection.LEFT:
|
||||||
return
|
return
|
||||||
|
|
||||||
for i in range(i1, i2+1):
|
for i in range(i1, i2+1):
|
||||||
|
@ -194,10 +186,7 @@ class PolygonBuilder():
|
||||||
# Yield all intermediate points if the first point is to the right
|
# Yield all intermediate points if the first point is to the right
|
||||||
# of the last point.
|
# of the last point.
|
||||||
#
|
#
|
||||||
dist, direction = self.bounds.index_distance(self.point_first,
|
if self.point_first is not None and self.point_last is not None:
|
||||||
self.point_last)
|
|
||||||
|
|
||||||
if direction is PointDirection.RIGHT:
|
|
||||||
yield from self.each_intermediate_point(self.point_last,
|
yield from self.each_intermediate_point(self.point_last,
|
||||||
self.point_first)
|
self.point_first)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue