@ridp/threejs 1.4.4 → 1.4.5

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/hooks.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./useBatchGLTFLoader-D3gPYO-K.cjs"),r=require("./PredictiveLoader-BXCwkdSX.cjs");exports.intersectColor=e.intersectColor;exports.obbObjects=e.obbObjects;exports.useBatchGLTFLoader=e.useBatchGLTFLoader;exports.useObb=e.useObb;exports.useRaycaster=e.useRaycaster;exports.useThreeJs=e.useThreeJs;exports.useGLTFLoader=r.useGLTFLoader;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./useBatchGLTFLoader-19GZ1dxv.cjs"),r=require("./PredictiveLoader-KOCZXzGy.cjs");exports.intersectColor=e.intersectColor;exports.obbObjects=e.obbObjects;exports.useBatchGLTFLoader=e.useBatchGLTFLoader;exports.useObb=e.useObb;exports.useRaycaster=e.useRaycaster;exports.useThreeJs=e.useThreeJs;exports.useGLTFLoader=r.useGLTFLoader;
package/dist/hooks.js CHANGED
@@ -1,5 +1,5 @@
1
- import { i as a, o, c as r, b as t, a as u, u as b } from "./useBatchGLTFLoader-DP_NdYhC.js";
2
- import { u as L } from "./PredictiveLoader-eiPgVdsJ.js";
1
+ import { i as a, o, c as r, b as t, a as u, u as b } from "./useBatchGLTFLoader-DPT0_95u.js";
2
+ import { u as L } from "./PredictiveLoader-DTN7SDRI.js";
3
3
  export {
4
4
  a as intersectColor,
5
5
  o as obbObjects,
package/dist/threejs.cjs CHANGED
@@ -1,3 +1,3 @@
1
- "use strict";var q=Object.defineProperty;var B=(x,e,t)=>e in x?q(x,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):x[e]=t;var i=(x,e,t)=>B(x,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g=require("./useBatchGLTFLoader-D3gPYO-K.cjs"),n=require("./PredictiveLoader-BXCwkdSX.cjs"),b=require("./ImageLoader-y6-Adf1b.cjs"),V=require("./modelOptimizer-A0Cs6f9e.cjs"),a=require("three"),X="1.4.3",Y=50,Z=20,G=20,O={TOP:"top",RIGHT:"right",LEFT:"left",ISO:"iso"},U={enableDamping:!0,dampingFactor:.25,screenSpacePanning:!1,minDistance:.1,maxDistance:1e3,maxPolarAngle:a.MathUtils.degToRad(60)};class I{constructor(e,t){i(this,"isReady",!1);i(this,"scene",null);i(this,"camera",null);i(this,"renderer",null);i(this,"control",null);i(this,"css3dRenderer",null);i(this,"el",null);i(this,"renderRequested",!1);i(this,"selector",null);i(this,"eventsListener",{});i(this,"stats",null);i(this,"isDispose",!1);i(this,"version","0.0.0");i(this,"boxHelper",null);i(this,"initOpt",{css3d:!1,stats:!1,renderType:"change",initListener:!0,initialFov:50,control:{init:!0,options:{}}});i(this,"setup",e=>{if(this.isDispose=!1,this.selector=e,this.el=document.querySelector(e),!this.el){console.error(`ThreeIns: 找不到元素 ${e}`);return}const[t,h]=this.getTargetSize();if(this.updateCameraFOV(t,h),this.camera.position.set(0,0,0),this.camera.lookAt(0,0,0),this.camera.updateProjectionMatrix(),this.renderer.setPixelRatio(window.devicePixelRatio),this.renderer.setSize(t,h),this.el.appendChild(this.renderer.domElement),this.initOpt.control&&this.initOpt.control.init){this.control=n.createOrbitControl(this.camera,this.renderer.domElement);const s=Object.assign(U,this.initOpt.control.options||{});Object.keys(s).forEach(F=>{this.control[F]=s[F]})}setTimeout(()=>{this.isReady=!0},Z),this.initOpt.stats&&this.initStats(),this.initOpt.css3d&&this.initCss3dRenderer(),this.initOpt.renderType==="loop"?this.animate():this.initOpt.renderType==="change"&&this.control&&this.control.addEventListener("change",this.requestRenderIfNotRequested),this.initListener()});i(this,"onContextLost",e=>{e.preventDefault(),this.animationFrameId&&cancelAnimationFrame(this.animationFrameId)});i(this,"onContextRestored",e=>{e.preventDefault(),this.dispose(),setTimeout(()=>{this.setup(this.selector)},G)});i(this,"initListener",()=>{this.initOpt.initListener&&window&&window.addEventListener("resize",this.onResize,!1),this.renderer.domElement.addEventListener("webglcontextlost",this.onContextLost,!1),this.renderer.domElement.addEventListener("webglcontextrestored",this.onContextRestored,!1)});i(this,"removeListener",()=>{window&&window.removeEventListener("resize",this.onResize,!1),this.renderer&&this.renderer.domElement&&(this.renderer.domElement.removeEventListener("webglcontextlost",this.onContextLost,!1),this.renderer.domElement.removeEventListener("webglcontextrestored",this.onContextRestored,!1))});i(this,"animate",()=>{this.isDispose||(this.initOpt.renderType==="loop"&&this.onRender(),this.animationFrameId=requestAnimationFrame(this.animate))});i(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()))});i(this,"requestRenderIfNotRequested",()=>{this.renderRequested||(this.renderRequested=!0,requestAnimationFrame(()=>{this.onRender()}))});i(this,"onResize",()=>{this.resizeTimer&&clearTimeout(this.resizeTimer),this.resizeTimer=setTimeout(()=>{const[e,t]=this.getTargetSize();this.updateCameraFOV(e,t),this.camera.lookAt(this.scene.position),this.renderer.setSize(e,t),this.css3dRenderer&&this.css3dRenderer.setSize(e,t),this.onRender()},Y)});i(this,"frameArea",(e,t)=>(console.warn(`[ThreeIns] frameArea() 已弃用,建议使用 setView() 方法。
1
+ "use strict";var q=Object.defineProperty;var B=(x,e,t)=>e in x?q(x,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):x[e]=t;var i=(x,e,t)=>B(x,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g=require("./useBatchGLTFLoader-19GZ1dxv.cjs"),n=require("./PredictiveLoader-KOCZXzGy.cjs"),b=require("./ImageLoader-6mmE7g5P.cjs"),V=require("./modelOptimizer-A0Cs6f9e.cjs"),a=require("three"),X="1.4.4",Y=50,Z=20,G=20,O={TOP:"top",RIGHT:"right",LEFT:"left",ISO:"iso"},U={enableDamping:!0,dampingFactor:.25,screenSpacePanning:!1,minDistance:.1,maxDistance:1e3,maxPolarAngle:a.MathUtils.degToRad(60)};class I{constructor(e,t){i(this,"isReady",!1);i(this,"scene",null);i(this,"camera",null);i(this,"renderer",null);i(this,"control",null);i(this,"css3dRenderer",null);i(this,"el",null);i(this,"renderRequested",!1);i(this,"selector",null);i(this,"eventsListener",{});i(this,"stats",null);i(this,"isDispose",!1);i(this,"version","0.0.0");i(this,"boxHelper",null);i(this,"initOpt",{css3d:!1,stats:!1,renderType:"change",initListener:!0,initialFov:50,control:{init:!0,options:{}}});i(this,"setup",e=>{if(this.isDispose=!1,this.selector=e,this.el=document.querySelector(e),!this.el){console.error(`ThreeIns: 找不到元素 ${e}`);return}const[t,h]=this.getTargetSize();if(this.updateCameraFOV(t,h),this.camera.position.set(0,0,0),this.camera.lookAt(0,0,0),this.camera.updateProjectionMatrix(),this.renderer.setPixelRatio(window.devicePixelRatio),this.renderer.setSize(t,h),this.el.appendChild(this.renderer.domElement),this.initOpt.control&&this.initOpt.control.init){this.control=n.createOrbitControl(this.camera,this.renderer.domElement);const s=Object.assign(U,this.initOpt.control.options||{});Object.keys(s).forEach(F=>{this.control[F]=s[F]})}setTimeout(()=>{this.isReady=!0},Z),this.initOpt.stats&&this.initStats(),this.initOpt.css3d&&this.initCss3dRenderer(),this.initOpt.renderType==="loop"?this.animate():this.initOpt.renderType==="change"&&this.control&&this.control.addEventListener("change",this.requestRenderIfNotRequested),this.initListener()});i(this,"onContextLost",e=>{e.preventDefault(),this.animationFrameId&&cancelAnimationFrame(this.animationFrameId)});i(this,"onContextRestored",e=>{e.preventDefault(),this.dispose(),setTimeout(()=>{this.setup(this.selector)},G)});i(this,"initListener",()=>{this.initOpt.initListener&&window&&window.addEventListener("resize",this.onResize,!1),this.renderer.domElement.addEventListener("webglcontextlost",this.onContextLost,!1),this.renderer.domElement.addEventListener("webglcontextrestored",this.onContextRestored,!1)});i(this,"removeListener",()=>{window&&window.removeEventListener("resize",this.onResize,!1),this.renderer&&this.renderer.domElement&&(this.renderer.domElement.removeEventListener("webglcontextlost",this.onContextLost,!1),this.renderer.domElement.removeEventListener("webglcontextrestored",this.onContextRestored,!1))});i(this,"animate",()=>{this.isDispose||(this.initOpt.renderType==="loop"&&this.onRender(),this.animationFrameId=requestAnimationFrame(this.animate))});i(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()))});i(this,"requestRenderIfNotRequested",()=>{this.renderRequested||(this.renderRequested=!0,requestAnimationFrame(()=>{this.onRender()}))});i(this,"onResize",()=>{this.resizeTimer&&clearTimeout(this.resizeTimer),this.resizeTimer=setTimeout(()=>{const[e,t]=this.getTargetSize();this.updateCameraFOV(e,t),this.camera.lookAt(this.scene.position),this.renderer.setSize(e,t),this.css3dRenderer&&this.css3dRenderer.setSize(e,t),this.onRender()},Y)});i(this,"frameArea",(e,t)=>(console.warn(`[ThreeIns] frameArea() 已弃用,建议使用 setView() 方法。
2
2
  旧用法: threeIns.frameArea(model, scale)
3
3
  新用法: threeIns.setView(model, ViewType.ISO, { scale })`),this.setView(e,O.ISO,{scale:t,animate:!1,showBox:!1})));i(this,"setView",(e,t,h={})=>{let s=h.scale||.8,F=h.offset||null,T=h.position||"center",M=h.showBox||!1,H=h.boxColor||16776960,E=h.animate!==void 0?h.animate:!0,w=h.duration||1e3;const R=new a.Box3().setFromObject(e);let d=R.getCenter(new a.Vector3);if(typeof T=="string"){const o=R.getSize(new a.Vector3),l={center:new a.Vector3(0,0,0),"top-left":new a.Vector3(-o.x*.3,o.y*.3,o.z*.3),"top-right":new a.Vector3(o.x*.3,o.y*.3,o.z*.3),"bottom-left":new a.Vector3(-o.x*.3,-o.y*.3,o.z*.3),"bottom-right":new a.Vector3(o.x*.3,-o.y*.3,o.z*.3)},m=l[T]||l.center;t==="top"?d.add(new a.Vector3(m.x,0,m.z)):t==="right"||t==="left"?d.add(new a.Vector3(0,m.y,m.z)):d.add(m)}else T instanceof a.Vector3&&d.add(T);F&&d.add(F);const y={top:new a.Vector3(0,1,0),right:new a.Vector3(2,1,1).normalize(),left:new a.Vector3(-2,1,1).normalize(),iso:new a.Vector3(0,1,1).normalize()},z=y[t]||y.iso,r=R.getSize(new a.Vector3),C=this.camera.aspect,c=a.MathUtils.degToRad(this.camera.fov*.5),P=a.MathUtils.degToRad(80),u=Math.min(Math.atan(Math.tan(c)*C),P);let p;if(t==="top"){const o=r.x*.5/(Math.tan(u)*s),l=r.z*.5/(Math.tan(c)*s);p=Math.max(o,l)}else if(t==="right"||t==="left"){const o=r.y*.5/(Math.tan(c)*s),l=r.z*.5/(Math.tan(c)*s);p=Math.max(o,l)}else{const o=r.x*.5/(Math.tan(u)*s),l=r.y*.5/(Math.tan(c)*s),m=r.z*.5/(Math.tan(c)*s);p=Math.max(o,l,m)}const f=z.clone().multiplyScalar(p).add(d);if(M&&(console.log("📍 相机位置验证:"),console.log(" - 方向向量:",z),console.log(" - 距离:",p.toFixed(2)),console.log(" - 包围盒中心:",d),console.log(" - 计算公式: direction * distance + boxCenter"),console.log(" - 目标位置:",f),console.log(" - 实际相机与中心的距离:",f.clone().sub(d).length().toFixed(2))),M?(this.boxHelper&&(this.scene.remove(this.boxHelper),this.boxHelper=null),this.boxHelper=new a.Box3Helper(R,H),this.scene.add(this.boxHelper)):this.boxHelper&&(this.scene.remove(this.boxHelper),this.boxHelper=null),E){const o=this.camera.position.clone(),l=this.control?this.control.target.clone():new a.Vector3(0,0,0),m=d,A=Date.now(),v=()=>{const j=Date.now()-A,S=Math.min(j/w,1),D=1-Math.pow(1-S,3);if(this.camera.position.lerpVectors(o,f,D),this.control){const L=new a.Vector3;L.lerpVectors(l,m,D),this.control.target.copy(L),this.camera.lookAt(L)}else this.camera.lookAt(d);this.camera.updateProjectionMatrix(),S<1?requestAnimationFrame(v):(this.camera.position.copy(f),this.camera.lookAt(d),this.camera.updateProjectionMatrix(),this.control&&(this.control.target.copy(d),this.control.update()),this.onRender())};v()}else this.camera.position.copy(f),this.camera.lookAt(d),this.camera.updateProjectionMatrix(),this.control&&(this.control.target.copy(d),this.control.update()),this.onRender();if(M){if(console.log("🎥 视角切换信息:"),console.log(" - 视角类型:",t),console.log(" - 相机位置:",f),console.log(" - 观察目标:",d),console.log(" - 方向向量:",z),console.log(" - 包围盒尺寸:",r),console.log(" - 包围盒中心:",R.getCenter(new a.Vector3)),console.log(" - 水平 FOV:",a.MathUtils.radToDeg(u*2).toFixed(2)+"°"),console.log(" - 垂直 FOV:",a.MathUtils.radToDeg(c*2).toFixed(2)+"°"),console.log(" - 宽高比:",C.toFixed(4)),console.log(" - 模型宽度:",r.x.toFixed(2)),console.log(" - 模型高度:",r.y.toFixed(2)),console.log(" - 模型深度:",r.z.toFixed(2)),console.log(" - 传入的 scale 参数:",s),t==="top"){const o=r.x*.5/(Math.tan(u)*s),l=r.z*.5/(Math.tan(c)*s);console.log(" - 模型 X 尺寸 (宽度):",r.x.toFixed(2)),console.log(" - 模型 Z 尺寸 (深度):",r.z.toFixed(2)),console.log(" - tan(halfFovX):",Math.tan(u).toFixed(4)),console.log(" - tan(halfFovY):",Math.tan(c).toFixed(4)),console.log(" - X方向距离计算: (",(r.x*.5).toFixed(2),") / (",Math.tan(u).toFixed(4)," *",s,") =",o.toFixed(2)),console.log(" - Z方向距离计算: (",(r.z*.5).toFixed(2),") / (",Math.tan(c).toFixed(4)," *",s,") =",l.toFixed(2)),console.log(" - X方向距离 (scale="+s+"):",o.toFixed(2)),console.log(" - Z方向距离 (scale="+s+"):",l.toFixed(2))}else if(t==="right"||t==="left"){const o=r.y*.5/(Math.tan(c)*s),l=r.z*.5/(Math.tan(c)*s);console.log(" - Y方向距离 (scale="+s+"):",o.toFixed(2)),console.log(" - Z方向距离 (scale="+s+"):",l.toFixed(2))}else{const o=r.x*.5/(Math.tan(u)*s),l=r.y*.5/(Math.tan(c)*s),m=r.z*.5/(Math.tan(c)*s);console.log(" - 模型 X 尺寸 (宽度):",r.x.toFixed(2)),console.log(" - 模型 Y 尺寸 (高度):",r.y.toFixed(2)),console.log(" - 模型 Z 尺寸 (深度):",r.z.toFixed(2)),console.log(" - tan(halfFovX):",Math.tan(u).toFixed(4)),console.log(" - tan(halfFovY):",Math.tan(c).toFixed(4)),console.log(" - X方向距离计算: (",(r.x*.5).toFixed(2),") / (",Math.tan(u).toFixed(4)," *",s,") =",o.toFixed(2)),console.log(" - Y方向距离计算: (",(r.y*.5).toFixed(2),") / (",Math.tan(c).toFixed(4)," *",s,") =",l.toFixed(2)),console.log(" - Z方向距离计算: (",(r.z*.5).toFixed(2),") / (",Math.tan(c).toFixed(4)," *",s,") =",m.toFixed(2)),console.log(" - X方向距离 (scale="+s+"):",o.toFixed(2)),console.log(" - Y方向距离 (scale="+s+"):",l.toFixed(2)),console.log(" - Z方向距离 (scale="+s+"):",m.toFixed(2)),console.log(" - 最大距离 (Max):",Math.max(o,l,m).toFixed(2))}console.log(" - 最终距离:",p.toFixed(2)),console.log(" - 缩放比例:",s),console.log(" - 动画:",E?"是 ("+w+"ms)":"否")}return{position:f,target:d,distance:p,viewType:t}});i(this,"on",(e,t)=>!e||!t||typeof t!="function"?(console.warn("ThreeIns.on: 无效的参数"),()=>{}):(this.eventsListener[e]||(this.eventsListener[e]=[]),this.eventsListener[e].push(t),()=>this.off(e,t)));this.isReady=!1,this.scene=new a.Scene({}),this.camera=new a.PerspectiveCamera(50,1,.1,2e3),this.renderer=new a.WebGLRenderer({antialias:!0,alpha:!0,precision:"mediump",logarithmicDepthBuffer:!0}),this.version=X,this.onContextLost=this.onContextLost.bind(this),this.onContextRestored=this.onContextRestored.bind(this),this.onResize=this.onResize.bind(this),this.animate=this.animate.bind(this),this.resizeTimer=null,this.animationFrameId=null,t&&(this.initOpt=Object.assign(this.initOpt,t)),e&&this.setup(e)}updateCameraFOV(e,t){const h=this.initOpt.initialFov||50,s=Math.tan(Math.PI/180*h/2);this.camera.aspect=e/t,this.camera.fov=360/Math.PI*Math.atan(s*(t/e)),this.camera.updateProjectionMatrix()}initStats(){this.stats=new n.Stats,this.stats.dom.style.cssText="position:absolute;top:0;left:0;cursor:pointer;opacity:0.9;z-index:10000",this.el.appendChild(this.stats.dom)}initCss3dRenderer(){this.css3dRenderer=new n.CSS3DRenderer;const[e,t]=this.getTargetSize();this.css3dRenderer.setSize(e,t),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(){return document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement?[window.innerWidth,window.innerHeight]:this.el?!document.body.contains(this.el)&&(console.warn(`ThreeIns: 缓存的元素已失效,重新查询 ${this.selector}`),this.el=document.querySelector(this.selector),!this.el)?[0,0]:[this.el.clientWidth,this.el.clientHeight]:[0,0]}off(e,t){if(!e){this.eventsListener={};return}this.eventsListener[e]&&(t?this.eventsListener[e]=this.eventsListener[e].filter(h=>h!==t):this.eventsListener[e]=[])}dispose(){this.isDispose||(this.isDispose=!0,this.animationFrameId&&(cancelAnimationFrame(this.animationFrameId),this.animationFrameId=null),this.resizeTimer&&(clearTimeout(this.resizeTimer),this.resizeTimer=null),this.removeListener(),this.eventsListener={},this.stats&&this.stats.dom&&(this.stats.dom.remove(),this.stats=null),this.css3dRenderer&&(this.css3dRenderer.domElement.remove(),this.css3dRenderer=null),this.boxHelper&&(this.scene.remove(this.boxHelper),this.boxHelper=null),this.scene&&(n.disposeThreeObject(this.scene),this.scene=null),this.renderer&&(this.renderer.dispose(),this.renderer.domElement&&this.renderer.domElement.remove(),this.renderer=null),this.control&&(this.control.dispose(),this.control=null),this.camera=null,this.el=null,this.selector=null,console.log("ThreeIns: 资源已清理完成"))}}i(I,"ViewType",O);exports.intersectColor=g.intersectColor;exports.obbObjects=g.obbObjects;exports.useBatchGLTFLoader=g.useBatchGLTFLoader;exports.useObb=g.useObb;exports.useRaycaster=g.useRaycaster;exports.useThreeJs=g.useThreeJs;exports.CacheMonitor=n.CacheMonitor;exports.ErrorType=n.ErrorType;exports.IDBCache=n.IDBCache;exports.ModelLoadError=n.ModelLoadError;exports.PredictiveLoader=n.PredictiveLoader;exports.ProgressiveSceneBuilder=n.ProgressiveSceneBuilder;exports.RetryHelper=n.RetryHelper;exports.cacheMonitor=n.cacheMonitor;exports.createArrowHelper=n.createArrowHelper;exports.createAxesHelper=n.createAxesHelper;exports.createBox3Helper=n.createBox3Helper;exports.createCameraHelper=n.createCameraHelper;exports.createGridHelper=n.createGridHelper;exports.createMapControls=n.createMapControls;exports.createOrbitControl=n.createOrbitControl;exports.createRaycaster=n.createRaycaster;exports.createStats=n.createStats;exports.dataToObject3D=n.dataToObject3D;exports.dataToObject3DSync=n.dataToObject3DSync;exports.disposeThreeObject=n.disposeThreeObject;exports.object3DToData=n.object3DToData;exports.object3DToDataSync=n.object3DToDataSync;exports.predictiveLoader=n.predictiveLoader;exports.rebuildScene=n.rebuildScene;exports.useGLTFLoader=n.useGLTFLoader;exports.ImageLoader=b.ImageLoader;exports.createInfoPlane=b.createInfoPlane;exports.createTagPlane=b.createTagPlane;exports.getCommonParent=b.getCommonParent;exports.initEnvImage=b.initEnvImage;exports.ModelOptimizer=V.ModelOptimizer;exports.modelOptimizer=V.modelOptimizer;exports.ThreeIns=I;exports.ViewType=O;
package/dist/threejs.js CHANGED
@@ -1,13 +1,13 @@
1
1
  var A = Object.defineProperty;
2
2
  var P = (u, e, t) => e in u ? A(u, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : u[e] = t;
3
3
  var i = (u, e, t) => P(u, typeof e != "symbol" ? e + "" : e, t);
4
- import { i as oe, o as ie, c as ne, b as re, a as ae, u as le } from "./useBatchGLTFLoader-DP_NdYhC.js";
5
- import { d as j, S as V, s as q, j as X } from "./PredictiveLoader-eiPgVdsJ.js";
6
- import { C as he, E as de, I as me, M as fe, P as pe, q as ue, R as xe, n as ge, h as Fe, g as Re, b as ze, c as we, a as Me, e as be, f as Ee, i as Le, l as Te, m as Oe, o as Ce, k as ve, p as ye, r as Se, u as De } from "./PredictiveLoader-eiPgVdsJ.js";
7
- import { I as He, c as Ae, a as Pe, g as je, i as Ve } from "./ImageLoader-CMAmH-92.js";
4
+ import { i as oe, o as ie, c as ne, b as re, a as ae, u as le } from "./useBatchGLTFLoader-DPT0_95u.js";
5
+ import { d as j, S as V, s as q, j as X } from "./PredictiveLoader-DTN7SDRI.js";
6
+ import { C as he, E as de, I as me, M as fe, P as pe, q as ue, R as xe, n as ge, h as Fe, g as Re, b as ze, c as we, a as Me, e as be, f as Ee, i as Le, l as Te, m as Oe, o as Ce, k as ve, p as ye, r as Se, u as De } from "./PredictiveLoader-DTN7SDRI.js";
7
+ import { I as He, c as Ae, a as Pe, g as je, i as Ve } from "./ImageLoader-CnBqJLru.js";
8
8
  import { ModelOptimizer as Xe, modelOptimizer as Ye } from "./modelOptimizer-D6fRg-DF.js";
9
9
  import { MathUtils as F, Scene as Y, PerspectiveCamera as B, WebGLRenderer as Z, Box3 as _, Vector3 as a, Box3Helper as G } from "three";
10
- const N = "1.4.3", W = 50, k = 20, U = 20, y = {
10
+ const N = "1.4.4", W = 50, k = 20, U = 20, y = {
11
11
  TOP: "top",
12
12
  // 俯视(从上往下)
13
13
  RIGHT: "right",
@@ -1,4 +1,4 @@
1
- "use strict";const c=require("three"),C=require("vue"),I=require("./PredictiveLoader-BXCwkdSX.cjs"),u={c:null,u:[new c.Vector3,new c.Vector3,new c.Vector3],e:[]},h={c:null,u:[new c.Vector3,new c.Vector3,new c.Vector3],e:[]},b=[[],[],[]],a=[[],[],[]],y=[],V=new c.Vector3,B=new c.Vector3,j=new c.Vector3,x=new c.Vector3,Z=new c.Vector3,K=new c.Vector3,v=new c.Matrix3,ee=new c.Box3,_=new c.Matrix4,te=new c.Matrix4,ne=new c.Ray;class G{constructor(e=new c.Vector3,r=new c.Vector3,s=new c.Matrix3){this.center=e,this.halfSize=r,this.rotation=s}set(e,r,s){return this.center=e,this.halfSize=r,this.rotation=s,this}copy(e){return this.center.copy(e.center),this.halfSize.copy(e.halfSize),this.rotation.copy(e.rotation),this}clone(){return new this.constructor().copy(this)}getSize(e){return e.copy(this.halfSize).multiplyScalar(2)}clampPoint(e,r){const s=this.halfSize;x.subVectors(e,this.center),this.rotation.extractBasis(V,B,j),r.copy(this.center);const o=c.MathUtils.clamp(x.dot(V),-s.x,s.x);r.add(V.multiplyScalar(o));const t=c.MathUtils.clamp(x.dot(B),-s.y,s.y);r.add(B.multiplyScalar(t));const f=c.MathUtils.clamp(x.dot(j),-s.z,s.z);return r.add(j.multiplyScalar(f)),r}containsPoint(e){return x.subVectors(e,this.center),this.rotation.extractBasis(V,B,j),Math.abs(x.dot(V))<=this.halfSize.x&&Math.abs(x.dot(B))<=this.halfSize.y&&Math.abs(x.dot(j))<=this.halfSize.z}intersectsBox3(e){return this.intersectsOBB(le.fromBox3(e))}intersectsSphere(e){return this.clampPoint(e.center,K),K.distanceToSquared(e.center)<=e.radius*e.radius}intersectsOBB(e,r=Number.EPSILON){u.c=this.center,u.e[0]=this.halfSize.x,u.e[1]=this.halfSize.y,u.e[2]=this.halfSize.z,this.rotation.extractBasis(u.u[0],u.u[1],u.u[2]),h.c=e.center,h.e[0]=e.halfSize.x,h.e[1]=e.halfSize.y,h.e[2]=e.halfSize.z,e.rotation.extractBasis(h.u[0],h.u[1],h.u[2]);for(let t=0;t<3;t++)for(let f=0;f<3;f++)b[t][f]=u.u[t].dot(h.u[f]);x.subVectors(h.c,u.c),y[0]=x.dot(u.u[0]),y[1]=x.dot(u.u[1]),y[2]=x.dot(u.u[2]);for(let t=0;t<3;t++)for(let f=0;f<3;f++)a[t][f]=Math.abs(b[t][f])+r;let s,o;for(let t=0;t<3;t++)if(s=u.e[t],o=h.e[0]*a[t][0]+h.e[1]*a[t][1]+h.e[2]*a[t][2],Math.abs(y[t])>s+o)return!1;for(let t=0;t<3;t++)if(s=u.e[0]*a[0][t]+u.e[1]*a[1][t]+u.e[2]*a[2][t],o=h.e[t],Math.abs(y[0]*b[0][t]+y[1]*b[1][t]+y[2]*b[2][t])>s+o)return!1;return s=u.e[1]*a[2][0]+u.e[2]*a[1][0],o=h.e[1]*a[0][2]+h.e[2]*a[0][1],!(Math.abs(y[2]*b[1][0]-y[1]*b[2][0])>s+o||(s=u.e[1]*a[2][1]+u.e[2]*a[1][1],o=h.e[0]*a[0][2]+h.e[2]*a[0][0],Math.abs(y[2]*b[1][1]-y[1]*b[2][1])>s+o)||(s=u.e[1]*a[2][2]+u.e[2]*a[1][2],o=h.e[0]*a[0][1]+h.e[1]*a[0][0],Math.abs(y[2]*b[1][2]-y[1]*b[2][2])>s+o)||(s=u.e[0]*a[2][0]+u.e[2]*a[0][0],o=h.e[1]*a[1][2]+h.e[2]*a[1][1],Math.abs(y[0]*b[2][0]-y[2]*b[0][0])>s+o)||(s=u.e[0]*a[2][1]+u.e[2]*a[0][1],o=h.e[0]*a[1][2]+h.e[2]*a[1][0],Math.abs(y[0]*b[2][1]-y[2]*b[0][1])>s+o)||(s=u.e[0]*a[2][2]+u.e[2]*a[0][2],o=h.e[0]*a[1][1]+h.e[1]*a[1][0],Math.abs(y[0]*b[2][2]-y[2]*b[0][2])>s+o)||(s=u.e[0]*a[1][0]+u.e[1]*a[0][0],o=h.e[1]*a[2][2]+h.e[2]*a[2][1],Math.abs(y[1]*b[0][0]-y[0]*b[1][0])>s+o)||(s=u.e[0]*a[1][1]+u.e[1]*a[0][1],o=h.e[0]*a[2][2]+h.e[2]*a[2][0],Math.abs(y[1]*b[0][1]-y[0]*b[1][1])>s+o)||(s=u.e[0]*a[1][2]+u.e[1]*a[0][2],o=h.e[0]*a[2][1]+h.e[1]*a[2][0],Math.abs(y[1]*b[0][2]-y[0]*b[1][2])>s+o))}intersectsPlane(e){this.rotation.extractBasis(V,B,j);const r=this.halfSize.x*Math.abs(e.normal.dot(V))+this.halfSize.y*Math.abs(e.normal.dot(B))+this.halfSize.z*Math.abs(e.normal.dot(j)),s=e.normal.dot(this.center)-e.constant;return Math.abs(s)<=r}intersectRay(e,r){return this.getSize(Z),ee.setFromCenterAndSize(x.set(0,0,0),Z),_.setFromMatrix3(this.rotation),_.setPosition(this.center),te.copy(_).invert(),ne.copy(e).applyMatrix4(te),ne.intersectBox(ee,r)?r.applyMatrix4(_):null}intersectsRay(e){return this.intersectRay(e,x)!==null}fromBox3(e){return e.getCenter(this.center),e.getSize(this.halfSize).multiplyScalar(.5),this.rotation.identity(),this}equals(e){return e.center.equals(this.center)&&e.halfSize.equals(this.halfSize)&&e.rotation.equals(this.rotation)}applyMatrix4(e){const r=e.elements;let s=x.set(r[0],r[1],r[2]).length();const o=x.set(r[4],r[5],r[6]).length(),t=x.set(r[8],r[9],r[10]).length();e.determinant()<0&&(s=-s),v.setFromMatrix4(e);const l=1/s,n=1/o,i=1/t;return v.elements[0]*=l,v.elements[1]*=l,v.elements[2]*=l,v.elements[3]*=n,v.elements[4]*=n,v.elements[5]*=n,v.elements[6]*=i,v.elements[7]*=i,v.elements[8]*=i,this.rotation.multiply(v),this.halfSize.x*=s,this.halfSize.y*=o,this.halfSize.z*=t,x.setFromMatrixPosition(e),this.center.add(x),this}}const le=new G,ue={enableDamping:!0,dampingFactor:.25,screenSpacePanning:!1,minDistance:.1,maxDistance:1e3,maxPolarAngle:c.MathUtils.degToRad(60)};function he(F,e){typeof console<"u"&&console.warn&&console.warn(`[ThreeIns] useThreeJs() Hook 已弃用,建议使用 ThreeIns 类代替。
1
+ "use strict";const c=require("three"),C=require("vue"),I=require("./PredictiveLoader-KOCZXzGy.cjs"),u={c:null,u:[new c.Vector3,new c.Vector3,new c.Vector3],e:[]},h={c:null,u:[new c.Vector3,new c.Vector3,new c.Vector3],e:[]},b=[[],[],[]],a=[[],[],[]],y=[],V=new c.Vector3,B=new c.Vector3,j=new c.Vector3,x=new c.Vector3,Z=new c.Vector3,K=new c.Vector3,v=new c.Matrix3,ee=new c.Box3,_=new c.Matrix4,te=new c.Matrix4,ne=new c.Ray;class G{constructor(e=new c.Vector3,r=new c.Vector3,s=new c.Matrix3){this.center=e,this.halfSize=r,this.rotation=s}set(e,r,s){return this.center=e,this.halfSize=r,this.rotation=s,this}copy(e){return this.center.copy(e.center),this.halfSize.copy(e.halfSize),this.rotation.copy(e.rotation),this}clone(){return new this.constructor().copy(this)}getSize(e){return e.copy(this.halfSize).multiplyScalar(2)}clampPoint(e,r){const s=this.halfSize;x.subVectors(e,this.center),this.rotation.extractBasis(V,B,j),r.copy(this.center);const o=c.MathUtils.clamp(x.dot(V),-s.x,s.x);r.add(V.multiplyScalar(o));const t=c.MathUtils.clamp(x.dot(B),-s.y,s.y);r.add(B.multiplyScalar(t));const f=c.MathUtils.clamp(x.dot(j),-s.z,s.z);return r.add(j.multiplyScalar(f)),r}containsPoint(e){return x.subVectors(e,this.center),this.rotation.extractBasis(V,B,j),Math.abs(x.dot(V))<=this.halfSize.x&&Math.abs(x.dot(B))<=this.halfSize.y&&Math.abs(x.dot(j))<=this.halfSize.z}intersectsBox3(e){return this.intersectsOBB(le.fromBox3(e))}intersectsSphere(e){return this.clampPoint(e.center,K),K.distanceToSquared(e.center)<=e.radius*e.radius}intersectsOBB(e,r=Number.EPSILON){u.c=this.center,u.e[0]=this.halfSize.x,u.e[1]=this.halfSize.y,u.e[2]=this.halfSize.z,this.rotation.extractBasis(u.u[0],u.u[1],u.u[2]),h.c=e.center,h.e[0]=e.halfSize.x,h.e[1]=e.halfSize.y,h.e[2]=e.halfSize.z,e.rotation.extractBasis(h.u[0],h.u[1],h.u[2]);for(let t=0;t<3;t++)for(let f=0;f<3;f++)b[t][f]=u.u[t].dot(h.u[f]);x.subVectors(h.c,u.c),y[0]=x.dot(u.u[0]),y[1]=x.dot(u.u[1]),y[2]=x.dot(u.u[2]);for(let t=0;t<3;t++)for(let f=0;f<3;f++)a[t][f]=Math.abs(b[t][f])+r;let s,o;for(let t=0;t<3;t++)if(s=u.e[t],o=h.e[0]*a[t][0]+h.e[1]*a[t][1]+h.e[2]*a[t][2],Math.abs(y[t])>s+o)return!1;for(let t=0;t<3;t++)if(s=u.e[0]*a[0][t]+u.e[1]*a[1][t]+u.e[2]*a[2][t],o=h.e[t],Math.abs(y[0]*b[0][t]+y[1]*b[1][t]+y[2]*b[2][t])>s+o)return!1;return s=u.e[1]*a[2][0]+u.e[2]*a[1][0],o=h.e[1]*a[0][2]+h.e[2]*a[0][1],!(Math.abs(y[2]*b[1][0]-y[1]*b[2][0])>s+o||(s=u.e[1]*a[2][1]+u.e[2]*a[1][1],o=h.e[0]*a[0][2]+h.e[2]*a[0][0],Math.abs(y[2]*b[1][1]-y[1]*b[2][1])>s+o)||(s=u.e[1]*a[2][2]+u.e[2]*a[1][2],o=h.e[0]*a[0][1]+h.e[1]*a[0][0],Math.abs(y[2]*b[1][2]-y[1]*b[2][2])>s+o)||(s=u.e[0]*a[2][0]+u.e[2]*a[0][0],o=h.e[1]*a[1][2]+h.e[2]*a[1][1],Math.abs(y[0]*b[2][0]-y[2]*b[0][0])>s+o)||(s=u.e[0]*a[2][1]+u.e[2]*a[0][1],o=h.e[0]*a[1][2]+h.e[2]*a[1][0],Math.abs(y[0]*b[2][1]-y[2]*b[0][1])>s+o)||(s=u.e[0]*a[2][2]+u.e[2]*a[0][2],o=h.e[0]*a[1][1]+h.e[1]*a[1][0],Math.abs(y[0]*b[2][2]-y[2]*b[0][2])>s+o)||(s=u.e[0]*a[1][0]+u.e[1]*a[0][0],o=h.e[1]*a[2][2]+h.e[2]*a[2][1],Math.abs(y[1]*b[0][0]-y[0]*b[1][0])>s+o)||(s=u.e[0]*a[1][1]+u.e[1]*a[0][1],o=h.e[0]*a[2][2]+h.e[2]*a[2][0],Math.abs(y[1]*b[0][1]-y[0]*b[1][1])>s+o)||(s=u.e[0]*a[1][2]+u.e[1]*a[0][2],o=h.e[0]*a[2][1]+h.e[1]*a[2][0],Math.abs(y[1]*b[0][2]-y[0]*b[1][2])>s+o))}intersectsPlane(e){this.rotation.extractBasis(V,B,j);const r=this.halfSize.x*Math.abs(e.normal.dot(V))+this.halfSize.y*Math.abs(e.normal.dot(B))+this.halfSize.z*Math.abs(e.normal.dot(j)),s=e.normal.dot(this.center)-e.constant;return Math.abs(s)<=r}intersectRay(e,r){return this.getSize(Z),ee.setFromCenterAndSize(x.set(0,0,0),Z),_.setFromMatrix3(this.rotation),_.setPosition(this.center),te.copy(_).invert(),ne.copy(e).applyMatrix4(te),ne.intersectBox(ee,r)?r.applyMatrix4(_):null}intersectsRay(e){return this.intersectRay(e,x)!==null}fromBox3(e){return e.getCenter(this.center),e.getSize(this.halfSize).multiplyScalar(.5),this.rotation.identity(),this}equals(e){return e.center.equals(this.center)&&e.halfSize.equals(this.halfSize)&&e.rotation.equals(this.rotation)}applyMatrix4(e){const r=e.elements;let s=x.set(r[0],r[1],r[2]).length();const o=x.set(r[4],r[5],r[6]).length(),t=x.set(r[8],r[9],r[10]).length();e.determinant()<0&&(s=-s),v.setFromMatrix4(e);const l=1/s,n=1/o,i=1/t;return v.elements[0]*=l,v.elements[1]*=l,v.elements[2]*=l,v.elements[3]*=n,v.elements[4]*=n,v.elements[5]*=n,v.elements[6]*=i,v.elements[7]*=i,v.elements[8]*=i,this.rotation.multiply(v),this.halfSize.x*=s,this.halfSize.y*=o,this.halfSize.z*=t,x.setFromMatrixPosition(e),this.center.add(x),this}}const le=new G,ue={enableDamping:!0,dampingFactor:.25,screenSpacePanning:!1,minDistance:.1,maxDistance:1e3,maxPolarAngle:c.MathUtils.degToRad(60)};function he(F,e){typeof console<"u"&&console.warn&&console.warn(`[ThreeIns] useThreeJs() Hook 已弃用,建议使用 ThreeIns 类代替。
2
2
  旧用法: const { scene, camera } = useThreeJs(selector, options)
3
3
  新用法: const threeIns = new ThreeIns(selector, options)
4
4
 
@@ -1,6 +1,6 @@
1
1
  import { Vector3 as b, Matrix3 as re, MathUtils as q, Box3 as J, Matrix4 as ae, Ray as de, WebGLRenderer as me, Scene as pe, PerspectiveCamera as ye, Raycaster as be, Vector2 as ze, Color as xe } from "three";
2
2
  import { ref as H, shallowRef as Se, onMounted as we, onUnmounted as ge, nextTick as K } from "vue";
3
- import { d as ve, j as Me, S as Oe, s as Re, u as Ae } from "./PredictiveLoader-eiPgVdsJ.js";
3
+ import { d as ve, j as Me, S as Oe, s as Re, u as Ae } from "./PredictiveLoader-DTN7SDRI.js";
4
4
  const l = {
5
5
  c: null,
6
6
  // center
package/dist/utils.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./PredictiveLoader-BXCwkdSX.cjs"),r=require("./ImageLoader-y6-Adf1b.cjs"),t=require("./modelOptimizer-A0Cs6f9e.cjs");exports.CacheMonitor=e.CacheMonitor;exports.ErrorType=e.ErrorType;exports.ModelLoadError=e.ModelLoadError;exports.PredictiveLoader=e.PredictiveLoader;exports.ProgressiveSceneBuilder=e.ProgressiveSceneBuilder;exports.RetryHelper=e.RetryHelper;exports.cacheMonitor=e.cacheMonitor;exports.createArrowHelper=e.createArrowHelper;exports.createAxesHelper=e.createAxesHelper;exports.createBox3Helper=e.createBox3Helper;exports.createCameraHelper=e.createCameraHelper;exports.createGridHelper=e.createGridHelper;exports.createMapControls=e.createMapControls;exports.createOrbitControl=e.createOrbitControl;exports.createRaycaster=e.createRaycaster;exports.createStats=e.createStats;exports.dataToObject3D=e.dataToObject3D;exports.dataToObject3DSync=e.dataToObject3DSync;exports.disposeThreeObject=e.disposeThreeObject;exports.object3DToData=e.object3DToData;exports.object3DToDataSync=e.object3DToDataSync;exports.predictiveLoader=e.predictiveLoader;exports.rebuildScene=e.rebuildScene;exports.ImageLoader=r.ImageLoader;exports.createInfoPlane=r.createInfoPlane;exports.createTagPlane=r.createTagPlane;exports.getCommonParent=r.getCommonParent;exports.initEnvImage=r.initEnvImage;exports.ModelOptimizer=t.ModelOptimizer;exports.modelOptimizer=t.modelOptimizer;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./PredictiveLoader-KOCZXzGy.cjs"),r=require("./ImageLoader-6mmE7g5P.cjs"),t=require("./modelOptimizer-A0Cs6f9e.cjs");exports.CacheMonitor=e.CacheMonitor;exports.ErrorType=e.ErrorType;exports.ModelLoadError=e.ModelLoadError;exports.PredictiveLoader=e.PredictiveLoader;exports.ProgressiveSceneBuilder=e.ProgressiveSceneBuilder;exports.RetryHelper=e.RetryHelper;exports.cacheMonitor=e.cacheMonitor;exports.createArrowHelper=e.createArrowHelper;exports.createAxesHelper=e.createAxesHelper;exports.createBox3Helper=e.createBox3Helper;exports.createCameraHelper=e.createCameraHelper;exports.createGridHelper=e.createGridHelper;exports.createMapControls=e.createMapControls;exports.createOrbitControl=e.createOrbitControl;exports.createRaycaster=e.createRaycaster;exports.createStats=e.createStats;exports.dataToObject3D=e.dataToObject3D;exports.dataToObject3DSync=e.dataToObject3DSync;exports.disposeThreeObject=e.disposeThreeObject;exports.object3DToData=e.object3DToData;exports.object3DToDataSync=e.object3DToDataSync;exports.predictiveLoader=e.predictiveLoader;exports.rebuildScene=e.rebuildScene;exports.ImageLoader=r.ImageLoader;exports.createInfoPlane=r.createInfoPlane;exports.createTagPlane=r.createTagPlane;exports.getCommonParent=r.getCommonParent;exports.initEnvImage=r.initEnvImage;exports.ModelOptimizer=t.ModelOptimizer;exports.modelOptimizer=t.modelOptimizer;
package/dist/utils.js CHANGED
@@ -1,5 +1,5 @@
1
- import { C as r, E as t, M as o, P as s, q as c, R as i, n as d, h as l, g as n, b as p, c as m, a as b, e as g, d as T, f as j, i as C, l as D, m as H, j as M, o as O, k as P, p as f, r as x } from "./PredictiveLoader-eiPgVdsJ.js";
2
- import { I as S, c as h, a as v, g as E, i as I } from "./ImageLoader-CMAmH-92.js";
1
+ import { C as r, E as t, M as o, P as s, q as c, R as i, n as d, h as l, g as n, b as p, c as m, a as b, e as g, d as T, f as j, i as C, l as D, m as H, j as M, o as O, k as P, p as f, r as x } from "./PredictiveLoader-DTN7SDRI.js";
2
+ import { I as S, c as h, a as v, g as E, i as I } from "./ImageLoader-CnBqJLru.js";
3
3
  import { ModelOptimizer as R, modelOptimizer as u } from "./modelOptimizer-D6fRg-DF.js";
4
4
  export {
5
5
  r as CacheMonitor,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ridp/threejs",
3
3
  "private": false,
4
- "version": "1.4.4",
4
+ "version": "1.4.5",
5
5
  "type": "module",
6
6
  "main": "dist/threejs.js",
7
7
  "exports": {