fix: Fix elbow arrow fixed binding on restore (#9197)

This commit is contained in:
Márk Tolmács 2025-02-28 15:36:41 +01:00 committed by GitHub
parent 0ffeaeaecf
commit 392118bf26
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -2206,9 +2206,13 @@ export const normalizeFixedPoint = <T extends FixedPoint | null>(
): T extends null ? null : FixedPoint => {
// Do not allow a precise 0.5 for fixed point ratio
// to avoid jumping arrow heading due to floating point imprecision
if (fixedPoint && (fixedPoint[0] === 0.5 || fixedPoint[1] === 0.5)) {
if (
fixedPoint &&
(Math.abs(fixedPoint[0] - 0.5) < 0.0001 ||
Math.abs(fixedPoint[1] - 0.5) < 0.0001)
) {
return fixedPoint.map((ratio) =>
ratio === 0.5 ? 0.5001 : ratio,
Math.abs(ratio - 0.5) < 0.0001 ? 0.5001 : ratio,
) as T extends null ? null : FixedPoint;
}
return fixedPoint as any as T extends null ? null : FixedPoint;