@turbox3d/math
Version:
Large-scale graphics application math library
47 lines (46 loc) • 1.83 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Tolerance = exports.TOLERANCE_SQUARE = exports.TOLERANCE_SAGITTA = exports.TOLERANCE_HALF = exports.TOLERANCE = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var TOLERANCE = exports.TOLERANCE = 1E-6;
var TOLERANCE_HALF = exports.TOLERANCE_HALF = TOLERANCE * 0.5;
var TOLERANCE_SQUARE = exports.TOLERANCE_SQUARE = TOLERANCE * TOLERANCE;
var TOLERANCE_SAGITTA = exports.TOLERANCE_SAGITTA = 1;
var Tolerance = exports.Tolerance = /*#__PURE__*/function () {
function Tolerance(cosTol, distTol, numTol) {
(0, _classCallCheck2["default"])(this, Tolerance);
this.cosTol = cosTol || Tolerance.COS_TOL;
this.distTol = distTol || Tolerance.DIST_TOL;
this.numTol = numTol || Tolerance.NUM_TOL;
}
/**
* set cosTol by given angle
* @param angle
* @param isRadian true means the angle is radian, false means the angle is degree
*/
return (0, _createClass2["default"])(Tolerance, [{
key: "setCosTolByAngle",
value: function setCosTolByAngle(angle, isRadian) {
var flag = isRadian ? 1 : Math.PI / 180;
this.cosTol = 1 - Math.cos(angle * flag);
}
}, {
key: "clone",
value: function clone() {
return new Tolerance(this.cosTol, this.distTol, this.numTol);
}
}], [{
key: "setGlobal",
value: function setGlobal(cosTol, distTol, numTol) {
Tolerance.global = new Tolerance(cosTol, distTol, numTol);
}
}]);
}();
Tolerance.COS_TOL = 1e-6;
Tolerance.DIST_TOL = 1e-6;
Tolerance.NUM_TOL = 1e-6;
Tolerance.global = new Tolerance();