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.
This phase is the only one that breaks a consumer, so it sets the version step for the package.
Phase 3 of the picking consolidation (ecosystem#43). Needs phase 2.
The
OCCTSwiftCADKittarget holds anInteractiveContextfrom theOCCTSwiftAIStarget and then runs its own selection alongside it. Its own source describes the situation:Two selection systems in one service, in one package, is the duplication this merge exists to remove.
InteractiveContextfor selection state rather than keeping its ownselectionModes/selected.SelectionSummary. It is defined in both CADKit and OCCTSwiftUX, same name, different types.PickedFaceInfo/PickedEdgeInfo/PickedVertexInfosurvive. They carry cached geometry for the UI, so keeping them as presentation types built fromSubShapeReftrades 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.