- Add clear_layout_segments API to remove segments while preserving alignment ID
- Modify exit_pi_edit_mode to edit segments in-place instead of delete+recreate
- Fix curve visualization by using create_shape for segment vertices
- Fix evaluate_segment validation to handle negative-length curve segments
This prevents "Active alignment no longer exists" errors when editing PIs
and properly renders circular arcs regardless of turn direction.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fix modal operator to use absolute mouse coordinates converted to 3D
viewport region space, instead of event.mouse_region_x/y which are
relative to whichever region received the event
- Store 3D viewport area, region, and region_data references in invoke()
for consistent raycasting throughout modal operation
- Add coordinate transformation methods (blender_to_ifc_coordinates and
ifc_to_blender_coordinates) for projects with geospatial Blender offsets
- Transform alignment curve vertices from IFC global to Blender local
coordinates when has_blender_offset is enabled
- Add try/except for piecewise-step-size geometry setting in util.py
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add RuntimeError handling for IfcOpenShell versions that don't support
the piecewise-step-type setting in geometry generation.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Some basic COGO survey points functions
* Update alignment api
Includes defining alignment segment by segment, automatic geometry definitions, and automatric stationing and referents
* Fixes bonsai import alignment from csv
* Adds DMS angle conversion functions to COGO api
* Updated per @civilx64 review comments
* Fixes problem with segment representations
* Fixes problem with segment transition codes
* Allows for compound vertical and horizontal curves
* Implements callbacks for referent naming
* Renames angle_from_bearing to bearing2dd for consistency with ifcopenshell.util.geolocation.dms2dd. Removes angle_from_dms because it duplicates dms2dd
* Documents register_referent_name_callback
* Fixes all sorts of problems with Cant/SegRefCurve implementation
* refactor referent unit tests to use a fixture for test setup
* lint with black
---------
Co-authored-by: Scott Lecher <civilx64@gmail.com>