Skip to content

[feat]: major refactor and feature updates for C API, offset pipeline, and coverage - #73

Closed
NorthBoundWisdom wants to merge 5 commits into
jbuckmccready:masterfrom
NorthBoundWisdom:feat/major-refactor-feature-update
Closed

[feat]: major refactor and feature updates for C API, offset pipeline, and coverage#73
NorthBoundWisdom wants to merge 5 commits into
jbuckmccready:masterfrom
NorthBoundWisdom:feat/major-refactor-feature-update

Conversation

@NorthBoundWisdom

Copy link
Copy Markdown
Contributor

This PR includes a large-scale refactor and feature update set.

  1. Expand and stabilize C API surface:
  • Add polyline helpers (invert, prune singularities, convert arcs, normalize)
  • Add point containment API and tolerance get/set/reset API
  • Add spatial index and offset-loop topology APIs
  1. Upgrade parallel offset options and behavior:
  • Introduce structured options (join type, end cap type, miter limit)
  • Add miter/bevel join support including arc-involved joins
  • Add square/butt end cap handling for open polylines
  1. Improve robustness and reliability:
  • Guard tolerance config for concurrent reads/writes
  • Apply miter-limit validation only for miter join mode
  • Harden edge cases in intersection and offset clipping paths
  1. Strengthen tests and benchmarks:
  • Add TEST_cavc_api_regression and TEST_cavc_offset_islands
  • Extend matrix/stress regressions for join/end-cap/topology scenarios
  • Add offset-islands benchmarks and CMake wiring updates
  1. Changelog and project metadata updates:
  • Refresh changelog entries for feature scope and semantics
  • Keep behavior/documentation aligned with implemented options

Please note: this is intentionally a substantial refactor + feature batch to align the library/API with current geometry and regression coverage goals.

- Add option to enable clipper library for benchmarks: `CAVC_ENABLE_CLIPPER_BENCHMARKS`. If enabled, clipper will be fetched and built automatically. default is disabled.
- Remove unused includes
- Rename of some variables declaration shadow the local/previous variable
  - if parameter shadows the local variable, the local variable is renamed to `p_<old_name>`
  - if variable in function shadows the local variable, the parameter is renamed to `l_<old_name>`
- Format code in tests
- Add test case;
- Clean up code in test, remove unused code in test(no test has been deleted)
@NorthBoundWisdom
NorthBoundWisdom force-pushed the feat/major-refactor-feature-update branch from 77bfe8a to fbd2e05 Compare February 23, 2026 15:47
@NorthBoundWisdom
NorthBoundWisdom deleted the feat/major-refactor-feature-update branch February 23, 2026 15:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant