Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 20 additions & 9 deletions src/papermodels/datatypes/geometry_graph.py
Original file line number Diff line number Diff line change
Expand Up @@ -1256,14 +1256,25 @@ def correlate_extents(
to include an 'extent_polygon' for any element_annots that have been drawn
with an extent line or polygon.
"""
element_geoms = [annot_attrs["geometry"] for annot_attrs in element_annots.values()]
element_annot_keys = [annot for annot in element_annots.keys()]
extent_geoms = [annot_attrs["geometry"] for annot_attrs in extent_annots.values()]

matched_extents = geom.find_extent_intersections(element_geoms, extent_geoms)
page_ids = set([annot.page for annot in element_annots])
element_annots_copy = deepcopy(element_annots)
for idx, matched_extent in enumerate(matched_extents):
annot = element_annot_keys[idx]
element_geom = element_geoms[idx]
element_annots_copy[annot]["extent_line"] = matched_extent
for page_id in page_ids:
element_geoms = [
annot_attrs["geometry"]
for annot, annot_attrs in element_annots.items()
if annot.page == page_id
]
element_annot_keys = [
annot for annot in element_annots.keys() if annot.page == page_id
]
extent_geoms = [
annot_attrs["geometry"]
for annot, annot_attrs in extent_annots.items()
if annot.page == page_id
]

matched_extents = geom.find_extent_intersections(element_geoms, extent_geoms)
for idx, matched_extent in enumerate(matched_extents):
annot = element_annot_keys[idx]
element_annots_copy[annot]["extent_line"] = matched_extent
return element_annots_copy
2 changes: 1 addition & 1 deletion src/papermodels/datatypes/joist_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -643,7 +643,7 @@ def generate_joist_geom(self, index: int):
# to adjust their support conditions so the joist will not be
# skipped.
warnings.warn(
f"No geometry generated for a joist with index={index}. Designer to "
f"No geometry generated on {self.element.tag} for joist index={index}. Designer to "
"review support conditions and make required adjustments."
)
return None
Expand Down