mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-12 06:32:09 +00:00
Partial solution for #6775.
The issue happens when a wall has a "ATPATH" connection and has a negative direction sense. It mixes the profile points in an incorrect order. This commit seems to fix it, but maybe there is a better solution.
This commit is contained in:
@@ -150,6 +150,8 @@ class Regenerator:
|
|||||||
continue
|
continue
|
||||||
self.join(wall, wall2, layers1, layers2, rel.RelatedConnectionType, rel.RelatingConnectionType)
|
self.join(wall, wall2, layers1, layers2, rel.RelatedConnectionType, rel.RelatingConnectionType)
|
||||||
|
|
||||||
|
miny = axes[-2][0][1]
|
||||||
|
maxy = axes[-1][0][1]
|
||||||
if not self.start_points:
|
if not self.start_points:
|
||||||
minx = axes[0][0][0]
|
minx = axes[0][0][0]
|
||||||
self.start_points = [
|
self.start_points = [
|
||||||
@@ -266,6 +268,13 @@ class Regenerator:
|
|||||||
split_points.append(end_points)
|
split_points.append(end_points)
|
||||||
split_points = iter(split_points)
|
split_points = iter(split_points)
|
||||||
|
|
||||||
|
if maxy < miny:
|
||||||
|
self.maxpath_points, self.minpath_points = self.minpath_points, self.maxpath_points
|
||||||
|
if self.maxpath_points:
|
||||||
|
self.maxpath_points[0] = list(reversed(self.maxpath_points[0]))
|
||||||
|
if self.minpath_points:
|
||||||
|
self.minpath_points[0] = list(reversed(self.minpath_points[0]))
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
# Draw each profile as clockwise starting from (minx, miny)
|
# Draw each profile as clockwise starting from (minx, miny)
|
||||||
start_split = next(split_points, None)
|
start_split = next(split_points, None)
|
||||||
|
|||||||
Reference in New Issue
Block a user