CADViewComponent/umd/cad.js

1 line
95 KiB
JavaScript
Raw Normal View History

!function(e,l){"object"==typeof exports&&"object"==typeof module?module.exports=l(require("three")):"function"==typeof define&&define.amd?define([],l):"object"==typeof exports?exports.cad=l(require("three")):e.cad=l(e.THREE)}("undefined"!=typeof self?self:this,function(e){return function(e){var l={};function t(i){if(l[i])return l[i].exports;var q=l[i]={i:i,l:!1,exports:{}};return e[i].call(q.exports,q,q.exports,t),q.l=!0,q.exports}return t.m=e,t.c=l,t.d=function(e,l,i){t.o(e,l)||Object.defineProperty(e,l,{configurable:!1,enumerable:!0,get:i})},t.n=function(e){var l=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(l,"a",l),l},t.o=function(e,l){return Object.prototype.hasOwnProperty.call(e,l)},t.p="",t(t.s=2)}([function(l,t){l.exports=e},function(e,l,t){"use strict";Object.defineProperty(l,"__esModule",{value:!0});var i=t(0),q=t(0),n=t(4);function o(e,l){return(new n.Matrix2).setRotate(l).applyVector(e),e}function a(e,l,t){return void 0===t&&(t=.001),Math.abs(e-l)<t}function r(e,t,n){if(void 0===n&&(n=new i.Vector3(0,0,1)),!n.equals(new q.Vector3(0,0,1))){n.multiplyScalar(-1);var o=m(n),a=new i.Matrix4;a.lookAt(l.cZeroVec,n,o);var r=(new i.Matrix4).getInverse(a);e.applyMatrix4(r),t.applyMatrix4(r),e.z=0,t.z=0}if(e.equals(l.cZeroVec)||t.equals(l.cZeroVec))return 0;var s=(new q.Vector3).crossVectors(e,t).normalize();return 0===s.z?e.angleTo(t):e.angleTo(t)*s.z}function m(e){if(e.equals(l.cZeroVec))throw"zero vector";var t=e.clone().normalize();if(t.equals(l.cZAxis))return new i.Vector3(0,1,0);if(t.equals(l.cZAxis.clone().negate()))return new i.Vector3(0,-1,0);var q=new i.Vector3;q.crossVectors(l.cZAxis,t);var n=new i.Vector3;return n.crossVectors(t,q),n}function s(e,l){if(l&&e.updateMatrixWorld(!1),!e.hasOwnProperty("geometry"))return e.children.length>0?e.children.reduce(function(e,l){var t=s(l);return t&&e.union(t),e},new i.Box3):null;var t=e.geometry;return t instanceof i.Geometry||t instanceof i.BufferGeometry?(t.boundingBox||t.computeBoundingBox(),t.boundingBox.clone().applyMatrix4(e.matrixWorld)):void 0}l.cZeroVec=new i.Vector3,l.cXAxis=new i.Vector3(1,0,0),l.cYAxis=new i.Vector3(0,1,0),l.cZAxis=new i.Vector3(0,0,1),l.rotatePoint=o,l.equaln=a,l.equal=function(e,l){return e.distanceToSquared(l)<1e-8},l.fixAngle=function(e,l,t){void 0===t&&(t=.1),e<0&&(e+=2*Math.PI);var i=(e+=t)%l;return e-=i<2*t?i:t},l.polar=function(e,l,t){return e.x+=Math.cos(l)*t,e.y+=Math.sin(l)*t,e},l.angle=function(e){if(a(e.y,0)&&e.x>0)return 0;var l=Math.atan2(e.y,e.x);return l<0&&(l+=2*Math.PI),l},l.angleTo=r,l.getLoocAtUpVec=m,l.createLookAtMat4=function(e){var t=m(e),q=new i.Matrix4;return q.lookAt(l.cZeroVec,e,t),q},l.isParallelTo=function(e,l){return e.clone().cross(l).lengthSq()<1e-9},l.ptToString=function(e,l){return void 0===l&&(l=3),e.toArray().map(function(e){return e.toFixed(l)}).join(",")},l.midPoint=function(e,l){return e.clone().add(l).multiplyScalar(.5)},l.midPoint2=function(e,l){return e.clone().add(l).multiplyScalar(.5)},l.midPtCir=function(e,l){var t=new q.Vector3(1,0,0),i=l.clone().sub(e),n=o(i,-r(t,i)/2);return e.clone().add(n)},l.GetBox=s,l.GetBoxArr=function(e){return 0==e.length?null:e.map(function(e){return s(e)}).filter(function(e){return e}).reduce(function(e,l){return e.union(l)},new i.Box3)},l.MoveMatrix=function(e){var l=new i.Matrix4;return l.makeTranslation(e.x,e.y,e.z),l},l.getProjectDist=function(e,l){var t=e.angleTo(l),i=e.length();return{h:i*Math.cos(t),v:i*Math.sin(t)}},l.getPtPostion=function(e,l,t,i){var q=e.clone().sub(t),n=l.clone().sub(t),o=q.clone().negate(),a=n.clone().negate(),m=i.clone().sub(t),s=r(q,n),h=Math.PI,c=h+Math.abs(s),x=r(q,m);return s*x<0&&(x=2*Math.PI-Math.abs(x)),s=Math.abs(s),(x=Math.abs(x))<=s?{sp:e,ep:l}:x>s&&x<=h?{sp:t.clone().add(o),ep:l}:x>h&&x<=c?{sp:t.clone().add(o),ep:t.clone().add(a)}:{sp:e,ep:t.clone().add(a)}},l.angleAndX=function(e){return e.x?Math.atan(e.y/e.x):Math.PI/2},l.angleTo2Pi=function(e){return(e%=2*Math.PI)<0&&(e+=2*Math.PI),e},l.updateGeometry=function(e,l){e.geometry.dispose(),e.geometry=l,l.verticesNeedUpdate=!0,l.computeBoundingSph