Skip to content

Commit 1c1e066

Browse files
committed
improve hover selection
1 parent ce16d01 commit 1c1e066

2 files changed

Lines changed: 15 additions & 7 deletions

File tree

src/void/sketch/index.js

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -160,13 +160,14 @@ function updateSketchInteractionVisuals() {
160160
&& !this.sketchArcStart
161161
&& !this.sketchCircleCenter
162162
&& !this.sketchRectStart;
163-
const externalLine = canShowExternalPreview && external?.aLocal && external?.bLocal
164-
? { a: external.aLocal, b: external.bLocal, forceHover: true }
165-
: null;
166-
const externalStart = canShowExternalPreview && external?.aLocal ? external.aLocal : null;
167-
const externalEnd = canShowExternalPreview && external?.bLocal ? external.bLocal : null;
168-
const externalMid = canShowExternalPreview ? (external?.hoverPoint?.local || external?.midLocal || null) : null;
169-
const projectedFaceSegments = this.hoveredSolidFaceKey
163+
const externalPointLocal = canShowExternalPreview ? (external?.hoverPoint?.local || null) : null;
164+
const showExternalPoint = !!externalPointLocal;
165+
const showExternalLine = canShowExternalPreview && !!external?.aLocal && !!external?.bLocal && !showExternalPoint;
166+
const externalLine = showExternalLine ? { a: external.aLocal, b: external.bLocal, forceHover: true } : null;
167+
const externalStart = showExternalPoint ? externalPointLocal : null;
168+
const externalEnd = null;
169+
const externalMid = null;
170+
const projectedFaceSegments = !showExternalPoint && !showExternalLine && this.hoveredSolidFaceKey
170171
? this.projectFaceBoundaryToSketch(feature, this.hoveredSolidFaceKey)
171172
: null;
172173
api.sketchRuntime?.setEntityInteraction(feature.id, {

src/void/sketch/pointer.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,13 @@ function handleSketchHover(event, intersections) {
211211

212212
const hit = this.resolveSketchHit(event, intersections, feature);
213213
const derived = this.resolveDerivedEdgeCandidate(event, intersections, feature);
214+
if (this.hoveredSolidFaceKey) {
215+
if (derived) {
216+
api.solids?.setHoveredFace?.(null);
217+
} else {
218+
api.solids?.setHoveredFace?.(this.hoveredSolidFaceKey);
219+
}
220+
}
214221
const prevDerived = this.hoveredDerivedCandidate || null;
215222
this.hoveredDerivedCandidate = derived || null;
216223
const derivedChanged = (!!prevDerived) !== (!!derived)

0 commit comments

Comments
 (0)