mirror of
https://github.com/xibyte/jsketcher
synced 2025-12-06 16:33:15 +01:00
36 lines
No EOL
991 B
TypeScript
36 lines
No EOL
991 B
TypeScript
import {distanceSquared3, distanceSquaredAB3, distanceSquaredANegB3} from "math/distance";
|
|
|
|
export const TOLERANCE = 1E-6;
|
|
export const TOLERANCE_SQ = TOLERANCE * TOLERANCE;
|
|
|
|
export function areEqual(v1, v2, tolerance) {
|
|
return Math.abs(v1 - v2) < tolerance;
|
|
}
|
|
|
|
export function areVectorsEqual(v1, v2, toleranceSQ) {
|
|
return areEqual(distanceSquaredAB3(v1, v2), 0, toleranceSQ);
|
|
}
|
|
|
|
export function areNegVectorsEqual(v1, v2, toleranceSQ) {
|
|
return areEqual(distanceSquaredANegB3(v1, v2), 0, toleranceSQ);
|
|
}
|
|
|
|
export function areVectorsEqual3(v1, v2, toleranceSQ) {
|
|
return areEqual(distanceSquared3(v1[0], v1[1], v1[2], v2[0], v2[1], v2[2]), 0, toleranceSQ);
|
|
}
|
|
|
|
export function vectorsEqual(v1, v2) {
|
|
return areVectorsEqual(v1, v2, TOLERANCE_SQ);
|
|
}
|
|
|
|
export function equal(v1, v2) {
|
|
return areEqual(v1, v2, TOLERANCE);
|
|
}
|
|
|
|
export function strictEqual(a, b) {
|
|
return a.x == b.x && a.y == b.y && a.z == b.z;
|
|
}
|
|
|
|
export function strictEqual2D(a, b) {
|
|
return a.x == b.x && a.y == b.y;
|
|
} |