Skip to content

CADKit adopts AIS selection state instead of running a parallel one #3

Description

@gsdali

Phase 3 of the picking consolidation (ecosystem#43). Needs phase 2.

The OCCTSwiftCADKit target holds an InteractiveContext from the OCCTSwiftAIS target and then runs its own selection alongside it. Its own source describes the situation:

.body has no effect here (there is no whole-body PickedEntity case); it exists on SelectionMode for OCCTSwiftAIS.InteractiveContext.selectionMode, a separate, independent selection system this service does not share state with.

Two selection systems in one service, in one package, is the duplication this merge exists to remove.

  • CADKit drives InteractiveContext for selection state rather than keeping its own selectionModes/selected.
  • Remove the duplicate SelectionSummary. It is defined in both CADKit and OCCTSwiftUX, same name, different types.
  • Decide whether PickedFaceInfo/PickedEdgeInfo/PickedVertexInfo survive. They carry cached geometry for the UI, so keeping them as presentation types built from SubShapeRef trades a smaller diff for one remaining mapping layer. Deleting them outright is cleaner but is a breaking change for OCCTSwiftUX and PadCAM.

This phase is the only one that breaks a consumer, so it sets the version step for the package.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions