@aibee/crc-bmap 0.0.105 → 0.0.106
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/lib/bmap.cjs.min.js +1 -1
- package/lib/bmap.cjs.min.js.map +2 -2
- package/lib/bmap.esm.js +3 -3
- package/lib/bmap.esm.js.map +2 -2
- package/lib/bmap.esm.min.js +3691 -5
- package/lib/bmap.esm.min.js.map +3 -3
- package/lib/bmap.min.js +1 -1
- package/lib/bmap.min.js.map +2 -2
- package/lib/src/bmap.d.ts +6 -5
- package/lib/src/elements/graphic.d.ts +5 -5
- package/lib/src/elements/heatmap.d.ts +6 -6
- package/lib/src/elements/overlay.d.ts +1 -1
- package/lib/src/elements/poi.d.ts +4 -3
- package/lib/src/elements/select-box.d.ts +4 -4
- package/lib/src/elements/shadow.d.ts +2 -2
- package/lib/src/elements/svg-line.d.ts +2 -2
- package/lib/src/elements/svg-polygon.d.ts +6 -6
- package/lib/src/operations/selection/box-selection.d.ts +3 -3
- package/lib/src/operations/selection/selection.d.ts +11 -7
- package/package.json +2 -2
package/lib/bmap.cjs.min.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var tn=Object.create;var Ct=Object.defineProperty;var en=Object.getOwnPropertyDescriptor;var nn=Object.getOwnPropertyNames;var rn=Object.getPrototypeOf,on=Object.prototype.hasOwnProperty;var _e=(i,n)=>()=>(n||i((n={exports:{}}).exports,n),n.exports),sn=(i,n)=>{for(var t in n)Ct(i,t,{get:n[t],enumerable:!0})},ve=(i,n,t,e)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of nn(n))!on.call(i,r)&&r!==t&&Ct(i,r,{get:()=>n[r],enumerable:!(e=en(n,r))||e.enumerable});return i};var an=(i,n,t)=>(t=i!=null?tn(rn(i)):{},ve(n||!i||!i.__esModule?Ct(t,"default",{value:i,enumerable:!0}):t,i)),ln=i=>ve(Ct({},"__esModule",{value:!0}),i);var He=_e((ns,Ve)=>{Ve.exports=function(n,t){return n[0]=t[0],n[1]=t[1],n}});var qe=_e((rs,Xe)=>{var We=He();Xe.exports=function(i,n){Array.isArray(n)||(n=[]),i.length>0&&n.push(We([0,0],i[0]));for(var t=0;t<i.length-1;t++){var e=i[t],r=i[t+1],o=e[0],s=e[1],l=r[0],u=r[1],a=[.75*o+.25*l,.75*s+.25*u],h=[.25*o+.75*l,.25*s+.75*u];n.push(a),n.push(h)}return i.length>1&&n.push(We([0,0],i[i.length-1])),n}});var Sn={};sn(Sn,{BMap:()=>ue,BaseSvg:()=>U,Context:()=>Et,Equipment:()=>he,Events:()=>oe,Floor:()=>mt,Graphic:()=>C,GraphicLayer:()=>pt,HeatmapElement:()=>dt,HooksName:()=>Q,HoverHelper:()=>xt,Layer:()=>j,MapTypePolar:()=>Ue,Model:()=>gt,Navigation:()=>ge,Overlay:()=>ct,PathDirection:()=>ke,Poi:()=>tt,PoiLayer:()=>ft,SelectBox:()=>se,Selection:()=>vt,Shadow:()=>ht,SplitLoad:()=>me,SvgLine:()=>yt,SvgPolygon:()=>_t,Timer:()=>F,UniqueKey:()=>ut,WorkerEventType:()=>de,addAlphaToHexColor:()=>fn,clearCanvas:()=>$t,clearTextTexture:()=>Jt,createCanvas:()=>be,createCircle:()=>$,createLine:()=>st,createRect:()=>q,createSvg:()=>te,createSvgElement:()=>ot,darkenColor:()=>at,defaultConfig:()=>De,dispose:()=>B,disposeLoader:()=>re,generatorKeyByObj:()=>O,getCenter:()=>Rt,getConfig:()=>ae,getLength:()=>Se,getLongestSideDir:()=>hn,getPathLength:()=>Qt,getTextureByText:()=>un,hasChinese:()=>Zt,initCamera:()=>Wt,initCanvas:()=>Ee,initControl:()=>qt,initDirectionalLight:()=>Yt,initLight:()=>Xt,initRenderer:()=>Ht,initScene:()=>Vt,initShape:()=>jt,isContain:()=>rt,isControl:()=>Nt,isMac:()=>lt,loadBuildingGround:()=>le,loadGraphics:()=>bt,loadModel:()=>ne,proxyOptions:()=>it,setCirclePosition:()=>k,setLineStartEnd:()=>L,setRectPosition:()=>N,sleepOnePromise:()=>ee,sleepOneRf:()=>cn,strToNumber:()=>pn,timeoutPromise:()=>z,vector3ToDevice:()=>m,xhrGet:()=>gn});module.exports=ln(Sn);var zt=require("three");var F=class{tasks={requestAnimation:new Set,timeout:new Set,interval:new Set};requestAnimationFrame(n){let t=window.requestAnimationFrame(()=>{this.tasks.requestAnimation.delete(t),n()});return this.tasks.requestAnimation.add(t),t}cancelAnimationFrame(n){this.tasks.requestAnimation.delete(n),window.cancelAnimationFrame(n)}setTimeout(n,t){let e=window.setTimeout(()=>{this.tasks.timeout.delete(e),n()},t);return this.tasks.timeout.add(e),e}clearTimeout(n){this.tasks.timeout.delete(n),window.clearTimeout(n)}setInterval(n,t){let e=window.setInterval(()=>{this.tasks.interval.delete(e),n()},t);return this.tasks.interval.add(e),e}clearInterval(n){this.tasks.interval.delete(n),window.clearInterval(n)}dispose(){this.tasks.requestAnimation.forEach(n=>{window.cancelAnimationFrame(n)}),this.tasks.requestAnimation.clear(),this.tasks.timeout.forEach(n=>{window.clearTimeout(n)}),this.tasks.timeout.clear(),this.tasks.interval.forEach(n=>{window.clearInterval(n)}),this.tasks.interval.clear()}};var b=require("three"),xe=require("three/examples/jsm/controls/MapControls");function Vt(){let i=new b.Scene;return i.background=new b.Color(16777215),i}function Ht(){let i=new b.WebGLRenderer({antialias:!0});return i.autoClear=!0,i.setClearAlpha(1),i.setClearColor(16777215),i.setPixelRatio(window.devicePixelRatio),i.shadowMap.enabled=!0,i.shadowMap.autoUpdate=!0,i.shadowMap.type=b.PCFSoftShadowMap,i}function Wt(i,n){let t=new b.OrthographicCamera(-i/2,i/2,n/2,-n/2,-1e3,5e3);return t.up.set(0,0,1),t.position.set(0,0,100),t.lookAt(0,0,0),t}function Xt(){let i=new b.Group,n=new b.AmbientLight(16777215,2.6);return i.add(n),i}function qt(i,n){let t=new xe.MapControls(i,n);return t.enableDamping=!1,t.zoomSpeed=2,t}function jt(i,n=[]){let t=new b.Shape(i.map(e=>new b.Vector2(...e)));return n.length&&n.forEach(e=>{var r=new b.Path(e.map(o=>new b.Vector2(...o)));t.holes.push(r)}),t}function Yt(i=16777215,n=1){let t=new b.DirectionalLight(i,n);return t.castShadow=!0,t.shadow.radius=8,t.shadow.bias=-.001,t.shadow.mapSize.set(256,256),t.shadow.camera.left=-200,t.shadow.camera.right=200,t.shadow.camera.top=200,t.shadow.camera.bottom=-200,t}function B(i,n){if(n&&i.children&&i.children.length&&i.children.forEach(t=>{B(t,n)}),i.isMesh){let t=i;t.geometry&&t.geometry.dispose(),t.material&&(Array.isArray(t.material)?t.material.forEach(e=>{e.dispose()}):t.material.dispose())}i.isLight&&i.dispose?.()}function Zt(i){return/[\u4E00-\u9FA5]+/g.test(i)}var X=require("three");var Pt=new Map;function Ee(){let i=document.createElement("canvas");i.width=1024,i.height=64;let n=i.getContext("2d",{willReadFrequently:!0});return n.font="54px sans-serif",n.textBaseline="hanging",n.lineWidth=12,n.fillStyle="rgba(0,0,0,1)",n.strokeStyle="white",{canvas:i,ctx:n}}var Kt,W;function be(){if(!Kt){let{canvas:i,ctx:n}=Ee();Kt=i,W=n}}function un(i){if(Pt.has(i))return Pt.get(i);be(),W.clearRect(0,0,1024,64);let n=Zt(i)?4:8;W.strokeText(i,2,n),W.fillText(i,2,n);let t=Math.ceil(W.measureText(i).width);t=t%2===0?t:t+1,t+=2;let e=W.getImageData(0,0,t,64),r=new X.DataTexture(Uint8Array.from(e.data),t,64,X.RGBAFormat);return r.flipY=!0,r.minFilter=X.LinearFilter,r.magFilter=X.LinearFilter,Pt.set(i,r),r}function Jt(){Pt.clear()}function $t(){W=null,Kt=null}var At=require("three"),J=require("@turf/turf");function m(i,n,t,e){let r=i.clone().project(n),o=t/2,s=e/2,l=Math.round(r.x*o+o),u=Math.round(-r.y*s+s);return{x:l,y:u}}function Rt(i){let n=(0,J.featureCollection)(i.map(e=>(0,J.point)(e)));return(0,J.center)(n).geometry.coordinates}function rt(i,n,t){return i.x>=n.x&&i.x<=t.x&&i.y>=n.y&&i.y<=t.y}function hn(i){let n=0,t=new At.Vector3;for(let e=1;e<i.length;e++){let r=new At.Vector3(i[e-1][0],i[e-1][1],0),o=new At.Vector3(i[e][0],i[e][1],0),s=o.distanceTo(r);s>n&&(n=s,t=o.clone().sub(r).normalize())}return t}function Se(i,n){return Math.sqrt((n[0]-i[0])**2+(n[1]-i[1])**2)}function Qt(i){let n=0;for(let t=0;t<i.length-1;t++)n+=Se(i[t],i[t+1]);return n}function it(i,n){return new Proxy(i,{get:(t,e,r)=>Reflect.get(t,e,r),set:(t,e,r,o)=>{let s=Reflect.get(t,e,o),l=Reflect.set(t,e,r,o);return s!==r&&n.dispatchEvent({type:`change-${e}`,value:r}),l}})}function z(i,n){return Promise.race([i,new Promise((t,e)=>{setTimeout(()=>e(new Error("Promise timeout")),n)})])}function ot(i){return document.createElementNS("http://www.w3.org/2000/svg",i)}function te(i,n){let t=ot("svg");return t.setAttribute("width",i),t.setAttribute("height",n),t.style.cssText="position: absolute; left: 0; top: 0; pointer-events: none;",t}function $(i="2",n){let t=ot("circle");return t.setAttribute("r",i),t.setAttribute("fill",n),t}function st(i){let n=ot("line");return n.setAttribute("stroke",i),n}function q(i,n){let t=ot("rect");return t.setAttribute("stroke",i),t.setAttribute("fill",n),t}function k(i,n,t){i.setAttribute("cx",`${n}`),i.setAttribute("cy",`${t}`)}function L(i,n,t){n&&(i.setAttribute("x1",`${n.x}`),i.setAttribute("y1",`${n.y}`)),t&&(i.setAttribute("x2",`${t.x}`),i.setAttribute("y2",`${t.y}`))}function N(i,n,t,e,r){i.setAttribute("x",`${n}`),i.setAttribute("y",`${t}`),i.setAttribute("width",`${e}`),i.setAttribute("height",`${r}`)}function ee(){return Promise.resolve()}function cn(){return new Promise(i=>{requestAnimationFrame(i)})}function pn(i){return parseInt(i.replace("#","0x"),16)}function fn(i,n){let t=parseInt(i.substring(1,3),16),e=parseInt(i.substring(3,5),16),r=parseInt(i.substring(5,7),16),o=Math.round(t*n),s=Math.round(e*n),l=Math.round(r*n);return`#${(1<<24|o<<16|s<<8|l).toString(16).slice(1)}`}function at(i,n=.85){let t,e,r;if(i.startsWith("#"))t=parseInt(i.substring(1,3),16),e=parseInt(i.substring(3,5),16),r=parseInt(i.substring(5,7),16);else{let s=i.slice(4,-1).split(",");t=parseInt(s[0].trim()),e=parseInt(s[1].trim()),r=parseInt(s[2].trim())}return t=Math.min(Math.floor(t*n),255),e=Math.min(Math.floor(e*n),255),r=Math.min(Math.floor(r*n),255),"#"+((1<<24)+(t<<16)+(e<<8)+r).toString(16).slice(1)}var Me=require("three/examples/jsm/loaders/GLTFLoader");function dn(){return new Me.GLTFLoader}var It=null,Lt=new Map;function ne(i){if(Lt.has(i)){let t=Lt.get(i).then(e=>(e.scene=e.scene.clone(),e))}It||(It=dn());let n=new Promise((t,e)=>{It.load(i,r=>{t(r)},void 0,e)});return Lt.set(i,n),n.then(t=>(t.scene=t.scene.clone(),t))}function re(){It=null,Lt.clear()}var lt=navigator.userAgent.toUpperCase().indexOf("MAC")>=0;function Nt(i){return lt?i==="Meta":i==="Control"}var ie="__once__",oe=class{events=new Map;on(n,t){if(typeof t!="function")return;let e=this.events.get(n);return e?e.add(t):this.events.set(n,new Set([t]))}once(n,t){if(typeof t!="function")return;let e=`${ie}${n}`,r=this.events.get(e);return r?r.add(t):this.events.set(e,new Set([t]))}off(n,t){let e=this.events.get(n),r=this.events.get(`${ie}${n}`);!e&&!r||(t===void 0&&(e?.clear(),r?.clear()),e?.has(t)&&e.delete(t),r?.has(t)&&r.delete(t))}offAll(){this.events.clear()}emit(n,...t){let e=this.events.get(n),r=this.events.get(`${ie}${n}`);!e&&!r||(e?.forEach(o=>{typeof o=="function"&&o(...t)}),r?.forEach(o=>{typeof o=="function"&&o(...t)}),r?.clear())}};var Q=(t=>(t.SWITCH_FLOOR_BEFORE="switch_floor_before",t.SWITCH_FLOOR_AFTER="switch_floor_after",t))(Q||{});function O(i){return Object.keys(i).sort().map(n=>`${n}=${i[n]}`).join("&")}function gn(i,n){return new Promise((t,e)=>{let r=new XMLHttpRequest;r.open("GET",i,!0),Object.keys(n.headers||{}).forEach(o=>{r.setRequestHeader(o,n.headers[o])}),r.onload=()=>{if(r.status>=200&&r.status<300)try{let o=JSON.parse(r.responseText);t(o)}catch(o){e(o)}else e(r.statusText)},r.onerror=()=>{e(r.statusText)},r.send()})}var ut=class i{keySet=new Set;static createKey(){return Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15)}genUniqueKey(){let n=i.createKey();for(;this.keySet.has(n);)n=i.createKey();return n}removeKey(n){this.keySet.delete(n)}dispose(){this.keySet.clear()}};var x=require("three"),K=require("@tweenjs/tween.js");var Ie=require("three");var y=require("three");var mn={id:"",height:.1,airHeight:0,area:0,group:"",fillColor:"#EFF4FB",strokeColor:"#ffffff",fillOpacity:1,strokeOpacity:1,strokeWidth:1,doors:[],locked:!1,visible:!0,geometry:{type:"polygon",cds:[],coords:[],curveCpt:[],curveIndex:[]},layerType:"",zIndex:0,stroke:!0,deltaHeight:0,userData:{},gradualColor:[],renderType:"single",colorFactor:.9},C=class extends y.Object3D{constructor(t,e){super();this.context=t;if(this.options=it({...mn,...e},this),this.options.geometry.type==="point"){let[r,o]=this.options.geometry.coords;return this.position.set(r,o,this.options.height+this.options.airHeight),this}this.init(),this.visible=this.options.visible,this.addEventListener("change-fillColor",({value:r})=>{this.initMaterial(),this.initMesh()}),this.addEventListener("change-fillOpacity",({value:r})=>{this.initMaterial(),this.initMesh()}),this.addEventListener("change-height",({value:r})=>{this.dispose(),this.init()}),this.addEventListener("change-strokeColor",({value:r})=>{this.options.stroke&&(this.initLineMaterial(),this.createBorder())}),this.addEventListener("change-strokeOpacity",({value:r})=>{this.options.stroke&&(this.initLineMaterial(),this.createBorder())}),this.addEventListener("change-airHeight",({value:r})=>{this.position.z=r}),this.addEventListener("change-visible",({value:r})=>{this.visible=r}),this.addEventListener("change-stroke",({value:r})=>{if(r){if(this.line)return;this.initLineGeometry(),this.initLineMaterial(),this.createBorder()}else this.line&&(this.remove(this.line),this.lineGeometry?.dispose())}),this.addEventListener("change-renderType",()=>{this.initMaterial(),this.initMesh()}),this.addEventListener("change-gradualColor",()=>{this.initMaterial(),this.initMesh()})}geometry;material;mesh;line;lineMaterial;lineGeometry;options;getCenter(){if(this.options.geometry.type==="point")return this.position.clone();let t=new y.Vector3,e=new y.Box3;return e.setFromObject(this),e.getCenter(t),t}getSize(){if(this.options.geometry.type==="point")return new y.Vector3(0,0,0);let t=new y.Box3,e=new y.Vector3;return t.setFromObject(this),t.getSize(e),e}getPosition(){let t=this.getCenter();return t.setZ(t.z+this.options.height/2),t}init(){this.geometry=this.initGeometry(),this.initMaterial(),this.initMesh(),this.mesh.position.z=this.options.airHeight+this.options.deltaHeight,this.options.stroke&&(this.initLineMaterial(),this.initLineGeometry(),this.createBorder())}initGeometry(){let t=jt(this.options.geometry.coords[0],this.options.geometry.coords.slice(1));return new y.ExtrudeGeometry(t,{steps:1,bevelEnabled:!1,depth:this.options.height,curveSegments:4})}initSingleMaterial(){let t=this.context.materialFactory.createMeshBasicMaterial({color:this.options.fillColor,opacity:this.options.fillOpacity});if(this.options.height<=.1)return this.material=t,t;let e=this.context.materialFactory.createMeshBasicMaterial({color:at(this.options.fillColor),opacity:this.options.fillOpacity});return this.material=[t,e],[t,e]}getMaxAndMin(t,e){let r=new y.Box3().setFromObject(this),o=t.clone().add(e.clone().multiplyScalar(1e3)),s=new y.Ray(o,e.clone().multiplyScalar(-1)),l=new y.Vector3;s.intersectBox(r,l);let u=t.clone().add(e.clone().multiplyScalar(-1e3)),a=new y.Ray(u,e.clone()),h=new y.Vector3;return a.intersectBox(r,h),{max:h,min:l}}initGradualMaterial(){let{max:t,min:e}=new y.Box3().setFromObject(this),r=t.clone().sub(e),o=Math.max(r.x,r.y,r.z)/2,s=this.getPosition(),l=new y.Vector3(-1,.2,0).normalize(),{max:u,min:a}=this.getMaxAndMin(s,l),h=this.context.materialFactory.createShaderMaterial({gradualColor:this.options.gradualColor,center:this.getPosition(),maxValue:o,opacity:this.options.fillOpacity,direction:new y.Vector3(-1,.2,0),max:u,min:a});if(this.options.height<=.1)return this.material=h,h;let c=this.getCenter(),f=new y.Vector3(-1,.2,1).normalize(),{max:g,min:d}=this.getMaxAndMin(c,f),v=this.context.materialFactory.createShaderMaterial({gradualColor:[at(this.options.gradualColor[0],this.options.colorFactor),at(this.options.gradualColor[1],this.options.colorFactor)],center:this.getCenter(),maxValue:o,opacity:this.options.fillOpacity,direction:new y.Vector3(-1,.2,1),max:g,min:d});return this.material=[h,v],[h,v]}initMaterial(){return this.options.renderType==="gradual"?this.initGradualMaterial():this.initSingleMaterial()}initLineMaterial(){let t=this.context.materialFactory.createLineMaterial({color:this.options.strokeColor,opacity:this.options.strokeOpacity});return this.lineMaterial=t,t}initMesh(){this.mesh&&this.remove(this.mesh),this.mesh=new y.Mesh(this.geometry,this.material),this.add(this.mesh)}getBorderPoints(){let t=[],e=this.options.height+this.options.deltaHeight,{coords:r}=this.options.geometry;for(let o=0;o<r.length;o++){let s=r[o];for(let l=0;l<s.length;l++){let u=s[l],a=l+1===s.length?s[0]:s[l+1];t.push(new y.Vector3(u[0],u[1],e)),t.push(new y.Vector3(a[0],a[1],e))}}return t}initLineGeometry(){this.lineGeometry&&this.lineGeometry.dispose();let t=this.getBorderPoints(),e=new y.BufferGeometry().setFromPoints(t);this.lineGeometry=e}createBorder(){this.line&&this.remove(this.line);let t=new y.LineSegments(this.lineGeometry,this.lineMaterial);return t.position.z=this.options.airHeight+.01,this.line=t,this.add(t),t}raycast(t){if(!this.visible||this.options.geometry.type==="point")return!1;this.mesh.updateMatrixWorld(!0);let e=t.intersectObject(this.mesh);if(e[0]){let{point:r,distance:o}=e[0];return{position:r,distance:o}}return!1}dispose(){this.geometry.dispose(),this.line?.geometry.dispose(),this.clear()}};var D=require("three");var ht=class extends D.Object3D{directionalLight;plane;basicOpacity=.07;constructor(){super(),this.directionalLight=this.initLight(),this.initPlane()}initLight(){let n=Yt(16777215,.5);return n.position.set(0,0,100),this.add(n),n}changeLightCamera(n){let t=n.x,e=n.y;this.directionalLight.shadow.camera.left=-t,this.directionalLight.shadow.camera.right=t,this.directionalLight.shadow.camera.top=e,this.directionalLight.shadow.camera.bottom=-e,this.directionalLight.shadow.camera.near=.5,this.directionalLight.shadow.camera.far=Math.max(t,e)}changeLightColor(n){this.directionalLight.color=new D.Color(n)}setPosition(n){this.position.copy(n),this.directionalLight.position.set(-n.x/2,-n.y/2,100)}initPlane(n=1e3,t=1e3){let e=new D.PlaneGeometry(n,t),r=new D.ShadowMaterial({transparent:!0,opacity:0,side:D.DoubleSide}),o=new D.Mesh(e,r);return o.receiveShadow=!0,o.position.z=-10,this.add(o),this.plane=o,o}setTarget(n){this.directionalLight.target=n}transformOpacity(n){return n*this.basicOpacity}setOpacity(n){this.plane.material.opacity=this.transformOpacity(n)}dispose(){B(this,!0)}};var Ot=require("three");var E=require("three");var we=require("lodash");var yn={autoUpdate:!0,appendToBody:!1,autoChangePlacement:!1},ct=class extends E.EventDispatcher{constructor(t,e={}){super();this.context=t;this.options={...yn,...e},this.registryEvent(),this.div=this.initDiv(),this.options.appendToBody?document.body.appendChild(this.div):this.context.container.appendChild(this.div)}div;element;position=new E.Vector3;clientPos={x:0,y:0};visible=!0;options;placement="top";observer=null;initObserver(){let t=new MutationObserver((0,we.debounce)(()=>{this.div&&this.usePlacement()},100));t.observe(this.div,{childList:!0,subtree:!0,attributes:!0}),this.observer=t}getPlacementPosition(){if(this.element instanceof C&&this.element.options.geometry.type==="polygon"){let{max:o,min:s}=new E.Box3().setFromObject(this.element),l=(o.x+s.x)/2,u=(o.y+s.y)/2;return{left:new E.Vector3(s.x,u,o.z),leftTop:new E.Vector3(s.x,o.y,o.z),top:new E.Vector3(l,o.y,o.z),rightTop:new E.Vector3(o.x,o.y,o.z),right:new E.Vector3(o.x,u,o.z),rightBottom:new E.Vector3(o.x,s.y,o.z),bottom:new E.Vector3(l,s.y,o.z),leftBottom:new E.Vector3(s.x,s.y,o.z),center:new E.Vector3(l,u,o.z)}}let{x:t,y:e,z:r}=this.element?.getPosition?.()||this.position;return{left:new E.Vector3(t,e,r),leftTop:new E.Vector3(t,e,r),top:new E.Vector3(t,e,r),rightTop:new E.Vector3(t,e,r),right:new E.Vector3(t,e,r),rightBottom:new E.Vector3(t,e,r),bottom:new E.Vector3(t,e,r),leftBottom:new E.Vector3(t,e,r),center:new E.Vector3(t,e,r)}}getPlacementScreenPosition(){let{width:t,height:e}=this.context.clientSize,r=this.getPlacementPosition();return Object.keys(r).reduce((o,s)=>{let{x:l,y:u}=m(r[s],this.context.camera,t,e);return o[s]={x:l,y:u},o},{})}checkOverflow(t,e){let{width:r,height:o}=this.context.clientSize;return e.x>0&&t.x<r&&e.y<o&&t.y>0}getPlacement(){let{clientWidth:t,clientHeight:e}=this.div,r=this.getPlacementScreenPosition(),o=t/2,s=e/2,l=[{type:"center",getBox(u,a){return{max:{x:o+u,y:a-e},min:{x:u-o,y:a}}}},{type:"left",getBox(u,a){return{max:{x:u,y:a-s},min:{x:u-t,y:a+s}}}},{type:"leftTop",getBox(u,a){return{max:{x:u,y:a-e},min:{x:u-t,y:a}}}},{type:"top",getBox(u,a){return{max:{x:u+o,y:a-e},min:{x:u-o,y:a}}}},{type:"rightTop",getBox(u,a){return{max:{x:u+t,y:a-e},min:{x:u,y:a}}}},{type:"right",getBox(u,a){return{max:{x:u+t,y:a-s},min:{x:u,y:a+s}}}},{type:"rightBottom",getBox(u,a){return{max:{x:u+t,y:a},min:{x:u,y:a+e}}}},{type:"bottom",getBox(u,a){return{max:{x:u+o,y:a},min:{x:u-o,y:a+e}}}},{type:"leftBottom",getBox(u,a){return{max:{x:u,y:a},min:{x:u-t,y:a+s}}}}];for(let u=0;u<l.length;u++){let a=l[u],h=r[a.type],{max:c,min:f}=a.getBox(h.x,h.y);if(this.checkOverflow(c,f))return{type:a.type,position:h}}return{type:"center",position:r.center}}initDiv(){let t=document.createElement("div");return t.style.position="absolute",t}usePlacement(){let t=this.getPlacement();this.div.className=`overlay_${t.type}`,this._updatePosition(t.position.x,t.position.y)}bindElement(t){this.element=t,this.options.autoChangePlacement&&this.initObserver(),this.onUpdate()}unBindElement(){this.element=void 0}setVisible(t,e="block"){t!==this.visible&&(this.div.style.display=t?e:"none",this.visible=t)}setOpacity(t){this.div.style.opacity=`${t}`}getPosition(){return this.element?typeof this.element.getPosition=="function"?this.element.getPosition():new E.Box3().setFromObject(this.element).getCenter(new E.Vector3):this.position}get withinDisplayRange(){let{x:t,y:e}=this.clientPos,{width:r,height:o}=this.context.clientSize;return t>=0&&t<=r&&e>=0&&e<=o}_updatePosition(t,e){this.clientPos={x:t,y:e};let{width:r,height:o,x:s,y:l}=this.context.clientSize;this.options.appendToBody&&(this.div.style.left=`${s}px`,this.div.style.top=`${l+o}px`),this.options.autoUpdate?this.div.style.transform=`translate3d(${t}px, ${-o+e}px, 0)`:this.dispatchEvent({type:"update-position",x:t,y:e,width:r,height:o})}updatePosition(t=!1){let e=this.getPosition(),{width:r,height:o}=this.context.clientSize,{x:s,y:l}=m(e,this.context.camera,r,o);this.clientPos.x===s&&this.clientPos.y===l&&!t||this._updatePosition(s,l)}onUpdate=()=>{this.options.autoChangePlacement?this.usePlacement():this.updatePosition()};registryEvent(){this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.removeEventListener("update",this.onUpdate)}dispose(){this.unRegistryEvent(),this.unBindElement(),this.observer?.disconnect(),this.div?.remove(),this.div=null}};var _n={texts:[{text:""}],level:1,icon_position:"bottom",collision_enable:!0,opacity:1,id:"",position:{x:0,y:0,z:0},icon_opacity:1,icon_border:{color:"#586EE0",width:0},background:"",collision_hide_icon:!0,built_in:!1,box_only_icon:!1},tt=class extends Ot.EventDispatcher{constructor(t,e){super();this.context=t;this.options=it({..._n,...e},this),this.position.set(e.position?.x||0,e.position?.y||0,e.position?.z||0),this.overlay=new ct(this.context,{autoUpdate:!1}),this.overlay.addEventListener("update-position",({x:r,y:o,height:s})=>{this.overlay.div.style.transform=`translate3d(calc(${r}px - 50%), calc(${-s+o}px - ${this.options.icon&&this.options.icon_position!=="center"?"100%":"50%"}), 0)`}),this.overlay.bindElement(this),this.registryEvent(),this.initDiv(),this.addEventListener("change-icon",({value:r})=>{r?this.img?this.img.setAttribute("src",r):(this.addIcon(),this._changePosition()):(this.img&&this.div.removeChild(this.img),this.img=void 0,this._changePosition(),this.resetSize())}),this.addEventListener("change-texts",({value:r})=>{this.div.removeChild(this.textDiv),this.addText(),this.resetSize()}),this.addEventListener("change-opacity",({value:r})=>{this.overlay.setOpacity(r)}),this.addEventListener("change-icon_size",({value:r})=>{this.img&&(this.img.style.width=`${r?.[0]||32}px`,this.img.style.height=`${r?.[1]||32}px`,this.resetSize())}),this.addEventListener("change-icon_opacity",({value:r})=>{this.img&&(this.img.style.opacity=`${r}`)}),this.addEventListener("change-icon_border",({value:r})=>{this.img&&(this.img.style.border=`${r.width}px solid ${r.color}`)}),this.addEventListener("change-background",({value:r})=>{this.div.style.background=r})}div;textDiv;img;overlay;options;visible=!0;size={width:0,height:0};position=new Ot.Vector3;userData={};showTextStatus=!0;disposed=!1;get withinDisplayRange(){return this.overlay.withinDisplayRange}async resetSize(){if(await ee(),!this.disposed)if(this.options.box_only_icon){if(!this.img)return;let{width:t,height:e}=this.img.getBoundingClientRect();this.size={width:t+2,height:e+2}}else{let{width:t,height:e}=this.div.getBoundingClientRect();this.size={width:t+2,height:e+2}}}renderHelperBox(){}get clientPos(){return this.overlay.clientPos}initDiv(){let t=document.createElement("div");return this.div=t,this.addText(),this.options.icon&&this.addIcon(),t.style.fontSize="12px",t.style.textShadow="#fff 1px 0 0, #fff 0 1px 0, #fff -1px 0 0, #fff 0 -1px 0",t.style.display="flex",t.style.flexDirection="column",t.style.justifyContent="center",t.style.alignItems="center",t.style.padding="4px",this.overlay.setOpacity(this.options.opacity),this.overlay.div.style.pointerEvents="none",this.overlay.div.style.userSelect="none",this.overlay.div.appendChild(t),this.resetSize(),t}addIcon(){if(!this.img){let t=this.initIcon();this.options.icon_position==="top"?this.div.firstChild?this.div.insertBefore(t,this.div.firstChild):this.div.appendChild(t):this.div.appendChild(t)}}addText(){let t=this.initText();this.options.icon_position==="top"?this.div.appendChild(t):this.div.firstChild?this.div.insertBefore(t,this.div.firstChild):this.div.appendChild(t)}getPosition(){return this.position}initText(){let t=document.createElement("div");return t.appendChild(this.createTextFragment()),t.style.textAlign="center",this.textDiv=t,t}createTextFragment(){let t=document.createDocumentFragment();return this.options.texts.forEach(e=>{let r=document.createElement("div");if(r.style.whiteSpace="nowrap",e.styles)for(let[o,s]of Object.entries(e.styles))r.style[o]=s;r.textContent=e.text,t.appendChild(r)}),t}initIcon(){let t=document.createElement("img");return t.setAttribute("src",this.options.icon),t.style.width=`${this.options.icon_size?.[0]||32}px`,t.style.height=`${this.options.icon_size?.[1]||32}px`,t.style.opacity=`${this.options.icon_opacity}px`,t.style.borderRadius="50%",this.options.icon_border.width&&(t.style.border=`${this.options.icon_border.width}px solid ${this.options.icon_border.color}`),t.onload=()=>{this.resetSize()},this.img=t,t}_changePosition=()=>{this.overlay.updatePosition(!0)};registryEvent(){}unRegistryEvent(){}setVisible(t){t!==this.visible&&(this.visible=t,this.changeOverlayVisible(t))}changeOverlayVisible(t){if(!(t===this.overlay.visible&&this.options.collision_hide_icon))if(this.options.collision_hide_icon)this.overlay.visible=t,this.overlay.div.style.visibility=t?"visible":"hidden";else{if(this.showTextStatus===t)return;this.textDiv.style.visibility=t?"visible":"hidden",this.showTextStatus=t}}parentSetVisible(t){this.visible&&this.changeOverlayVisible(t)}getBox(t=this.context.config.poi.boxScale){let{width:e,height:r}=this.size,o=e*t,s=r*t,{x:l,y:u}=this.overlay.clientPos;return{left:l-o/2,right:l+o/2,top:this.options.icon?u-s:u-s/2,bottom:this.options.icon?u:u+s/2}}getOriginBox(){return this.getBox(1)}isContain(t,e){if(!this.overlay.visible||!this.visible)return!1;let r=this.getOriginBox();return t>=r.left&&t<=r.right&&e>=r.top&&e<=r.bottom}dispose(){this.unRegistryEvent(),this.div=null,this.textDiv=null,this.img=void 0,this.overlay.dispose(),this.disposed=!0}};var P=require("three");var Dt=require("three");var Te=require("three");var j=class extends Te.Object3D{constructor(t){super();this.context=t}dispose(){B(this),this.clear()}};var pt=class extends j{graphicMap=new Map;constructor(n){super(n)}getCenter(){return new Dt.Box3().setFromObject(this).getCenter(new Dt.Vector3)}createGraphic(n){let t=new C(this.context,n);return this.add(t),this.graphicMap.set(n.id,t),t}removeGraphic(n){this.remove(n),this.graphicMap.delete(n.options.id),n.dispose()}removeGraphicById(n){this.graphicMap.has(n)&&this.removeGraphic(this.graphicMap.get(n))}getGraphicByNodeId(n){return this.graphicMap.get(n)||null}getGraphicByRaycaster(n){let t={distance:1e4,graphic:null,position:null},e=this.children.reduce((r,o)=>{if(o instanceof C){let s=o.raycast(n);if(s){let{distance:l}=s;if(l<r.distance)return{distance:r.distance,position:r.position,graphic:o}}return r}else return r},t);return e===t?{graphics:[],position:null}:{graphics:[e.graphic],position:e.position}}};var Ce=require("lodash");var ft=class extends j{pois=[];debounceCollisionDetection;timer=new F;constructor(n){super(n),this.registryEvent(),this.debounceCollisionDetection=(0,Ce.debounce)(this.collisionDetection,10)}clear(n=!1){return this.pois.forEach(t=>{t.options.built_in&&!n||t.dispose()}),this.pois=n?[]:this.pois.filter(t=>t.options.built_in),this}createPoi(n){let t=new tt(this.context,n);return this.pushPoi(t),t.addEventListener("change-level",()=>this.changePoiLevelOrCollisionEnable(t)),t.addEventListener("change-collision_enable",()=>this.changePoiLevelOrCollisionEnable(t)),Promise.resolve().then(()=>{this.debounceCollisionDetection()}),t}changePoiLevelOrCollisionEnable(n){let t=this.pois.findIndex(e=>e===n);t!==-1&&(this.pois.splice(t,1),this.pushPoi(n))}removePoi(n){let t=this.pois.findIndex(e=>e===n);t!==-1&&(this.pois.splice(t,1),n.dispose())}removePoiById(n){let t=this.pois.find(e=>e.options.id===n);t&&this.removePoi(t)}getPoiById(n){return this.pois.find(e=>e.options.id===n)||null}pushPoi(n){if(!n.options.collision_enable){this.pois.unshift(n);return}if(n.options.level===0){this.pois.push(n);return}for(let t=0;t<this.pois.length;t++){let e=this.pois[t];if(e.options.collision_enable&&e.options.level<=n.options.level){this.pois.splice(t,0,n);return}}this.pois.push(n)}getPoiByDeviceXy(n,t){return this.pois.filter(r=>r instanceof tt&&r.isContain(n,t))}onUpdate=()=>{this.timer.requestAnimationFrame(()=>{this.collisionDetection()})};collisionDetection(){let n=[];this.pois.filter(e=>e.visible&&e.withinDisplayRange).forEach((e,r)=>{let{left:o,right:s,top:l,bottom:u}=e.getBox();if(r===0||!e.options.collision_enable){n.push({left:o,right:s,top:l,bottom:u}),e.parentSetVisible(!0);return}let a=n.some(h=>h.left<s&&h.right>o&&h.top<u&&h.bottom>l);e.parentSetVisible(!a),a||n.push({left:o,right:s,top:l,bottom:u})})}registryEvent(){this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.removeEventListener("update",this.onUpdate)}dispose(){this.timer.dispose(),this.pois.forEach(n=>n.dispose()),this.pois.length=0,this.debounceCollisionDetection=()=>{},super.dispose(),this.unRegistryEvent()}};var M=require("three"),Pe=require("@mars3d/heatmap.js"),V=require("@turf/turf"),dt=class extends M.Object3D{constructor(t){super();this.context=t;this.div=document.createElement("div")}heatmap;div;plane;clearHeatmap(){this.div.firstChild&&this.div.removeChild(this.div.firstChild),this.heatmap=void 0}loadData(t){this.clearHeatmap();let{width:e,height:r,leftTop:o,center:s}=this.getBox(t);this.heatmap=(0,Pe.create)({width:e,height:r,container:this.div,...this.context.config.heatMap}),this.heatmap.setData(this.transformData(t,o)),this.initPlane(e,r),this.position.set(s[0],s[1],this.position.z)}initPlane(t,e){this.plane&&this.remove(this.plane);let r=new M.PlaneGeometry(t,e),o=new M.Texture(this.div.firstChild);o.needsUpdate=!0;let s=new M.MeshBasicMaterial({transparent:!0,side:M.DoubleSide,map:o});s.needsUpdate=!0,this.plane=new M.Mesh(r,s),this.add(this.plane)}getTransMatrix({x:t,y:e}){return new M.Matrix3().makeScale(1,-1).multiply(new M.Matrix3().makeTranslation(0-t,0-e))}transformData(t,e){let r=this.getTransMatrix(e);return{data:t.data.map(s=>{let l=new M.Vector2(s.x,s.y).applyMatrix3(r);return{x:l.x,y:l.y,value:s.value}}),max:t.max,min:t.min}}getBox(t){let e=(0,V.featureCollection)(t.data.map(a=>(0,V.point)([a.x,a.y]))),r=(0,V.bbox)(e),o=r[2]-r[0],s=r[3]-r[1],l={x:r[0],y:r[3]},u=(0,V.center)(e);return{width:o,height:s,leftTop:l,center:u.geometry.coordinates}}dispose(){this.div=null,this.heatmap=void 0}};var Y=require("three");var gt=class extends Y.Object3D{constructor(t,e){super();this.context=t;this.options=e;this.position.copy(e.position||new Y.Vector3(0,0,0)),this.loadModel()}poi=null;model=null;async loadModel(){let t=await ne(this.options.modelUrl);t.scene.rotation.set(Math.PI/2,Math.PI/2,0),this.add(t.scene),this.model=t,this.initPoi()}initPoi(){if(!this.options.icon)return;let t=this.context.currentFloor?.addPoi({icon:this.options.icon,icon_size:this.options.icon_size,built_in:!0,level:0});this.poi=t||null,this.model&&t&&(t.position=new Y.Box3().setFromObject(this).getCenter(new Y.Vector3))}dispose(){B(this),this.model=null,this.poi&&(this.context.currentFloor?.poiLayer.removePoi(this.poi),this.poi=null)}};var mt=class extends P.Object3D{constructor(t){super();this.context=t;this.graphicLayer=new pt(this.context),this.poiLayer=new ft(this.context),this.groundUpper.add(this.graphicLayer),this.groundUpper.add(this.poiLayer),this.add(this.groundUpper),this.add(this.models)}graphicLayer;poiLayer;grounds=new Set;shadow=new ht;heatmap;groundUpper=new P.Object3D;models=new P.Object3D;modelMap=new Map;groundMaxHeight=0;name="";key="";getPosition(){return new P.Box3().setFromObject(this.groundUpper).getCenter(new P.Vector3)}createGround(t){let e=new C(this.context,t);this.addGrounds([e])}addGrounds(t){t.forEach(e=>{this.grounds.has(e)||(e.mesh.castShadow=!0,this.grounds.add(e),this.groundUpper.add(e))}),this.changeGroundMaxHeight()}changeGroundMaxHeight(){let t=Array.from(this.grounds);this.groundMaxHeight=this.grounds.size>0?Math.max(...t.map(e=>e.options.height+e.options.airHeight+e.options.deltaHeight)):0,this.graphicLayer.position.z=this.groundMaxHeight,this.models.position.z=this.groundMaxHeight}get hasElement(){return!!(this.grounds.size||this.graphicLayer.children.length)}getCenter(){return new P.Box3().setFromObject(this.groundUpper).getCenter(new P.Vector3)}addModel(t){let e=new gt(this.context,t);return this.models.add(e),this.modelMap.set(t.id,e),e}addShadow(){let t=new P.Box3().setFromObject(this.groundUpper),e=t.getCenter(new P.Vector3),r=t.getSize(new P.Vector3);this.shadow.setPosition(e),this.shadow.changeLightCamera(r)}addGraphic(t){return this.graphicLayer.createGraphic(t)}addPoi(t){return this.poiLayer.createPoi(t)}addHeatmap(t){this.heatmap||(this.heatmap=new dt(this.context),this.add(this.heatmap)),this.heatmap.loadData(t);let e=new P.Box3().setFromObject(this.graphicLayer);return this.heatmap.position.setZ(e.max.z),this.heatmap}removeHeatMap(){this.heatmap&&(this.remove(this.heatmap),this.heatmap.dispose(),this.heatmap=void 0)}setShadowOpacity(t){this.shadow.setOpacity(t)}setShadowVisible(t){this.shadow.visible=t}dispose(){this.shadow.dispose(),this.graphicLayer.dispose(),this.poiLayer.dispose(),this.grounds.forEach(t=>t.dispose()),this.heatmap?.dispose(),this.groundUpper.clear(),this.models.children.forEach(t=>t.dispose()),this.models.clear(),this.modelMap.clear(),this.clear()}};var Ft=require("three");var U=class extends Ft.EventDispatcher{constructor(t){super();this.context=t;this.svg=te(`${t.container.clientWidth}`,`${t.container.clientHeight}`),t.container.appendChild(this.svg),this._registryEvent()}points=[];svg;enable=!0;_onResize=({width:t,height:e})=>{this.svg&&(this.svg.setAttribute("width",`${t}`),this.svg.setAttribute("height",`${e}`))};_registryEvent(){this.context.addEventListener("resize",this._onResize)}_unRegistryEvent(){this.context.removeEventListener("resize",this._onResize)}setEnable(t){this.enable=t,t?this.svg.style.display="block":this.svg.style.display="none"}getIntersectByPointerEvent(t){let{camera:e,renderer:r}=this.context,{offsetX:o,offsetY:s}=t,{clientWidth:l,clientHeight:u}=r.domElement,a=o/l*2-1,h=1-s/u*2;return new Ft.Vector3(a,h,0).unproject(e)}getSvgCoordinate(t){let{camera:e,container:r}=this.context;return m(t,e,r.clientWidth,r.clientHeight)}dispose(){this._unRegistryEvent(),this.context.container.removeChild(this.svg),this.svg=null}};var yt=class extends U{constructor(t){super(t);this.context=t;let{config:{svg:{circle:e,line:r}}}=t;this.circles=[$(e.radius,e.fill),$(e.radius,e.fill)],this.line=st(r.stroke),this.svg.appendChild(this.circles[0]),this.svg.appendChild(this.circles[1]),this.svg.appendChild(this.line),this.registryEvent()}circles;line;setEnable(t){super.setEnable(t),t?this.registryEvent():this.unRegistryEvent()}registryEvent(){this.context.container.addEventListener("pointerenter",this.onPointermove),this.context.container.addEventListener("pointermove",this.onPointermove),this.context.container.addEventListener("pointerleave",this.onPointerleave),this.context.container.addEventListener("pointerdown",this.onPointerdown),this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.container.removeEventListener("pointerenter",this.onPointermove),this.context.container.removeEventListener("pointermove",this.onPointermove),this.context.container.removeEventListener("pointerleave",this.onPointerleave),this.context.container.removeEventListener("pointerdown",this.onPointerdown),this.context.removeEventListener("update",this.onUpdate)}onUpdate=()=>{if(this.points[0]){let t=this.getSvgCoordinate(this.points[0]);k(this.circles[0],t.x,t.y),L(this.line,t)}if(this.points[1]){let t=this.getSvgCoordinate(this.points[1]);k(this.circles[1],t.x,t.y),L(this.line,void 0,t)}};onPointermove=t=>{this.points.length===1&&(this.line.style.display="block",L(this.line,void 0,{x:t.offsetX,y:t.offsetY}))};onPointerleave=()=>{this.points[1]||(this.line.style.display="none")};onPointerdown=t=>{if(this.points[1])return;let e=this.getIntersectByPointerEvent(t);if(e){let{offsetX:r,offsetY:o}=t,s=this.circles[this.points.length];k(s,r,o),this.points.length||L(this.line,{x:r,y:o},{x:r,y:o}),this.addPoint(e)}};addPoint(t){if(this.points.push(t),this.points.length>=2){let e=this.calculatedDistance();this.dispatchEvent({type:"distance",distance:e})}}calculatedDistance(){let[{x:t,y:e},{x:r,y:o}]=this.points;return Math.sqrt((r-t)**2+(o-e)**2)}dispose(){super.dispose(),this.unRegistryEvent(),this.line=null,this.circles=[]}};var _t=class extends U{circles=[];lines=[];isClose=!1;constructor(n){super(n),this.registryEvent()}setEnable(n){super.setEnable(n),n?this.registryEvent():this.unRegistryEvent()}get lastLine(){return this.lines.slice(-1)[0]}addCircle(n){this.circles.push(n),this.svg.appendChild(n)}addLine(n){this.lines.push(n),this.svg.appendChild(n)}registryEvent(){this.context.container.addEventListener("pointerenter",this.onPointermove),this.context.container.addEventListener("pointermove",this.onPointermove),this.context.container.addEventListener("pointerleave",this.onPointerleave),this.context.container.addEventListener("pointerdown",this.onPointerdown),this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.container.removeEventListener("pointerenter",this.onPointermove),this.context.container.removeEventListener("pointermove",this.onPointermove),this.context.container.removeEventListener("pointerleave",this.onPointerleave),this.context.container.removeEventListener("pointerdown",this.onPointerdown),this.context.removeEventListener("update",this.onUpdate)}onUpdate=()=>{this.points.length&&this.points.forEach((n,t)=>{let e=this.getSvgCoordinate(n);this.circles[t]&&k(this.circles[t],e.x,e.y),t!==0&&L(this.lines[t-1],void 0,e),this.lines[t]&&L(this.lines[t],e)})};onPointermove=n=>{!this.lastLine||this.isClose||(this.lastLine.style.display="block",L(this.lastLine,void 0,{x:n.offsetX,y:n.offsetY}))};onPointerleave=()=>{this.isClose||(this.lastLine.style.display="none")};onPointerdown=n=>{if(this.isClose)return;let t=this.getIntersectByPointerEvent(n);if(t){let{offsetX:e,offsetY:r}=n;this.checkAdsorb(e,r)?(this.isClose=!0,this.addPoint(this.points[0])):this.addPoint(t);let{circle:{fill:o,radius:s},line:{stroke:l}}=this.context.config.svg;if(!this.isClose){let u=$(s,o);k(u,e,r),this.addCircle(u)}if(this.lines.length&&L(this.lastLine,void 0,{x:e,y:r}),!this.isClose){let u=st(l);L(u,{x:e,y:r},{x:e,y:r}),this.addLine(u)}}};checkAdsorb(n,t){if(this.points.length<3)return!1;let e=this.circles[0],r=+e.getAttribute("cx"),o=+e.getAttribute("cy");return Math.sqrt((n-r)**2+(t-o)**2)<=5}addPoint(n){if(this.points.push(n),this.isClose){let t=this.calculatedArea();this.dispatchEvent({type:"area",area:t})}}calculatedArea(){let n=this.points.map(r=>[r.x,r.y]),t=0,e=n.length;for(let r=0;r<e;r++){let o=(r+1)%e;t+=n[r][0]*n[o][1]-n[o][0]*n[r][1]}return Math.abs(t/2)}dispose(){super.dispose(),this.unRegistryEvent(),this.lines=[],this.circles=[]}};var Ae=require("three");var se=class extends U{constructor(t){super(t);this.context=t;let{config:{svg:{line:e}}}=t;this.rect=q(e.stroke,"transparent"),this.svg.appendChild(this.rect);for(let r=0;r<4;r++)this.cornerRect[r]=q(e.stroke,"#ffffff"),this.centerRect[r]=q(e.stroke,"#ffffff"),this.svg.appendChild(this.cornerRect[r]),this.svg.appendChild(this.centerRect[r]);this.registryEvent()}rect;cornerRect=[];centerRect=[];graphic;setEnable(t){super.setEnable(t),t?this.registryEvent():this.unRegistryEvent()}registryEvent(){this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.removeEventListener("update",this.onUpdate)}onUpdate=()=>{if(this.graphic){let t=new Ae.Box3().setFromObject(this.graphic),{camera:e,container:{clientWidth:r,clientHeight:o}}=this.context,{min:s,max:l}=t,u=m(s,e,r,o),a=m(l,e,r,o);N(this.rect,u.x,a.y,Math.abs(a.x-u.x),Math.abs(a.y-u.y));let{x:h,y:c}=u,{x:f,y:g}=a,d=5,v=[{x:h-d,y:g-d},{x:f-d,y:g-d},{x:h-d,y:c-d},{x:f-d,y:c-d}];for(let w=0;w<v.length;w++)N(this.cornerRect[w],v[w].x,v[w].y,d*2,d*2);let _=4,A=(h+f)/2,R=(c+g)/2,G=[{x:A-_,y:g-_},{x:h-_,y:R-_},{x:f-_,y:R-_},{x:A-_,y:c-_}];for(let w=0;w<G.length;w++)N(this.centerRect[w],G[w].x,G[w].y,_*2,_*2)}else{N(this.rect,0,0,0,0);for(let t=0;t<this.cornerRect.length;t++)N(this.cornerRect[t],0,0,0,0),N(this.centerRect[t],0,0,0,0)}};selectGraphic(t){this.graphic=t}dispose(){super.dispose(),this.unRegistryEvent(),this.rect=null,this.cornerRect=[],this.centerRect=[]}};var Re=require("three"),Ut=class extends U{startPoint;endPoint;rect;frustum=new Re.Frustum;constructor(n){super(n);let{config:{selectBox:{fill:t,stroke:e}}}=n;this.rect=q(e,t),this.svg.appendChild(this.rect),this.registryEvent()}setEnable(n){super.setEnable(n),N(this.rect,0,0,0,0),n?this.registryEvent():(this.startPoint=void 0,this.unRegistryEvent())}onPointerDown=n=>{if(!this.enable)return;let t=this.getIntersectByPointerEvent(n);t&&(this.startPoint=t),this.endPoint=void 0};onPointerMove=n=>{if(!this.enable||!this.startPoint)return;let t=this.getIntersectByPointerEvent(n);t&&(this.endPoint=t)};onPointerUp=n=>{if(!this.enable)return;let t=this.getIntersectByPointerEvent(n);t&&(this.endPoint=t),this.doSelect(),this.startPoint=void 0};onUpdate=()=>{if(this.startPoint){let n=this.getSvgCoordinate(this.startPoint),t={...n};this.endPoint&&(t=this.getSvgCoordinate(this.endPoint));let e={x:Math.min(n.x,t.x),y:Math.min(n.y,t.y)},r=Math.abs(t.x-n.x),o=Math.abs(t.y-n.y);N(this.rect,e.x,e.y,r,o)}else N(this.rect,0,0,0,0)};registryEvent(){this.context.container.addEventListener("pointerdown",this.onPointerDown),this.context.container.addEventListener("pointermove",this.onPointerMove),this.context.container.addEventListener("pointerup",this.onPointerUp),this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.container.removeEventListener("pointerdown",this.onPointerDown),this.context.container.removeEventListener("pointermove",this.onPointerMove),this.context.container.removeEventListener("pointerup",this.onPointerUp),this.context.removeEventListener("update",this.onUpdate)}doSelect(){if(this.startPoint&&this.endPoint){if(this.startPoint.distanceTo(this.endPoint)<.1)return;let{context:{camera:t,container:{clientWidth:e,clientHeight:r}}}=this,o=m(this.startPoint,t,e,r),s=m(this.endPoint,t,e,r),l={x:Math.min(o.x,s.x),y:Math.min(o.y,s.y)},u={x:Math.max(o.x,s.x),y:Math.max(o.y,s.y)},a=this.searchMapInFrustum(l,u);this.dispatchEvent({type:"selected",list:a})}}searchMapInFrustum(n,t){let{context:e}=this;return e.currentFloor?.graphicLayer.children.filter(r=>r instanceof C&&this.searchChildInFrustum(r,n,t))||[]}searchChildInFrustum(n,t,e){let{context:{camera:r,container:{clientWidth:o,clientHeight:s}}}=this;if(!n)return!1;if(!n.mesh){let f=n.getPosition();if(f){let g=m(f,r,o,s);return rt(g,t,e)}return!1}n.mesh.geometry.boundingBox||n.mesh.geometry.computeBoundingBox();let l=n.mesh.geometry.boundingBox;if(!l)return!1;let{min:u,max:a}=l,h=m(u,r,o,s),c=m(a,r,o,s);return!(!rt(h,t,e)||!rt(c,t,e))}dispose(){this.unRegistryEvent()}};var vt=class extends Ie.EventDispatcher{constructor(t){super();this.context=t;this.boxSelection=new Ut(t),this.boxSelection.setEnable(!1),this.registryEvent()}_list=new Set;boxSelection;prevPanStatus;prevRotateStatus;downPoint=null;isMultipleSelect=!1;get list(){return this._list}enableBoxSelection(){this.isMultipleSelect||(this.isMultipleSelect=!0,this.boxSelection.setEnable(!0),this.prevPanStatus=this.context.control.enablePan,this.prevRotateStatus=this.context.control.enableRotate,this.context.control.enablePan=!1,this.context.control.enableRotate=!1)}disableBoxSelection(){this.isMultipleSelect&&(this.isMultipleSelect=!1,this.boxSelection.setEnable(!1),this.context.control.enablePan=!!this.prevPanStatus,this.context.control.enableRotate=!!this.prevRotateStatus)}onPointerDown=t=>{this.downPoint={x:t.offsetX,y:t.offsetY}};onPointerUp=t=>{if(!this.downPoint)return;let{offsetX:e,offsetY:r}=t,{x:o,y:s}=this.downPoint;if(Math.sqrt((o-e)**2+(s-r)**2)>3)return;let{graphics:l}=this.context.getGraphicsByDeviceXy(e,r),u=new Set(l.map(h=>h.options.id));this.context.getPoisByDeviceXy(e,r).forEach(h=>{if(!u.has(h.options.id)){let c=this.context.currentFloor?.graphicLayer.graphicMap.get(h.options.id)||null;c&&c.options.geometry.type==="point"&&(l.push(c),u.add(h.options.id))}}),(lt?t.metaKey:t.ctrlKey)||this._list.clear(),l.forEach(h=>this._list.add(h)),this.selectEnd(),this.downPoint=null};onPointerOut=t=>{this.disableBoxSelection()};onKeyDown=t=>{Nt(t.key)&&this.enableBoxSelection()};onKeyUp=t=>{Nt(t.key)&&this.disableBoxSelection()};onBoxSelected=({list:t})=>{this._list.clear(),t.forEach(e=>{this._list.add(e)}),this.selectEnd()};selectEnd(){this.dispatchEvent({type:"select",graphics:[...this._list],isMultipleSelect:this.isMultipleSelect})}registryEvent(){this.context.container.addEventListener("pointerdown",this.onPointerDown),this.context.container.addEventListener("pointerup",this.onPointerUp),this.context.container.addEventListener("pointerout",this.onPointerOut),this.context.container.addEventListener("pointercancel",this.onPointerOut),window.addEventListener("keydown",this.onKeyDown),window.addEventListener("keyup",this.onKeyUp),this.boxSelection.addEventListener("selected",this.onBoxSelected)}unRegistryEvent(){this.context.container.removeEventListener("pointerdown",this.onPointerDown),this.context.container.removeEventListener("pointerup",this.onPointerUp),this.context.container.removeEventListener("pointerout",this.onPointerOut),this.context.container.removeEventListener("pointercancel",this.onPointerOut),window.removeEventListener("keydown",this.onKeyDown),window.removeEventListener("keyup",this.onKeyUp),this.boxSelection.removeEventListener("selected",this.onBoxSelected)}clear(){this._list.clear()}remove(t){this._list.delete(t)}dispose(){this.unRegistryEvent()}};var Le=require("three");var xt=class extends Le.EventDispatcher{constructor(t){super();this.context=t;this.registryEvent()}curGraphics=new Set;timer=new F;graphicTimerMap=new Map;onPointerMove=({graphics:t,pois:e,e:r})=>{let o=e.map(a=>this.context.currentFloor?.graphicLayer.graphicMap.get(a.options.id)).filter(a=>a&&a.options.geometry.type==="point");if(!t.length&&!o.length&&this.curGraphics.size){this.curGraphics.clear(),this.handleHoverGraphicsChange();return}let{time:s}=this.context.config.hover,l=new Set;if(o.length){let a,h=1e4;o.forEach(c=>{let f=e.find(_=>_.options.id===c.options.id),{x:g,y:d}=f.clientPos,v=Math.sqrt((g-r.offsetX)**2+(d-r.offsetY)**2);v<h&&(h=v,a=c)}),l.add(a)}l.size||t.forEach(a=>l.add(a)),l.forEach(a=>{if(this.graphicTimerMap.get(a)||this.curGraphics.has(a))return;let h=this.timer.setTimeout(()=>{this.curGraphics.add(a),this.graphicTimerMap.delete(a),this.timer.clearTimeout(h),this.handleHoverGraphicsChange()},s);this.graphicTimerMap.set(a,h)}),this.graphicTimerMap.forEach((a,h)=>{l.has(h)||(this.timer.clearTimeout(a),this.graphicTimerMap.delete(h))});let u=this.curGraphics.size;this.curGraphics.forEach(a=>{l.has(a)||this.curGraphics.delete(a)}),u!==this.curGraphics.size&&this.handleHoverGraphicsChange()};onPointerLevel=()=>{this.curGraphics.clear(),this.handleHoverGraphicsChange()};handleHoverGraphicsChange(t=this.curGraphics){this.dispatchEvent({type:"hover-change",graphics:Array.from(t)})}registryEvent(){this.context.addEventListener("pointer-over",this.onPointerMove),this.context.addEventListener("pointer-move",this.onPointerMove),this.context.addEventListener("pointer-level",this.onPointerLevel)}unRegistryEvent(){this.context.removeEventListener("pointer-over",this.onPointerMove),this.context.removeEventListener("pointer-move",this.onPointerMove),this.context.removeEventListener("pointer-level",this.onPointerLevel)}dispose(){this.unRegistryEvent(),this.timer.dispose()}};var T=require("three");function Ne(i){return`${i.x}-${i.y}-${i.z}`}var Bt=class{constructor(n){this.context=n}lineMaterialMap=new Map;meshStandardMaterialMap=new Map;meshBasicMaterialMap=new Map;shaderMaterialMap=new Map;generateLineMaterialKey({color:n,opacity:t}){return`${n}-${t}`}createLineMaterial({color:n,opacity:t}){let e=this.generateLineMaterialKey({color:n,opacity:t});if(this.lineMaterialMap.has(e))return this.lineMaterialMap.get(e);let r=new T.LineBasicMaterial({color:new T.Color(n).convertLinearToSRGB(),transparent:!0,opacity:t});return this.lineMaterialMap.set(e,r),r}createMeshStandardMaterial({color:n,opacity:t}){let e=`${n}-${t}`;if(this.meshStandardMaterialMap.has(e))return this.meshStandardMaterialMap.get(e);let r=new T.MeshStandardMaterial({color:new T.Color(n).convertLinearToSRGB(),roughness:1,transparent:!0,opacity:t,depthWrite:!0});return this.meshStandardMaterialMap.set(e,r),r}createMeshBasicMaterial({color:n,opacity:t}){let e=`${n}-${t}`;if(this.meshBasicMaterialMap.has(e))return this.meshBasicMaterialMap.get(e);let r=new T.MeshBasicMaterial({color:n,transparent:!0,opacity:t,depthWrite:!0});return this.meshBasicMaterialMap.set(e,r),r}createShaderMaterial({gradualColor:n,center:t,maxValue:e,opacity:r,direction:o,max:s,min:l}){let u=`${n.toString()}-${Ne(t)}-${e}-${r}-${Ne(o)}`;if(this.shaderMaterialMap.has(u))return this.shaderMaterialMap.get(u);let a=`
|
|
1
|
+
"use strict";var tn=Object.create;var Ct=Object.defineProperty;var en=Object.getOwnPropertyDescriptor;var nn=Object.getOwnPropertyNames;var rn=Object.getPrototypeOf,on=Object.prototype.hasOwnProperty;var _e=(i,n)=>()=>(n||i((n={exports:{}}).exports,n),n.exports),sn=(i,n)=>{for(var t in n)Ct(i,t,{get:n[t],enumerable:!0})},ve=(i,n,t,e)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of nn(n))!on.call(i,r)&&r!==t&&Ct(i,r,{get:()=>n[r],enumerable:!(e=en(n,r))||e.enumerable});return i};var an=(i,n,t)=>(t=i!=null?tn(rn(i)):{},ve(n||!i||!i.__esModule?Ct(t,"default",{value:i,enumerable:!0}):t,i)),ln=i=>ve(Ct({},"__esModule",{value:!0}),i);var He=_e((ns,Ve)=>{Ve.exports=function(n,t){return n[0]=t[0],n[1]=t[1],n}});var qe=_e((rs,Xe)=>{var We=He();Xe.exports=function(i,n){Array.isArray(n)||(n=[]),i.length>0&&n.push(We([0,0],i[0]));for(var t=0;t<i.length-1;t++){var e=i[t],r=i[t+1],o=e[0],s=e[1],l=r[0],u=r[1],a=[.75*o+.25*l,.75*s+.25*u],h=[.25*o+.75*l,.25*s+.75*u];n.push(a),n.push(h)}return i.length>1&&n.push(We([0,0],i[i.length-1])),n}});var Sn={};sn(Sn,{BMap:()=>ue,BaseSvg:()=>U,Context:()=>Et,Equipment:()=>he,Events:()=>oe,Floor:()=>mt,Graphic:()=>C,GraphicLayer:()=>pt,HeatmapElement:()=>dt,HooksName:()=>Q,HoverHelper:()=>xt,Layer:()=>j,MapTypePolar:()=>Ue,Model:()=>gt,Navigation:()=>ge,Overlay:()=>ct,PathDirection:()=>ke,Poi:()=>tt,PoiLayer:()=>ft,SelectBox:()=>se,Selection:()=>vt,Shadow:()=>ht,SplitLoad:()=>me,SvgLine:()=>yt,SvgPolygon:()=>_t,Timer:()=>F,UniqueKey:()=>ut,WorkerEventType:()=>de,addAlphaToHexColor:()=>fn,clearCanvas:()=>$t,clearTextTexture:()=>Jt,createCanvas:()=>be,createCircle:()=>$,createLine:()=>st,createRect:()=>q,createSvg:()=>te,createSvgElement:()=>ot,darkenColor:()=>at,defaultConfig:()=>De,dispose:()=>B,disposeLoader:()=>re,generatorKeyByObj:()=>O,getCenter:()=>Rt,getConfig:()=>ae,getLength:()=>Se,getLongestSideDir:()=>hn,getPathLength:()=>Qt,getTextureByText:()=>un,hasChinese:()=>Zt,initCamera:()=>Wt,initCanvas:()=>Ee,initControl:()=>qt,initDirectionalLight:()=>Yt,initLight:()=>Xt,initRenderer:()=>Ht,initScene:()=>Vt,initShape:()=>jt,isContain:()=>rt,isControl:()=>Nt,isMac:()=>lt,loadBuildingGround:()=>le,loadGraphics:()=>bt,loadModel:()=>ne,proxyOptions:()=>it,setCirclePosition:()=>k,setLineStartEnd:()=>L,setRectPosition:()=>N,sleepOnePromise:()=>ee,sleepOneRf:()=>cn,strToNumber:()=>pn,timeoutPromise:()=>z,vector3ToDevice:()=>m,xhrGet:()=>gn});module.exports=ln(Sn);var zt=require("three");var F=class{tasks={requestAnimation:new Set,timeout:new Set,interval:new Set};requestAnimationFrame(n){let t=window.requestAnimationFrame(()=>{this.tasks.requestAnimation.delete(t),n()});return this.tasks.requestAnimation.add(t),t}cancelAnimationFrame(n){this.tasks.requestAnimation.delete(n),window.cancelAnimationFrame(n)}setTimeout(n,t){let e=window.setTimeout(()=>{this.tasks.timeout.delete(e),n()},t);return this.tasks.timeout.add(e),e}clearTimeout(n){this.tasks.timeout.delete(n),window.clearTimeout(n)}setInterval(n,t){let e=window.setInterval(()=>{this.tasks.interval.delete(e),n()},t);return this.tasks.interval.add(e),e}clearInterval(n){this.tasks.interval.delete(n),window.clearInterval(n)}dispose(){this.tasks.requestAnimation.forEach(n=>{window.cancelAnimationFrame(n)}),this.tasks.requestAnimation.clear(),this.tasks.timeout.forEach(n=>{window.clearTimeout(n)}),this.tasks.timeout.clear(),this.tasks.interval.forEach(n=>{window.clearInterval(n)}),this.tasks.interval.clear()}};var b=require("three"),xe=require("three/examples/jsm/controls/MapControls");function Vt(){let i=new b.Scene;return i.background=new b.Color(16777215),i}function Ht(){let i=new b.WebGLRenderer({antialias:!0});return i.autoClear=!0,i.setClearAlpha(1),i.setClearColor(16777215),i.setPixelRatio(window.devicePixelRatio),i.shadowMap.enabled=!0,i.shadowMap.autoUpdate=!0,i.shadowMap.type=b.PCFSoftShadowMap,i}function Wt(i,n){let t=new b.OrthographicCamera(-i/2,i/2,n/2,-n/2,-1e3,5e3);return t.up.set(0,0,1),t.position.set(0,0,100),t.lookAt(0,0,0),t}function Xt(){let i=new b.Group,n=new b.AmbientLight(16777215,2.6);return i.add(n),i}function qt(i,n){let t=new xe.MapControls(i,n);return t.enableDamping=!1,t.zoomSpeed=2,t}function jt(i,n=[]){let t=new b.Shape(i.map(e=>new b.Vector2(...e)));return n.length&&n.forEach(e=>{var r=new b.Path(e.map(o=>new b.Vector2(...o)));t.holes.push(r)}),t}function Yt(i=16777215,n=1){let t=new b.DirectionalLight(i,n);return t.castShadow=!0,t.shadow.radius=8,t.shadow.bias=-.001,t.shadow.mapSize.set(256,256),t.shadow.camera.left=-200,t.shadow.camera.right=200,t.shadow.camera.top=200,t.shadow.camera.bottom=-200,t}function B(i,n){if(n&&i.children&&i.children.length&&i.children.forEach(t=>{B(t,n)}),i.isMesh){let t=i;t.geometry&&t.geometry.dispose(),t.material&&(Array.isArray(t.material)?t.material.forEach(e=>{e.dispose()}):t.material.dispose())}i.isLight&&i.dispose?.()}function Zt(i){return/[\u4E00-\u9FA5]+/g.test(i)}var X=require("three");var Pt=new Map;function Ee(){let i=document.createElement("canvas");i.width=1024,i.height=64;let n=i.getContext("2d",{willReadFrequently:!0});return n.font="54px sans-serif",n.textBaseline="hanging",n.lineWidth=12,n.fillStyle="rgba(0,0,0,1)",n.strokeStyle="white",{canvas:i,ctx:n}}var Kt,W;function be(){if(!Kt){let{canvas:i,ctx:n}=Ee();Kt=i,W=n}}function un(i){if(Pt.has(i))return Pt.get(i);be(),W.clearRect(0,0,1024,64);let n=Zt(i)?4:8;W.strokeText(i,2,n),W.fillText(i,2,n);let t=Math.ceil(W.measureText(i).width);t=t%2===0?t:t+1,t+=2;let e=W.getImageData(0,0,t,64),r=new X.DataTexture(Uint8Array.from(e.data),t,64,X.RGBAFormat);return r.flipY=!0,r.minFilter=X.LinearFilter,r.magFilter=X.LinearFilter,Pt.set(i,r),r}function Jt(){Pt.clear()}function $t(){W=null,Kt=null}var At=require("three"),J=require("@turf/turf");function m(i,n,t,e){let r=i.clone().project(n),o=t/2,s=e/2,l=Math.round(r.x*o+o),u=Math.round(-r.y*s+s);return{x:l,y:u}}function Rt(i){let n=(0,J.featureCollection)(i.map(e=>(0,J.point)(e)));return(0,J.center)(n).geometry.coordinates}function rt(i,n,t){return i.x>=n.x&&i.x<=t.x&&i.y>=n.y&&i.y<=t.y}function hn(i){let n=0,t=new At.Vector3;for(let e=1;e<i.length;e++){let r=new At.Vector3(i[e-1][0],i[e-1][1],0),o=new At.Vector3(i[e][0],i[e][1],0),s=o.distanceTo(r);s>n&&(n=s,t=o.clone().sub(r).normalize())}return t}function Se(i,n){return Math.sqrt((n[0]-i[0])**2+(n[1]-i[1])**2)}function Qt(i){let n=0;for(let t=0;t<i.length-1;t++)n+=Se(i[t],i[t+1]);return n}function it(i,n){return new Proxy(i,{get:(t,e,r)=>Reflect.get(t,e,r),set:(t,e,r,o)=>{let s=Reflect.get(t,e,o),l=Reflect.set(t,e,r,o);return s!==r&&n.dispatchEvent({type:`change-${e}`,value:r}),l}})}function z(i,n){return Promise.race([i,new Promise((t,e)=>{setTimeout(()=>e(new Error("Promise timeout")),n)})])}function ot(i){return document.createElementNS("http://www.w3.org/2000/svg",i)}function te(i,n){let t=ot("svg");return t.setAttribute("width",i),t.setAttribute("height",n),t.style.cssText="position: absolute; left: 0; top: 0; pointer-events: none;",t}function $(i="2",n){let t=ot("circle");return t.setAttribute("r",i),t.setAttribute("fill",n),t}function st(i){let n=ot("line");return n.setAttribute("stroke",i),n}function q(i,n){let t=ot("rect");return t.setAttribute("stroke",i),t.setAttribute("fill",n),t}function k(i,n,t){i.setAttribute("cx",`${n}`),i.setAttribute("cy",`${t}`)}function L(i,n,t){n&&(i.setAttribute("x1",`${n.x}`),i.setAttribute("y1",`${n.y}`)),t&&(i.setAttribute("x2",`${t.x}`),i.setAttribute("y2",`${t.y}`))}function N(i,n,t,e,r){i.setAttribute("x",`${n}`),i.setAttribute("y",`${t}`),i.setAttribute("width",`${e}`),i.setAttribute("height",`${r}`)}function ee(){return Promise.resolve()}function cn(){return new Promise(i=>{requestAnimationFrame(i)})}function pn(i){return parseInt(i.replace("#","0x"),16)}function fn(i,n){let t=parseInt(i.substring(1,3),16),e=parseInt(i.substring(3,5),16),r=parseInt(i.substring(5,7),16),o=Math.round(t*n),s=Math.round(e*n),l=Math.round(r*n);return`#${(1<<24|o<<16|s<<8|l).toString(16).slice(1)}`}function at(i,n=.85){let t,e,r;if(i.startsWith("#"))t=parseInt(i.substring(1,3),16),e=parseInt(i.substring(3,5),16),r=parseInt(i.substring(5,7),16);else{let s=i.slice(4,-1).split(",");t=parseInt(s[0].trim()),e=parseInt(s[1].trim()),r=parseInt(s[2].trim())}return t=Math.min(Math.floor(t*n),255),e=Math.min(Math.floor(e*n),255),r=Math.min(Math.floor(r*n),255),"#"+((1<<24)+(t<<16)+(e<<8)+r).toString(16).slice(1)}var Me=require("three/examples/jsm/loaders/GLTFLoader");function dn(){return new Me.GLTFLoader}var It=null,Lt=new Map;function ne(i){if(Lt.has(i)){let t=Lt.get(i).then(e=>(e.scene=e.scene.clone(),e))}It||(It=dn());let n=new Promise((t,e)=>{It.load(i,r=>{t(r)},void 0,e)});return Lt.set(i,n),n.then(t=>(t.scene=t.scene.clone(),t))}function re(){It=null,Lt.clear()}var lt=navigator.userAgent.toUpperCase().indexOf("MAC")>=0;function Nt(i){return lt?i==="Meta":i==="Control"}var ie="__once__",oe=class{events=new Map;on(n,t){if(typeof t!="function")return;let e=this.events.get(n);return e?e.add(t):this.events.set(n,new Set([t]))}once(n,t){if(typeof t!="function")return;let e=`${ie}${n}`,r=this.events.get(e);return r?r.add(t):this.events.set(e,new Set([t]))}off(n,t){let e=this.events.get(n),r=this.events.get(`${ie}${n}`);!e&&!r||(t===void 0&&(e?.clear(),r?.clear()),e?.has(t)&&e.delete(t),r?.has(t)&&r.delete(t))}offAll(){this.events.clear()}emit(n,...t){let e=this.events.get(n),r=this.events.get(`${ie}${n}`);!e&&!r||(e?.forEach(o=>{typeof o=="function"&&o(...t)}),r?.forEach(o=>{typeof o=="function"&&o(...t)}),r?.clear())}};var Q=(t=>(t.SWITCH_FLOOR_BEFORE="switch_floor_before",t.SWITCH_FLOOR_AFTER="switch_floor_after",t))(Q||{});function O(i){return Object.keys(i).sort().map(n=>`${n}=${i[n]}`).join("&")}function gn(i,n){return new Promise((t,e)=>{let r=new XMLHttpRequest;r.open("GET",i,!0),Object.keys(n.headers||{}).forEach(o=>{r.setRequestHeader(o,n.headers[o])}),r.onload=()=>{if(r.status>=200&&r.status<300)try{let o=JSON.parse(r.responseText);t(o)}catch(o){e(o)}else e(r.statusText)},r.onerror=()=>{e(r.statusText)},r.send()})}var ut=class i{keySet=new Set;static createKey(){return Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15)}genUniqueKey(){let n=i.createKey();for(;this.keySet.has(n);)n=i.createKey();return n}removeKey(n){this.keySet.delete(n)}dispose(){this.keySet.clear()}};var x=require("three"),K=require("@tweenjs/tween.js");var Ie=require("three");var y=require("three");var mn={id:"",height:.1,airHeight:0,area:0,group:"",fillColor:"#EFF4FB",strokeColor:"#ffffff",fillOpacity:1,strokeOpacity:1,strokeWidth:1,doors:[],locked:!1,visible:!0,geometry:{type:"polygon",cds:[],coords:[],curveCpt:[],curveIndex:[]},layerType:"",zIndex:0,stroke:!0,deltaHeight:0,userData:{},gradualColor:[],renderType:"single",colorFactor:.9},C=class extends y.Object3D{constructor(t,e){super();this.context=t;if(this.options=it({...mn,...e},this),this.options.geometry.type==="point"){let[r,o]=this.options.geometry.coords;return this.position.set(r,o,this.options.height+this.options.airHeight),this}this.init(),this.visible=this.options.visible,this.addEventListener("change-fillColor",({value:r})=>{this.initMaterial(),this.initMesh()}),this.addEventListener("change-fillOpacity",({value:r})=>{this.initMaterial(),this.initMesh()}),this.addEventListener("change-height",({value:r})=>{this.dispose(),this.init()}),this.addEventListener("change-strokeColor",({value:r})=>{this.options.stroke&&(this.initLineMaterial(),this.createBorder())}),this.addEventListener("change-strokeOpacity",({value:r})=>{this.options.stroke&&(this.initLineMaterial(),this.createBorder())}),this.addEventListener("change-airHeight",({value:r})=>{this.position.z=r}),this.addEventListener("change-visible",({value:r})=>{this.visible=r}),this.addEventListener("change-stroke",({value:r})=>{if(r){if(this.line)return;this.initLineGeometry(),this.initLineMaterial(),this.createBorder()}else this.line&&(this.remove(this.line),this.lineGeometry?.dispose())}),this.addEventListener("change-renderType",()=>{this.initMaterial(),this.initMesh()}),this.addEventListener("change-gradualColor",()=>{this.initMaterial(),this.initMesh()})}geometry;material;mesh;line;lineMaterial;lineGeometry;options;getCenter(){if(this.options.geometry.type==="point")return this.position.clone();let t=new y.Vector3,e=new y.Box3;return e.setFromObject(this),e.getCenter(t),t}getSize(){if(this.options.geometry.type==="point")return new y.Vector3(0,0,0);let t=new y.Box3,e=new y.Vector3;return t.setFromObject(this),t.getSize(e),e}getPosition(){let t=this.getCenter();return t.setZ(t.z+this.options.height/2),t}init(){this.geometry=this.initGeometry(),this.initMaterial(),this.initMesh(),this.mesh.position.z=this.options.airHeight+this.options.deltaHeight,this.options.stroke&&(this.initLineMaterial(),this.initLineGeometry(),this.createBorder())}initGeometry(){let t=jt(this.options.geometry.coords[0],this.options.geometry.coords.slice(1));return new y.ExtrudeGeometry(t,{steps:1,bevelEnabled:!1,depth:this.options.height,curveSegments:4})}initSingleMaterial(){let t=this.context.materialFactory.createMeshBasicMaterial({color:this.options.fillColor,opacity:this.options.fillOpacity});if(this.options.height<=.1)return this.material=t,t;let e=this.context.materialFactory.createMeshBasicMaterial({color:at(this.options.fillColor),opacity:this.options.fillOpacity});return this.material=[t,e],[t,e]}getMaxAndMin(t,e){let r=new y.Box3().setFromObject(this),o=t.clone().add(e.clone().multiplyScalar(1e3)),s=new y.Ray(o,e.clone().multiplyScalar(-1)),l=new y.Vector3;s.intersectBox(r,l);let u=t.clone().add(e.clone().multiplyScalar(-1e3)),a=new y.Ray(u,e.clone()),h=new y.Vector3;return a.intersectBox(r,h),{max:h,min:l}}initGradualMaterial(){let{max:t,min:e}=new y.Box3().setFromObject(this),r=t.clone().sub(e),o=Math.max(r.x,r.y,r.z)/2,s=this.getPosition(),l=new y.Vector3(-1,.2,0).normalize(),{max:u,min:a}=this.getMaxAndMin(s,l),h=this.context.materialFactory.createShaderMaterial({gradualColor:this.options.gradualColor,center:this.getPosition(),maxValue:o,opacity:this.options.fillOpacity,direction:new y.Vector3(-1,.2,0),max:u,min:a});if(this.options.height<=.1)return this.material=h,h;let c=this.getCenter(),f=new y.Vector3(-1,.2,1).normalize(),{max:g,min:d}=this.getMaxAndMin(c,f),v=this.context.materialFactory.createShaderMaterial({gradualColor:[at(this.options.gradualColor[0],this.options.colorFactor),at(this.options.gradualColor[1],this.options.colorFactor)],center:this.getCenter(),maxValue:o,opacity:this.options.fillOpacity,direction:new y.Vector3(-1,.2,1),max:g,min:d});return this.material=[h,v],[h,v]}initMaterial(){return this.options.renderType==="gradual"?this.initGradualMaterial():this.initSingleMaterial()}initLineMaterial(){let t=this.context.materialFactory.createLineMaterial({color:this.options.strokeColor,opacity:this.options.strokeOpacity});return this.lineMaterial=t,t}initMesh(){this.mesh&&this.remove(this.mesh),this.mesh=new y.Mesh(this.geometry,this.material),this.add(this.mesh)}getBorderPoints(){let t=[],e=this.options.height+this.options.deltaHeight,{coords:r}=this.options.geometry;for(let o=0;o<r.length;o++){let s=r[o];for(let l=0;l<s.length;l++){let u=s[l],a=l+1===s.length?s[0]:s[l+1];t.push(new y.Vector3(u[0],u[1],e)),t.push(new y.Vector3(a[0],a[1],e))}}return t}initLineGeometry(){this.lineGeometry&&this.lineGeometry.dispose();let t=this.getBorderPoints(),e=new y.BufferGeometry().setFromPoints(t);this.lineGeometry=e}createBorder(){this.line&&this.remove(this.line);let t=new y.LineSegments(this.lineGeometry,this.lineMaterial);return t.position.z=this.options.airHeight+.01,this.line=t,this.add(t),t}raycast(t){if(!this.visible||this.options.geometry.type==="point")return!1;this.mesh.updateMatrixWorld(!0);let e=t.intersectObject(this.mesh);if(e[0]){let{point:r,distance:o}=e[0];return{position:r,distance:o}}return!1}dispose(){this.geometry.dispose(),this.line?.geometry.dispose(),this.clear()}};var D=require("three");var ht=class extends D.Object3D{directionalLight;plane;basicOpacity=.07;constructor(){super(),this.directionalLight=this.initLight(),this.initPlane()}initLight(){let n=Yt(16777215,.5);return n.position.set(0,0,100),this.add(n),n}changeLightCamera(n){let t=n.x,e=n.y;this.directionalLight.shadow.camera.left=-t,this.directionalLight.shadow.camera.right=t,this.directionalLight.shadow.camera.top=e,this.directionalLight.shadow.camera.bottom=-e,this.directionalLight.shadow.camera.near=.5,this.directionalLight.shadow.camera.far=Math.max(t,e)}changeLightColor(n){this.directionalLight.color=new D.Color(n)}setPosition(n){this.position.copy(n),this.directionalLight.position.set(-n.x/2,-n.y/2,100)}initPlane(n=1e3,t=1e3){let e=new D.PlaneGeometry(n,t),r=new D.ShadowMaterial({transparent:!0,opacity:0,side:D.DoubleSide}),o=new D.Mesh(e,r);return o.receiveShadow=!0,o.position.z=-10,this.add(o),this.plane=o,o}setTarget(n){this.directionalLight.target=n}transformOpacity(n){return n*this.basicOpacity}setOpacity(n){this.plane.material.opacity=this.transformOpacity(n)}dispose(){B(this,!0)}};var Ot=require("three");var E=require("three");var we=require("lodash");var yn={autoUpdate:!0,appendToBody:!1,autoChangePlacement:!1},ct=class extends E.EventDispatcher{constructor(t,e={}){super();this.context=t;this.options={...yn,...e},this.registryEvent(),this.div=this.initDiv(),this.options.appendToBody?document.body.appendChild(this.div):this.context.container.appendChild(this.div)}div;element;position=new E.Vector3;clientPos={x:0,y:0};visible=!0;options;placement="top";observer=null;initObserver(){let t=new MutationObserver((0,we.debounce)(()=>{this.div&&this.usePlacement()},100));t.observe(this.div,{childList:!0,subtree:!0,attributes:!0}),this.observer=t}getPlacementPosition(){if(this.element instanceof C&&this.element.options.geometry.type==="polygon"){let{max:o,min:s}=new E.Box3().setFromObject(this.element),l=(o.x+s.x)/2,u=(o.y+s.y)/2;return{left:new E.Vector3(s.x,u,o.z),leftTop:new E.Vector3(s.x,o.y,o.z),top:new E.Vector3(l,o.y,o.z),rightTop:new E.Vector3(o.x,o.y,o.z),right:new E.Vector3(o.x,u,o.z),rightBottom:new E.Vector3(o.x,s.y,o.z),bottom:new E.Vector3(l,s.y,o.z),leftBottom:new E.Vector3(s.x,s.y,o.z),center:new E.Vector3(l,u,o.z)}}let{x:t,y:e,z:r}=this.element?.getPosition?.()||this.position;return{left:new E.Vector3(t,e,r),leftTop:new E.Vector3(t,e,r),top:new E.Vector3(t,e,r),rightTop:new E.Vector3(t,e,r),right:new E.Vector3(t,e,r),rightBottom:new E.Vector3(t,e,r),bottom:new E.Vector3(t,e,r),leftBottom:new E.Vector3(t,e,r),center:new E.Vector3(t,e,r)}}getPlacementScreenPosition(){let{width:t,height:e}=this.context.clientSize,r=this.getPlacementPosition();return Object.keys(r).reduce((o,s)=>{let{x:l,y:u}=m(r[s],this.context.camera,t,e);return o[s]={x:l,y:u},o},{})}checkOverflow(t,e){let{width:r,height:o}=this.context.clientSize;return e.x>0&&t.x<r&&e.y<o&&t.y>0}getPlacement(){let{clientWidth:t,clientHeight:e}=this.div,r=this.getPlacementScreenPosition(),o=t/2,s=e/2,l=[{type:"center",getBox(u,a){return{max:{x:o+u,y:a-e},min:{x:u-o,y:a}}}},{type:"left",getBox(u,a){return{max:{x:u,y:a-s},min:{x:u-t,y:a+s}}}},{type:"leftTop",getBox(u,a){return{max:{x:u,y:a-e},min:{x:u-t,y:a}}}},{type:"top",getBox(u,a){return{max:{x:u+o,y:a-e},min:{x:u-o,y:a}}}},{type:"rightTop",getBox(u,a){return{max:{x:u+t,y:a-e},min:{x:u,y:a}}}},{type:"right",getBox(u,a){return{max:{x:u+t,y:a-s},min:{x:u,y:a+s}}}},{type:"rightBottom",getBox(u,a){return{max:{x:u+t,y:a},min:{x:u,y:a+e}}}},{type:"bottom",getBox(u,a){return{max:{x:u+o,y:a},min:{x:u-o,y:a+e}}}},{type:"leftBottom",getBox(u,a){return{max:{x:u,y:a},min:{x:u-t,y:a+s}}}}];for(let u=0;u<l.length;u++){let a=l[u],h=r[a.type],{max:c,min:f}=a.getBox(h.x,h.y);if(this.checkOverflow(c,f))return{type:a.type,position:h}}return{type:"center",position:r.center}}initDiv(){let t=document.createElement("div");return t.style.position="absolute",t}usePlacement(){let t=this.getPlacement();this.div.className=`overlay_${t.type}`,this._updatePosition(t.position.x,t.position.y)}bindElement(t){this.element=t,this.options.autoChangePlacement&&this.initObserver(),this.onUpdate()}unBindElement(){this.element=void 0}setVisible(t,e="block"){t!==this.visible&&(this.div.style.display=t?e:"none",this.visible=t)}setOpacity(t){this.div.style.opacity=`${t}`}getPosition(){return this.element?typeof this.element.getPosition=="function"?this.element.getPosition():new E.Box3().setFromObject(this.element).getCenter(new E.Vector3):this.position}get withinDisplayRange(){let{x:t,y:e}=this.clientPos,{width:r,height:o}=this.context.clientSize;return t>=0&&t<=r&&e>=0&&e<=o}_updatePosition(t,e){this.clientPos={x:t,y:e};let{width:r,height:o,x:s,y:l}=this.context.clientSize;this.options.appendToBody&&(this.div.style.left=`${s}px`,this.div.style.top=`${l+o}px`),this.options.autoUpdate?this.div.style.transform=`translate3d(${t}px, ${-o+e}px, 0)`:this.dispatchEvent({type:"update-position",x:t,y:e,width:r,height:o})}updatePosition(t=!1){let e=this.getPosition(),{width:r,height:o}=this.context.clientSize,{x:s,y:l}=m(e,this.context.camera,r,o);this.clientPos.x===s&&this.clientPos.y===l&&!t||this._updatePosition(s,l)}onUpdate=()=>{this.options.autoChangePlacement?this.usePlacement():this.updatePosition()};registryEvent(){this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.removeEventListener("update",this.onUpdate)}dispose(){this.unRegistryEvent(),this.unBindElement(),this.observer?.disconnect(),this.div?.remove(),this.div=null}};var _n={texts:[{text:""}],level:1,icon_position:"bottom",collision_enable:!0,opacity:1,id:"",position:{x:0,y:0,z:0},icon_opacity:1,icon_border:{color:"#586EE0",width:0},background:"",collision_hide_icon:!0,built_in:!1,box_only_icon:!1},tt=class extends Ot.EventDispatcher{constructor(t,e){super();this.context=t;this.options=it({..._n,...e},this),this.position.set(e.position?.x||0,e.position?.y||0,e.position?.z||0),this.overlay=new ct(this.context,{autoUpdate:!1}),this.overlay.addEventListener("update-position",({x:r,y:o,height:s})=>{this.overlay.div.style.transform=`translate3d(calc(${r}px - 50%), calc(${-s+o}px - ${this.options.icon&&this.options.icon_position!=="center"?"100%":"50%"}), 0)`}),this.overlay.bindElement(this),this.registryEvent(),this.initDiv(),this.addEventListener("change-icon",({value:r})=>{r?this.img?this.img.setAttribute("src",r):(this.addIcon(),this._changePosition()):(this.img&&this.div.removeChild(this.img),this.img=void 0,this._changePosition(),this.resetSize())}),this.addEventListener("change-texts",({value:r})=>{this.div.removeChild(this.textDiv),this.addText(),this.resetSize()}),this.addEventListener("change-opacity",({value:r})=>{this.overlay.setOpacity(r)}),this.addEventListener("change-icon_size",({value:r})=>{this.img&&(this.img.style.width=`${r?.[0]||32}px`,this.img.style.height=`${r?.[1]||32}px`,this.resetSize())}),this.addEventListener("change-icon_opacity",({value:r})=>{this.img&&(this.img.style.opacity=`${r}`)}),this.addEventListener("change-icon_border",({value:r})=>{this.img&&(this.img.style.border=`${r.width}px solid ${r.color}`)}),this.addEventListener("change-background",({value:r})=>{this.div.style.background=r})}div;textDiv;img;overlay;options;visible=!0;size={width:0,height:0};position=new Ot.Vector3;userData={};showTextStatus=!0;disposed=!1;get withinDisplayRange(){return this.overlay.withinDisplayRange}async resetSize(){if(await ee(),!this.disposed)if(this.options.box_only_icon){if(!this.img)return;let{width:t,height:e}=this.img.getBoundingClientRect();this.size={width:t+2,height:e+2}}else{let{width:t,height:e}=this.div.getBoundingClientRect();this.size={width:t+2,height:e+2}}}renderHelperBox(){}get clientPos(){return this.overlay.clientPos}initDiv(){let t=document.createElement("div");return this.div=t,this.addText(),this.options.icon&&this.addIcon(),t.style.fontSize="12px",t.style.textShadow="#fff 1px 0 0, #fff 0 1px 0, #fff -1px 0 0, #fff 0 -1px 0",t.style.display="flex",t.style.flexDirection="column",t.style.justifyContent="center",t.style.alignItems="center",t.style.padding="4px",this.overlay.setOpacity(this.options.opacity),this.overlay.div.style.pointerEvents="none",this.overlay.div.style.userSelect="none",this.overlay.div.appendChild(t),this.resetSize(),t}addIcon(){if(!this.img){let t=this.initIcon();this.options.icon_position==="top"?this.div.firstChild?this.div.insertBefore(t,this.div.firstChild):this.div.appendChild(t):this.div.appendChild(t)}}addText(){let t=this.initText();this.options.icon_position==="top"?this.div.appendChild(t):this.div.firstChild?this.div.insertBefore(t,this.div.firstChild):this.div.appendChild(t)}getPosition(){return this.position}initText(){let t=document.createElement("div");return t.appendChild(this.createTextFragment()),t.style.textAlign="center",this.textDiv=t,t}createTextFragment(){let t=document.createDocumentFragment();return this.options.texts.forEach(e=>{let r=document.createElement("div");if(r.style.whiteSpace="nowrap",e.styles)for(let[o,s]of Object.entries(e.styles))r.style[o]=s;r.textContent=e.text,t.appendChild(r)}),t}initIcon(){let t=document.createElement("img");return t.setAttribute("src",this.options.icon),t.style.width=`${this.options.icon_size?.[0]||32}px`,t.style.height=`${this.options.icon_size?.[1]||32}px`,t.style.opacity=`${this.options.icon_opacity}px`,t.style.borderRadius="50%",this.options.icon_border.width&&(t.style.border=`${this.options.icon_border.width}px solid ${this.options.icon_border.color}`),t.onload=()=>{this.resetSize()},this.img=t,t}_changePosition=()=>{this.overlay.updatePosition(!0)};registryEvent(){}unRegistryEvent(){}setVisible(t){t!==this.visible&&(this.visible=t,this.changeOverlayVisible(t))}changeOverlayVisible(t){if(!(t===this.overlay.visible&&this.options.collision_hide_icon))if(this.options.collision_hide_icon)this.overlay.visible=t,this.overlay.div.style.visibility=t?"visible":"hidden";else{if(this.showTextStatus===t)return;this.textDiv.style.visibility=t?"visible":"hidden",this.showTextStatus=t}}parentSetVisible(t){this.visible&&this.changeOverlayVisible(t)}getBox(t=this.context.config.poi.boxScale){let{width:e,height:r}=this.size,o=e*t,s=r*t,{x:l,y:u}=this.overlay.clientPos;return{left:l-o/2,right:l+o/2,top:this.options.icon?u-s:u-s/2,bottom:this.options.icon?u:u+s/2}}getOriginBox(){return this.getBox(1)}isContain(t,e){if(!this.overlay.visible||!this.visible)return!1;let r=this.getOriginBox();return t>=r.left&&t<=r.right&&e>=r.top&&e<=r.bottom}dispose(){this.unRegistryEvent(),this.div=null,this.textDiv=null,this.img=void 0,this.overlay.dispose(),this.disposed=!0}};var P=require("three");var Dt=require("three");var Te=require("three");var j=class extends Te.Object3D{constructor(t){super();this.context=t}dispose(){B(this),this.clear()}};var pt=class extends j{graphicMap=new Map;constructor(n){super(n)}getCenter(){return new Dt.Box3().setFromObject(this).getCenter(new Dt.Vector3)}createGraphic(n){let t=new C(this.context,n);return this.add(t),this.graphicMap.set(n.id,t),t}removeGraphic(n){this.remove(n),this.graphicMap.delete(n.options.id),n.dispose()}removeGraphicById(n){this.graphicMap.has(n)&&this.removeGraphic(this.graphicMap.get(n))}getGraphicByNodeId(n){return this.graphicMap.get(n)||null}getGraphicByRaycaster(n){let t={distance:1e4,graphic:null,position:null},e=this.children.reduce((r,o)=>{if(o instanceof C){let s=o.raycast(n);if(s){let{distance:l}=s;if(l<r.distance)return{distance:s.distance,position:s.position,graphic:o}}return r}else return r},t);return e===t?{graphics:[],position:null}:{graphics:[e.graphic],position:e.position}}};var Ce=require("lodash");var ft=class extends j{pois=[];debounceCollisionDetection;timer=new F;constructor(n){super(n),this.registryEvent(),this.debounceCollisionDetection=(0,Ce.debounce)(this.collisionDetection,10)}clear(n=!1){return this.pois.forEach(t=>{t.options.built_in&&!n||t.dispose()}),this.pois=n?[]:this.pois.filter(t=>t.options.built_in),this}createPoi(n){let t=new tt(this.context,n);return this.pushPoi(t),t.addEventListener("change-level",()=>this.changePoiLevelOrCollisionEnable(t)),t.addEventListener("change-collision_enable",()=>this.changePoiLevelOrCollisionEnable(t)),Promise.resolve().then(()=>{this.debounceCollisionDetection()}),t}changePoiLevelOrCollisionEnable(n){let t=this.pois.findIndex(e=>e===n);t!==-1&&(this.pois.splice(t,1),this.pushPoi(n))}removePoi(n){let t=this.pois.findIndex(e=>e===n);t!==-1&&(this.pois.splice(t,1),n.dispose())}removePoiById(n){let t=this.pois.find(e=>e.options.id===n);t&&this.removePoi(t)}getPoiById(n){return this.pois.find(e=>e.options.id===n)||null}pushPoi(n){if(!n.options.collision_enable){this.pois.unshift(n);return}if(n.options.level===0){this.pois.push(n);return}for(let t=0;t<this.pois.length;t++){let e=this.pois[t];if(e.options.collision_enable&&e.options.level<=n.options.level){this.pois.splice(t,0,n);return}}this.pois.push(n)}getPoiByDeviceXy(n,t){return this.pois.filter(r=>r instanceof tt&&r.isContain(n,t))}onUpdate=()=>{this.timer.requestAnimationFrame(()=>{this.collisionDetection()})};collisionDetection(){let n=[];this.pois.filter(e=>e.visible&&e.withinDisplayRange).forEach((e,r)=>{let{left:o,right:s,top:l,bottom:u}=e.getBox();if(r===0||!e.options.collision_enable){n.push({left:o,right:s,top:l,bottom:u}),e.parentSetVisible(!0);return}let a=n.some(h=>h.left<s&&h.right>o&&h.top<u&&h.bottom>l);e.parentSetVisible(!a),a||n.push({left:o,right:s,top:l,bottom:u})})}registryEvent(){this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.removeEventListener("update",this.onUpdate)}dispose(){this.timer.dispose(),this.pois.forEach(n=>n.dispose()),this.pois.length=0,this.debounceCollisionDetection=()=>{},super.dispose(),this.unRegistryEvent()}};var M=require("three"),Pe=require("@mars3d/heatmap.js"),V=require("@turf/turf"),dt=class extends M.Object3D{constructor(t){super();this.context=t;this.div=document.createElement("div")}heatmap;div;plane;clearHeatmap(){this.div.firstChild&&this.div.removeChild(this.div.firstChild),this.heatmap=void 0}loadData(t){this.clearHeatmap();let{width:e,height:r,leftTop:o,center:s}=this.getBox(t);this.heatmap=(0,Pe.create)({width:e,height:r,container:this.div,...this.context.config.heatMap}),this.heatmap.setData(this.transformData(t,o)),this.initPlane(e,r),this.position.set(s[0],s[1],this.position.z)}initPlane(t,e){this.plane&&this.remove(this.plane);let r=new M.PlaneGeometry(t,e),o=new M.Texture(this.div.firstChild);o.needsUpdate=!0;let s=new M.MeshBasicMaterial({transparent:!0,side:M.DoubleSide,map:o});s.needsUpdate=!0,this.plane=new M.Mesh(r,s),this.add(this.plane)}getTransMatrix({x:t,y:e}){return new M.Matrix3().makeScale(1,-1).multiply(new M.Matrix3().makeTranslation(0-t,0-e))}transformData(t,e){let r=this.getTransMatrix(e);return{data:t.data.map(s=>{let l=new M.Vector2(s.x,s.y).applyMatrix3(r);return{x:l.x,y:l.y,value:s.value}}),max:t.max,min:t.min}}getBox(t){let e=(0,V.featureCollection)(t.data.map(a=>(0,V.point)([a.x,a.y]))),r=(0,V.bbox)(e),o=r[2]-r[0],s=r[3]-r[1],l={x:r[0],y:r[3]},u=(0,V.center)(e);return{width:o,height:s,leftTop:l,center:u.geometry.coordinates}}dispose(){this.div=null,this.heatmap=void 0}};var Y=require("three");var gt=class extends Y.Object3D{constructor(t,e){super();this.context=t;this.options=e;this.position.copy(e.position||new Y.Vector3(0,0,0)),this.loadModel()}poi=null;model=null;async loadModel(){let t=await ne(this.options.modelUrl);t.scene.rotation.set(Math.PI/2,Math.PI/2,0),this.add(t.scene),this.model=t,this.initPoi()}initPoi(){if(!this.options.icon)return;let t=this.context.currentFloor?.addPoi({icon:this.options.icon,icon_size:this.options.icon_size,built_in:!0,level:0});this.poi=t||null,this.model&&t&&(t.position=new Y.Box3().setFromObject(this).getCenter(new Y.Vector3))}dispose(){B(this),this.model=null,this.poi&&(this.context.currentFloor?.poiLayer.removePoi(this.poi),this.poi=null)}};var mt=class extends P.Object3D{constructor(t){super();this.context=t;this.graphicLayer=new pt(this.context),this.poiLayer=new ft(this.context),this.groundUpper.add(this.graphicLayer),this.groundUpper.add(this.poiLayer),this.add(this.groundUpper),this.add(this.models)}graphicLayer;poiLayer;grounds=new Set;shadow=new ht;heatmap;groundUpper=new P.Object3D;models=new P.Object3D;modelMap=new Map;groundMaxHeight=0;name="";key="";getPosition(){return new P.Box3().setFromObject(this.groundUpper).getCenter(new P.Vector3)}createGround(t){let e=new C(this.context,t);this.addGrounds([e])}addGrounds(t){t.forEach(e=>{this.grounds.has(e)||(e.mesh.castShadow=!0,this.grounds.add(e),this.groundUpper.add(e))}),this.changeGroundMaxHeight()}changeGroundMaxHeight(){let t=Array.from(this.grounds);this.groundMaxHeight=this.grounds.size>0?Math.max(...t.map(e=>e.options.height+e.options.airHeight+e.options.deltaHeight)):0,this.graphicLayer.position.z=this.groundMaxHeight,this.models.position.z=this.groundMaxHeight}get hasElement(){return!!(this.grounds.size||this.graphicLayer.children.length)}getCenter(){return new P.Box3().setFromObject(this.groundUpper).getCenter(new P.Vector3)}addModel(t){let e=new gt(this.context,t);return this.models.add(e),this.modelMap.set(t.id,e),e}addShadow(){let t=new P.Box3().setFromObject(this.groundUpper),e=t.getCenter(new P.Vector3),r=t.getSize(new P.Vector3);this.shadow.setPosition(e),this.shadow.changeLightCamera(r)}addGraphic(t){return this.graphicLayer.createGraphic(t)}addPoi(t){return this.poiLayer.createPoi(t)}addHeatmap(t){this.heatmap||(this.heatmap=new dt(this.context),this.add(this.heatmap)),this.heatmap.loadData(t);let e=new P.Box3().setFromObject(this.graphicLayer);return this.heatmap.position.setZ(e.max.z),this.heatmap}removeHeatMap(){this.heatmap&&(this.remove(this.heatmap),this.heatmap.dispose(),this.heatmap=void 0)}setShadowOpacity(t){this.shadow.setOpacity(t)}setShadowVisible(t){this.shadow.visible=t}dispose(){this.shadow.dispose(),this.graphicLayer.dispose(),this.poiLayer.dispose(),this.grounds.forEach(t=>t.dispose()),this.heatmap?.dispose(),this.groundUpper.clear(),this.models.children.forEach(t=>t.dispose()),this.models.clear(),this.modelMap.clear(),this.clear()}};var Ft=require("three");var U=class extends Ft.EventDispatcher{constructor(t){super();this.context=t;this.svg=te(`${t.container.clientWidth}`,`${t.container.clientHeight}`),t.container.appendChild(this.svg),this._registryEvent()}points=[];svg;enable=!0;_onResize=({width:t,height:e})=>{this.svg&&(this.svg.setAttribute("width",`${t}`),this.svg.setAttribute("height",`${e}`))};_registryEvent(){this.context.addEventListener("resize",this._onResize)}_unRegistryEvent(){this.context.removeEventListener("resize",this._onResize)}setEnable(t){this.enable=t,t?this.svg.style.display="block":this.svg.style.display="none"}getIntersectByPointerEvent(t){let{camera:e,renderer:r}=this.context,{offsetX:o,offsetY:s}=t,{clientWidth:l,clientHeight:u}=r.domElement,a=o/l*2-1,h=1-s/u*2;return new Ft.Vector3(a,h,0).unproject(e)}getSvgCoordinate(t){let{camera:e,container:r}=this.context;return m(t,e,r.clientWidth,r.clientHeight)}dispose(){this._unRegistryEvent(),this.context.container.removeChild(this.svg),this.svg=null}};var yt=class extends U{constructor(t){super(t);this.context=t;let{config:{svg:{circle:e,line:r}}}=t;this.circles=[$(e.radius,e.fill),$(e.radius,e.fill)],this.line=st(r.stroke),this.svg.appendChild(this.circles[0]),this.svg.appendChild(this.circles[1]),this.svg.appendChild(this.line),this.registryEvent()}circles;line;setEnable(t){super.setEnable(t),t?this.registryEvent():this.unRegistryEvent()}registryEvent(){this.context.container.addEventListener("pointerenter",this.onPointermove),this.context.container.addEventListener("pointermove",this.onPointermove),this.context.container.addEventListener("pointerleave",this.onPointerleave),this.context.container.addEventListener("pointerdown",this.onPointerdown),this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.container.removeEventListener("pointerenter",this.onPointermove),this.context.container.removeEventListener("pointermove",this.onPointermove),this.context.container.removeEventListener("pointerleave",this.onPointerleave),this.context.container.removeEventListener("pointerdown",this.onPointerdown),this.context.removeEventListener("update",this.onUpdate)}onUpdate=()=>{if(this.points[0]){let t=this.getSvgCoordinate(this.points[0]);k(this.circles[0],t.x,t.y),L(this.line,t)}if(this.points[1]){let t=this.getSvgCoordinate(this.points[1]);k(this.circles[1],t.x,t.y),L(this.line,void 0,t)}};onPointermove=t=>{this.points.length===1&&(this.line.style.display="block",L(this.line,void 0,{x:t.offsetX,y:t.offsetY}))};onPointerleave=()=>{this.points[1]||(this.line.style.display="none")};onPointerdown=t=>{if(this.points[1])return;let e=this.getIntersectByPointerEvent(t);if(e){let{offsetX:r,offsetY:o}=t,s=this.circles[this.points.length];k(s,r,o),this.points.length||L(this.line,{x:r,y:o},{x:r,y:o}),this.addPoint(e)}};addPoint(t){if(this.points.push(t),this.points.length>=2){let e=this.calculatedDistance();this.dispatchEvent({type:"distance",distance:e})}}calculatedDistance(){let[{x:t,y:e},{x:r,y:o}]=this.points;return Math.sqrt((r-t)**2+(o-e)**2)}dispose(){super.dispose(),this.unRegistryEvent(),this.line=null,this.circles=[]}};var _t=class extends U{circles=[];lines=[];isClose=!1;constructor(n){super(n),this.registryEvent()}setEnable(n){super.setEnable(n),n?this.registryEvent():this.unRegistryEvent()}get lastLine(){return this.lines.slice(-1)[0]}addCircle(n){this.circles.push(n),this.svg.appendChild(n)}addLine(n){this.lines.push(n),this.svg.appendChild(n)}registryEvent(){this.context.container.addEventListener("pointerenter",this.onPointermove),this.context.container.addEventListener("pointermove",this.onPointermove),this.context.container.addEventListener("pointerleave",this.onPointerleave),this.context.container.addEventListener("pointerdown",this.onPointerdown),this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.container.removeEventListener("pointerenter",this.onPointermove),this.context.container.removeEventListener("pointermove",this.onPointermove),this.context.container.removeEventListener("pointerleave",this.onPointerleave),this.context.container.removeEventListener("pointerdown",this.onPointerdown),this.context.removeEventListener("update",this.onUpdate)}onUpdate=()=>{this.points.length&&this.points.forEach((n,t)=>{let e=this.getSvgCoordinate(n);this.circles[t]&&k(this.circles[t],e.x,e.y),t!==0&&L(this.lines[t-1],void 0,e),this.lines[t]&&L(this.lines[t],e)})};onPointermove=n=>{!this.lastLine||this.isClose||(this.lastLine.style.display="block",L(this.lastLine,void 0,{x:n.offsetX,y:n.offsetY}))};onPointerleave=()=>{this.isClose||(this.lastLine.style.display="none")};onPointerdown=n=>{if(this.isClose)return;let t=this.getIntersectByPointerEvent(n);if(t){let{offsetX:e,offsetY:r}=n;this.checkAdsorb(e,r)?(this.isClose=!0,this.addPoint(this.points[0])):this.addPoint(t);let{circle:{fill:o,radius:s},line:{stroke:l}}=this.context.config.svg;if(!this.isClose){let u=$(s,o);k(u,e,r),this.addCircle(u)}if(this.lines.length&&L(this.lastLine,void 0,{x:e,y:r}),!this.isClose){let u=st(l);L(u,{x:e,y:r},{x:e,y:r}),this.addLine(u)}}};checkAdsorb(n,t){if(this.points.length<3)return!1;let e=this.circles[0],r=+e.getAttribute("cx"),o=+e.getAttribute("cy");return Math.sqrt((n-r)**2+(t-o)**2)<=5}addPoint(n){if(this.points.push(n),this.isClose){let t=this.calculatedArea();this.dispatchEvent({type:"area",area:t})}}calculatedArea(){let n=this.points.map(r=>[r.x,r.y]),t=0,e=n.length;for(let r=0;r<e;r++){let o=(r+1)%e;t+=n[r][0]*n[o][1]-n[o][0]*n[r][1]}return Math.abs(t/2)}dispose(){super.dispose(),this.unRegistryEvent(),this.lines=[],this.circles=[]}};var Ae=require("three");var se=class extends U{constructor(t){super(t);this.context=t;let{config:{svg:{line:e}}}=t;this.rect=q(e.stroke,"transparent"),this.svg.appendChild(this.rect);for(let r=0;r<4;r++)this.cornerRect[r]=q(e.stroke,"#ffffff"),this.centerRect[r]=q(e.stroke,"#ffffff"),this.svg.appendChild(this.cornerRect[r]),this.svg.appendChild(this.centerRect[r]);this.registryEvent()}rect;cornerRect=[];centerRect=[];graphic;setEnable(t){super.setEnable(t),t?this.registryEvent():this.unRegistryEvent()}registryEvent(){this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.removeEventListener("update",this.onUpdate)}onUpdate=()=>{if(this.graphic){let t=new Ae.Box3().setFromObject(this.graphic),{camera:e,container:{clientWidth:r,clientHeight:o}}=this.context,{min:s,max:l}=t,u=m(s,e,r,o),a=m(l,e,r,o);N(this.rect,u.x,a.y,Math.abs(a.x-u.x),Math.abs(a.y-u.y));let{x:h,y:c}=u,{x:f,y:g}=a,d=5,v=[{x:h-d,y:g-d},{x:f-d,y:g-d},{x:h-d,y:c-d},{x:f-d,y:c-d}];for(let w=0;w<v.length;w++)N(this.cornerRect[w],v[w].x,v[w].y,d*2,d*2);let _=4,A=(h+f)/2,R=(c+g)/2,G=[{x:A-_,y:g-_},{x:h-_,y:R-_},{x:f-_,y:R-_},{x:A-_,y:c-_}];for(let w=0;w<G.length;w++)N(this.centerRect[w],G[w].x,G[w].y,_*2,_*2)}else{N(this.rect,0,0,0,0);for(let t=0;t<this.cornerRect.length;t++)N(this.cornerRect[t],0,0,0,0),N(this.centerRect[t],0,0,0,0)}};selectGraphic(t){this.graphic=t}dispose(){super.dispose(),this.unRegistryEvent(),this.rect=null,this.cornerRect=[],this.centerRect=[]}};var Re=require("three"),Ut=class extends U{startPoint;endPoint;rect;frustum=new Re.Frustum;constructor(n){super(n);let{config:{selectBox:{fill:t,stroke:e}}}=n;this.rect=q(e,t),this.svg.appendChild(this.rect),this.registryEvent()}setEnable(n){super.setEnable(n),N(this.rect,0,0,0,0),n?this.registryEvent():(this.startPoint=void 0,this.unRegistryEvent())}onPointerDown=n=>{if(!this.enable)return;let t=this.getIntersectByPointerEvent(n);t&&(this.startPoint=t),this.endPoint=void 0};onPointerMove=n=>{if(!this.enable||!this.startPoint)return;let t=this.getIntersectByPointerEvent(n);t&&(this.endPoint=t)};onPointerUp=n=>{if(!this.enable)return;let t=this.getIntersectByPointerEvent(n);t&&(this.endPoint=t),this.doSelect(),this.startPoint=void 0};onUpdate=()=>{if(this.startPoint){let n=this.getSvgCoordinate(this.startPoint),t={...n};this.endPoint&&(t=this.getSvgCoordinate(this.endPoint));let e={x:Math.min(n.x,t.x),y:Math.min(n.y,t.y)},r=Math.abs(t.x-n.x),o=Math.abs(t.y-n.y);N(this.rect,e.x,e.y,r,o)}else N(this.rect,0,0,0,0)};registryEvent(){this.context.container.addEventListener("pointerdown",this.onPointerDown),this.context.container.addEventListener("pointermove",this.onPointerMove),this.context.container.addEventListener("pointerup",this.onPointerUp),this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.container.removeEventListener("pointerdown",this.onPointerDown),this.context.container.removeEventListener("pointermove",this.onPointerMove),this.context.container.removeEventListener("pointerup",this.onPointerUp),this.context.removeEventListener("update",this.onUpdate)}doSelect(){if(this.startPoint&&this.endPoint){if(this.startPoint.distanceTo(this.endPoint)<.1)return;let{context:{camera:t,container:{clientWidth:e,clientHeight:r}}}=this,o=m(this.startPoint,t,e,r),s=m(this.endPoint,t,e,r),l={x:Math.min(o.x,s.x),y:Math.min(o.y,s.y)},u={x:Math.max(o.x,s.x),y:Math.max(o.y,s.y)},a=this.searchMapInFrustum(l,u);this.dispatchEvent({type:"selected",list:a})}}searchMapInFrustum(n,t){let{context:e}=this;return e.currentFloor?.graphicLayer.children.filter(r=>r instanceof C&&this.searchChildInFrustum(r,n,t))||[]}searchChildInFrustum(n,t,e){let{context:{camera:r,container:{clientWidth:o,clientHeight:s}}}=this;if(!n)return!1;if(!n.mesh){let f=n.getPosition();if(f){let g=m(f,r,o,s);return rt(g,t,e)}return!1}n.mesh.geometry.boundingBox||n.mesh.geometry.computeBoundingBox();let l=n.mesh.geometry.boundingBox;if(!l)return!1;let{min:u,max:a}=l,h=m(u,r,o,s),c=m(a,r,o,s);return!(!rt(h,t,e)||!rt(c,t,e))}dispose(){this.unRegistryEvent()}};var vt=class extends Ie.EventDispatcher{constructor(t){super();this.context=t;this.boxSelection=new Ut(t),this.boxSelection.setEnable(!1),this.registryEvent()}_list=new Set;boxSelection;prevPanStatus;prevRotateStatus;downPoint=null;isMultipleSelect=!1;get list(){return this._list}enableBoxSelection(){this.isMultipleSelect||(this.isMultipleSelect=!0,this.boxSelection.setEnable(!0),this.prevPanStatus=this.context.control.enablePan,this.prevRotateStatus=this.context.control.enableRotate,this.context.control.enablePan=!1,this.context.control.enableRotate=!1)}disableBoxSelection(){this.isMultipleSelect&&(this.isMultipleSelect=!1,this.boxSelection.setEnable(!1),this.context.control.enablePan=!!this.prevPanStatus,this.context.control.enableRotate=!!this.prevRotateStatus)}onPointerDown=t=>{this.downPoint={x:t.offsetX,y:t.offsetY}};onPointerUp=t=>{if(!this.downPoint)return;let{offsetX:e,offsetY:r}=t,{x:o,y:s}=this.downPoint;if(Math.sqrt((o-e)**2+(s-r)**2)>3)return;let{graphics:l}=this.context.getGraphicsByDeviceXy(e,r),u=new Set(l.map(h=>h.options.id));this.context.getPoisByDeviceXy(e,r).forEach(h=>{if(!u.has(h.options.id)){let c=this.context.currentFloor?.graphicLayer.graphicMap.get(h.options.id)||null;c&&c.options.geometry.type==="point"&&(l.push(c),u.add(h.options.id))}}),(lt?t.metaKey:t.ctrlKey)||this._list.clear(),l.forEach(h=>this._list.add(h)),this.selectEnd(),this.downPoint=null};onPointerOut=t=>{this.disableBoxSelection()};onKeyDown=t=>{Nt(t.key)&&this.enableBoxSelection()};onKeyUp=t=>{Nt(t.key)&&this.disableBoxSelection()};onBoxSelected=({list:t})=>{this._list.clear(),t.forEach(e=>{this._list.add(e)}),this.selectEnd()};selectEnd(){this.dispatchEvent({type:"select",graphics:[...this._list],isMultipleSelect:this.isMultipleSelect})}registryEvent(){this.context.container.addEventListener("pointerdown",this.onPointerDown),this.context.container.addEventListener("pointerup",this.onPointerUp),this.context.container.addEventListener("pointerout",this.onPointerOut),this.context.container.addEventListener("pointercancel",this.onPointerOut),window.addEventListener("keydown",this.onKeyDown),window.addEventListener("keyup",this.onKeyUp),this.boxSelection.addEventListener("selected",this.onBoxSelected)}unRegistryEvent(){this.context.container.removeEventListener("pointerdown",this.onPointerDown),this.context.container.removeEventListener("pointerup",this.onPointerUp),this.context.container.removeEventListener("pointerout",this.onPointerOut),this.context.container.removeEventListener("pointercancel",this.onPointerOut),window.removeEventListener("keydown",this.onKeyDown),window.removeEventListener("keyup",this.onKeyUp),this.boxSelection.removeEventListener("selected",this.onBoxSelected)}clear(){this._list.clear()}remove(t){this._list.delete(t)}dispose(){this.unRegistryEvent()}};var Le=require("three");var xt=class extends Le.EventDispatcher{constructor(t){super();this.context=t;this.registryEvent()}curGraphics=new Set;timer=new F;graphicTimerMap=new Map;onPointerMove=({graphics:t,pois:e,e:r})=>{let o=e.map(a=>this.context.currentFloor?.graphicLayer.graphicMap.get(a.options.id)).filter(a=>a&&a.options.geometry.type==="point");if(!t.length&&!o.length&&this.curGraphics.size){this.curGraphics.clear(),this.handleHoverGraphicsChange();return}let{time:s}=this.context.config.hover,l=new Set;if(o.length){let a,h=1e4;o.forEach(c=>{let f=e.find(_=>_.options.id===c.options.id),{x:g,y:d}=f.clientPos,v=Math.sqrt((g-r.offsetX)**2+(d-r.offsetY)**2);v<h&&(h=v,a=c)}),l.add(a)}l.size||t.forEach(a=>l.add(a)),l.forEach(a=>{if(this.graphicTimerMap.get(a)||this.curGraphics.has(a))return;let h=this.timer.setTimeout(()=>{this.curGraphics.add(a),this.graphicTimerMap.delete(a),this.timer.clearTimeout(h),this.handleHoverGraphicsChange()},s);this.graphicTimerMap.set(a,h)}),this.graphicTimerMap.forEach((a,h)=>{l.has(h)||(this.timer.clearTimeout(a),this.graphicTimerMap.delete(h))});let u=this.curGraphics.size;this.curGraphics.forEach(a=>{l.has(a)||this.curGraphics.delete(a)}),u!==this.curGraphics.size&&this.handleHoverGraphicsChange()};onPointerLevel=()=>{this.curGraphics.clear(),this.handleHoverGraphicsChange()};handleHoverGraphicsChange(t=this.curGraphics){this.dispatchEvent({type:"hover-change",graphics:Array.from(t)})}registryEvent(){this.context.addEventListener("pointer-over",this.onPointerMove),this.context.addEventListener("pointer-move",this.onPointerMove),this.context.addEventListener("pointer-level",this.onPointerLevel)}unRegistryEvent(){this.context.removeEventListener("pointer-over",this.onPointerMove),this.context.removeEventListener("pointer-move",this.onPointerMove),this.context.removeEventListener("pointer-level",this.onPointerLevel)}dispose(){this.unRegistryEvent(),this.timer.dispose()}};var T=require("three");function Ne(i){return`${i.x}-${i.y}-${i.z}`}var Bt=class{constructor(n){this.context=n}lineMaterialMap=new Map;meshStandardMaterialMap=new Map;meshBasicMaterialMap=new Map;shaderMaterialMap=new Map;generateLineMaterialKey({color:n,opacity:t}){return`${n}-${t}`}createLineMaterial({color:n,opacity:t}){let e=this.generateLineMaterialKey({color:n,opacity:t});if(this.lineMaterialMap.has(e))return this.lineMaterialMap.get(e);let r=new T.LineBasicMaterial({color:new T.Color(n).convertLinearToSRGB(),transparent:!0,opacity:t});return this.lineMaterialMap.set(e,r),r}createMeshStandardMaterial({color:n,opacity:t}){let e=`${n}-${t}`;if(this.meshStandardMaterialMap.has(e))return this.meshStandardMaterialMap.get(e);let r=new T.MeshStandardMaterial({color:new T.Color(n).convertLinearToSRGB(),roughness:1,transparent:!0,opacity:t,depthWrite:!0});return this.meshStandardMaterialMap.set(e,r),r}createMeshBasicMaterial({color:n,opacity:t}){let e=`${n}-${t}`;if(this.meshBasicMaterialMap.has(e))return this.meshBasicMaterialMap.get(e);let r=new T.MeshBasicMaterial({color:n,transparent:!0,opacity:t,depthWrite:!0});return this.meshBasicMaterialMap.set(e,r),r}createShaderMaterial({gradualColor:n,center:t,maxValue:e,opacity:r,direction:o,max:s,min:l}){let u=`${n.toString()}-${Ne(t)}-${e}-${r}-${Ne(o)}`;if(this.shaderMaterialMap.has(u))return this.shaderMaterialMap.get(u);let a=`
|
|
2
2
|
uniform vec3 uColor;
|
|
3
3
|
uniform vec3 uGradualColor;
|
|
4
4
|
uniform vec3 center;
|