@aibee/crc-bmap 0.14.36 → 0.14.37
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/index.cjs +2 -0
- package/lib/index.esm.min.js +2 -0
- package/lib/meta.json +3 -3
- package/package.json +1 -1
package/lib/index.cjs
CHANGED
|
@@ -346,6 +346,8 @@ void main() {
|
|
|
346
346
|
vec4 tex = texture2D(uMap, vUv);
|
|
347
347
|
if (tex.a < uAlphaTest) discard;
|
|
348
348
|
gl_FragColor = vec4(tex.rgb, tex.a * vOpacity);
|
|
349
|
+
#include <tonemapping_fragment>
|
|
350
|
+
#include <colorspace_fragment>
|
|
349
351
|
}
|
|
350
352
|
`,$s=class extends _t.Object3D{addPoi(t,e,i){this.items.set(t,{poi:t,texture:e,size:i.size,offsetY:i.offsetY,rotation:i.rotation,opacity:i.opacity,visible:!!t.visible,depthTest:i.depthTest,alphaTest:i.alphaTest,slots:[]}),this.scheduleRebuild()}removePoi(t){this.items.delete(t)&&this.scheduleRebuild()}setVisible(t,e){let i=this.items.get(t);!i||i.visible===e||(i.visible=e,this.writeOpacity(i))}setOpacity(t,e){let i=this.items.get(t);i&&(i.opacity=e,this.writeOpacity(i))}setRotation(t,e){let i=this.items.get(t);i&&(i.rotation=e/180*Math.PI,this.writeTransform(i))}setSize(t,e){let i=this.items.get(t);i&&(i.size=e,this.writeTransform(i))}setOffsetY(t,e){let i=this.items.get(t);i&&(i.offsetY=e,this.writeTransform(i))}setDepthTest(t,e){let i=this.items.get(t);!i||i.depthTest===e||(i.depthTest=e,this.scheduleRebuild())}dispose(){this.context.removeEventListener("control-zoom-change",this.onZoomChange),this.rebuildRaf!==null&&typeof cancelAnimationFrame=="function"&&cancelAnimationFrame(this.rebuildRaf),this.rebuildRaf=null,this.rebuildScheduled=!1,this.items.clear(),this.clearBuckets(),this.materials.forEach(t=>t.dispose()),this.materials.clear()}writeOpacity(t){let e=t.visible?t.opacity:0;t.slots.forEach(i=>{let{key:s,start:o}=i,n=this.buckets.get(s);n&&(n.opacity.array[o]=e,n.opacity.needsUpdate=!0)})}writeTransform(t){t.slots.forEach(e=>{let{key:i,start:s}=e,o=this.buckets.get(i);if(!o)return;let n=o.geometry,r=n.getAttribute("aSize");r.setXY(s,t.size[0],t.size[1]),r.needsUpdate=!0;let h=n.getAttribute("aOffsetY");h.setX(s,t.offsetY),h.needsUpdate=!0;let c=n.getAttribute("aRotation");c.setX(s,t.rotation),c.needsUpdate=!0})}scheduleRebuild(){if(this.rebuildScheduled)return;this.rebuildScheduled=!0;let t=()=>{this.rebuildScheduled=!1,this.rebuildRaf=null,this.rebuild()};typeof requestAnimationFrame=="function"?this.rebuildRaf=requestAnimationFrame(t):setTimeout(t,0)}clearBuckets(){this.children.slice().forEach(t=>{var e;this.remove(t),(e=t.geometry)==null||e.dispose()}),this.buckets.clear()}rebuild(){if(!this.items.size){this.clearBuckets();return}this.clearBuckets();let t=new Map;this.items.forEach(e=>{e.slots=[];let i=e.poi,s=e.texture.uuid+"|"+e.depthTest+"|"+e.alphaTest,o=t.get(s);o||(o={key:s,texture:e.texture,depthTest:e.depthTest,alphaTest:e.alphaTest,centers:[],sizes:[],offsets:[],rotations:[],opacities:[]},t.set(s,o));let n=o.centers.length/3;o.centers.push(i.position.x,i.position.y,i.position.z+.1),o.sizes.push(e.size[0],e.size[1]),o.offsets.push(e.offsetY),o.rotations.push(e.rotation),o.opacities.push(e.visible?e.opacity:0),e.slots.push({key:s,start:n})}),t.forEach(e=>{let i=e.centers.length/3;if(!i)return;let s=new _t.PlaneGeometry(1,1),o=new _t.InstancedBufferGeometry;o.index=s.index,o.setAttribute("position",s.attributes.position),o.setAttribute("uv",s.attributes.uv),o.instanceCount=i,o.setAttribute("aCenter",new _t.InstancedBufferAttribute(new Float32Array(e.centers),3)),o.setAttribute("aSize",new _t.InstancedBufferAttribute(new Float32Array(e.sizes),2)),o.setAttribute("aOffsetY",new _t.InstancedBufferAttribute(new Float32Array(e.offsets),1)),o.setAttribute("aRotation",new _t.InstancedBufferAttribute(new Float32Array(e.rotations),1));let n=new _t.InstancedBufferAttribute(new Float32Array(e.opacities),1);o.setAttribute("aOpacity",n);let r=this.getMaterial(e),h=new _t.Mesh(o,r);h.frustumCulled=!1,h.renderOrder=1e5,this.add(h),this.buckets.set(e.key,{key:e.key,texture:e.texture,depthTest:e.depthTest,alphaTest:e.alphaTest,geometry:o,mesh:h,opacity:n})})}getMaterial(t){let e=this.materials.get(t.key);if(e)return e;let i=new _t.ShaderMaterial({uniforms:{uMap:{value:t.texture},uAlphaTest:{value:t.alphaTest},uZoom:{value:this.context.camera.zoom}},vertexShader:Rc,fragmentShader:Fc,transparent:!0,depthTest:t.depthTest,depthWrite:!1,side:_t.DoubleSide});return this.materials.set(t.key,i),i}constructor(t){super(),this.context=t,this.items=new Map,this.buckets=new Map,this.materials=new Map,this.rebuildRaf=null,this.rebuildScheduled=!1,this.onZoomChange=e=>{let{zoom:i}=e,s=i!=null?i:this.context.camera.zoom;this.materials.forEach(o=>{o.uniforms.uZoom.value=s})},this.context.addEventListener("control-zoom-change",this.onZoomChange)}};var Ji=class extends ot{clear(){return this.context.collisionSystem.removeObjects(this.pois),this.pois.forEach(t=>{t.dispose()}),this.pois=[],this}createPoi(t){let e=new at(this.context,t);return this.pushPoi(e),e}removePoi(t){let e=this.pois.findIndex(i=>i===t);e!==-1&&(this.remove(t),this.pois.splice(e,1),this.context.collisionSystem.removeObject(t),t.dispose())}removePoiById(t){let e=this.pois.find(i=>i.options.id===t);e&&this.removePoi(e)}getPoiById(t){return this.pois.find(i=>i.options.id===t)||null}pushPoi(t){this.pois.includes(t)||(t.textBatch=this.textBatch,t.iconBatch=this.iconBatch,t.addEventListener("change-level",()=>this.changePoiLevelOrCollisionEnable(t)),t.addEventListener("change-collision_enable",()=>this.changePoiLevelOrCollisionEnable(t)),t.addEventListener("text-texture-rect-inited",()=>{this.active&&this.context.forceUpdate()}),t.parentSetVisible(!1),this.add(t),this.pois.push(t),this.sceneType==="mulFloors"&&(t.options.depth_test=!0),this.active&&this.context.collisionSystem.addObject(t))}changePoiLevelOrCollisionEnable(t){this.active&&(this.context.collisionSystem.removeObject(t),this.context.collisionSystem.addObject(t))}getPoiByDeviceXy(t,e){let i=new ca.Vector2(t,e);return this.pois.filter(o=>o instanceof at&&o.canSelect&&o.box.containsPoint(i))}setOpacity(t){this.pois.forEach(e=>{e.options.icon_opacity=t,e.options.text_opacity=t})}onAddToScene(t){super.onAddToScene(t);let e=t==="mulFloors";this.pois.forEach(i=>{i.options.depth_test=e,this.context.collisionSystem.addObject(i)})}onRemoveFromScene(){super.onRemoveFromScene(),this.context.collisionSystem.removeObjects(this.pois)}dispose(){var t,e;this.timer.dispose(),this.clear(),(t=this.textBatch)==null||t.dispose(),this.textBatch=null,(e=this.iconBatch)==null||e.dispose(),this.iconBatch=null,super.dispose()}constructor(t){super(t),this.pois=[],this.timer=new J,this.textBatch=null,this.iconBatch=null,t.config.poi.batchText&&(this.textBatch=new qs(t),this.add(this.textBatch)),t.config.poi.batchIcon&&(this.iconBatch=new $s(t),this.add(this.iconBatch))}};var ly=require("core-js/modules/es.regexp.exec.js"),py=require("core-js/modules/web.dom-collections.iterator.js");var Js=require("three"),la=require("lodash");var Qi=class extends ot{createParkings(t,e,i){e===void 0&&(e=!0),this.parkingOptions=t,this.merged=e,e?(i?this.createMergedParkingByMergedElements(i):this.createMergedParking(t),t.map((s,o)=>{var n;(n=s.texts[0])==null||n.split(/[,,]/).map(r=>{this.parkingNoIndexMap.set(r,o)}),this.nodeIdIndexMap.set(s.id,o)})):this.createIndependentParking(t)}load(t,e){e===void 0&&(e=!0);var i;this.createParkings(t.elements,e,t.mergedElements),(i=t.mergedParkingTexture)!=null&&i.length?this.createMergedParkingTexture(t.mergedParkingTexture):this.createParkingTexture(t.elements)}createMergedParking(t){return g(this,null,function*(){let e=new hi(this.context,t);this.mergedParkingSpace=e,this.add(e)})}createMergedParkingByMergedElements(t){let e=new ei(this.context,t);if(this.mergedParkingSpace=e,t.lineGeometry){let i=new We(this.context,t.lineGeometry);this.add(i)}this.add(e)}createIndependentParking(t){t.forEach(e=>{var i;let s=new st(this.context,w({},e,{dashed:!1}));s.userData.data=e,this.add(s),(i=e.texts[0])==null||i.split(/[,,]/).map(o=>{this.parkingNoGraphicMap.set(o,s)}),this.graphicMap.set(s.options.id,s)})}createParkingTexture(t){let e=t.filter(i=>Zs[i.parkingType]).map(i=>{let s=new Js.Vector2(...i.geometry.coords[0][0]),o=new Js.Vector2(...i.geometry.coords[0][1]),n=new Js.Vector2(...i.geometry.coords[0][2]),r=Math.min(s.distanceTo(o),o.distanceTo(n)),h=0;return r===s.distanceTo(o)?h=o.sub(s).angle()-Math.PI/2:h=n.sub(o).angle()-Math.PI/2,{uuid:i.id,iconUrl:Zs[i.parkingType],name:i.texts[0],deltaHeight:(i.deltaHeight||0)+.001,airHeight:i.airHeight,height:i.height,geometry:i.geometry,opacity:i.fillOpacity,visible:!0,secondWidth:r-1,secondHeight:r-1,secondRotate:h,centerCoords:[i.center_coord_x,i.center_coord_y]}});if(e.length){let i=new Be(this.context,e);this.add(i)}}createMergedParkingTexture(t){t.map(e=>{e.iconUrl=Zs[e.iconUrl];let i=new ze(this.context,e);this.add(i)})}changeParkingColor(t){this.merged?Object.keys(t).map(e=>{let i=this.parkingNoIndexMap.get(e);if(!(0,la.isNil)(i)){var s;(s=this.mergedParkingSpace)==null||s.setColorByIndex(i,t[e])}}):Object.keys(t).map(e=>{let i=this.parkingNoGraphicMap.get(e);i&&(i.options.fillColor=t[e])})}setOpacity(t,e){if(e===void 0&&(e=!1),this.parkingOptions.forEach(s=>{if(e)s.fillOpacity=t,s.strokeOpacity=t;else{let r=this.parkingOriginOptions.get(s.id);var o;s.fillOpacity=Math.min(t,(o=r==null?void 0:r.fillOpacity)!=null?o:1);var n;s.strokeOpacity=Math.min(t,(n=r==null?void 0:r.strokeOpacity)!=null?n:1)}}),this.merged)if(this.mergedParkingSpace instanceof hi)this.mergedParkingSpace.setOpacity(t,e);else{var i;(i=this.mergedParkingSpace)==null||i.setOpacity(t,e)}else this.graphicMap.forEach(s=>{s.setOpacity(t,e)});this.children.filter(s=>s instanceof Be||s instanceof ze).map(s=>s.setOpacity(t))}getParkingOptionsByParkingNo(t){return this.parkingOptions.find(i=>i.texts[0]===t)||null}getGraphicPosition(t){if(this.merged){let e=this.parkingOptions.find(i=>i.id===t);return e?[e.center_x,e.center_y]:null}}getParkingSpaceByRaycaster(t){let e={distance:1/0,graphic:null,position:null},i=this.children.filter(s=>s instanceof st).reduce((s,o)=>{if(o instanceof st){let n=o.raycast(t);if(n){let{distance:r}=n;if(r<s.distance)return{distance:n.distance,position:n.position,graphic:o}}return s}else return s},e);return i===e?{graphics:[],position:null,distance:1/0}:{graphics:[i.graphic],distance:i.distance,position:i.position}}dispose(){var t;(t=this.mergedParkingSpace)==null||t.dispose(),this.mergedParkingSpace=null,G(this),this.graphicMap.clear(),this.parkingNoGraphicMap.clear(),this.parkingNoIndexMap.clear(),this.nodeIdIndexMap.clear(),this.parkingOptions=[],super.dispose()}constructor(t){super(t),this.graphicMap=new Map,this.parkingNoGraphicMap=new Map,this.parkingOriginOptions=new Map,this.parkingOptions=[],this.merged=!1,this.parkingNoIndexMap=new Map,this.nodeIdIndexMap=new Map,this.mergedParkingSpace=null}};var vy=require("core-js/modules/es.array.push.js");var ts=class extends ot{addModels(t){let e=t.reduce((i,s)=>{let{url:o}=s;return i[o]?i[o].push(s):i[o]=[s],i},{});Object.values(e).forEach(i=>{let s=new es(this.context,i);this.add(s)})}constructor(t){super(t)}};var zy=require("core-js/modules/web.dom-collections.iterator.js");var Kt=require("three");var da=require("three/examples/jsm/lines/LineMaterial.js"),nt=require("three");function pa(a){return`${a.x}-${a.y}-${a.z}`}var zt=class{static generateLineMaterialKey({color:t,opacity:e}){return`${t}-${e}`}static createLineMaterial({color:t,opacity:e,vertexColors:i}){let s=this.generateLineMaterialKey({color:t,opacity:e,vertexColors:i});if(this.lineMaterialMap.has(s))return this.lineMaterialMap.get(s);let o=new nt.LineBasicMaterial({color:new nt.Color(t).convertLinearToSRGB(),transparent:!0,opacity:e,vertexColors:i!=null?i:!1});return this.lineMaterialMap.set(s,o),o}static createMeshStandardMaterial({color:t,opacity:e}){let i=`${t}-${e}`;if(this.meshStandardMaterialMap.has(i))return this.meshStandardMaterialMap.get(i);let s=new nt.MeshStandardMaterial({color:new nt.Color(t).convertLinearToSRGB(),roughness:1,transparent:!0,opacity:e,depthWrite:!0});return this.meshStandardMaterialMap.set(i,s),s}static createMeshBasicMaterial({color:t,opacity:e,vertexColors:i}){let s=`${t}-${e}-${i}`;if(this.meshBasicMaterialMap.has(s))return this.meshBasicMaterialMap.get(s);let o=new nt.MeshBasicMaterial({color:t,transparent:!0,opacity:e,depthWrite:!0,vertexColors:i!=null?i:!1});return this.meshBasicMaterialMap.set(s,o),o}static createShaderMaterial({gradualColor:t,opacity:e,max:i,min:s}){let o=`${t.toString()}-${e}-${pa(s)}-${pa(i)}`;if(this.shaderMaterialMap.has(o))return this.shaderMaterialMap.get(o);let n=`
|
|
351
353
|
uniform vec3 uColor;
|
package/lib/index.esm.min.js
CHANGED
|
@@ -346,6 +346,8 @@ void main() {
|
|
|
346
346
|
vec4 tex = texture2D(uMap, vUv);
|
|
347
347
|
if (tex.a < uAlphaTest) discard;
|
|
348
348
|
gl_FragColor = vec4(tex.rgb, tex.a * vOpacity);
|
|
349
|
+
#include <tonemapping_fragment>
|
|
350
|
+
#include <colorspace_fragment>
|
|
349
351
|
}
|
|
350
352
|
`,Ii=class extends tl{addPoi(t,e,i){this.items.set(t,{poi:t,texture:e,size:i.size,offsetY:i.offsetY,rotation:i.rotation,opacity:i.opacity,visible:!!t.visible,depthTest:i.depthTest,alphaTest:i.alphaTest,slots:[]}),this.scheduleRebuild()}removePoi(t){this.items.delete(t)&&this.scheduleRebuild()}setVisible(t,e){let i=this.items.get(t);!i||i.visible===e||(i.visible=e,this.writeOpacity(i))}setOpacity(t,e){let i=this.items.get(t);i&&(i.opacity=e,this.writeOpacity(i))}setRotation(t,e){let i=this.items.get(t);i&&(i.rotation=e/180*Math.PI,this.writeTransform(i))}setSize(t,e){let i=this.items.get(t);i&&(i.size=e,this.writeTransform(i))}setOffsetY(t,e){let i=this.items.get(t);i&&(i.offsetY=e,this.writeTransform(i))}setDepthTest(t,e){let i=this.items.get(t);!i||i.depthTest===e||(i.depthTest=e,this.scheduleRebuild())}dispose(){this.context.removeEventListener("control-zoom-change",this.onZoomChange),this.rebuildRaf!==null&&typeof cancelAnimationFrame=="function"&&cancelAnimationFrame(this.rebuildRaf),this.rebuildRaf=null,this.rebuildScheduled=!1,this.items.clear(),this.clearBuckets(),this.materials.forEach(t=>t.dispose()),this.materials.clear()}writeOpacity(t){let e=t.visible?t.opacity:0;t.slots.forEach(i=>{let{key:s,start:o}=i,n=this.buckets.get(s);n&&(n.opacity.array[o]=e,n.opacity.needsUpdate=!0)})}writeTransform(t){t.slots.forEach(e=>{let{key:i,start:s}=e,o=this.buckets.get(i);if(!o)return;let n=o.geometry,r=n.getAttribute("aSize");r.setXY(s,t.size[0],t.size[1]),r.needsUpdate=!0;let h=n.getAttribute("aOffsetY");h.setX(s,t.offsetY),h.needsUpdate=!0;let c=n.getAttribute("aRotation");c.setX(s,t.rotation),c.needsUpdate=!0})}scheduleRebuild(){if(this.rebuildScheduled)return;this.rebuildScheduled=!0;let t=()=>{this.rebuildScheduled=!1,this.rebuildRaf=null,this.rebuild()};typeof requestAnimationFrame=="function"?this.rebuildRaf=requestAnimationFrame(t):setTimeout(t,0)}clearBuckets(){this.children.slice().forEach(t=>{var e;this.remove(t),(e=t.geometry)==null||e.dispose()}),this.buckets.clear()}rebuild(){if(!this.items.size){this.clearBuckets();return}this.clearBuckets();let t=new Map;this.items.forEach(e=>{e.slots=[];let i=e.poi,s=e.texture.uuid+"|"+e.depthTest+"|"+e.alphaTest,o=t.get(s);o||(o={key:s,texture:e.texture,depthTest:e.depthTest,alphaTest:e.alphaTest,centers:[],sizes:[],offsets:[],rotations:[],opacities:[]},t.set(s,o));let n=o.centers.length/3;o.centers.push(i.position.x,i.position.y,i.position.z+.1),o.sizes.push(e.size[0],e.size[1]),o.offsets.push(e.offsetY),o.rotations.push(e.rotation),o.opacities.push(e.visible?e.opacity:0),e.slots.push({key:s,start:n})}),t.forEach(e=>{let i=e.centers.length/3;if(!i)return;let s=new el(1,1),o=new Jc;o.index=s.index,o.setAttribute("position",s.attributes.position),o.setAttribute("uv",s.attributes.uv),o.instanceCount=i,o.setAttribute("aCenter",new Ke(new Float32Array(e.centers),3)),o.setAttribute("aSize",new Ke(new Float32Array(e.sizes),2)),o.setAttribute("aOffsetY",new Ke(new Float32Array(e.offsets),1)),o.setAttribute("aRotation",new Ke(new Float32Array(e.rotations),1));let n=new Ke(new Float32Array(e.opacities),1);o.setAttribute("aOpacity",n);let r=this.getMaterial(e),h=new Qc(o,r);h.frustumCulled=!1,h.renderOrder=1e5,this.add(h),this.buckets.set(e.key,{key:e.key,texture:e.texture,depthTest:e.depthTest,alphaTest:e.alphaTest,geometry:o,mesh:h,opacity:n})})}getMaterial(t){let e=this.materials.get(t.key);if(e)return e;let i=new il({uniforms:{uMap:{value:t.texture},uAlphaTest:{value:t.alphaTest},uZoom:{value:this.context.camera.zoom}},vertexShader:sl,fragmentShader:ol,transparent:!0,depthTest:t.depthTest,depthWrite:!1,side:$c});return this.materials.set(t.key,i),i}constructor(t){super(),this.context=t,this.items=new Map,this.buckets=new Map,this.materials=new Map,this.rebuildRaf=null,this.rebuildScheduled=!1,this.onZoomChange=e=>{let{zoom:i}=e,s=i!=null?i:this.context.camera.zoom;this.materials.forEach(o=>{o.uniforms.uZoom.value=s})},this.context.addEventListener("control-zoom-change",this.onZoomChange)}};var Gi=class extends q{clear(){return this.context.collisionSystem.removeObjects(this.pois),this.pois.forEach(t=>{t.dispose()}),this.pois=[],this}createPoi(t){let e=new et(this.context,t);return this.pushPoi(e),e}removePoi(t){let e=this.pois.findIndex(i=>i===t);e!==-1&&(this.remove(t),this.pois.splice(e,1),this.context.collisionSystem.removeObject(t),t.dispose())}removePoiById(t){let e=this.pois.find(i=>i.options.id===t);e&&this.removePoi(e)}getPoiById(t){return this.pois.find(i=>i.options.id===t)||null}pushPoi(t){this.pois.includes(t)||(t.textBatch=this.textBatch,t.iconBatch=this.iconBatch,t.addEventListener("change-level",()=>this.changePoiLevelOrCollisionEnable(t)),t.addEventListener("change-collision_enable",()=>this.changePoiLevelOrCollisionEnable(t)),t.addEventListener("text-texture-rect-inited",()=>{this.active&&this.context.forceUpdate()}),t.parentSetVisible(!1),this.add(t),this.pois.push(t),this.sceneType==="mulFloors"&&(t.options.depth_test=!0),this.active&&this.context.collisionSystem.addObject(t))}changePoiLevelOrCollisionEnable(t){this.active&&(this.context.collisionSystem.removeObject(t),this.context.collisionSystem.addObject(t))}getPoiByDeviceXy(t,e){let i=new nl(t,e);return this.pois.filter(o=>o instanceof et&&o.canSelect&&o.box.containsPoint(i))}setOpacity(t){this.pois.forEach(e=>{e.options.icon_opacity=t,e.options.text_opacity=t})}onAddToScene(t){super.onAddToScene(t);let e=t==="mulFloors";this.pois.forEach(i=>{i.options.depth_test=e,this.context.collisionSystem.addObject(i)})}onRemoveFromScene(){super.onRemoveFromScene(),this.context.collisionSystem.removeObjects(this.pois)}dispose(){var t,e;this.timer.dispose(),this.clear(),(t=this.textBatch)==null||t.dispose(),this.textBatch=null,(e=this.iconBatch)==null||e.dispose(),this.iconBatch=null,super.dispose()}constructor(t){super(t),this.pois=[],this.timer=new X,this.textBatch=null,this.iconBatch=null,t.config.poi.batchText&&(this.textBatch=new Fi(t),this.add(this.textBatch)),t.config.poi.batchIcon&&(this.iconBatch=new Ii(t),this.add(this.iconBatch))}};import"core-js/modules/es.regexp.exec.js";import"core-js/modules/web.dom-collections.iterator.js";import{Vector2 as po}from"three";import{isNil as rl}from"lodash";var Bi=class extends q{createParkings(t,e,i){e===void 0&&(e=!0),this.parkingOptions=t,this.merged=e,e?(i?this.createMergedParkingByMergedElements(i):this.createMergedParking(t),t.map((s,o)=>{var n;(n=s.texts[0])==null||n.split(/[,,]/).map(r=>{this.parkingNoIndexMap.set(r,o)}),this.nodeIdIndexMap.set(s.id,o)})):this.createIndependentParking(t)}load(t,e){e===void 0&&(e=!0);var i;this.createParkings(t.elements,e,t.mergedElements),(i=t.mergedParkingTexture)!=null&&i.length?this.createMergedParkingTexture(t.mergedParkingTexture):this.createParkingTexture(t.elements)}createMergedParking(t){return g(this,null,function*(){let e=new Ye(this.context,t);this.mergedParkingSpace=e,this.add(e)})}createMergedParkingByMergedElements(t){let e=new Ee(this.context,t);if(this.mergedParkingSpace=e,t.lineGeometry){let i=new pe(this.context,t.lineGeometry);this.add(i)}this.add(e)}createIndependentParking(t){t.forEach(e=>{var i;let s=new Y(this.context,w({},e,{dashed:!1}));s.userData.data=e,this.add(s),(i=e.texts[0])==null||i.split(/[,,]/).map(o=>{this.parkingNoGraphicMap.set(o,s)}),this.graphicMap.set(s.options.id,s)})}createParkingTexture(t){let e=t.filter(i=>Ci[i.parkingType]).map(i=>{let s=new po(...i.geometry.coords[0][0]),o=new po(...i.geometry.coords[0][1]),n=new po(...i.geometry.coords[0][2]),r=Math.min(s.distanceTo(o),o.distanceTo(n)),h=0;return r===s.distanceTo(o)?h=o.sub(s).angle()-Math.PI/2:h=n.sub(o).angle()-Math.PI/2,{uuid:i.id,iconUrl:Ci[i.parkingType],name:i.texts[0],deltaHeight:(i.deltaHeight||0)+.001,airHeight:i.airHeight,height:i.height,geometry:i.geometry,opacity:i.fillOpacity,visible:!0,secondWidth:r-1,secondHeight:r-1,secondRotate:h,centerCoords:[i.center_coord_x,i.center_coord_y]}});if(e.length){let i=new ce(this.context,e);this.add(i)}}createMergedParkingTexture(t){t.map(e=>{e.iconUrl=Ci[e.iconUrl];let i=new le(this.context,e);this.add(i)})}changeParkingColor(t){this.merged?Object.keys(t).map(e=>{let i=this.parkingNoIndexMap.get(e);if(!rl(i)){var s;(s=this.mergedParkingSpace)==null||s.setColorByIndex(i,t[e])}}):Object.keys(t).map(e=>{let i=this.parkingNoGraphicMap.get(e);i&&(i.options.fillColor=t[e])})}setOpacity(t,e){if(e===void 0&&(e=!1),this.parkingOptions.forEach(s=>{if(e)s.fillOpacity=t,s.strokeOpacity=t;else{let r=this.parkingOriginOptions.get(s.id);var o;s.fillOpacity=Math.min(t,(o=r==null?void 0:r.fillOpacity)!=null?o:1);var n;s.strokeOpacity=Math.min(t,(n=r==null?void 0:r.strokeOpacity)!=null?n:1)}}),this.merged)if(this.mergedParkingSpace instanceof Ye)this.mergedParkingSpace.setOpacity(t,e);else{var i;(i=this.mergedParkingSpace)==null||i.setOpacity(t,e)}else this.graphicMap.forEach(s=>{s.setOpacity(t,e)});this.children.filter(s=>s instanceof ce||s instanceof le).map(s=>s.setOpacity(t))}getParkingOptionsByParkingNo(t){return this.parkingOptions.find(i=>i.texts[0]===t)||null}getGraphicPosition(t){if(this.merged){let e=this.parkingOptions.find(i=>i.id===t);return e?[e.center_x,e.center_y]:null}}getParkingSpaceByRaycaster(t){let e={distance:1/0,graphic:null,position:null},i=this.children.filter(s=>s instanceof Y).reduce((s,o)=>{if(o instanceof Y){let n=o.raycast(t);if(n){let{distance:r}=n;if(r<s.distance)return{distance:n.distance,position:n.position,graphic:o}}return s}else return s},e);return i===e?{graphics:[],position:null,distance:1/0}:{graphics:[i.graphic],distance:i.distance,position:i.position}}dispose(){var t;(t=this.mergedParkingSpace)==null||t.dispose(),this.mergedParkingSpace=null,F(this),this.graphicMap.clear(),this.parkingNoGraphicMap.clear(),this.parkingNoIndexMap.clear(),this.nodeIdIndexMap.clear(),this.parkingOptions=[],super.dispose()}constructor(t){super(t),this.graphicMap=new Map,this.parkingNoGraphicMap=new Map,this.parkingOriginOptions=new Map,this.parkingOptions=[],this.merged=!1,this.parkingNoIndexMap=new Map,this.nodeIdIndexMap=new Map,this.mergedParkingSpace=null}};import"core-js/modules/es.array.push.js";var zi=class extends q{addModels(t){let e=t.reduce((i,s)=>{let{url:o}=s;return i[o]?i[o].push(s):i[o]=[s],i},{});Object.values(e).forEach(i=>{let s=new Wi(this.context,i);this.add(s)})}constructor(t){super(t)}};import"core-js/modules/web.dom-collections.iterator.js";import{Box3 as fl,Group as ur,Matrix4 as gl,Quaternion as yl,Vector3 as mo}from"three";import{LineMaterial as al}from"three/examples/jsm/lines/LineMaterial.js";import{Color as qe,LineBasicMaterial as hl,MeshStandardMaterial as cl,MeshBasicMaterial as ll,ShaderMaterial as Se,DoubleSide as pl,LineDashedMaterial as dl}from"three";function pr(a){return`${a.x}-${a.y}-${a.z}`}var ut=class{static generateLineMaterialKey({color:t,opacity:e}){return`${t}-${e}`}static createLineMaterial({color:t,opacity:e,vertexColors:i}){let s=this.generateLineMaterialKey({color:t,opacity:e,vertexColors:i});if(this.lineMaterialMap.has(s))return this.lineMaterialMap.get(s);let o=new hl({color:new qe(t).convertLinearToSRGB(),transparent:!0,opacity:e,vertexColors:i!=null?i:!1});return this.lineMaterialMap.set(s,o),o}static createMeshStandardMaterial({color:t,opacity:e}){let i=`${t}-${e}`;if(this.meshStandardMaterialMap.has(i))return this.meshStandardMaterialMap.get(i);let s=new cl({color:new qe(t).convertLinearToSRGB(),roughness:1,transparent:!0,opacity:e,depthWrite:!0});return this.meshStandardMaterialMap.set(i,s),s}static createMeshBasicMaterial({color:t,opacity:e,vertexColors:i}){let s=`${t}-${e}-${i}`;if(this.meshBasicMaterialMap.has(s))return this.meshBasicMaterialMap.get(s);let o=new ll({color:t,transparent:!0,opacity:e,depthWrite:!0,vertexColors:i!=null?i:!1});return this.meshBasicMaterialMap.set(s,o),o}static createShaderMaterial({gradualColor:t,opacity:e,max:i,min:s}){let o=`${t.toString()}-${e}-${pr(s)}-${pr(i)}`;if(this.shaderMaterialMap.has(o))return this.shaderMaterialMap.get(o);let n=`
|
|
351
353
|
uniform vec3 uColor;
|
package/lib/meta.json
CHANGED
|
@@ -2111,7 +2111,7 @@
|
|
|
2111
2111
|
"format": "esm"
|
|
2112
2112
|
},
|
|
2113
2113
|
"../lib/src/layer/poi-icon-batch.js": {
|
|
2114
|
-
"bytes":
|
|
2114
|
+
"bytes": 10718,
|
|
2115
2115
|
"imports": [
|
|
2116
2116
|
{
|
|
2117
2117
|
"path": "core-js/modules/web.dom-collections.iterator.js",
|
|
@@ -10473,7 +10473,7 @@
|
|
|
10473
10473
|
"bytesInOutput": 6773
|
|
10474
10474
|
},
|
|
10475
10475
|
"../lib/src/layer/poi-icon-batch.js": {
|
|
10476
|
-
"bytesInOutput":
|
|
10476
|
+
"bytesInOutput": 5870
|
|
10477
10477
|
},
|
|
10478
10478
|
"../lib/src/layer/parking-layer.js": {
|
|
10479
10479
|
"bytesInOutput": 4035
|
|
@@ -10764,7 +10764,7 @@
|
|
|
10764
10764
|
"bytesInOutput": 0
|
|
10765
10765
|
}
|
|
10766
10766
|
},
|
|
10767
|
-
"bytes":
|
|
10767
|
+
"bytes": 472254
|
|
10768
10768
|
}
|
|
10769
10769
|
}
|
|
10770
10770
|
}
|