jsketcher/web/app/brep/geom/tolerance.ts
2020-07-18 22:18:03 -07:00

47 lines
1.1 KiB
TypeScript

import {areEqual, areNegVectorsEqual, areVectorsEqual, areVectorsEqual3, distanceSquared3} from 'math/commons';
export const TOLERANCE = 1e-3;
export const TOLERANCE_SQ = TOLERANCE * TOLERANCE;
export const EPSILON = 1e-12;
export const EPSILON_SQ = EPSILON * EPSILON;
//tolerance used for parametric domain which is between 0..1
export const TOLERANCE_01 = TOLERANCE * 1e-2;
export const TOLERANCE_01_SQ = TOLERANCE * TOLERANCE;
export const NUMERICAL_SOLVE_TOL = 1e-8;
export function eqTol(a, b) {
return areEqual(a, b, TOLERANCE);
}
export function eqSqTol(a, b) {
return areEqual(a, b, TOLERANCE_SQ);
}
export function eqEps(a, b) {
return areEqual(a, b, EPSILON);
}
export function veq(a, b) {
return areVectorsEqual(a, b, TOLERANCE_SQ);
}
export function veqNeg(a, b) {
return areNegVectorsEqual(a, b, TOLERANCE_SQ);
}
export function veq3(a, b) {
return areVectorsEqual3(a, b, TOLERANCE_SQ);
}
export function veqXYZ(x1, y1, z1, x2, y2, z2) {
return distanceSquared3(x1, y1, z1, x2, y2, z2) < TOLERANCE_SQ;
}
export function ueq(a, b) {
return areEqual(a, b, TOLERANCE_01);
}