@ridp/threejs 1.1.6 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{common-BHi3qsZW.cjs → common-C1rNPPkt.cjs} +2 -2
- package/dist/{common-fbJUHqlj.js → common-D1_IztgM.js} +1 -1
- package/dist/hooks.cjs +1 -1
- package/dist/hooks.js +1 -1
- package/dist/modelSerialize-5oJb1ka7.js +965 -0
- package/dist/modelSerialize-Ds_2KBaA.cjs +5 -0
- package/dist/threejs.cjs +1 -1
- package/dist/threejs.js +185 -25
- package/dist/useGLTFLoader-2awW2QaH.cjs +4 -0
- package/dist/{useGLTFLoader-DusnFN5B.js → useGLTFLoader-BBGTGOYm.js} +1800 -1952
- package/dist/utils.cjs +1 -1
- package/dist/utils.js +9 -7
- package/esdoc/ast/source/.external-ecmascript.js.json +2801 -2801
- package/esdoc/ast/source/hooks/index.js.json +738 -738
- package/esdoc/ast/source/hooks/useGLTFLoader.js.json +9110 -9110
- package/esdoc/ast/source/hooks/useObb.js.json +16462 -16462
- package/esdoc/ast/source/hooks/useRaycaster.js.json +15555 -15555
- package/esdoc/ast/source/hooks/useThreeJs.js.json +52886 -52886
- package/esdoc/ast/source/index.js.json +569 -569
- package/esdoc/ast/source/instance/IDBCache.js.json +40977 -40977
- package/esdoc/ast/source/instance/index.js.json +231 -231
- package/esdoc/ast/source/utils/ImageLoader.js.json +7036 -7036
- package/esdoc/ast/source/utils/common.js.json +5133 -5133
- package/esdoc/ast/source/utils/css3dHelper.js.json +9100 -9100
- package/esdoc/ast/source/utils/disposeObject.js.json +5977 -5977
- package/esdoc/ast/source/utils/helper.js.json +10521 -10521
- package/esdoc/ast/source/utils/index.js.json +907 -907
- package/esdoc/badge.svg +17 -17
- package/esdoc/class/src/instance/IDBCache.js~IDBCache.html +1299 -1299
- package/esdoc/coverage.json +85 -85
- package/esdoc/css/github.css +83 -83
- package/esdoc/css/identifiers.css +37 -37
- package/esdoc/css/manual.css +134 -134
- package/esdoc/css/prettify-tomorrow.css +132 -132
- package/esdoc/css/search.css +84 -84
- package/esdoc/css/source.css +55 -55
- package/esdoc/css/style.css +608 -608
- package/esdoc/css/test.css +58 -58
- package/esdoc/file/src/hooks/index.js.html +75 -75
- package/esdoc/file/src/hooks/useGLTFLoader.js.html +75 -75
- package/esdoc/file/src/hooks/useObb.js.html +75 -75
- package/esdoc/file/src/hooks/useRaycaster.js.html +75 -75
- package/esdoc/file/src/hooks/useThreeJs.js.html +75 -75
- package/esdoc/file/src/index.js.html +75 -75
- package/esdoc/file/src/instance/IDBCache.js.html +75 -75
- package/esdoc/file/src/instance/index.js.html +75 -75
- package/esdoc/file/src/utils/ImageLoader.js.html +75 -75
- package/esdoc/file/src/utils/common.js.html +75 -75
- package/esdoc/file/src/utils/css3dHelper.js.html +75 -75
- package/esdoc/file/src/utils/disposeObject.js.html +75 -75
- package/esdoc/file/src/utils/helper.js.html +75 -75
- package/esdoc/file/src/utils/index.js.html +75 -75
- package/esdoc/function/index.html +2019 -2019
- package/esdoc/identifiers.html +738 -738
- package/esdoc/image/badge.svg +17 -17
- package/esdoc/image/manual-badge.svg +17 -17
- package/esdoc/index.html +153 -153
- package/esdoc/index.json +2050 -2050
- package/esdoc/script/inherited-summary.js +28 -28
- package/esdoc/script/inner-link.js +32 -32
- package/esdoc/script/manual.js +12 -12
- package/esdoc/script/patch-for-local.js +8 -8
- package/esdoc/script/prettify/Apache-License-2.0.txt +202 -202
- package/esdoc/script/prettify/prettify.js +46 -46
- package/esdoc/script/pretty-print.js +25 -25
- package/esdoc/script/search.js +117 -117
- package/esdoc/script/search_index.js +571 -571
- package/esdoc/script/test-summary.js +54 -54
- package/esdoc/source.html +213 -213
- package/esdoc/variable/index.html +225 -225
- package/package.json +3 -2
- package/dist/ImageLoader-CB_URfeZ.js +0 -860
- package/dist/ImageLoader-DwvBWW6h.cjs +0 -5
- package/dist/useGLTFLoader-BiveFkS6.cjs +0 -4
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";const o=require("three");function ct(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const i in e)if(i!=="default"){const n=Object.getOwnPropertyDescriptor(e,i);Object.defineProperty(t,i,n.get?n:{enumerable:!0,get:()=>e[i]})}}return t.default=e,Object.freeze(t)}const Y=ct(o);var G=function(){var e=0,t=document.createElement("div");t.style.cssText="position:fixed;top:0;left:0;cursor:pointer;opacity:0.9;z-index:10000",t.addEventListener("click",function(_){_.preventDefault(),n(++e%t.children.length)},!1);function i(_){return t.appendChild(_.dom),_}function n(_){for(var l=0;l<t.children.length;l++)t.children[l].style.display=l===_?"block":"none";e=_}var h=(performance||Date).now(),p=h,r=0,y=i(new G.Panel("FPS","#0ff","#002")),P=i(new G.Panel("MS","#0f0","#020"));if(self.performance&&self.performance.memory)var w=i(new G.Panel("MB","#f08","#201"));return n(0),{REVISION:16,dom:t,addPanel:i,showPanel:n,begin:function(){h=(performance||Date).now()},end:function(){r++;var _=(performance||Date).now();if(P.update(_-h,200),_>=p+1e3&&(y.update(r*1e3/(_-p),100),p=_,r=0,w)){var l=performance.memory;w.update(l.usedJSHeapSize/1048576,l.jsHeapSizeLimit/1048576)}return _},update:function(){h=this.end()},domElement:t,setMode:n}};G.Panel=function(e,t,i){var n=1/0,h=0,p=Math.round,r=p(window.devicePixelRatio||1),y=80*r,P=48*r,w=3*r,_=2*r,l=3*r,A=15*r,L=74*r,C=30*r,v=document.createElement("canvas");v.width=y,v.height=P,v.style.cssText="width:80px;height:48px";var a=v.getContext("2d");return a.font="bold "+9*r+"px Helvetica,Arial,sans-serif",a.textBaseline="top",a.fillStyle=i,a.fillRect(0,0,y,P),a.fillStyle=t,a.fillText(e,w,_),a.fillRect(l,A,L,C),a.fillStyle=i,a.globalAlpha=.9,a.fillRect(l,A,L,C),{dom:v,update:function(s,M){n=Math.min(n,s),h=Math.max(h,s),a.fillStyle=i,a.globalAlpha=1,a.fillRect(0,0,y,A),a.fillStyle=t,a.fillText(p(s)+" "+e+" ("+p(n)+"-"+p(h)+")",w,_),a.drawImage(v,l+r,A,L-r,C,l,A,L-r,C),a.fillRect(l+L-r,A,r,C),a.fillStyle=i,a.globalAlpha=.9,a.fillRect(l+L-r,A,r,p((1-s/M)*C))}}};const Q=new o.Vector3,pt=new o.Quaternion,J=new o.Vector3;class dt extends o.Object3D{constructor(t=document.createElement("div")){super(),this.isCSS3DObject=!0,this.element=t,this.element.style.position="absolute",this.element.style.pointerEvents="auto",this.element.style.userSelect="none",this.element.setAttribute("draggable",!1),this.addEventListener("removed",function(){this.traverse(function(i){i.element instanceof i.element.ownerDocument.defaultView.Element&&i.element.parentNode!==null&&i.element.remove()})})}copy(t,i){return super.copy(t,i),this.element=t.element.cloneNode(!0),this}}class ut extends dt{constructor(t){super(t),this.isCSS3DSprite=!0,this.rotation2D=0}copy(t,i){return super.copy(t,i),this.rotation2D=t.rotation2D,this}}const I=new o.Matrix4,mt=new o.Matrix4;class _t{constructor(t={}){const i=this;let n,h,p,r;const y={camera:{style:""},objects:new WeakMap},P=t.element!==void 0?t.element:document.createElement("div");P.style.overflow="hidden",this.domElement=P;const w=document.createElement("div");w.style.transformOrigin="0 0",w.style.pointerEvents="none",P.appendChild(w);const _=document.createElement("div");_.style.transformStyle="preserve-3d",w.appendChild(_),this.getSize=function(){return{width:n,height:h}},this.render=function(a,s){const M=s.projectionMatrix.elements[5]*r;s.view&&s.view.enabled?(w.style.transform=`translate( ${-s.view.offsetX*(n/s.view.width)}px, ${-s.view.offsetY*(h/s.view.height)}px )`,w.style.transform+=`scale( ${s.view.fullWidth/s.view.width}, ${s.view.fullHeight/s.view.height} )`):w.style.transform="",a.matrixWorldAutoUpdate===!0&&a.updateMatrixWorld(),s.parent===null&&s.matrixWorldAutoUpdate===!0&&s.updateMatrixWorld();let z,R;s.isOrthographicCamera&&(z=-(s.right+s.left)/2,R=(s.top+s.bottom)/2);const O=s.view&&s.view.enabled?s.view.height/s.view.fullHeight:1,H=s.isOrthographicCamera?`scale( ${O} )scale(`+M+")translate("+l(z)+"px,"+l(R)+"px)"+A(s.matrixWorldInverse):`scale( ${O} )translateZ(`+M+"px)"+A(s.matrixWorldInverse),c=(s.isPerspectiveCamera?"perspective("+M+"px) ":"")+H+"translate("+p+"px,"+r+"px)";y.camera.style!==c&&(_.style.transform=c,y.camera.style=c),v(a,a,s)},this.setSize=function(a,s){n=a,h=s,p=n/2,r=h/2,P.style.width=a+"px",P.style.height=s+"px",w.style.width=a+"px",w.style.height=s+"px",_.style.width=a+"px",_.style.height=s+"px"};function l(a){return Math.abs(a)<1e-10?0:a}function A(a){const s=a.elements;return"matrix3d("+l(s[0])+","+l(-s[1])+","+l(s[2])+","+l(s[3])+","+l(s[4])+","+l(-s[5])+","+l(s[6])+","+l(s[7])+","+l(s[8])+","+l(-s[9])+","+l(s[10])+","+l(s[11])+","+l(s[12])+","+l(-s[13])+","+l(s[14])+","+l(s[15])+")"}function L(a){const s=a.elements;return"translate(-50%,-50%)"+("matrix3d("+l(s[0])+","+l(s[1])+","+l(s[2])+","+l(s[3])+","+l(-s[4])+","+l(-s[5])+","+l(-s[6])+","+l(-s[7])+","+l(s[8])+","+l(s[9])+","+l(s[10])+","+l(s[11])+","+l(s[12])+","+l(s[13])+","+l(s[14])+","+l(s[15])+")")}function C(a){a.isCSS3DObject&&(a.element.style.display="none");for(let s=0,M=a.children.length;s<M;s++)C(a.children[s])}function v(a,s,M,z){if(a.visible===!1){C(a);return}if(a.isCSS3DObject){const R=a.layers.test(M.layers)===!0,O=a.element;if(O.style.display=R===!0?"":"none",R===!0){a.onBeforeRender(i,s,M);let H;a.isCSS3DSprite?(I.copy(M.matrixWorldInverse),I.transpose(),a.rotation2D!==0&&I.multiply(mt.makeRotationZ(a.rotation2D)),a.matrixWorld.decompose(Q,pt,J),I.setPosition(Q),I.scale(J),I.elements[3]=0,I.elements[7]=0,I.elements[11]=0,I.elements[15]=1,H=L(I)):H=L(a.matrixWorld);const k=y.objects.get(a);if(k===void 0||k.style!==H){O.style.transform=H;const c={style:H};y.objects.set(a,c)}O.parentNode!==_&&_.appendChild(O),a.onAfterRender(i,s,M)}}for(let R=0,O=a.children.length;R<O;R++)v(a.children[R],s,M)}}}const tt={type:"change"},X={type:"start"},st={type:"end"},B=new o.Ray,et=new o.Plane,ft=Math.cos(70*o.MathUtils.DEG2RAD),T=new o.Vector3,x=2*Math.PI,u={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},Z=1e-6;class ot extends o.Controls{constructor(t,i=null){super(t,i),this.state=u.NONE,this.target=new o.Vector3,this.cursor=new o.Vector3,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minTargetRadius=0,this.maxTargetRadius=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.keyRotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!0,this.keyPanSpeed=7,this.zoomToCursor=!1,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.mouseButtons={LEFT:o.MOUSE.ROTATE,MIDDLE:o.MOUSE.DOLLY,RIGHT:o.MOUSE.PAN},this.touches={ONE:o.TOUCH.ROTATE,TWO:o.TOUCH.DOLLY_PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._domElementKeyEvents=null,this._lastPosition=new o.Vector3,this._lastQuaternion=new o.Quaternion,this._lastTargetPosition=new o.Vector3,this._quat=new o.Quaternion().setFromUnitVectors(t.up,new o.Vector3(0,1,0)),this._quatInverse=this._quat.clone().invert(),this._spherical=new o.Spherical,this._sphericalDelta=new o.Spherical,this._scale=1,this._panOffset=new o.Vector3,this._rotateStart=new o.Vector2,this._rotateEnd=new o.Vector2,this._rotateDelta=new o.Vector2,this._panStart=new o.Vector2,this._panEnd=new o.Vector2,this._panDelta=new o.Vector2,this._dollyStart=new o.Vector2,this._dollyEnd=new o.Vector2,this._dollyDelta=new o.Vector2,this._dollyDirection=new o.Vector3,this._mouse=new o.Vector2,this._performCursorZoom=!1,this._pointers=[],this._pointerPositions={},this._controlActive=!1,this._onPointerMove=gt.bind(this),this._onPointerDown=yt.bind(this),this._onPointerUp=Et.bind(this),this._onContextMenu=Mt.bind(this),this._onMouseWheel=St.bind(this),this._onKeyDown=Dt.bind(this),this._onTouchStart=Tt.bind(this),this._onTouchMove=Pt.bind(this),this._onMouseDown=bt.bind(this),this._onMouseMove=wt.bind(this),this._interceptControlDown=Rt.bind(this),this._interceptControlUp=xt.bind(this),this.domElement!==null&&this.connect(this.domElement),this.update()}connect(t){super.connect(t),this.domElement.addEventListener("pointerdown",this._onPointerDown),this.domElement.addEventListener("pointercancel",this._onPointerUp),this.domElement.addEventListener("contextmenu",this._onContextMenu),this.domElement.addEventListener("wheel",this._onMouseWheel,{passive:!1}),this.domElement.getRootNode().addEventListener("keydown",this._interceptControlDown,{passive:!0,capture:!0}),this.domElement.style.touchAction="none"}disconnect(){this.domElement.removeEventListener("pointerdown",this._onPointerDown),this.domElement.removeEventListener("pointermove",this._onPointerMove),this.domElement.removeEventListener("pointerup",this._onPointerUp),this.domElement.removeEventListener("pointercancel",this._onPointerUp),this.domElement.removeEventListener("wheel",this._onMouseWheel),this.domElement.removeEventListener("contextmenu",this._onContextMenu),this.stopListenToKeyEvents(),this.domElement.getRootNode().removeEventListener("keydown",this._interceptControlDown,{capture:!0}),this.domElement.style.touchAction="auto"}dispose(){this.disconnect()}getPolarAngle(){return this._spherical.phi}getAzimuthalAngle(){return this._spherical.theta}getDistance(){return this.object.position.distanceTo(this.target)}listenToKeyEvents(t){t.addEventListener("keydown",this._onKeyDown),this._domElementKeyEvents=t}stopListenToKeyEvents(){this._domElementKeyEvents!==null&&(this._domElementKeyEvents.removeEventListener("keydown",this._onKeyDown),this._domElementKeyEvents=null)}saveState(){this.target0.copy(this.target),this.position0.copy(this.object.position),this.zoom0=this.object.zoom}reset(){this.target.copy(this.target0),this.object.position.copy(this.position0),this.object.zoom=this.zoom0,this.object.updateProjectionMatrix(),this.dispatchEvent(tt),this.update(),this.state=u.NONE}update(t=null){const i=this.object.position;T.copy(i).sub(this.target),T.applyQuaternion(this._quat),this._spherical.setFromVector3(T),this.autoRotate&&this.state===u.NONE&&this._rotateLeft(this._getAutoRotationAngle(t)),this.enableDamping?(this._spherical.theta+=this._sphericalDelta.theta*this.dampingFactor,this._spherical.phi+=this._sphericalDelta.phi*this.dampingFactor):(this._spherical.theta+=this._sphericalDelta.theta,this._spherical.phi+=this._sphericalDelta.phi);let n=this.minAzimuthAngle,h=this.maxAzimuthAngle;isFinite(n)&&isFinite(h)&&(n<-Math.PI?n+=x:n>Math.PI&&(n-=x),h<-Math.PI?h+=x:h>Math.PI&&(h-=x),n<=h?this._spherical.theta=Math.max(n,Math.min(h,this._spherical.theta)):this._spherical.theta=this._spherical.theta>(n+h)/2?Math.max(n,this._spherical.theta):Math.min(h,this._spherical.theta)),this._spherical.phi=Math.max(this.minPolarAngle,Math.min(this.maxPolarAngle,this._spherical.phi)),this._spherical.makeSafe(),this.enableDamping===!0?this.target.addScaledVector(this._panOffset,this.dampingFactor):this.target.add(this._panOffset),this.target.sub(this.cursor),this.target.clampLength(this.minTargetRadius,this.maxTargetRadius),this.target.add(this.cursor);let p=!1;if(this.zoomToCursor&&this._performCursorZoom||this.object.isOrthographicCamera)this._spherical.radius=this._clampDistance(this._spherical.radius);else{const r=this._spherical.radius;this._spherical.radius=this._clampDistance(this._spherical.radius*this._scale),p=r!=this._spherical.radius}if(T.setFromSpherical(this._spherical),T.applyQuaternion(this._quatInverse),i.copy(this.target).add(T),this.object.lookAt(this.target),this.enableDamping===!0?(this._sphericalDelta.theta*=1-this.dampingFactor,this._sphericalDelta.phi*=1-this.dampingFactor,this._panOffset.multiplyScalar(1-this.dampingFactor)):(this._sphericalDelta.set(0,0,0),this._panOffset.set(0,0,0)),this.zoomToCursor&&this._performCursorZoom){let r=null;if(this.object.isPerspectiveCamera){const y=T.length();r=this._clampDistance(y*this._scale);const P=y-r;this.object.position.addScaledVector(this._dollyDirection,P),this.object.updateMatrixWorld(),p=!!P}else if(this.object.isOrthographicCamera){const y=new o.Vector3(this._mouse.x,this._mouse.y,0);y.unproject(this.object);const P=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),this.object.updateProjectionMatrix(),p=P!==this.object.zoom;const w=new o.Vector3(this._mouse.x,this._mouse.y,0);w.unproject(this.object),this.object.position.sub(w).add(y),this.object.updateMatrixWorld(),r=T.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),this.zoomToCursor=!1;r!==null&&(this.screenSpacePanning?this.target.set(0,0,-1).transformDirection(this.object.matrix).multiplyScalar(r).add(this.object.position):(B.origin.copy(this.object.position),B.direction.set(0,0,-1).transformDirection(this.object.matrix),Math.abs(this.object.up.dot(B.direction))<ft?this.object.lookAt(this.target):(et.setFromNormalAndCoplanarPoint(this.object.up,this.target),B.intersectPlane(et,this.target))))}else if(this.object.isOrthographicCamera){const r=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),r!==this.object.zoom&&(this.object.updateProjectionMatrix(),p=!0)}return this._scale=1,this._performCursorZoom=!1,p||this._lastPosition.distanceToSquared(this.object.position)>Z||8*(1-this._lastQuaternion.dot(this.object.quaternion))>Z||this._lastTargetPosition.distanceToSquared(this.target)>Z?(this.dispatchEvent(tt),this._lastPosition.copy(this.object.position),this._lastQuaternion.copy(this.object.quaternion),this._lastTargetPosition.copy(this.target),!0):!1}_getAutoRotationAngle(t){return t!==null?x/60*this.autoRotateSpeed*t:x/60/60*this.autoRotateSpeed}_getZoomScale(t){const i=Math.abs(t*.01);return Math.pow(.95,this.zoomSpeed*i)}_rotateLeft(t){this._sphericalDelta.theta-=t}_rotateUp(t){this._sphericalDelta.phi-=t}_panLeft(t,i){T.setFromMatrixColumn(i,0),T.multiplyScalar(-t),this._panOffset.add(T)}_panUp(t,i){this.screenSpacePanning===!0?T.setFromMatrixColumn(i,1):(T.setFromMatrixColumn(i,0),T.crossVectors(this.object.up,T)),T.multiplyScalar(t),this._panOffset.add(T)}_pan(t,i){const n=this.domElement;if(this.object.isPerspectiveCamera){const h=this.object.position;T.copy(h).sub(this.target);let p=T.length();p*=Math.tan(this.object.fov/2*Math.PI/180),this._panLeft(2*t*p/n.clientHeight,this.object.matrix),this._panUp(2*i*p/n.clientHeight,this.object.matrix)}else this.object.isOrthographicCamera?(this._panLeft(t*(this.object.right-this.object.left)/this.object.zoom/n.clientWidth,this.object.matrix),this._panUp(i*(this.object.top-this.object.bottom)/this.object.zoom/n.clientHeight,this.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),this.enablePan=!1)}_dollyOut(t){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale/=t:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}_dollyIn(t){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale*=t:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}_updateZoomParameters(t,i){if(!this.zoomToCursor)return;this._performCursorZoom=!0;const n=this.domElement.getBoundingClientRect(),h=t-n.left,p=i-n.top,r=n.width,y=n.height;this._mouse.x=h/r*2-1,this._mouse.y=-(p/y)*2+1,this._dollyDirection.set(this._mouse.x,this._mouse.y,1).unproject(this.object).sub(this.object.position).normalize()}_clampDistance(t){return Math.max(this.minDistance,Math.min(this.maxDistance,t))}_handleMouseDownRotate(t){this._rotateStart.set(t.clientX,t.clientY)}_handleMouseDownDolly(t){this._updateZoomParameters(t.clientX,t.clientX),this._dollyStart.set(t.clientX,t.clientY)}_handleMouseDownPan(t){this._panStart.set(t.clientX,t.clientY)}_handleMouseMoveRotate(t){this._rotateEnd.set(t.clientX,t.clientY),this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);const i=this.domElement;this._rotateLeft(x*this._rotateDelta.x/i.clientHeight),this._rotateUp(x*this._rotateDelta.y/i.clientHeight),this._rotateStart.copy(this._rotateEnd),this.update()}_handleMouseMoveDolly(t){this._dollyEnd.set(t.clientX,t.clientY),this._dollyDelta.subVectors(this._dollyEnd,this._dollyStart),this._dollyDelta.y>0?this._dollyOut(this._getZoomScale(this._dollyDelta.y)):this._dollyDelta.y<0&&this._dollyIn(this._getZoomScale(this._dollyDelta.y)),this._dollyStart.copy(this._dollyEnd),this.update()}_handleMouseMovePan(t){this._panEnd.set(t.clientX,t.clientY),this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd),this.update()}_handleMouseWheel(t){this._updateZoomParameters(t.clientX,t.clientY),t.deltaY<0?this._dollyIn(this._getZoomScale(t.deltaY)):t.deltaY>0&&this._dollyOut(this._getZoomScale(t.deltaY)),this.update()}_handleKeyDown(t){let i=!1;switch(t.code){case this.keys.UP:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateUp(x*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(0,this.keyPanSpeed),i=!0;break;case this.keys.BOTTOM:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateUp(-x*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(0,-this.keyPanSpeed),i=!0;break;case this.keys.LEFT:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateLeft(x*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(this.keyPanSpeed,0),i=!0;break;case this.keys.RIGHT:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateLeft(-x*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(-this.keyPanSpeed,0),i=!0;break}i&&(t.preventDefault(),this.update())}_handleTouchStartRotate(t){if(this._pointers.length===1)this._rotateStart.set(t.pageX,t.pageY);else{const i=this._getSecondPointerPosition(t),n=.5*(t.pageX+i.x),h=.5*(t.pageY+i.y);this._rotateStart.set(n,h)}}_handleTouchStartPan(t){if(this._pointers.length===1)this._panStart.set(t.pageX,t.pageY);else{const i=this._getSecondPointerPosition(t),n=.5*(t.pageX+i.x),h=.5*(t.pageY+i.y);this._panStart.set(n,h)}}_handleTouchStartDolly(t){const i=this._getSecondPointerPosition(t),n=t.pageX-i.x,h=t.pageY-i.y,p=Math.sqrt(n*n+h*h);this._dollyStart.set(0,p)}_handleTouchStartDollyPan(t){this.enableZoom&&this._handleTouchStartDolly(t),this.enablePan&&this._handleTouchStartPan(t)}_handleTouchStartDollyRotate(t){this.enableZoom&&this._handleTouchStartDolly(t),this.enableRotate&&this._handleTouchStartRotate(t)}_handleTouchMoveRotate(t){if(this._pointers.length==1)this._rotateEnd.set(t.pageX,t.pageY);else{const n=this._getSecondPointerPosition(t),h=.5*(t.pageX+n.x),p=.5*(t.pageY+n.y);this._rotateEnd.set(h,p)}this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);const i=this.domElement;this._rotateLeft(x*this._rotateDelta.x/i.clientHeight),this._rotateUp(x*this._rotateDelta.y/i.clientHeight),this._rotateStart.copy(this._rotateEnd)}_handleTouchMovePan(t){if(this._pointers.length===1)this._panEnd.set(t.pageX,t.pageY);else{const i=this._getSecondPointerPosition(t),n=.5*(t.pageX+i.x),h=.5*(t.pageY+i.y);this._panEnd.set(n,h)}this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd)}_handleTouchMoveDolly(t){const i=this._getSecondPointerPosition(t),n=t.pageX-i.x,h=t.pageY-i.y,p=Math.sqrt(n*n+h*h);this._dollyEnd.set(0,p),this._dollyDelta.set(0,Math.pow(this._dollyEnd.y/this._dollyStart.y,this.zoomSpeed)),this._dollyOut(this._dollyDelta.y),this._dollyStart.copy(this._dollyEnd);const r=(t.pageX+i.x)*.5,y=(t.pageY+i.y)*.5;this._updateZoomParameters(r,y)}_handleTouchMoveDollyPan(t){this.enableZoom&&this._handleTouchMoveDolly(t),this.enablePan&&this._handleTouchMovePan(t)}_handleTouchMoveDollyRotate(t){this.enableZoom&&this._handleTouchMoveDolly(t),this.enableRotate&&this._handleTouchMoveRotate(t)}_addPointer(t){this._pointers.push(t.pointerId)}_removePointer(t){delete this._pointerPositions[t.pointerId];for(let i=0;i<this._pointers.length;i++)if(this._pointers[i]==t.pointerId){this._pointers.splice(i,1);return}}_isTrackingPointer(t){for(let i=0;i<this._pointers.length;i++)if(this._pointers[i]==t.pointerId)return!0;return!1}_trackPointer(t){let i=this._pointerPositions[t.pointerId];i===void 0&&(i=new o.Vector2,this._pointerPositions[t.pointerId]=i),i.set(t.pageX,t.pageY)}_getSecondPointerPosition(t){const i=t.pointerId===this._pointers[0]?this._pointers[1]:this._pointers[0];return this._pointerPositions[i]}_customWheelEvent(t){const i=t.deltaMode,n={clientX:t.clientX,clientY:t.clientY,deltaY:t.deltaY};switch(i){case 1:n.deltaY*=16;break;case 2:n.deltaY*=100;break}return t.ctrlKey&&!this._controlActive&&(n.deltaY*=10),n}}function yt(e){this.enabled!==!1&&(this._pointers.length===0&&(this.domElement.setPointerCapture(e.pointerId),this.domElement.addEventListener("pointermove",this._onPointerMove),this.domElement.addEventListener("pointerup",this._onPointerUp)),!this._isTrackingPointer(e)&&(this._addPointer(e),e.pointerType==="touch"?this._onTouchStart(e):this._onMouseDown(e)))}function gt(e){this.enabled!==!1&&(e.pointerType==="touch"?this._onTouchMove(e):this._onMouseMove(e))}function Et(e){switch(this._removePointer(e),this._pointers.length){case 0:this.domElement.releasePointerCapture(e.pointerId),this.domElement.removeEventListener("pointermove",this._onPointerMove),this.domElement.removeEventListener("pointerup",this._onPointerUp),this.dispatchEvent(st),this.state=u.NONE;break;case 1:const t=this._pointers[0],i=this._pointerPositions[t];this._onTouchStart({pointerId:t,pageX:i.x,pageY:i.y});break}}function bt(e){let t;switch(e.button){case 0:t=this.mouseButtons.LEFT;break;case 1:t=this.mouseButtons.MIDDLE;break;case 2:t=this.mouseButtons.RIGHT;break;default:t=-1}switch(t){case o.MOUSE.DOLLY:if(this.enableZoom===!1)return;this._handleMouseDownDolly(e),this.state=u.DOLLY;break;case o.MOUSE.ROTATE:if(e.ctrlKey||e.metaKey||e.shiftKey){if(this.enablePan===!1)return;this._handleMouseDownPan(e),this.state=u.PAN}else{if(this.enableRotate===!1)return;this._handleMouseDownRotate(e),this.state=u.ROTATE}break;case o.MOUSE.PAN:if(e.ctrlKey||e.metaKey||e.shiftKey){if(this.enableRotate===!1)return;this._handleMouseDownRotate(e),this.state=u.ROTATE}else{if(this.enablePan===!1)return;this._handleMouseDownPan(e),this.state=u.PAN}break;default:this.state=u.NONE}this.state!==u.NONE&&this.dispatchEvent(X)}function wt(e){switch(this.state){case u.ROTATE:if(this.enableRotate===!1)return;this._handleMouseMoveRotate(e);break;case u.DOLLY:if(this.enableZoom===!1)return;this._handleMouseMoveDolly(e);break;case u.PAN:if(this.enablePan===!1)return;this._handleMouseMovePan(e);break}}function St(e){this.enabled===!1||this.enableZoom===!1||this.state!==u.NONE||(e.preventDefault(),this.dispatchEvent(X),this._handleMouseWheel(this._customWheelEvent(e)),this.dispatchEvent(st))}function Dt(e){this.enabled!==!1&&this._handleKeyDown(e)}function Tt(e){switch(this._trackPointer(e),this._pointers.length){case 1:switch(this.touches.ONE){case o.TOUCH.ROTATE:if(this.enableRotate===!1)return;this._handleTouchStartRotate(e),this.state=u.TOUCH_ROTATE;break;case o.TOUCH.PAN:if(this.enablePan===!1)return;this._handleTouchStartPan(e),this.state=u.TOUCH_PAN;break;default:this.state=u.NONE}break;case 2:switch(this.touches.TWO){case o.TOUCH.DOLLY_PAN:if(this.enableZoom===!1&&this.enablePan===!1)return;this._handleTouchStartDollyPan(e),this.state=u.TOUCH_DOLLY_PAN;break;case o.TOUCH.DOLLY_ROTATE:if(this.enableZoom===!1&&this.enableRotate===!1)return;this._handleTouchStartDollyRotate(e),this.state=u.TOUCH_DOLLY_ROTATE;break;default:this.state=u.NONE}break;default:this.state=u.NONE}this.state!==u.NONE&&this.dispatchEvent(X)}function Pt(e){switch(this._trackPointer(e),this.state){case u.TOUCH_ROTATE:if(this.enableRotate===!1)return;this._handleTouchMoveRotate(e),this.update();break;case u.TOUCH_PAN:if(this.enablePan===!1)return;this._handleTouchMovePan(e),this.update();break;case u.TOUCH_DOLLY_PAN:if(this.enableZoom===!1&&this.enablePan===!1)return;this._handleTouchMoveDollyPan(e),this.update();break;case u.TOUCH_DOLLY_ROTATE:if(this.enableZoom===!1&&this.enableRotate===!1)return;this._handleTouchMoveDollyRotate(e),this.update();break;default:this.state=u.NONE}}function Mt(e){this.enabled!==!1&&e.preventDefault()}function Rt(e){e.key==="Control"&&(this._controlActive=!0,this.domElement.getRootNode().addEventListener("keyup",this._interceptControlUp,{passive:!0,capture:!0}))}function xt(e){e.key==="Control"&&(this._controlActive=!1,this.domElement.getRootNode().removeEventListener("keyup",this._interceptControlUp,{passive:!0,capture:!0}))}class Ot extends ot{constructor(t,i){super(t,i),this.screenSpacePanning=!1,this.mouseButtons={LEFT:o.MOUSE.PAN,MIDDLE:o.MOUSE.DOLLY,RIGHT:o.MOUSE.ROTATE},this.touches={ONE:o.TOUCH.PAN,TWO:o.TOUCH.DOLLY_ROTATE}}}function At(e){return new o.CameraHelper(e)}function Lt(e=150,...t){return new o.GridHelper(e,e/10,...t)}function Ct(e){return new o.BoxHelper(e,16776960)}function vt(e,t){return new ot(e,t)}function Ht(e,t){return new Ot(e,t)}function kt(){const e=new o.Raycaster,t=new o.Vector2(0,0);return{raycaster:e,pointer:t}}function It(e=10){return new o.AxesHelper(e)}function Nt(e=new o.Vector3(1,1,1),t=new o.Vector3(10,10,10),i=5,n=16776960){return e.normalize(),new o.ArrowHelper(e,t,i,n)}function Ut(){const e=new G;return e.dom.style.cssText="position:absolute;top:0;left:0;cursor:pointer;opacity:0.9;z-index:10000",e}class jt extends o.DataTextureLoader{constructor(t){super(t),this.type=o.HalfFloatType}parse(t){const r=function(c,m){switch(c){case 1:throw new Error("THREE.RGBELoader: Read Error: "+(m||""));case 2:throw new Error("THREE.RGBELoader: Write Error: "+(m||""));case 3:throw new Error("THREE.RGBELoader: Bad File Format: "+(m||""));default:case 4:throw new Error("THREE.RGBELoader: Memory Error: "+(m||""))}},_=`
|
|
2
|
+
`,l=function(c,m,g){m=m||1024;let S=c.pos,b=-1,d=0,D="",f=String.fromCharCode.apply(null,new Uint16Array(c.subarray(S,S+128)));for(;0>(b=f.indexOf(_))&&d<m&&S<c.byteLength;)D+=f,d+=f.length,S+=128,f+=String.fromCharCode.apply(null,new Uint16Array(c.subarray(S,S+128)));return-1<b?(c.pos+=d+b+1,D+f.slice(0,b)):!1},A=function(c){const m=/^#\?(\S+)/,g=/^\s*GAMMA\s*=\s*(\d+(\.\d+)?)\s*$/,E=/^\s*EXPOSURE\s*=\s*(\d+(\.\d+)?)\s*$/,S=/^\s*FORMAT=(\S+)\s*$/,b=/^\s*\-Y\s+(\d+)\s+\+X\s+(\d+)\s*$/,d={valid:0,string:"",comments:"",programtype:"RGBE",format:"",gamma:1,exposure:1,width:0,height:0};let D,f;for((c.pos>=c.byteLength||!(D=l(c)))&&r(1,"no header found"),(f=D.match(m))||r(3,"bad initial token"),d.valid|=1,d.programtype=f[1],d.string+=D+`
|
|
3
|
+
`;D=l(c),D!==!1;){if(d.string+=D+`
|
|
4
|
+
`,D.charAt(0)==="#"){d.comments+=D+`
|
|
5
|
+
`;continue}if((f=D.match(g))&&(d.gamma=parseFloat(f[1])),(f=D.match(E))&&(d.exposure=parseFloat(f[1])),(f=D.match(S))&&(d.valid|=2,d.format=f[1]),(f=D.match(b))&&(d.valid|=4,d.height=parseInt(f[1],10),d.width=parseInt(f[2],10)),d.valid&2&&d.valid&4)break}return d.valid&2||r(3,"missing format specifier"),d.valid&4||r(3,"missing image size specifier"),d},L=function(c,m,g){const E=m;if(E<8||E>32767||c[0]!==2||c[1]!==2||c[2]&128)return new Uint8Array(c);E!==(c[2]<<8|c[3])&&r(3,"wrong scanline width");const S=new Uint8Array(4*m*g);S.length||r(4,"unable to allocate buffer space");let b=0,d=0;const D=4*E,f=new Uint8Array(4),F=new Uint8Array(D);let q=g;for(;q>0&&d<c.byteLength;){d+4>c.byteLength&&r(1),f[0]=c[d++],f[1]=c[d++],f[2]=c[d++],f[3]=c[d++],(f[0]!=2||f[1]!=2||(f[2]<<8|f[3])!=E)&&r(3,"bad rgbe scanline format");let V=0,N;for(;V<D&&d<c.byteLength;){N=c[d++];const U=N>128;if(U&&(N-=128),(N===0||V+N>D)&&r(3,"bad scanline data"),U){const j=c[d++];for(let $=0;$<N;$++)F[V++]=j}else F.set(c.subarray(d,d+N),V),V+=N,d+=N}const lt=E;for(let U=0;U<lt;U++){let j=0;S[b]=F[U+j],j+=E,S[b+1]=F[U+j],j+=E,S[b+2]=F[U+j],j+=E,S[b+3]=F[U+j],b+=4}q--}return S},C=function(c,m,g,E){const S=c[m+3],b=Math.pow(2,S-128)/255;g[E+0]=c[m+0]*b,g[E+1]=c[m+1]*b,g[E+2]=c[m+2]*b,g[E+3]=1},v=function(c,m,g,E){const S=c[m+3],b=Math.pow(2,S-128)/255;g[E+0]=o.DataUtils.toHalfFloat(Math.min(c[m+0]*b,65504)),g[E+1]=o.DataUtils.toHalfFloat(Math.min(c[m+1]*b,65504)),g[E+2]=o.DataUtils.toHalfFloat(Math.min(c[m+2]*b,65504)),g[E+3]=o.DataUtils.toHalfFloat(1)},a=new Uint8Array(t);a.pos=0;const s=A(a),M=s.width,z=s.height,R=L(a.subarray(a.pos),M,z);let O,H,k;switch(this.type){case o.FloatType:k=R.length/4;const c=new Float32Array(k*4);for(let g=0;g<k;g++)C(R,g*4,c,g*4);O=c,H=o.FloatType;break;case o.HalfFloatType:k=R.length/4;const m=new Uint16Array(k*4);for(let g=0;g<k;g++)v(R,g*4,m,g*4);O=m,H=o.HalfFloatType;break;default:throw new Error("THREE.RGBELoader: Unsupported type: "+this.type)}return{width:M,height:z,data:O,header:s.string,gamma:s.gamma,exposure:s.exposure,type:H}}setDataType(t){return this.type=t,this}load(t,i,n,h){function p(r,y){switch(r.type){case o.FloatType:case o.HalfFloatType:r.colorSpace=o.LinearSRGBColorSpace,r.minFilter=o.LinearFilter,r.magFilter=o.LinearFilter,r.generateMipmaps=!1,r.flipY=!0;break}i&&i(r,y)}return super.load(t,p,n,h)}}const nt=e=>{e.geometry&&e.geometry.dispose(),e.material&&(Array.isArray(e.material)?e.material.forEach(t=>{it(t)}):it(e.material)),e.children&&e.children.forEach(t=>nt(t))};function it(e){for(const t in e)e[t]&&e[t].isTexture&&e[t].dispose();e.dispose()}const W={},at=new jt;async function Yt(e,t){if(t){if(W[t]){const i=W[t];e.environment=i;return}return new Promise((i,n)=>{at.load(t,i,void 0,n)}).then(i=>{i.mapping=o.EquirectangularReflectionMapping,e.environment=i,W[t]=i}).catch(i=>{console.log(" =====> e:",i)})}}async function zt(e){return new Promise((t,i)=>{at.load(e,t,void 0,i)})}const K={};function rt(e){const t={type:e.type,name:e.name,position:e.position.toArray(),rotation:e.rotation.toArray(),scale:e.scale.toArray(),visible:e.visible,children:[],geometry:null,material:null,userData:e.userData};e.isMesh&&(t.geometry=Ft(e.geometry),t.material=Vt(e.material));for(const i of e.children)t.children.push(rt(i));return t}function ht(e){let t;switch(e.type){case"Mesh":const i=Gt(e.geometry),n=Bt(e.material);t=new Y.Mesh(i,n);break;case"Group":t=new Y.Group;break;case"Object3D":t=new Y.Object3D;break;default:return console.warn(`Unsupported object type: ${e.type}`),null}t.name=e.name,t.position.fromArray(e.position),t.rotation.fromArray(e.rotation),t.scale.fromArray(e.scale),t.visible=e.visible,t.userData=e.userData;for(const i of e.children){const n=ht(i);n&&t.add(n)}return t}function Ft(e){const t=[],{attributes:i,index:n,type:h}=e;i.position&&(t.position={type:"Float32Array",array:Array.from(i.position.array),itemSize:3}),i.normal&&(t.normal={type:"Float32Array",array:Array.from(i.normal.array),itemSize:3}),i.uv&&(t.uv={type:"Float32Array",array:Array.from(i.uv.array),itemSize:2});const p={type:h,attributes:t};return n&&n.array&&(p.index={type:"Uint32Array",array:Array.from(n.array),itemSize:1}),p}function Gt(e){const{type:t,attributes:i,index:n}=e,h=new Y.BufferGeometry;return Object.keys(i).forEach(p=>{const{type:r,array:y,itemSize:P}=i[p];h.setAttribute(p,new Y.BufferAttribute(new Float32Array(y),P))}),n&&h.setIndex(n.array),h}function Vt(e){return{type:e.type,color:e.color.getHex(),map:e.map?e.map.image.src:null,opacity:e.opacity,name:e.name,depthTest:e.depthTest,depthWrite:e.depthWrite,transparent:e.transparent,side:e.side,roughness:e.roughness,metalness:e.metalness,emissive:e.emissive.getHex()}}function Bt(e){if(K[e.name])return K[e.name];const{type:t,...i}=e,n=t||"MeshStandardMaterial",h=new Y[n]({...i});if(e.map){const p=new Y.TextureLoader().load(e.map);h.map=p}return h.needsUpdate=!0,K[e.name]=h,h}exports.CSS3DRenderer=_t;exports.CSS3DSprite=ut;exports.ImageLoader=zt;exports.Stats=G;exports.createArrowHelper=Nt;exports.createAxesHelper=It;exports.createBox3Helper=Ct;exports.createCameraHelper=At;exports.createGridHelper=Lt;exports.createMapControls=Ht;exports.createOrbitControl=vt;exports.createRaycaster=kt;exports.createStats=Ut;exports.dataToObject3D=ht;exports.disposeThreeObject=nt;exports.initEnvImage=Yt;exports.object3DToData=rt;
|
package/dist/threejs.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";var v=Object.defineProperty;var O=(l,e,s)=>e in l?v(l,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):l[e]=s;var t=(l,e,s)=>O(l,typeof e!="symbol"?e+"":e,s);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./useGLTFLoader-2awW2QaH.cjs"),r=require("./modelSerialize-Ds_2KBaA.cjs"),f=require("./common-C1rNPPkt.cjs"),o=require("three"),m=require("vue"),x="1.0.19",L={enableDamping:!0,dampingFactor:.25,screenSpacePanning:!1,minDistance:.1,maxDistance:1e3,maxPolarAngle:o.MathUtils.degToRad(60)};class p{constructor(e,s){t(this,"isReady",m.ref(!1));t(this,"scene",null);t(this,"camera",null);t(this,"renderer",null);t(this,"control",null);t(this,"css3dRenderer",null);t(this,"el",null);t(this,"renderRequested",!1);t(this,"selector",null);t(this,"eventsListener",{});t(this,"stats",null);t(this,"isDispose",!1);t(this,"version","0.0.0");t(this,"initOpt",{css3d:!1,stats:!1,renderType:"change",initListener:"True",control:{init:!0,options:{}}});t(this,"setup",e=>{this.isDispose=!1,this.selector=e,this.el=document.querySelector(e);const s=Math.tan(Math.PI/180*this.camera.fov/2),[i,c]=this.getTargetSize();if(this.camera.aspect=i/c,this.camera.position.set(47,39,100),this.camera.fov=360/Math.PI*Math.atan(s*(c/i)),this.camera.lookAt(0,0,0),this.camera.updateProjectionMatrix(),this.renderer.setPixelRatio(window.devicePixelRatio),this.renderer.setSize(i,c),this.el.appendChild(this.renderer.domElement),this.initOpt.control&&this.initOpt.control.init){this.control=r.createOrbitControl(this.camera,this.renderer.domElement);const h=Object.assign(L,this.initOpt.control.options||{});Object.keys(h).forEach(n=>{this.control[n]=h[n]})}m.nextTick(()=>this.isReady.value=!0),this.initOpt.stats&&this.initStats(),this.initOpt.css3d&&this.initCss3dRenderer(),this.initOpt.renderType==="loop"?requestAnimationFrame(this.animate):this.initOpt.renderType==="change"&&this.control&&this.control.addEventListener("change",this.requestRenderIfNotRequested),this.initListener()});t(this,"onContextLost",e=>{e.preventDefault(),cancelAnimationFrame(this.animate)});t(this,"onContextRestored",e=>{e.preventDefault(),this.dispose(),m.nextTick(()=>{this.setup(this.selector)})});t(this,"initListener",()=>{this.initOpt.initListener=="True"&&window&&window.addEventListener("resize",()=>this.onResize(),!1),this.renderer.domElement.addEventListener("webglcontextlost",this.onContextLost,!1),this.renderer.domElement.addEventListener("webglcontextrestored",this.onContextRestored,!1)});t(this,"removeListener",()=>{window&&window.removeEventListener("resize",this.onResize,!1),this.renderer.domElement.removeEventListener("webglcontextlost",this.onContextLost.bind(p),!1),this.renderer.domElement.removeEventListener("webglcontextrestored",this.onContextRestored.bind(p),!1)});t(this,"animate",()=>{this.initOpt.renderType==="loop"&&this.onRender(),requestAnimationFrame(this.animate)});t(this,"onRender",()=>{this.isDispose||(this.renderRequested=!1,this.stats&&this.stats.update(),this.control&&this.control.update(),this.renderer.render(this.scene,this.camera),this.css3dRenderer&&this.css3dRenderer.render(this.scene,this.camera),this.eventsListener.onRender&&this.eventsListener.onRender.length&&this.eventsListener.onRender.forEach(e=>e()))});t(this,"requestRenderIfNotRequested",()=>{this.renderRequested||(this.renderRequested=!0,requestAnimationFrame(()=>{this.onRender()}))});t(this,"onResize",()=>{m.nextTick(()=>{const e=Math.tan(Math.PI/180*this.camera.fov/2),[s,i]=this.getTargetSize();this.camera.aspect=s/i,this.camera.fov=360/Math.PI*Math.atan(e*(i/s)),this.camera.updateProjectionMatrix(),this.camera.lookAt(this.scene.position),this.renderer.setSize(s,i),this.css3dRenderer&&this.css3dRenderer.setSize(s,i),this.onRender()})});t(this,"frameArea",(e,s,i)=>{const c=new o.Box3().setFromObject(e),h=c.getSize(new o.Vector3).length(),n=c.getCenter(new o.Vector3);i&&n.add(i);const R=h*s*.5,g=o.MathUtils.degToRad(this.camera.fov*.5),b=R/Math.tan(g),u=new o.Vector3().subVectors(this.camera.position,n).multiply(new o.Vector3(1,1,1)).normalize().multiplyScalar(b).add(n),d={x:u.x,y:u.y,z:u.z,lookAt_x:n.x,lookAt_y:n.y,lookAt_z:n.z};return this.camera.position.set(d.x,d.y,d.z),this.camera.lookAt(d.lookAt_x,d.lookAt_y,d.lookAt_z),this.camera.updateProjectionMatrix(),this.control.target.copy(n),this.control.update(),h});t(this,"on",(e,s)=>{!e||!s||(this.eventsListener[e]||(this.eventsListener[e]=[]),this.eventsListener[e].push(s))});this.isReady.value=!1,this.scene=new o.Scene({}),this.camera=new o.PerspectiveCamera(50,1,.1,2e3),this.renderer=new o.WebGLRenderer({antialias:!0,alpha:!0,precision:"mediump",logarithmicDepthBuffer:!0}),this.version=x,s&&(this.initOpt=Object.assign(this.initOpt,s)),e&&this.setup(e)}initStats(){const e=new Stats;e.dom.style.cssText="position:absolute;top:0;left:0;cursor:pointer;opacity:0.9;z-index:10000",this.el.appendChild(e.dom)}initCss3dRenderer(){this.css3dRenderer=new r.CSS3DRenderer;const[e,s]=this.getTargetSize();this.css3dRenderer.setSize(e,s),this.css3dRenderer.domElement.style.position="absolute",this.css3dRenderer.domElement.style.pointerEvents="none",this.css3dRenderer.domElement.style.top=0,this.css3dRenderer.domElement.style.left=0,this.el.appendChild(this.css3dRenderer.domElement)}getTargetSize(){const e=document.querySelector(this.selector);return e?[e.clientWidth,e.clientHeight]:[0,0]}off(e){e||(this.eventsListener={}),this.eventsListener[e]&&(this.eventsListener[e]=[])}dispose(){this.isDispose=!0,this.removeListener(),r.disposeThreeObject(this.scene),this.renderer.dispose(),this.renderer.domElement.remove(),this.el=null,this.renderer=null,this.camera=null,this.scene=null,this.control=null,this.css3dRenderer=null}}exports.IDBCache=a.IDBCache;exports.intersectColor=a.intersectColor;exports.obbObjects=a.obbObjects;exports.useGLTFLoader=a.useGLTFLoader;exports.useObb=a.useObb;exports.useRaycaster=a.useRaycaster;exports.useThreeJs=a.useThreeJs;exports.ImageLoader=r.ImageLoader;exports.createArrowHelper=r.createArrowHelper;exports.createAxesHelper=r.createAxesHelper;exports.createBox3Helper=r.createBox3Helper;exports.createCameraHelper=r.createCameraHelper;exports.createGridHelper=r.createGridHelper;exports.createMapControls=r.createMapControls;exports.createOrbitControl=r.createOrbitControl;exports.createRaycaster=r.createRaycaster;exports.createStats=r.createStats;exports.dataToObject3D=r.dataToObject3D;exports.disposeThreeObject=r.disposeThreeObject;exports.initEnvImage=r.initEnvImage;exports.object3DToData=r.object3DToData;exports.createInfoPlane=f.createInfoPlane;exports.createTagPlane=f.createTagPlane;exports.getCommonParent=f.getCommonParent;exports.ThreeIns=p;
|
package/dist/threejs.js
CHANGED
|
@@ -1,27 +1,187 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
var g = Object.defineProperty;
|
|
2
|
+
var x = (a, e, s) => e in a ? g(a, e, { enumerable: !0, configurable: !0, writable: !0, value: s }) : a[e] = s;
|
|
3
|
+
var t = (a, e, s) => x(a, typeof e != "symbol" ? e + "" : e, s);
|
|
4
|
+
import { I, i as k, o as H, c as W, b as B, a as V, u as _ } from "./useGLTFLoader-BBGTGOYm.js";
|
|
5
|
+
import { d as v, C as L, j as O } from "./modelSerialize-5oJb1ka7.js";
|
|
6
|
+
import { I as N, h as J, g as U, b as Y, c as K, a as Q, e as X, f as Z, i as $, l as ee, k as te, o as se } from "./modelSerialize-5oJb1ka7.js";
|
|
7
|
+
import { c as ne, a as re, g as oe } from "./common-D1_IztgM.js";
|
|
8
|
+
import { MathUtils as p, Scene as b, PerspectiveCamera as y, WebGLRenderer as z, Box3 as w, Vector3 as h } from "three";
|
|
9
|
+
import { ref as S, nextTick as l } from "vue";
|
|
10
|
+
const C = "1.0.19", E = {
|
|
11
|
+
enableDamping: !0,
|
|
12
|
+
dampingFactor: 0.25,
|
|
13
|
+
screenSpacePanning: !1,
|
|
14
|
+
minDistance: 0.1,
|
|
15
|
+
maxDistance: 1e3,
|
|
16
|
+
maxPolarAngle: p.degToRad(60)
|
|
17
|
+
};
|
|
18
|
+
class m {
|
|
19
|
+
constructor(e, s) {
|
|
20
|
+
t(this, "isReady", S(!1));
|
|
21
|
+
t(this, "scene", null);
|
|
22
|
+
t(this, "camera", null);
|
|
23
|
+
t(this, "renderer", null);
|
|
24
|
+
t(this, "control", null);
|
|
25
|
+
t(this, "css3dRenderer", null);
|
|
26
|
+
t(this, "el", null);
|
|
27
|
+
t(this, "renderRequested", !1);
|
|
28
|
+
t(this, "selector", null);
|
|
29
|
+
t(this, "eventsListener", {});
|
|
30
|
+
t(this, "stats", null);
|
|
31
|
+
t(this, "isDispose", !1);
|
|
32
|
+
t(this, "version", "0.0.0");
|
|
33
|
+
t(this, "initOpt", {
|
|
34
|
+
css3d: !1,
|
|
35
|
+
stats: !1,
|
|
36
|
+
renderType: "change",
|
|
37
|
+
initListener: "True",
|
|
38
|
+
control: {
|
|
39
|
+
init: !0,
|
|
40
|
+
options: {}
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
t(this, "setup", (e) => {
|
|
44
|
+
this.isDispose = !1, this.selector = e, this.el = document.querySelector(e);
|
|
45
|
+
const s = Math.tan(Math.PI / 180 * this.camera.fov / 2), [i, r] = this.getTargetSize();
|
|
46
|
+
if (this.camera.aspect = i / r, this.camera.position.set(47, 39, 100), this.camera.fov = 360 / Math.PI * Math.atan(s * (r / i)), this.camera.lookAt(0, 0, 0), this.camera.updateProjectionMatrix(), this.renderer.setPixelRatio(window.devicePixelRatio), this.renderer.setSize(i, r), this.el.appendChild(this.renderer.domElement), this.initOpt.control && this.initOpt.control.init) {
|
|
47
|
+
this.control = v(this.camera, this.renderer.domElement);
|
|
48
|
+
const d = Object.assign(
|
|
49
|
+
E,
|
|
50
|
+
this.initOpt.control.options || {}
|
|
51
|
+
);
|
|
52
|
+
Object.keys(d).forEach((n) => {
|
|
53
|
+
this.control[n] = d[n];
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
l(() => this.isReady.value = !0), this.initOpt.stats && this.initStats(), this.initOpt.css3d && this.initCss3dRenderer(), this.initOpt.renderType === "loop" ? requestAnimationFrame(this.animate) : this.initOpt.renderType === "change" && this.control && this.control.addEventListener(
|
|
57
|
+
"change",
|
|
58
|
+
this.requestRenderIfNotRequested
|
|
59
|
+
), this.initListener();
|
|
60
|
+
});
|
|
61
|
+
t(this, "onContextLost", (e) => {
|
|
62
|
+
e.preventDefault(), cancelAnimationFrame(this.animate);
|
|
63
|
+
});
|
|
64
|
+
t(this, "onContextRestored", (e) => {
|
|
65
|
+
e.preventDefault(), this.dispose(), l(() => {
|
|
66
|
+
this.setup(this.selector);
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
t(this, "initListener", () => {
|
|
70
|
+
this.initOpt.initListener == "True" && window && window.addEventListener("resize", () => this.onResize(), !1), this.renderer.domElement.addEventListener(
|
|
71
|
+
"webglcontextlost",
|
|
72
|
+
this.onContextLost,
|
|
73
|
+
!1
|
|
74
|
+
), this.renderer.domElement.addEventListener(
|
|
75
|
+
"webglcontextrestored",
|
|
76
|
+
this.onContextRestored,
|
|
77
|
+
!1
|
|
78
|
+
);
|
|
79
|
+
});
|
|
80
|
+
t(this, "removeListener", () => {
|
|
81
|
+
window && window.removeEventListener("resize", this.onResize, !1), this.renderer.domElement.removeEventListener(
|
|
82
|
+
"webglcontextlost",
|
|
83
|
+
this.onContextLost.bind(m),
|
|
84
|
+
!1
|
|
85
|
+
), this.renderer.domElement.removeEventListener(
|
|
86
|
+
"webglcontextrestored",
|
|
87
|
+
this.onContextRestored.bind(m),
|
|
88
|
+
!1
|
|
89
|
+
);
|
|
90
|
+
});
|
|
91
|
+
t(this, "animate", () => {
|
|
92
|
+
this.initOpt.renderType === "loop" && this.onRender(), requestAnimationFrame(this.animate);
|
|
93
|
+
});
|
|
94
|
+
t(this, "onRender", () => {
|
|
95
|
+
this.isDispose || (this.renderRequested = !1, this.stats && this.stats.update(), this.control && this.control.update(), this.renderer.render(this.scene, this.camera), this.css3dRenderer && this.css3dRenderer.render(this.scene, this.camera), this.eventsListener.onRender && this.eventsListener.onRender.length && this.eventsListener.onRender.forEach((e) => e()));
|
|
96
|
+
});
|
|
97
|
+
t(this, "requestRenderIfNotRequested", () => {
|
|
98
|
+
this.renderRequested || (this.renderRequested = !0, requestAnimationFrame(() => {
|
|
99
|
+
this.onRender();
|
|
100
|
+
}));
|
|
101
|
+
});
|
|
102
|
+
t(this, "onResize", () => {
|
|
103
|
+
l(() => {
|
|
104
|
+
const e = Math.tan(Math.PI / 180 * this.camera.fov / 2), [s, i] = this.getTargetSize();
|
|
105
|
+
this.camera.aspect = s / i, this.camera.fov = 360 / Math.PI * Math.atan(e * (i / s)), this.camera.updateProjectionMatrix(), this.camera.lookAt(this.scene.position), this.renderer.setSize(s, i), this.css3dRenderer && this.css3dRenderer.setSize(s, i), this.onRender();
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
/**物体视窗自动适应
|
|
109
|
+
*
|
|
110
|
+
* @param {Object3D} model
|
|
111
|
+
* @param {Number} scale
|
|
112
|
+
* @param {Vector3} offset
|
|
113
|
+
*/
|
|
114
|
+
t(this, "frameArea", (e, s, i) => {
|
|
115
|
+
const r = new w().setFromObject(e), d = r.getSize(new h()).length(), n = r.getCenter(new h());
|
|
116
|
+
i && n.add(i);
|
|
117
|
+
const u = d * s * 0.5, f = p.degToRad(this.camera.fov * 0.5), R = u / Math.tan(f), c = new h().subVectors(this.camera.position, n).multiply(new h(1, 1, 1)).normalize().multiplyScalar(R).add(n), o = {
|
|
118
|
+
x: c.x,
|
|
119
|
+
y: c.y,
|
|
120
|
+
z: c.z,
|
|
121
|
+
lookAt_x: n.x,
|
|
122
|
+
lookAt_y: n.y,
|
|
123
|
+
lookAt_z: n.z
|
|
124
|
+
};
|
|
125
|
+
return this.camera.position.set(o.x, o.y, o.z), this.camera.lookAt(
|
|
126
|
+
o.lookAt_x,
|
|
127
|
+
o.lookAt_y,
|
|
128
|
+
o.lookAt_z
|
|
129
|
+
), this.camera.updateProjectionMatrix(), this.control.target.copy(n), this.control.update(), d;
|
|
130
|
+
});
|
|
131
|
+
t(this, "on", (e, s) => {
|
|
132
|
+
!e || !s || (this.eventsListener[e] || (this.eventsListener[e] = []), this.eventsListener[e].push(s));
|
|
133
|
+
});
|
|
134
|
+
this.isReady.value = !1, this.scene = new b({}), this.camera = new y(50, 1, 0.1, 2e3), this.renderer = new z({
|
|
135
|
+
antialias: !0,
|
|
136
|
+
alpha: !0,
|
|
137
|
+
precision: "mediump",
|
|
138
|
+
logarithmicDepthBuffer: !0
|
|
139
|
+
}), this.version = C, s && (this.initOpt = Object.assign(this.initOpt, s)), e && this.setup(e);
|
|
140
|
+
}
|
|
141
|
+
initStats() {
|
|
142
|
+
const e = new Stats();
|
|
143
|
+
e.dom.style.cssText = "position:absolute;top:0;left:0;cursor:pointer;opacity:0.9;z-index:10000", this.el.appendChild(e.dom);
|
|
144
|
+
}
|
|
145
|
+
initCss3dRenderer() {
|
|
146
|
+
this.css3dRenderer = new L();
|
|
147
|
+
const [e, s] = this.getTargetSize();
|
|
148
|
+
this.css3dRenderer.setSize(e, s), this.css3dRenderer.domElement.style.position = "absolute", this.css3dRenderer.domElement.style.pointerEvents = "none", this.css3dRenderer.domElement.style.top = 0, this.css3dRenderer.domElement.style.left = 0, this.el.appendChild(this.css3dRenderer.domElement);
|
|
149
|
+
}
|
|
150
|
+
getTargetSize() {
|
|
151
|
+
const e = document.querySelector(this.selector);
|
|
152
|
+
return e ? [e.clientWidth, e.clientHeight] : [0, 0];
|
|
153
|
+
}
|
|
154
|
+
off(e) {
|
|
155
|
+
e || (this.eventsListener = {}), this.eventsListener[e] && (this.eventsListener[e] = []);
|
|
156
|
+
}
|
|
157
|
+
dispose() {
|
|
158
|
+
this.isDispose = !0, this.removeListener(), O(this.scene), this.renderer.dispose(), this.renderer.domElement.remove(), this.el = null, this.renderer = null, this.camera = null, this.scene = null, this.control = null, this.css3dRenderer = null;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
4
161
|
export {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
162
|
+
I as IDBCache,
|
|
163
|
+
N as ImageLoader,
|
|
164
|
+
m as ThreeIns,
|
|
165
|
+
J as createArrowHelper,
|
|
166
|
+
U as createAxesHelper,
|
|
167
|
+
Y as createBox3Helper,
|
|
168
|
+
K as createCameraHelper,
|
|
169
|
+
Q as createGridHelper,
|
|
170
|
+
ne as createInfoPlane,
|
|
171
|
+
X as createMapControls,
|
|
172
|
+
v as createOrbitControl,
|
|
173
|
+
Z as createRaycaster,
|
|
174
|
+
$ as createStats,
|
|
175
|
+
re as createTagPlane,
|
|
176
|
+
ee as dataToObject3D,
|
|
177
|
+
O as disposeThreeObject,
|
|
178
|
+
oe as getCommonParent,
|
|
179
|
+
te as initEnvImage,
|
|
180
|
+
k as intersectColor,
|
|
181
|
+
H as obbObjects,
|
|
182
|
+
se as object3DToData,
|
|
183
|
+
W as useGLTFLoader,
|
|
184
|
+
B as useObb,
|
|
185
|
+
V as useRaycaster,
|
|
186
|
+
_ as useThreeJs
|
|
27
187
|
};
|