fix line edit on transformed sketches

This commit is contained in:
Kurt Hutten IrevDev
2023-01-05 15:01:27 +11:00
parent 0779befc65
commit 6ab93e85fe

View File

@ -209,15 +209,17 @@ function MovingSphere({
const point = a.point const point = a.point
const transformedPoint = point.clone() const transformedPoint = point.clone()
let inverseQuaternion = new Quaternion() const inverseQuaternion = new Quaternion()
if ( if (
guiMode.mode === 'canEditSketch' || guiMode.mode === 'canEditSketch' ||
(guiMode.mode === 'sketch' && guiMode.sketchMode === 'sketchEdit') (guiMode.mode === 'sketch' && guiMode.sketchMode === 'sketchEdit')
) { ) {
inverseQuaternion = guiMode.quaternion.clone() inverseQuaternion.copy(guiMode.quaternion.clone().invert())
} }
inverseQuaternion = inverseQuaternion.invert()
transformedPoint.applyQuaternion(inverseQuaternion) transformedPoint.applyQuaternion(inverseQuaternion)
transformedPoint.sub(
position.clone().applyQuaternion(inverseQuaternion)
)
point2DRef.current.set(transformedPoint.x, transformedPoint.y) point2DRef.current.set(transformedPoint.x, transformedPoint.y)
if ( if (
@ -231,20 +233,25 @@ function MovingSphere({
if (guiMode.mode) if (guiMode.mode)
if (ref.current) { if (ref.current) {
const diff = new Vector3().subVectors( const diff = new Vector3().subVectors(
point, point.clone().applyQuaternion(inverseQuaternion),
lastPointerRef.current lastPointerRef.current
.clone()
.applyQuaternion(inverseQuaternion)
) )
if (originalXY[0] === -1) { if (originalXY[0] === -1) {
// x arg is not a literal and should be locked
diff.x = 0 diff.x = 0
} }
if (originalXY[1] === -1) { if (originalXY[1] === -1) {
// y arg is not a literal and should be locked
diff.y = 0 diff.y = 0
} }
ref.current.position.add(diff) ref.current.position.add(
diff.applyQuaternion(inverseQuaternion.invert())
)
lastPointerRef.current.set(point.x, point.y, point.z) lastPointerRef.current.set(point.x, point.y, point.z)
} }
}} }}
name="my-mesh"
> >
<planeGeometry args={[50, 50]} ref={detectionPlaneRef} /> <planeGeometry args={[50, 50]} ref={detectionPlaneRef} />
<meshStandardMaterial <meshStandardMaterial