Skip to content

Commit

Permalink
fix(faces): Ensure degenerate geometry is caught for all split methods
Browse files Browse the repository at this point in the history
  • Loading branch information
chriswmackey committed Oct 19, 2024
1 parent 02a1c35 commit 146f775
Showing 1 changed file with 10 additions and 4 deletions.
14 changes: 10 additions & 4 deletions ladybug_geometry/geometry3d/face.py
Original file line number Diff line number Diff line change
Expand Up @@ -1217,8 +1217,11 @@ def split_with_line(self, line, tolerance):
if len(cycle) >= 3:
pt_3ds = [prim_pl.xy_to_xyz(node.pt) for node in cycle]
new_face = Face3D(pt_3ds, plane=prim_pl)
new_face = new_face.remove_colinear_vertices(tolerance)
split_faces.append(new_face)
try:
new_face = new_face.remove_colinear_vertices(tolerance)
split_faces.append(new_face)
except AssertionError: # degenerate geometry to ignore
pass

# rebuild the Face3D from the results and return them
if len(split_faces) == 1:
Expand Down Expand Up @@ -1279,8 +1282,11 @@ def split_with_polyline(self, polyline, tolerance):
if len(cycle) >= 3:
pt_3ds = [prim_pl.xy_to_xyz(node.pt) for node in cycle]
new_face = Face3D(pt_3ds, plane=prim_pl)
new_face = new_face.remove_colinear_vertices(tolerance)
split_faces.append(new_face)
try:
new_face = new_face.remove_colinear_vertices(tolerance)
split_faces.append(new_face)
except AssertionError: # degenerate geometry to ignore
pass

# rebuild the Face3D from the results and return them
if len(split_faces) == 1:
Expand Down

0 comments on commit 146f775

Please sign in to comment.