@anov/3d 0.0.129 → 0.0.131
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/factory/unit/CameraPoi.js +12 -40
- package/dist/factory/unit/CameraPoi.js.map +1 -1
- package/dist/factory/unit/circle.js +3 -1
- package/dist/factory/unit/circle.js.map +1 -1
- package/dist/factory/unit/cylinder.js +4 -2
- package/dist/factory/unit/cylinder.js.map +1 -1
- package/dist/factory/unit/inspection/InspectionObject.js +1 -2
- package/dist/factory/unit/inspection/InspectionObject.js.map +1 -1
- package/dist/factory/unit/poi.js +13 -24
- package/dist/factory/unit/poi.js.map +1 -1
- package/package.json +2 -2
|
@@ -141,7 +141,7 @@ var CameraPoi = /*#__PURE__*/function () {
|
|
|
141
141
|
var group = new Group();
|
|
142
142
|
group.name = region.id;
|
|
143
143
|
var sprite = new SpritePoi("".concat(usePath, "p4/camera.png"), {
|
|
144
|
-
scale: [
|
|
144
|
+
scale: [22, 22, 1]
|
|
145
145
|
});
|
|
146
146
|
sprite.rotation.y = Math.PI;
|
|
147
147
|
var position = new Vector3().fromArray(region.position);
|
|
@@ -164,7 +164,7 @@ var CameraPoi = /*#__PURE__*/function () {
|
|
|
164
164
|
var mesh;
|
|
165
165
|
if (item.warn) {
|
|
166
166
|
mesh = new SpritePoi("".concat(usePath, "p4/warn.png"), {
|
|
167
|
-
scale: [
|
|
167
|
+
scale: [22, 22, 1]
|
|
168
168
|
});
|
|
169
169
|
_this.gobal.interactionManager.add(mesh);
|
|
170
170
|
_this.probeEvent(mesh, item);
|
|
@@ -742,26 +742,6 @@ var Dialog = /*#__PURE__*/function () {
|
|
|
742
742
|
};
|
|
743
743
|
var slider = this.getFovView(cb);
|
|
744
744
|
dialogDiv.appendChild(slider);
|
|
745
|
-
|
|
746
|
-
// // 滑动条
|
|
747
|
-
// const sliderDiv = document.createElement('div')
|
|
748
|
-
// sliderDiv.className = 'dialog-slider-container'
|
|
749
|
-
// const sliderBar = document.createElement('input')
|
|
750
|
-
// sliderBar.type = 'range'
|
|
751
|
-
// sliderBar.min = '30'
|
|
752
|
-
// sliderBar.max = '120'
|
|
753
|
-
// sliderBar.value = '60'
|
|
754
|
-
// sliderBar.className = 'dialog-slider'
|
|
755
|
-
// sliderBar.addEventListener('input', () => {
|
|
756
|
-
// camera.fov = sliderBar.value
|
|
757
|
-
// camera.updateProjectionMatrix()
|
|
758
|
-
// const { texture, close } = this.manage.gobal.scene.setCustomPerspective(camera)
|
|
759
|
-
// sprite.material = new SpriteMaterial({ map: texture, depthTest: false, depthWrite: false })
|
|
760
|
-
// setTimeout(() => close(), 800)
|
|
761
|
-
// })
|
|
762
|
-
// sliderDiv.appendChild(sliderBar)
|
|
763
|
-
// dialogDiv.appendChild(sliderDiv)
|
|
764
|
-
|
|
765
745
|
var borderMesh = new Css2DPoi(dialogDiv);
|
|
766
746
|
borderMesh.position.copy(sprite.position);
|
|
767
747
|
return borderMesh;
|
|
@@ -771,25 +751,25 @@ var Dialog = /*#__PURE__*/function () {
|
|
|
771
751
|
value: function getFovView(cb) {
|
|
772
752
|
var data = [{
|
|
773
753
|
text: '0.5',
|
|
774
|
-
fov: '
|
|
754
|
+
fov: '90'
|
|
775
755
|
}, {
|
|
776
756
|
text: '1',
|
|
777
|
-
fov: '
|
|
757
|
+
fov: '80'
|
|
778
758
|
}, {
|
|
779
759
|
text: '1.5',
|
|
780
|
-
fov: '
|
|
760
|
+
fov: '70'
|
|
781
761
|
}, {
|
|
782
762
|
text: '2.0',
|
|
783
|
-
fov: '
|
|
763
|
+
fov: '60'
|
|
784
764
|
}, {
|
|
785
765
|
text: '2.5',
|
|
786
|
-
fov: '
|
|
766
|
+
fov: '50'
|
|
787
767
|
}, {
|
|
788
768
|
text: '3.0',
|
|
789
|
-
fov: '
|
|
769
|
+
fov: '40'
|
|
790
770
|
}, {
|
|
791
771
|
text: '3.5',
|
|
792
|
-
fov: '
|
|
772
|
+
fov: '30'
|
|
793
773
|
}];
|
|
794
774
|
var container = document.createElement('div');
|
|
795
775
|
container.className = 'dialog-slider-container';
|
|
@@ -826,11 +806,7 @@ var Dialog = /*#__PURE__*/function () {
|
|
|
826
806
|
});
|
|
827
807
|
};
|
|
828
808
|
container.addEventListener('scroll', function () {
|
|
829
|
-
if (container.scrollTop <= 0)
|
|
830
|
-
container.scrollTop += totalHeight;
|
|
831
|
-
} else if (container.scrollTop >= totalHeight * 2) {
|
|
832
|
-
container.scrollTop -= totalHeight;
|
|
833
|
-
}
|
|
809
|
+
if (container.scrollTop <= 0) container.scrollTop += totalHeight;else if (container.scrollTop >= totalHeight * 2) container.scrollTop -= totalHeight;
|
|
834
810
|
highlightMiddleItem();
|
|
835
811
|
});
|
|
836
812
|
var smoothScrollTo = function smoothScrollTo(targetPosition) {
|
|
@@ -843,11 +819,7 @@ var Dialog = /*#__PURE__*/function () {
|
|
|
843
819
|
var progress = timestamp - start;
|
|
844
820
|
var progressRatio = Math.min(progress / duration, 1);
|
|
845
821
|
container.scrollTop = startPosition + distance * progressRatio;
|
|
846
|
-
if (progress < duration)
|
|
847
|
-
window.requestAnimationFrame(step);
|
|
848
|
-
} else {
|
|
849
|
-
highlightMiddleItem();
|
|
850
|
-
}
|
|
822
|
+
if (progress < duration) window.requestAnimationFrame(step);else highlightMiddleItem();
|
|
851
823
|
};
|
|
852
824
|
window.requestAnimationFrame(step);
|
|
853
825
|
};
|
|
@@ -862,7 +834,7 @@ var Dialog = /*#__PURE__*/function () {
|
|
|
862
834
|
});
|
|
863
835
|
});
|
|
864
836
|
setTimeout(function () {
|
|
865
|
-
//items && (items[3] as HTMLDivElement).click()
|
|
837
|
+
// items && (items[3] as HTMLDivElement).click()
|
|
866
838
|
container.scrollTop = totalHeight;
|
|
867
839
|
highlightMiddleItem();
|
|
868
840
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AdditiveBlending","Box3","CircleGeometry","Clock","Color","DoubleSide","Group","MathUtils","Matrix4","Mesh","MeshBasicMaterial","ModelLoader","PerspectiveCamera","PlaneGeometry","ShaderMaterial","Sprite","SpriteMaterial","Texture","TextureLoader","Vector3","gsap","use","Css2DPoi","SpritePoi","heatMap","MessageType","sendToMessage","EMessageStatus","loadingManager","usePath","data","camera","id","name","position","fovDefault","fovRange","dialogCamera","rotation","probePoint","warn","load","CameraPoi","gobal","Map","Set","dialogManage","Dialog","addStyle","loadGLTF","gltf","model","forEach","region","group","sprite","scale","y","Math","PI","fromArray","copy","add","scan","scene","clone","addScalar","x","cameraMesh","set","interactionManager","cameraEvent","point","MethanePoint","item","mesh","probeEvent","to","duration","ease","yoyo","repeat","create","warnMesh","rotatingRight","unFrame","useframe","children","z","abs","eventListener","fn","currentDialogMesh","isClose","close","headMap","isShow","closeHotmap","useScene","startPosition","cameraLookAt","getWorldDirection","Event","Success","undefined","targetPosition","toArray","camaraPosition","cameraUtil","target","setMeshVisible","getMesh","addEventListener","visible","removeEventListener","HeadMap","unClick","togglePoi","then","distanceTo","orbitControls","enabled","remove","removeFromParent","clear","geometry","texture","circle","map","side","transparent","rotateX","material","vertexShader","fragmentShader","blending","depthTest","color","numPoints","i","random","cameraManage","manage","careraParams","window","innerWidth","innerHeight","setCustomPerspective","cuteSprite","depthWrite","center","renderOrder","updateScale","Promise","reslove","setTimeout","borderMesh","getBorderMesh","cuteSprites","push","cameraPosition","angleX","degToRad","angleY","angleZ","rotationMatrix","makeRotationX","multiply","makeRotationY","makeRotationZ","cameraDirection","targetDirection","applyMatrix4","devicePixelRatio","bbox","setFromObject","min","project","max","console","log","w","h","dom","document","querySelector","clientWidth","clientHeight","ratio","fov","width","height","scaleFactor","minDistance","maxDistance","objectPosition","distance","clampedDistance","eventName","eventList","has","getBoxSize","dialogDiv","createElement","Object","assign","style","maskingDiv","className","appendChild","closeSpan","op","opList","key","btnSpan","handleClick","clock","longPress","time","getDelta","clearTimeout","cb","updateProjectionMatrix","slider","getFovView","text","container","itemsContainer","div","innerHTML","setAttribute","items","itemHeight","totalHeight","length","cloneItems","Array","from","cloneNode","highlightMiddleItem","middlePosition","scrollTop","middleIndex","floor","index","classList","getAttribute","smoothScrollTo","start","step","timestamp","progress","progressRatio","requestAnimationFrame","scrollToItem","indexOf","conSlider","css","styleElement","createTextNode","head","get","heatmap","createDom","gradient","TemperatureColorStops","len","points","val","value","setData","greymap","heatMapMaterial","uniforms","greyMap","Zscale","u_color","u_opacity","_renderer","canvas","needsUpdate","greyTexture","tan","aspect","heatMapGeometry","heatMapPlane","backEle","body","zIndex","canvasList"],"sources":["../../../src/factory/unit/CameraPoi.ts"],"sourcesContent":["import type { Object3D } from '@anov/3d-core'\nimport { AdditiveBlending, Box3, CircleGeometry, Clock, Color, DoubleSide, Euler, Group, MathUtils, Matrix4, Mesh, MeshBasicMaterial, ModelLoader, PerspectiveCamera, PlaneGeometry, ShaderMaterial, Sprite, SpriteMaterial, Texture, TextureLoader, Vector3, WebGLRenderTarget, gsap, use, utils } from '@anov/3d-core'\nimport { Css2DPoi, SpritePoi } from '@anov/3d-ability'\nimport heatMap from 'anov-heat-map'\nimport { MessageType, sendToMessage } from '../../utils/messageFn'\nimport { EMessageStatus } from '../../messageStatus'\nimport { loadingManager, usePath } from '../3d'\n\n// @ts-ignore\nimport type Factory3D from '../3d'\n\nconst data = {\n camera: [\n {\n id: '1',\n name: '摄像头1',\n position: [-315, 30, -150],\n fovDefault: 60,\n fovRange: [30, 120],\n dialogCamera: {\n position: [-315, 30, -150],\n rotation: [30, 180, 0],\n },\n },\n {\n id: '2',\n name: '摄像头2',\n position: [30, 30, -150],\n fovDefault: 60,\n fovRange: [30, 120],\n dialogCamera: {\n position: [30, 30, -150],\n rotation: [30, 180, 0],\n },\n },\n {\n id: '3',\n name: '摄像头3',\n position: [360, 30, -150],\n fovDefault: 60,\n fovRange: [30, 120],\n dialogCamera: {\n position: [360, 30, -150],\n rotation: [30, 180, 0],\n },\n },\n {\n id: '4',\n name: '摄像头4',\n position: [-320, 30, 32],\n dialogCamera: {\n position: [-320, 30, 32],\n rotation: [30, 180, 0],\n },\n },\n {\n id: '5',\n name: '摄像头5',\n position: [-307, 30, 170],\n fovDefault: 60,\n fovRange: [30, 120],\n dialogCamera: {\n position: [-307, 30, 170],\n rotation: [30, 180, 0],\n },\n },\n {\n id: '6',\n name: '摄像头6',\n position: [77, 30, 96],\n fovDefault: 60,\n fovRange: [30, 120],\n dialogCamera: {\n position: [77, 30, 96],\n rotation: [30, 180, 0],\n },\n },\n {\n id: '7',\n name: '摄像头7',\n position: [404, 30, 85],\n fovDefault: 60,\n fovRange: [30, 120],\n dialogCamera: {\n position: [404, 30, 85],\n rotation: [30, 180, 0],\n },\n },\n ],\n probePoint: [\n {\n id: '1',\n name: '异常监测点1',\n warn: true,\n position: [56, 21, 86],\n },\n {\n id: '2',\n name: '甲烷监测点2',\n warn: false,\n position: [384, 21, 75],\n },\n {\n id: '3',\n name: '甲烷监测点3',\n warn: false,\n position: [9, 21, -134],\n },\n ],\n}\n\nconst load = new ModelLoader()\nclass CameraPoi {\n gobal: Factory3D\n cameraMesh: Map<string, Group> = new Map()\n warnMesh: Map<string, SpritePoi> = new Map()\n headMap: HeadMap\n dialogManage: Dialog\n eventListener: Set<Function> = new Set()\n\n currentDialogMesh: Group\n startPosition: Vector3\n cameraLookAt: Vector3\n\n constructor(gobal: Factory3D) {\n this.gobal = gobal\n this.dialogManage = new Dialog(this)\n this.dialogManage.addStyle()\n }\n\n async generateObject() {\n const model = await load.loadGLTF(`${usePath}shexiang.glb`, false, true, './draco/', (gltf) => {\n return gltf\n })\n\n data.camera.forEach((region) => {\n const group = new Group()\n group.name = region.id\n const sprite = new SpritePoi(`${usePath}p4/camera.png`, { scale: [16, 16, 1] })\n sprite.rotation.y = Math.PI\n const position = new Vector3().fromArray(region.position)\n sprite.position.copy(position)\n group.add(sprite)\n\n const scan = model.scene.clone()\n scan.scale.addScalar(8)\n scan.rotation.x = (-Math.PI / 2) + 0.5\n scan.position.copy(position.clone().add(new Vector3(0, -2, 0)))\n group.add(scan)\n\n this.cameraMesh.set(region.name, group)\n this.gobal.interactionManager.add(group)\n this.cameraEvent(group, region)\n this.gobal.scene.add(group)\n })\n\n // 甲烷检测点\n const point = new MethanePoint()\n data.probePoint?.forEach((item) => {\n let mesh\n if (item.warn) {\n mesh = new SpritePoi(`${usePath}p4/warn.png`, { scale: [16, 16, 1] })\n this.gobal.interactionManager.add(mesh)\n this.probeEvent(mesh, item)\n // 使用GSAP创建跳动动画\n gsap.to(mesh.position, {\n y: '+=3', // 上跳10个单位\n duration: 0.2, // 动画持续时间\n ease: 'power1.inOut', // 缓动函数\n yoyo: true, // 循环\n repeat: -1, // 无限重复\n })\n }\n else {\n mesh = point.create()\n }\n mesh.position.copy(new Vector3().fromArray(item.position))\n this.warnMesh.set(item.name, mesh)\n\n this.gobal.scene.add(mesh)\n })\n // 设置左右旋转的标志位和旋转速度\n let rotatingRight = true // 是否正在向右转动\n\n const unFrame = use.useframe(() => {\n this.cameraMesh.forEach((group) => {\n const scan = group.children[1]\n // 更新相机的旋转角度\n if (rotatingRight) {\n // 向右旋转\n scan.rotation.z += 0.005\n }\n else {\n // 向左旋转\n scan.rotation.z -= 0.005\n }\n\n // 检查是否达到目标旋转角度\n if (Math.abs(scan.rotation.z) >= Math.abs(Math.PI / 4)) {\n // 到达目标角度,切换旋转方向并更新目标角度\n rotatingRight = !rotatingRight\n }\n })\n })\n this.eventListener.add(unFrame)\n }\n\n cameraEvent(sprite: Group, region: any) {\n const fn = async () => {\n if (this.currentDialogMesh) {\n const isClose = this.currentDialogMesh.name === region.name\n this.dialogManage.close()\n if (isClose)\n return\n }\n else {\n if (this.headMap && this.headMap.isShow) {\n this.closeHotmap()\n }\n else {\n const { camera } = use.useScene()\n this.startPosition = camera.position.clone()\n // 获取相机朝向\n this.cameraLookAt = new Vector3() // 创建一个向量来存储相机朝向\n camera.getWorldDirection(this.cameraLookAt) // 获取相机朝向并存储在向量中\n }\n }\n\n sendToMessage(MessageType.Event, 'onCameraStatus', EMessageStatus.Success, undefined, { id: region.id })\n\n const position = new Vector3().fromArray(region.position)\n const targetPosition: [number, number, number] = position.clone().toArray()\n const camaraPosition: [number, number, number] = position.clone().add(new Vector3(0, 40, 80)).toArray()\n\n this.gobal.cameraUtil.set({\n position: camaraPosition,\n target: targetPosition,\n })\n this.setMeshVisible(false)\n\n this.currentDialogMesh = await this.dialogManage.getMesh(position, region) as Group\n this.dialogManage.addEventListener('close', () => {\n // 初始相机到原始位置\n this.gobal.cameraUtil.set({\n position: this.startPosition.toArray(),\n target: this.cameraLookAt.toArray(),\n })\n this.setMeshVisible(true)\n this.currentDialogMesh = null\n this.cameraMesh.forEach((mesh) => {\n mesh.visible = true\n })\n sendToMessage(MessageType.Event, 'onCancelCameraStatus', EMessageStatus.Success, undefined, { id: region.id })\n })\n this.currentDialogMesh.name = region.name\n this.gobal.scene.add(this.currentDialogMesh)\n }\n\n sprite.addEventListener('click', fn)\n this.eventListener.add(() => sprite.removeEventListener('click', fn))\n }\n\n probeEvent(sprite: SpritePoi, region) {\n const { camera } = use.useScene()\n this.headMap = new HeadMap()\n const unClick = sprite.addEventListener('click', async () => {\n if (!sprite.visible)\n return\n sprite.visible = false\n sendToMessage(MessageType.Event, 'onGasMonitorStatus', EMessageStatus.Success, undefined, { id: region.id })\n this.togglePoi(false)\n const position = new Vector3().fromArray(region.position)\n const camaraPosition = position.clone().add(new Vector3(0, 30, 0))\n\n this.startPosition = camera.position.clone()\n // 获取相机朝向\n this.cameraLookAt = new Vector3() // 创建一个向量来存储相机朝向\n camera.getWorldDirection(this.cameraLookAt) // 获取相机朝向并存储在向量中\n this.gobal.cameraUtil.set({\n position: camaraPosition.toArray(),\n target: position.clone().toArray(),\n }).then(() => {\n const mesh = this.headMap.create(camaraPosition.distanceTo(position))\n mesh.position.copy(sprite.position)\n mesh.position.y = 0.5\n this.gobal.scene.add(mesh)\n\n const { orbitControls } = use.useScene()\n orbitControls.enabled = false\n\n // this.headMap.addBack()\n this.headMap.addEventListener('close', () => {\n this.closeHotmap()\n // this.togglePoi(true)\n\n // this.gobal.cameraUtil.set({\n // position: this.startPosition.toArray(),\n // target: this.cameraLookAt.toArray(),\n // })\n })\n })\n })\n this.eventListener.add(unClick)\n }\n\n setMeshVisible(visible) {\n this.cameraMesh.forEach(mesh => mesh.visible = visible)\n this.warnMesh.forEach(mesh => mesh.visible = visible)\n }\n\n closeHotmap() {\n if (!this.headMap)\n return\n this.headMap.remove()\n this.togglePoi(true)\n\n this.gobal.cameraUtil.set({\n position: this.startPosition.toArray(),\n target: this.cameraLookAt.toArray(),\n })\n const { orbitControls } = use.useScene()\n orbitControls.enabled = true\n }\n\n togglePoi(visible = true) {\n this.warnMesh.forEach((sprite) => {\n sprite.visible = visible\n })\n this.cameraMesh.forEach((sprite) => {\n sprite.visible = visible\n })\n }\n\n remove() {\n this.dialogManage.close()\n // 删除摄像机POI点\n this.cameraMesh.forEach((sprite) => {\n sprite.removeFromParent()\n sprite.remove()\n })\n this.cameraMesh.clear()\n this.warnMesh.forEach((sprite) => {\n sprite.removeFromParent()\n sprite.remove()\n })\n this.warnMesh.clear()\n this.eventListener.forEach((fn) => {\n fn()\n })\n // 热力图\n if (this.headMap) {\n this.headMap.remove()\n const { orbitControls } = use.useScene()\n orbitControls.enabled = true\n }\n this.eventListener.clear()\n }\n}\n\nexport default CameraPoi\n\nclass MethanePoint {\n constructor() {\n\n }\n\n create() {\n // 定义Shader的uniform变量\n\n const geometry = new PlaneGeometry(10, 10)\n const texture = new TextureLoader(loadingManager).load(`${usePath}p4/monitor.png`)\n const circle = new Mesh(geometry, new MeshBasicMaterial({\n map: texture,\n side: DoubleSide,\n transparent: true,\n }))\n circle.rotateX(-Math.PI / 3)\n return circle\n }\n\n // 随机多点的方案\n createBack() {\n // 定义Shader的uniform变量\n\n const group = new Group()\n const geometry = new CircleGeometry(2, 32)\n // 创建自定义着色器材质\n const material = new ShaderMaterial({\n vertexShader: `\n void main() {\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n gl_PointSize = 20.0; // 设置点的大小\n }\n `,\n fragmentShader: `\n void main() {\n vec2 center = vec2(0.5, 0.5); // 圆心坐标\n vec2 toCenter = gl_PointCoord - center; // 计算点到圆心的向量\n float distance = length(toCenter); // 计算点到圆心的距离\n if (distance > 0.5) discard; // 超出半径范围的点直接丢弃\n vec3 innerColor = vec3(1.0, .8, 0.0); // 内圈颜色为黄色\n vec3 outerColor = vec3(0.8, 0.4, 0.0); // 外圈颜色为深橘色\n \n vec3 finalColor = mix(innerColor, outerColor, smoothstep(0.1, 0.23, distance)); // 根据距离混合颜色\n if(distance>0.3) finalColor = mix(finalColor, vec3(0.75, 0.4, 0.0), smoothstep(0.25, 0.3, distance)); // 根据距离混合颜色\n gl_FragColor = vec4(finalColor, 1.0); // 设置片段颜色\n }\n `,\n blending: AdditiveBlending,\n depthTest: false,\n transparent: true,\n side: DoubleSide,\n })\n const circle = new Mesh(geometry, new MeshBasicMaterial({ color: '#f7a157' }))\n const numPoints = 100 // 点的数量\n\n for (let i = 0; i < numPoints; i++) {\n const x = Math.random() * 700 - 322 // 随机生成 x 坐标\n const z = Math.random() * 340 - 144 // 随机生成 z 坐标\n const point = circle.clone()\n point.position.copy(new Vector3(x, 20.55, z))\n point.rotateX(-Math.PI / 2)\n group.add(point)\n }\n\n return group\n }\n}\n\nclass Dialog {\n manage: CameraPoi\n\n camera: PerspectiveCamera\n cameraPosition: Vector3\n cameraTargetPosition: Vector3\n\n cuteSprites: Array<Object3D> = []\n eventListener: Set<Function> = new Set()\n eventList: Map<string, Function> = new Map()\n\n constructor(cameraManage) {\n this.manage = cameraManage\n }\n\n async getMesh(position, careraParams) {\n this.close()\n this.camera = new PerspectiveCamera(\n careraParams.fovDefault || 60, window.innerWidth / window.innerHeight, 0.1, 10000,\n )\n this.camera.position.copy(new Vector3().fromArray(careraParams.position))\n this.camera.rotation.set(Math.PI / 6, Math.PI, 0)\n\n const { texture, close } = this.manage.gobal.scene.setCustomPerspective(this.camera)\n\n const cuteSprite = new Sprite(new SpriteMaterial({ map: texture, depthTest: false, depthWrite: false }))\n cuteSprite.center.set(0.5, 0.5)\n cuteSprite.renderOrder = 5\n cuteSprite.position.copy(position)\n\n const unFrame = use.useframe(() => {\n this.updateScale(cuteSprite)\n })\n this.eventListener.add(unFrame)\n\n return new Promise((reslove) => {\n setTimeout(() => {\n const borderMesh = this.getBorderMesh(this.camera, cuteSprite)\n const group = new Group()\n group.add(borderMesh)\n group.add(cuteSprite)\n this.cuteSprites.push(borderMesh)\n this.cuteSprites.push(cuteSprite)\n close()\n reslove(group)\n }, 1000)\n })\n }\n\n getTarget(cameraPosition, rotation = [0, 30, 0]) {\n // 将旋转角度转换为弧度\n const angleX = MathUtils.degToRad(rotation[0])\n const angleY = MathUtils.degToRad(rotation[1])\n const angleZ = MathUtils.degToRad(rotation[2])\n\n // 创建旋转矩阵\n const rotationMatrix = new Matrix4()\n rotationMatrix.makeRotationX(angleX)\n rotationMatrix.multiply(new Matrix4().makeRotationY(angleY))\n rotationMatrix.multiply(new Matrix4().makeRotationZ(angleZ))\n\n // 定义相机的方向向量(例如,相机的方向默认为(0, 0, -1))\n const cameraDirection = new Vector3(0, 0, 1)\n\n // 将相机的方向向量乘以旋转矩阵,得到相机目标位置的向量\n const targetDirection = cameraDirection.clone().applyMatrix4(rotationMatrix)\n\n // 计算相机的目标位置\n return cameraPosition.clone().add(targetDirection)\n }\n\n getBoxSize(sprite: Sprite) {\n const { camera } = use.useScene()\n\n // 获取设备像素比\n const devicePixelRatio = window.devicePixelRatio || 1\n // 获取精灵对象的边界框\n const bbox = new Box3().setFromObject(sprite)\n // 将边界框的最小和最大顶点转换为屏幕坐标\n const min = bbox.min.project(camera)\n const max = bbox.max.project(camera)\n console.log('min:', min)\n console.log('max:', max)\n\n let [w, h] = [window.innerWidth, window.innerHeight]\n const dom = document.querySelector('#app')\n if (dom) {\n w = dom.clientWidth\n h = dom.clientHeight\n }\n let ratio = 0\n if (camera.fov >= 60)\n ratio = -0.05 * (camera.fov - 60) / 30\n else\n ratio = 0.02 * (60 - camera.fov) / 30\n\n // 计算精灵在屏幕中的宽度和高度像素值\n let width = (max.x - min.x) * w / devicePixelRatio * (0.97 + ratio)\n let height = (max.y - min.y) * h / devicePixelRatio * (1.089 + ratio)\n\n const scaleFactor = devicePixelRatio * 0.5\n // 应用缩放系数\n width *= scaleFactor\n height *= scaleFactor\n\n return { width, height }\n }\n\n updateScale(sprite: Sprite) {\n const { camera } = use.useScene()\n const ratio = 60 / camera.fov\n // 距离限制范围的值,用于计算缩放比例\n const minDistance = 0.1\n const maxDistance = 1000000\n // 获取相机和物体的世界坐标位置\n const cameraPosition = camera?.position\n const objectPosition = sprite.position\n\n // 计算相机和物体之间的距离\n const distance = cameraPosition?.distanceTo(objectPosition) || 0.1\n\n // 使用 Math.min() 和 Math.max() 方法限制 resultDistance 的范围\n const clampedDistance = Math.max(minDistance, Math.min(maxDistance, distance))\n // console.log('clampedDistance:',clampedDistance)\n // 按照缩放系数和距离进行缩放,缩放系数应该约定好一个固定值\n sprite.scale.copy(new Vector3(clampedDistance * (1.3281 / ratio), (0.8316 / ratio) * clampedDistance, 1))\n }\n\n addEventListener(eventName, fn) {\n if (this.eventList.has(eventName))\n this.eventList[eventName] = fn\n else\n this.eventList.set(eventName, fn)\n }\n\n getBorderMesh(camera, sprite: Sprite) {\n let { width, height } = this.getBoxSize(sprite)\n\n // 弹窗容器\n const dialogDiv = document.createElement('div')\n width += 10\n height += 10\n Object.assign(dialogDiv.style, {\n 'width': `${width}px`,\n 'height': `${height}px`,\n 'z-index': '3 !important',\n 'backgroundImage': `url(${usePath}p4/border.png)`,\n 'backgroundSize': '100% 100%',\n 'backgroundRepeat': 'no-repeat',\n 'position': 'relative',\n\n // left: `${(window.innerWidth - width) / 2}px`,\n // top: `${(window.innerHeight - height) / 2}px`,\n })\n\n const maskingDiv = document.createElement('div')\n maskingDiv.className = 'dialog-mask'\n dialogDiv.appendChild(maskingDiv)\n\n // 关闭按钮\n const closeSpan = document.createElement('span')\n closeSpan.className = 'dialog-close'\n dialogDiv.appendChild(closeSpan)\n closeSpan.addEventListener('click', () => {\n this.close()\n })\n\n // 操作按钮\n const op = document.createElement('div')\n op.className = 'dialog-operate'\n dialogDiv.appendChild(op)\n const opList = ['left', 'right', 'top', 'bottom']\n opList.forEach((key) => {\n const btnSpan = document.createElement('span')\n btnSpan.className = `dialog-operate-btn dialog-operate-${key}`\n\n const handleClick = () => {\n switch (key) {\n case 'top':\n camera.rotation.x -= 0.01\n break\n case 'bottom':\n camera.rotation.x += 0.01\n break\n case 'left':\n camera.rotation.y += 0.01\n break\n case 'right':\n camera.rotation.y -= 0.01\n break\n }\n const { texture, close } = this.manage.gobal.scene.setCustomPerspective(camera)\n sprite.material = new SpriteMaterial({ map: texture, depthTest: false, depthWrite: false })\n setTimeout(() => close(), 800)\n }\n\n let clock\n let longPress\n let time\n\n btnSpan.addEventListener('mousedown', () => {\n clock = new Clock()\n clock.getDelta()\n\n time = setTimeout(() => {\n longPress = use.useframe(handleClick)\n }, 500)\n })\n\n btnSpan.addEventListener('mouseup', () => {\n if (clock.getDelta() < 0.5)\n handleClick()\n\n clearTimeout(time)\n longPress && longPress()\n })\n\n // btnSpan.addEventListener('click', handleClick)\n op.appendChild(btnSpan)\n })\n\n const cb = (fov) => {\n if (!fov) return\n camera.fov = fov\n camera.updateProjectionMatrix()\n const { texture, close } = this.manage.gobal.scene.setCustomPerspective(camera)\n sprite.material = new SpriteMaterial({ map: texture, depthTest: false, depthWrite: false })\n setTimeout(() => close(), 800)\n }\n const slider = this.getFovView(cb)\n dialogDiv.appendChild(slider)\n\n\n // // 滑动条\n // const sliderDiv = document.createElement('div')\n // sliderDiv.className = 'dialog-slider-container'\n // const sliderBar = document.createElement('input')\n // sliderBar.type = 'range'\n // sliderBar.min = '30'\n // sliderBar.max = '120'\n // sliderBar.value = '60'\n // sliderBar.className = 'dialog-slider'\n // sliderBar.addEventListener('input', () => {\n // camera.fov = sliderBar.value\n // camera.updateProjectionMatrix()\n // const { texture, close } = this.manage.gobal.scene.setCustomPerspective(camera)\n // sprite.material = new SpriteMaterial({ map: texture, depthTest: false, depthWrite: false })\n // setTimeout(() => close(), 800)\n // })\n // sliderDiv.appendChild(sliderBar)\n // dialogDiv.appendChild(sliderDiv)\n\n\n const borderMesh = new Css2DPoi(dialogDiv)\n borderMesh.position.copy(sprite.position)\n return borderMesh\n }\n\n getFovView(cb) {\n let data = [{ text: '0.5', fov: '40' }, { text: '1', fov: '60' }, { text: '1.5', fov: '68' }, { text: '2.0', fov: '76' }, { text: '2.5', fov: '84' }, { text: '3.0', fov: '92' }, { text: '3.5', fov: '100' },]\n\n const container = document.createElement('div');\n container.className = 'dialog-slider-container'\n\n const itemsContainer = document.createElement('div');\n itemsContainer.className = 'dialog-slider-items'\n container.appendChild(itemsContainer)\n data.forEach(item => {\n const div = document.createElement('div')\n div.className = 'dialog-slider-item'\n div.innerHTML = `${item.text} X -`\n div.setAttribute('fov', item.fov)\n itemsContainer.appendChild(div)\n })\n\n const items = itemsContainer.children;\n const itemHeight = 58;\n let totalHeight = items.length * itemHeight;\n\n const cloneItems = () => {\n Array.from(items).forEach(item => {\n itemsContainer.appendChild(item.cloneNode(true));\n });\n };\n\n cloneItems();\n cloneItems();\n\n const highlightMiddleItem = () => {\n const middlePosition = container.scrollTop + container.clientHeight / 2;\n const middleIndex = Math.floor(middlePosition / itemHeight) % items.length;\n Array.from(items).forEach((item, index) => {\n if (index === middleIndex) {\n item.classList.add('highlight');\n cb(item.getAttribute('fov'))\n } else {\n item.classList.remove('highlight');\n }\n });\n };\n container.addEventListener('scroll', () => {\n if (container.scrollTop <= 0) {\n container.scrollTop += totalHeight;\n } else if (container.scrollTop >= totalHeight * 2) {\n container.scrollTop -= totalHeight;\n }\n highlightMiddleItem();\n });\n const smoothScrollTo = (targetPosition) => {\n const startPosition = container.scrollTop;\n const distance = targetPosition - startPosition;\n const duration = 200;\n let start = null;\n\n const step = (timestamp) => {\n if (!start) start = timestamp;\n const progress = timestamp - start;\n const progressRatio = Math.min(progress / duration, 1);\n container.scrollTop = startPosition + distance * progressRatio;\n if (progress < duration) {\n window.requestAnimationFrame(step);\n } else {\n highlightMiddleItem();\n }\n };\n\n window.requestAnimationFrame(step);\n };\n\n const scrollToItem = (item) => {\n const index = Array.from(items).indexOf(item);\n const targetPosition = index * itemHeight - container.clientHeight / 2 + itemHeight / 2;\n smoothScrollTo(targetPosition);\n };\n Array.from(items).forEach(item => {\n item.addEventListener('click', () => { scrollToItem(item) });\n });\n setTimeout(() => {\n //items && (items[3] as HTMLDivElement).click()\n container.scrollTop = totalHeight;\n highlightMiddleItem();\n })\n\n const conSlider = document.createElement('div')\n conSlider.className = 'dialog-slider-bg'\n conSlider.appendChild(container)\n return conSlider\n }\n\n addStyle() {\n // 设置 CSS 规则\n const css = `\n .page-mask{\n position: fixed;\n top: 0;\n left: 0;\n bottom:0;\n right:0;\n //width: 100%;\n //height: 100%;\n background-color: rgba(0, 0, 0, 0.5); /* 半透明背景 */\n //filter: blur(10px); /* 模糊效果 */\n z-index: 1 !important; /* 确保蒙版位于其他元素之上 */\n }\n .dialog-mask{\n position: absolute;\n top: 8px;\n left: 6px;\n width: calc(100% - 12px);\n height: calc(100% - 16px);\n background: linear-gradient(90deg, rgba(0, 0, 0,.4) 0%,rgba(0, 0, 0,.2) 10%, rgba(0, 0, 0,0) 20%, rgba(0,0,0, 0) 50%, rgba(0, 0, 0,0) 80%, rgba(0, 0, 0,0.2) 90%, rgba(0, 0, 0,.4) 100%);\n pointer-events: auto;\n opacity: 1;\n transform: perspective(100px) rotateX(0deg) rotateY(0deg) rotateZ(0deg);\n transform-origin: center center;\n }\n .hot-back{\n width: 70px;\n height: 25px;\n border-radius: 2px;\n color: #fff;\n font-weight: bold;\n font-size: 14px;\n border:1px solid #d1ae6d;\n background-color: #c8ab75;\n cursor: pointer; /* 鼠标指针样式 */\n display: flex;\n justify-content: center;\n align-items: center;\n position: absolute;\n left: 30px;\n top: 30px;\n pointer-events: auto;\n }\n .hot-back:hover{\n background-color:#c8a158;\n }\n .dialog-close{\n width: 26px;\n height: 26px;\n background-image: url(${usePath}p4/close.png);\n background-size: 100% 100%;\n background-repeat: no-repeat;\n color: #fff;\n cursor: pointer; /* 鼠标指针样式 */\n display: flex;\n justify-content: center;\n align-items: center;\n position: absolute;\n right: 28px;\n top: 20px;\n pointer-events: auto;\n }\n .dialog-operate{\n width: 199px;\n height: 182px;\n background-image: url(${usePath}p4/operate.png);\n background-size: 100% 100%;\n background-repeat: no-repeat;\n position: absolute;\n right: 20px;\n bottom: 20px;\n pointer-events: auto;\n }\n\n .dialog-operate-btn{\n width: 20px;\n height: 34px;\n position: absolute;\n cursor: pointer;\n pointer-events: auto;\n background-image: url(${usePath}p4/arrow1.png);\n background-size: 100% 100%;\n background-repeat: no-repeat;\n transition: all .2s;\n }\n .dialog-operate-btn:hover{\n background-image: url(${usePath}p4/arrow2.png);\n }\n\n .dialog-operate-top{\n transform: rotateZ(90deg);\n left: calc(50% - 9px);\n top: 40px;\n }\n .dialog-operate-top:hover{\n border-bottom-color:#fff2dd;\n }\n\n .dialog-operate-bottom{\n transform: rotateZ(270deg);\n left: calc(50% - 9px);\n bottom: 40px;\n }\n\n .dialog-operate-bottom:hover{\n border-top-color:#fff2dd;\n }\n\n .dialog-operate-left{\n top: calc(50% - 18px);\n left: 58px;\n }\n .dialog-operate-left:hover{\n border-right-color:#fff2dd;\n }\n\n .dialog-operate-right{\n transform: rotateZ(180deg);\n top: calc(50% - 18px);\n right: 57px;\n }\n\n .dialog-operate-right:hover{\n border-left-color:#fff2dd;\n }\n .dialog-slider-bg {\n width: 166px;\n height: 493px;\n position:absolute;\n right:36px;\n top:100px;\n background: url(${usePath}p4/fov-bg.png);\n background-size: 100% 100%;\n background-repeat: no-repeat;\n pointer-events: auto;\n }\n\n .dialog-slider-container {\n height: 406px;\n margin: 44px 21px;\n overflow: auto;\n position: relative;\n text-align: center;\n scrollbar-width: none;\n -ms-overflow-style: none;\n pointer-events: auto;\n }\n\n .dialog-slider-container::-webkit-scrollbar {\n display: none;\n /* Safari and Chrome */\n }\n\n .dialog-slider-items {\n display: flex;\n flex-direction: column;\n width: 100%;\n }\n\n .dialog-slider-item {\n width: 100%;\n height: 58px;\n display: flex;\n justify-content: center;\n align-items: center;\n box-sizing: border-box;\n font-size: 20px;\n color: #fff;\n transition: all .2s;\n cursor: pointer;\n pointer-events: auto;\n }\n\n .dialog-slider-item.highlight {\n background-image: url(${usePath}p4/fov-border.png);\n background-size: 100% 100%;\n background-repeat: no-repeat;\n font-size: 28px;\n color: #ffda77;\n }\n`\n // 创建一个 <style> 元素\n const styleElement = document.createElement('style')\n styleElement.appendChild(document.createTextNode(css))\n // 将 <style> 元素添加到 <head> 中\n document.head.appendChild(styleElement)\n }\n\n close() {\n if (this.cuteSprites) {\n this.cuteSprites.forEach((mesh) => {\n mesh.remove()\n mesh.removeFromParent()\n })\n this.cuteSprites.length = 0\n }\n this.eventList.has('close') && this.eventList.get('close')()\n // 移除事件监听\n this.eventListener.forEach((fn) => {\n fn()\n })\n this.eventListener.clear()\n this.eventList.clear()\n }\n}\n\nclass HeadMap {\n TemperatureColorStops = {\n 1.0: '#f00',\n 0.9: '#e2fa00',\n 0.6: '#33f900',\n 0.3: '#0349df',\n 0.0: '#0f00ff',\n }\n\n eventList: Map<string, Function> = new Map()\n backEle: HTMLElement\n heatMapPlane: Mesh\n canvasList = []\n isShow = false\n\n constructor() {\n\n }\n\n // 热力图\n create(distance) {\n this.isShow = true\n const heatmap = heatMap.create({\n container: this.createDom(),\n gradient: this.TemperatureColorStops,\n })\n let len = 1200\n const width = window.innerWidth\n const height = window.innerHeight\n const points = []\n let max = 0\n while (len--) {\n const val = Math.floor(Math.random() * 10)\n max = Math.max(max, val)\n const point = {\n x: Math.floor(Math.random() * width),\n y: Math.floor(Math.random() * height),\n value: val,\n }\n points.push(point)\n }\n heatmap.setData({\n max,\n data: points,\n })\n\n // 灰度图\n const greymap = heatMap.create({\n container: this.createDom(),\n gradient: {\n '0': 'black',\n '1.0': 'white',\n },\n })\n\n greymap.setData({\n max,\n data: points,\n })\n const heatMapMaterial = new ShaderMaterial({\n transparent: true,\n depthTest: false,\n side: DoubleSide,\n vertexShader: `varying vec2 vUv;\n uniform float Zscale;\n uniform sampler2D greyMap;\n void main() {\n vUv = uv;\n vec4 frgColor = texture2D(greyMap, uv);//获取灰度图点位信息\n float height = Zscale * frgColor.a;//通过灰度图的rgb*需要设置的高度计算出热力图每个点位最终在z轴高度\n vec3 transformed = vec3( position.x, position.y, height);//重新组装点坐标\n gl_Position = projectionMatrix * modelViewMatrix * vec4(transformed, 1.0);//渲染点位\n \n }\n `,\n fragmentShader: `varying vec2 vUv;\n uniform sampler2D heatMap;//热力图\n uniform vec3 u_color;//基础颜色\n uniform float u_opacity; // 透明度\n void main() {\n //vec4 alphaColor = texture2D(heatMap, vUv);\n // gl_FragColor = alphaColor;\n gl_FragColor = vec4(u_color, u_opacity) * texture2D(heatMap, vUv);//把热力图颜色和透明度进行渲染\n }`,\n uniforms: {\n heatMap: {\n value: { value: undefined },\n },\n greyMap: {\n value: { value: undefined },\n },\n Zscale: { value: 0 }, // 高度参数\n u_color: {\n value: new Color('rgb(255, 255, 255)'),\n },\n u_opacity: {\n value: 0.8,\n },\n },\n })\n\n const texture = new Texture(heatmap._renderer.canvas)\n texture.needsUpdate = true\n const greyTexture = new Texture(greymap._renderer.canvas)\n greyTexture.needsUpdate = true\n\n heatMapMaterial.uniforms.heatMap.value = texture\n heatMapMaterial.uniforms.greyMap.value = greyTexture\n\n const { camera } = use.useScene()\n // 计算平面的尺寸\n const h = 2 * Math.tan(camera.fov * Math.PI / 360) * distance * 2 * 0.85\n const w = h * camera.aspect\n\n const heatMapGeometry = new PlaneGeometry(w, h, 100, 100) // 3d热力图大小,及分块数量\n const heatMapPlane = new Mesh(heatMapGeometry, heatMapMaterial)\n heatMapPlane.rotation.set(-Math.PI / 2, 0, 0)\n\n this.heatMapPlane = heatMapPlane\n return heatMapPlane\n }\n\n addEventListener(eventName, fn) {\n if (this.eventList.has(eventName))\n this.eventList[eventName] = fn\n else\n this.eventList.set(eventName, fn)\n }\n\n addBack() {\n this.backEle = document.createElement('div')\n this.backEle.className = 'hot-back'\n this.backEle.innerHTML = '返回'\n document.body.appendChild(this.backEle)\n this.backEle.addEventListener('click', () => {\n this.eventList.has('close') && this.eventList.get('close')()\n // this.remove()\n })\n }\n\n createDom() {\n // 创建一个新的 canvas 元素\n const canvas = document.createElement('canvas')\n canvas.style.zIndex = '-1'\n // 设置 canvas 元素的宽度和高度\n canvas.width = window.innerWidth\n canvas.height = window.innerHeight\n document.body.appendChild(canvas)\n this.canvasList.push(canvas)\n return canvas\n }\n\n remove() {\n this.canvasList.forEach((canvas) => {\n canvas.remove()\n })\n // this.eventList.has('close') && this.eventList.get('close')()\n this.canvasList.length = 0\n this.backEle && this.backEle.remove()\n if (this.heatMapPlane) {\n this.heatMapPlane.removeFromParent()\n this.heatMapPlane.remove()\n }\n this.isShow = false\n }\n}\n"],"mappings":";+CACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAASA,gBAAgB,EAAEC,IAAI,EAAEC,cAAc,EAAEC,KAAK,EAAEC,KAAK,EAAEC,UAAU,EAASC,KAAK,EAAEC,SAAS,EAAEC,OAAO,EAAEC,IAAI,EAAEC,iBAAiB,EAAEC,WAAW,EAAEC,iBAAiB,EAAEC,aAAa,EAAEC,cAAc,EAAEC,MAAM,EAAEC,cAAc,EAAEC,OAAO,EAAEC,aAAa,EAAEC,OAAO,EAAqBC,IAAI,EAAEC,GAAG,QAAe,eAAe;AACxT,SAASC,QAAQ,EAAEC,SAAS,QAAQ,kBAAkB;AACtD,OAAOC,OAAO,MAAM,eAAe;AACnC,SAASC,WAAW,EAAEC,aAAa;AACnC,SAASC,cAAc;AACvB,SAASC,cAAc,EAAEC,OAAO;;AAEhC;;AAGA,IAAMC,IAAI,GAAG;EACXC,MAAM,EAAE,CACN;IACEC,EAAE,EAAE,GAAG;IACPC,IAAI,EAAE,MAAM;IACZC,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC;IAC1BC,UAAU,EAAE,EAAE;IACdC,QAAQ,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC;IACnBC,YAAY,EAAE;MACZH,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC;MAC1BI,QAAQ,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC;IACvB;EACF,CAAC,EACD;IACEN,EAAE,EAAE,GAAG;IACPC,IAAI,EAAE,MAAM;IACZC,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC;IACxBC,UAAU,EAAE,EAAE;IACdC,QAAQ,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC;IACnBC,YAAY,EAAE;MACZH,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC;MACxBI,QAAQ,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC;IACvB;EACF,CAAC,EACD;IACEN,EAAE,EAAE,GAAG;IACPC,IAAI,EAAE,MAAM;IACZC,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC;IACzBC,UAAU,EAAE,EAAE;IACdC,QAAQ,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC;IACnBC,YAAY,EAAE;MACZH,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC;MACzBI,QAAQ,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC;IACvB;EACF,CAAC,EACD;IACEN,EAAE,EAAE,GAAG;IACPC,IAAI,EAAE,MAAM;IACZC,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;IACxBG,YAAY,EAAE;MACZH,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;MACxBI,QAAQ,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC;IACvB;EACF,CAAC,EACD;IACEN,EAAE,EAAE,GAAG;IACPC,IAAI,EAAE,MAAM;IACZC,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;IACzBC,UAAU,EAAE,EAAE;IACdC,QAAQ,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC;IACnBC,YAAY,EAAE;MACZH,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;MACzBI,QAAQ,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC;IACvB;EACF,CAAC,EACD;IACEN,EAAE,EAAE,GAAG;IACPC,IAAI,EAAE,MAAM;IACZC,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtBC,UAAU,EAAE,EAAE;IACdC,QAAQ,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC;IACnBC,YAAY,EAAE;MACZH,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;MACtBI,QAAQ,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC;IACvB;EACF,CAAC,EACD;IACEN,EAAE,EAAE,GAAG;IACPC,IAAI,EAAE,MAAM;IACZC,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;IACvBC,UAAU,EAAE,EAAE;IACdC,QAAQ,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC;IACnBC,YAAY,EAAE;MACZH,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;MACvBI,QAAQ,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC;IACvB;EACF,CAAC,CACF;EACDC,UAAU,EAAE,CACV;IACEP,EAAE,EAAE,GAAG;IACPC,IAAI,EAAE,QAAQ;IACdO,IAAI,EAAE,IAAI;IACVN,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;EACvB,CAAC,EACD;IACEF,EAAE,EAAE,GAAG;IACPC,IAAI,EAAE,QAAQ;IACdO,IAAI,EAAE,KAAK;IACXN,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;EACxB,CAAC,EACD;IACEF,EAAE,EAAE,GAAG;IACPC,IAAI,EAAE,QAAQ;IACdO,IAAI,EAAE,KAAK;IACXN,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG;EACxB,CAAC;AAEL,CAAC;AAED,IAAMO,IAAI,GAAG,IAAI9B,WAAW,EAAE;AAAA,IACxB+B,SAAS;EAYb,mBAAYC,KAAgB,EAAE;IAAA;IAAA;IAAA,oCAVG,IAAIC,GAAG,EAAE;IAAA,kCACP,IAAIA,GAAG,EAAE;IAAA;IAAA;IAAA,uCAGb,IAAIC,GAAG,EAAE;IAAA;IAAA;IAAA;IAOtC,IAAI,CAACF,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACG,YAAY,GAAG,IAAIC,MAAM,CAAC,IAAI,CAAC;IACpC,IAAI,CAACD,YAAY,CAACE,QAAQ,EAAE;EAC9B;EAAC;IAAA;IAAA;MAAA,iFAED;QAAA;UAAA;QAAA;QAAA;UAAA;YAAA;cAAA;cAAA,OACsBP,IAAI,CAACQ,QAAQ,WAAIpB,OAAO,mBAAgB,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,UAACqB,IAAI,EAAK;gBAC7F,OAAOA,IAAI;cACb,CAAC,CAAC;YAAA;cAFIC,KAAK;cAIXrB,IAAI,CAACC,MAAM,CAACqB,OAAO,CAAC,UAACC,MAAM,EAAK;gBAC9B,IAAMC,KAAK,GAAG,IAAIhD,KAAK,EAAE;gBACzBgD,KAAK,CAACrB,IAAI,GAAGoB,MAAM,CAACrB,EAAE;gBACtB,IAAMuB,MAAM,GAAG,IAAIhC,SAAS,WAAIM,OAAO,oBAAiB;kBAAE2B,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;gBAAE,CAAC,CAAC;gBAC/ED,MAAM,CAACjB,QAAQ,CAACmB,CAAC,GAAGC,IAAI,CAACC,EAAE;gBAC3B,IAAMzB,QAAQ,GAAG,IAAIf,OAAO,EAAE,CAACyC,SAAS,CAACP,MAAM,CAACnB,QAAQ,CAAC;gBACzDqB,MAAM,CAACrB,QAAQ,CAAC2B,IAAI,CAAC3B,QAAQ,CAAC;gBAC9BoB,KAAK,CAACQ,GAAG,CAACP,MAAM,CAAC;gBAEjB,IAAMQ,IAAI,GAAGZ,KAAK,CAACa,KAAK,CAACC,KAAK,EAAE;gBAChCF,IAAI,CAACP,KAAK,CAACU,SAAS,CAAC,CAAC,CAAC;gBACvBH,IAAI,CAACzB,QAAQ,CAAC6B,CAAC,GAAI,CAACT,IAAI,CAACC,EAAE,GAAG,CAAC,GAAI,GAAG;gBACtCI,IAAI,CAAC7B,QAAQ,CAAC2B,IAAI,CAAC3B,QAAQ,CAAC+B,KAAK,EAAE,CAACH,GAAG,CAAC,IAAI3C,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC/DmC,KAAK,CAACQ,GAAG,CAACC,IAAI,CAAC;gBAEf,KAAI,CAACK,UAAU,CAACC,GAAG,CAAChB,MAAM,CAACpB,IAAI,EAAEqB,KAAK,CAAC;gBACvC,KAAI,CAACX,KAAK,CAAC2B,kBAAkB,CAACR,GAAG,CAACR,KAAK,CAAC;gBACxC,KAAI,CAACiB,WAAW,CAACjB,KAAK,EAAED,MAAM,CAAC;gBAC/B,KAAI,CAACV,KAAK,CAACqB,KAAK,CAACF,GAAG,CAACR,KAAK,CAAC;cAC7B,CAAC,CAAC;;cAEF;cACMkB,KAAK,GAAG,IAAIC,YAAY,EAAE;cAChC,oBAAA3C,IAAI,CAACS,UAAU,qDAAf,iBAAiBa,OAAO,CAAC,UAACsB,IAAI,EAAK;gBACjC,IAAIC,IAAI;gBACR,IAAID,IAAI,CAAClC,IAAI,EAAE;kBACbmC,IAAI,GAAG,IAAIpD,SAAS,WAAIM,OAAO,kBAAe;oBAAE2B,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;kBAAE,CAAC,CAAC;kBACrE,KAAI,CAACb,KAAK,CAAC2B,kBAAkB,CAACR,GAAG,CAACa,IAAI,CAAC;kBACvC,KAAI,CAACC,UAAU,CAACD,IAAI,EAAED,IAAI,CAAC;kBAC3B;kBACAtD,IAAI,CAACyD,EAAE,CAACF,IAAI,CAACzC,QAAQ,EAAE;oBACrBuB,CAAC,EAAE,KAAK;oBAAE;oBACVqB,QAAQ,EAAE,GAAG;oBAAE;oBACfC,IAAI,EAAE,cAAc;oBAAE;oBACtBC,IAAI,EAAE,IAAI;oBAAE;oBACZC,MAAM,EAAE,CAAC,CAAC,CAAE;kBACd,CAAC,CAAC;gBACJ,CAAC,MACI;kBACHN,IAAI,GAAGH,KAAK,CAACU,MAAM,EAAE;gBACvB;gBACAP,IAAI,CAACzC,QAAQ,CAAC2B,IAAI,CAAC,IAAI1C,OAAO,EAAE,CAACyC,SAAS,CAACc,IAAI,CAACxC,QAAQ,CAAC,CAAC;gBAC1D,KAAI,CAACiD,QAAQ,CAACd,GAAG,CAACK,IAAI,CAACzC,IAAI,EAAE0C,IAAI,CAAC;gBAElC,KAAI,CAAChC,KAAK,CAACqB,KAAK,CAACF,GAAG,CAACa,IAAI,CAAC;cAC5B,CAAC,CAAC;cACF;cACIS,aAAa,GAAG,IAAI,EAAC;cAEnBC,OAAO,GAAGhE,GAAG,CAACiE,QAAQ,CAAC,YAAM;gBACjC,KAAI,CAAClB,UAAU,CAAChB,OAAO,CAAC,UAACE,KAAK,EAAK;kBACjC,IAAMS,IAAI,GAAGT,KAAK,CAACiC,QAAQ,CAAC,CAAC,CAAC;kBAC9B;kBACA,IAAIH,aAAa,EAAE;oBACjB;oBACArB,IAAI,CAACzB,QAAQ,CAACkD,CAAC,IAAI,KAAK;kBAC1B,CAAC,MACI;oBACH;oBACAzB,IAAI,CAACzB,QAAQ,CAACkD,CAAC,IAAI,KAAK;kBAC1B;;kBAEA;kBACA,IAAI9B,IAAI,CAAC+B,GAAG,CAAC1B,IAAI,CAACzB,QAAQ,CAACkD,CAAC,CAAC,IAAI9B,IAAI,CAAC+B,GAAG,CAAC/B,IAAI,CAACC,EAAE,GAAG,CAAC,CAAC,EAAE;oBACtD;oBACAyB,aAAa,GAAG,CAACA,aAAa;kBAChC;gBACF,CAAC,CAAC;cACJ,CAAC,CAAC;cACF,IAAI,CAACM,aAAa,CAAC5B,GAAG,CAACuB,OAAO,CAAC;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA,CAChC;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA,OAED,qBAAY9B,MAAa,EAAEF,MAAW,EAAE;MAAA;MACtC,IAAMsC,EAAE;QAAA,sEAAG;UAAA;UAAA;YAAA;cAAA;gBAAA,KACL,MAAI,CAACC,iBAAiB;kBAAA;kBAAA;gBAAA;gBAClBC,OAAO,GAAG,MAAI,CAACD,iBAAiB,CAAC3D,IAAI,KAAKoB,MAAM,CAACpB,IAAI;gBAC3D,MAAI,CAACa,YAAY,CAACgD,KAAK,EAAE;gBAAA,KACrBD,OAAO;kBAAA;kBAAA;gBAAA;gBAAA;cAAA;gBAAA;gBAAA;cAAA;gBAIX,IAAI,MAAI,CAACE,OAAO,IAAI,MAAI,CAACA,OAAO,CAACC,MAAM,EAAE;kBACvC,MAAI,CAACC,WAAW,EAAE;gBACpB,CAAC,MACI;kBAAA,gBACgB5E,GAAG,CAAC6E,QAAQ,EAAE,EAAzBnE,MAAM,iBAANA,MAAM;kBACd,MAAI,CAACoE,aAAa,GAAGpE,MAAM,CAACG,QAAQ,CAAC+B,KAAK,EAAE;kBAC5C;kBACA,MAAI,CAACmC,YAAY,GAAG,IAAIjF,OAAO,EAAE,EAAC;kBAClCY,MAAM,CAACsE,iBAAiB,CAAC,MAAI,CAACD,YAAY,CAAC,EAAC;gBAC9C;cAAC;gBAGH1E,aAAa,CAACD,WAAW,CAAC6E,KAAK,EAAE,gBAAgB,EAAE3E,cAAc,CAAC4E,OAAO,EAAEC,SAAS,EAAE;kBAAExE,EAAE,EAAEqB,MAAM,CAACrB;gBAAG,CAAC,CAAC;gBAElGE,QAAQ,GAAG,IAAIf,OAAO,EAAE,CAACyC,SAAS,CAACP,MAAM,CAACnB,QAAQ,CAAC;gBACnDuE,cAAwC,GAAGvE,QAAQ,CAAC+B,KAAK,EAAE,CAACyC,OAAO,EAAE;gBACrEC,cAAwC,GAAGzE,QAAQ,CAAC+B,KAAK,EAAE,CAACH,GAAG,CAAC,IAAI3C,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAACuF,OAAO,EAAE;gBAEvG,MAAI,CAAC/D,KAAK,CAACiE,UAAU,CAACvC,GAAG,CAAC;kBACxBnC,QAAQ,EAAEyE,cAAc;kBACxBE,MAAM,EAAEJ;gBACV,CAAC,CAAC;gBACF,MAAI,CAACK,cAAc,CAAC,KAAK,CAAC;gBAAA;gBAAA,OAEK,MAAI,CAAChE,YAAY,CAACiE,OAAO,CAAC7E,QAAQ,EAAEmB,MAAM,CAAC;cAAA;gBAA1E,MAAI,CAACuC,iBAAiB;gBACtB,MAAI,CAAC9C,YAAY,CAACkE,gBAAgB,CAAC,OAAO,EAAE,YAAM;kBAChD;kBACA,MAAI,CAACrE,KAAK,CAACiE,UAAU,CAACvC,GAAG,CAAC;oBACxBnC,QAAQ,EAAE,MAAI,CAACiE,aAAa,CAACO,OAAO,EAAE;oBACtCG,MAAM,EAAE,MAAI,CAACT,YAAY,CAACM,OAAO;kBACnC,CAAC,CAAC;kBACF,MAAI,CAACI,cAAc,CAAC,IAAI,CAAC;kBACzB,MAAI,CAAClB,iBAAiB,GAAG,IAAI;kBAC7B,MAAI,CAACxB,UAAU,CAAChB,OAAO,CAAC,UAACuB,IAAI,EAAK;oBAChCA,IAAI,CAACsC,OAAO,GAAG,IAAI;kBACrB,CAAC,CAAC;kBACFvF,aAAa,CAACD,WAAW,CAAC6E,KAAK,EAAE,sBAAsB,EAAE3E,cAAc,CAAC4E,OAAO,EAAEC,SAAS,EAAE;oBAAExE,EAAE,EAAEqB,MAAM,CAACrB;kBAAG,CAAC,CAAC;gBAChH,CAAC,CAAC;gBACF,MAAI,CAAC4D,iBAAiB,CAAC3D,IAAI,GAAGoB,MAAM,CAACpB,IAAI;gBACzC,MAAI,CAACU,KAAK,CAACqB,KAAK,CAACF,GAAG,CAAC,MAAI,CAAC8B,iBAAiB,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA,CAC7C;QAAA,gBAhDKD,EAAE;UAAA;QAAA;MAAA,GAgDP;MAEDpC,MAAM,CAACyD,gBAAgB,CAAC,OAAO,EAAErB,EAAE,CAAC;MACpC,IAAI,CAACD,aAAa,CAAC5B,GAAG,CAAC;QAAA,OAAMP,MAAM,CAAC2D,mBAAmB,CAAC,OAAO,EAAEvB,EAAE,CAAC;MAAA,EAAC;IACvE;EAAC;IAAA;IAAA,OAED,oBAAWpC,MAAiB,EAAEF,MAAM,EAAE;MAAA;MACpC,qBAAmBhC,GAAG,CAAC6E,QAAQ,EAAE;QAAzBnE,MAAM,kBAANA,MAAM;MACd,IAAI,CAACgE,OAAO,GAAG,IAAIoB,OAAO,EAAE;MAC5B,IAAMC,OAAO,GAAG7D,MAAM,CAACyD,gBAAgB,CAAC,OAAO,0EAAE;QAAA;QAAA;UAAA;YAAA;cAAA,IAC1CzD,MAAM,CAAC0D,OAAO;gBAAA;gBAAA;cAAA;cAAA;YAAA;cAEnB1D,MAAM,CAAC0D,OAAO,GAAG,KAAK;cACtBvF,aAAa,CAACD,WAAW,CAAC6E,KAAK,EAAE,oBAAoB,EAAE3E,cAAc,CAAC4E,OAAO,EAAEC,SAAS,EAAE;gBAAExE,EAAE,EAAEqB,MAAM,CAACrB;cAAG,CAAC,CAAC;cAC5G,MAAI,CAACqF,SAAS,CAAC,KAAK,CAAC;cACfnF,QAAQ,GAAG,IAAIf,OAAO,EAAE,CAACyC,SAAS,CAACP,MAAM,CAACnB,QAAQ,CAAC;cACnDyE,cAAc,GAAGzE,QAAQ,CAAC+B,KAAK,EAAE,CAACH,GAAG,CAAC,IAAI3C,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;cAElE,MAAI,CAACgF,aAAa,GAAGpE,MAAM,CAACG,QAAQ,CAAC+B,KAAK,EAAE;cAC5C;cACA,MAAI,CAACmC,YAAY,GAAG,IAAIjF,OAAO,EAAE,EAAC;cAClCY,MAAM,CAACsE,iBAAiB,CAAC,MAAI,CAACD,YAAY,CAAC,EAAC;cAC5C,MAAI,CAACzD,KAAK,CAACiE,UAAU,CAACvC,GAAG,CAAC;gBACxBnC,QAAQ,EAAEyE,cAAc,CAACD,OAAO,EAAE;gBAClCG,MAAM,EAAE3E,QAAQ,CAAC+B,KAAK,EAAE,CAACyC,OAAO;cAClC,CAAC,CAAC,CAACY,IAAI,CAAC,YAAM;gBACZ,IAAM3C,IAAI,GAAG,MAAI,CAACoB,OAAO,CAACb,MAAM,CAACyB,cAAc,CAACY,UAAU,CAACrF,QAAQ,CAAC,CAAC;gBACrEyC,IAAI,CAACzC,QAAQ,CAAC2B,IAAI,CAACN,MAAM,CAACrB,QAAQ,CAAC;gBACnCyC,IAAI,CAACzC,QAAQ,CAACuB,CAAC,GAAG,GAAG;gBACrB,MAAI,CAACd,KAAK,CAACqB,KAAK,CAACF,GAAG,CAACa,IAAI,CAAC;gBAE1B,qBAA0BtD,GAAG,CAAC6E,QAAQ,EAAE;kBAAhCsB,aAAa,kBAAbA,aAAa;gBACrBA,aAAa,CAACC,OAAO,GAAG,KAAK;;gBAE7B;gBACA,MAAI,CAAC1B,OAAO,CAACiB,gBAAgB,CAAC,OAAO,EAAE,YAAM;kBAC3C,MAAI,CAACf,WAAW,EAAE;kBAClB;;kBAEA;kBACA;kBACA;kBACA;gBACF,CAAC,CAAC;cACJ,CAAC,CAAC;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA,CACH,GAAC;MACF,IAAI,CAACP,aAAa,CAAC5B,GAAG,CAACsD,OAAO,CAAC;IACjC;EAAC;IAAA;IAAA,OAED,wBAAeH,OAAO,EAAE;MACtB,IAAI,CAAC7C,UAAU,CAAChB,OAAO,CAAC,UAAAuB,IAAI;QAAA,OAAIA,IAAI,CAACsC,OAAO,GAAGA,OAAO;MAAA,EAAC;MACvD,IAAI,CAAC9B,QAAQ,CAAC/B,OAAO,CAAC,UAAAuB,IAAI;QAAA,OAAIA,IAAI,CAACsC,OAAO,GAAGA,OAAO;MAAA,EAAC;IACvD;EAAC;IAAA;IAAA,OAED,uBAAc;MACZ,IAAI,CAAC,IAAI,CAAClB,OAAO,EACf;MACF,IAAI,CAACA,OAAO,CAAC2B,MAAM,EAAE;MACrB,IAAI,CAACL,SAAS,CAAC,IAAI,CAAC;MAEpB,IAAI,CAAC1E,KAAK,CAACiE,UAAU,CAACvC,GAAG,CAAC;QACxBnC,QAAQ,EAAE,IAAI,CAACiE,aAAa,CAACO,OAAO,EAAE;QACtCG,MAAM,EAAE,IAAI,CAACT,YAAY,CAACM,OAAO;MACnC,CAAC,CAAC;MACF,qBAA0BrF,GAAG,CAAC6E,QAAQ,EAAE;QAAhCsB,aAAa,kBAAbA,aAAa;MACrBA,aAAa,CAACC,OAAO,GAAG,IAAI;IAC9B;EAAC;IAAA;IAAA,OAED,qBAA0B;MAAA,IAAhBR,OAAO,uEAAG,IAAI;MACtB,IAAI,CAAC9B,QAAQ,CAAC/B,OAAO,CAAC,UAACG,MAAM,EAAK;QAChCA,MAAM,CAAC0D,OAAO,GAAGA,OAAO;MAC1B,CAAC,CAAC;MACF,IAAI,CAAC7C,UAAU,CAAChB,OAAO,CAAC,UAACG,MAAM,EAAK;QAClCA,MAAM,CAAC0D,OAAO,GAAGA,OAAO;MAC1B,CAAC,CAAC;IACJ;EAAC;IAAA;IAAA,OAED,kBAAS;MACP,IAAI,CAACnE,YAAY,CAACgD,KAAK,EAAE;MACzB;MACA,IAAI,CAAC1B,UAAU,CAAChB,OAAO,CAAC,UAACG,MAAM,EAAK;QAClCA,MAAM,CAACoE,gBAAgB,EAAE;QACzBpE,MAAM,CAACmE,MAAM,EAAE;MACjB,CAAC,CAAC;MACF,IAAI,CAACtD,UAAU,CAACwD,KAAK,EAAE;MACvB,IAAI,CAACzC,QAAQ,CAAC/B,OAAO,CAAC,UAACG,MAAM,EAAK;QAChCA,MAAM,CAACoE,gBAAgB,EAAE;QACzBpE,MAAM,CAACmE,MAAM,EAAE;MACjB,CAAC,CAAC;MACF,IAAI,CAACvC,QAAQ,CAACyC,KAAK,EAAE;MACrB,IAAI,CAAClC,aAAa,CAACtC,OAAO,CAAC,UAACuC,EAAE,EAAK;QACjCA,EAAE,EAAE;MACN,CAAC,CAAC;MACF;MACA,IAAI,IAAI,CAACI,OAAO,EAAE;QAChB,IAAI,CAACA,OAAO,CAAC2B,MAAM,EAAE;QACrB,qBAA0BrG,GAAG,CAAC6E,QAAQ,EAAE;UAAhCsB,aAAa,kBAAbA,aAAa;QACrBA,aAAa,CAACC,OAAO,GAAG,IAAI;MAC9B;MACA,IAAI,CAAC/B,aAAa,CAACkC,KAAK,EAAE;IAC5B;EAAC;EAAA;AAAA;AAGH,eAAelF,SAAS;AAAA,IAElB+B,YAAY;EAChB,wBAAc;IAAA;EAEd;EAAC;IAAA;IAAA,OAED,kBAAS;MACP;;MAEA,IAAMoD,QAAQ,GAAG,IAAIhH,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC;MAC1C,IAAMiH,OAAO,GAAG,IAAI5G,aAAa,CAACU,cAAc,CAAC,CAACa,IAAI,WAAIZ,OAAO,oBAAiB;MAClF,IAAMkG,MAAM,GAAG,IAAItH,IAAI,CAACoH,QAAQ,EAAE,IAAInH,iBAAiB,CAAC;QACtDsH,GAAG,EAAEF,OAAO;QACZG,IAAI,EAAE5H,UAAU;QAChB6H,WAAW,EAAE;MACf,CAAC,CAAC,CAAC;MACHH,MAAM,CAACI,OAAO,CAAC,CAACzE,IAAI,CAACC,EAAE,GAAG,CAAC,CAAC;MAC5B,OAAOoE,MAAM;IACf;;IAEA;EAAA;IAAA;IAAA,OACA,sBAAa;MACX;;MAEA,IAAMzE,KAAK,GAAG,IAAIhD,KAAK,EAAE;MACzB,IAAMuH,QAAQ,GAAG,IAAI3H,cAAc,CAAC,CAAC,EAAE,EAAE,CAAC;MAC1C;MACA,IAAMkI,QAAQ,GAAG,IAAItH,cAAc,CAAC;QAClCuH,YAAY,qNAKX;QACDC,cAAc,4jCAab;QACDC,QAAQ,EAAEvI,gBAAgB;QAC1BwI,SAAS,EAAE,KAAK;QAChBN,WAAW,EAAE,IAAI;QACjBD,IAAI,EAAE5H;MACR,CAAC,CAAC;MACF,IAAM0H,MAAM,GAAG,IAAItH,IAAI,CAACoH,QAAQ,EAAE,IAAInH,iBAAiB,CAAC;QAAE+H,KAAK,EAAE;MAAU,CAAC,CAAC,CAAC;MAC9E,IAAMC,SAAS,GAAG,GAAG,EAAC;;MAEtB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,SAAS,EAAEC,CAAC,EAAE,EAAE;QAClC,IAAMxE,CAAC,GAAGT,IAAI,CAACkF,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,EAAC;QACpC,IAAMpD,CAAC,GAAG9B,IAAI,CAACkF,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,EAAC;QACpC,IAAMpE,KAAK,GAAGuD,MAAM,CAAC9D,KAAK,EAAE;QAC5BO,KAAK,CAACtC,QAAQ,CAAC2B,IAAI,CAAC,IAAI1C,OAAO,CAACgD,CAAC,EAAE,KAAK,EAAEqB,CAAC,CAAC,CAAC;QAC7ChB,KAAK,CAAC2D,OAAO,CAAC,CAACzE,IAAI,CAACC,EAAE,GAAG,CAAC,CAAC;QAC3BL,KAAK,CAACQ,GAAG,CAACU,KAAK,CAAC;MAClB;MAEA,OAAOlB,KAAK;IACd;EAAC;EAAA;AAAA;AAAA,IAGGP,MAAM;EAWV,gBAAY8F,YAAY,EAAE;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA,qCAJK,EAAE;IAAA,uCACF,IAAIhG,GAAG,EAAE;IAAA,mCACL,IAAID,GAAG,EAAE;IAG1C,IAAI,CAACkG,MAAM,GAAGD,YAAY;EAC5B;EAAC;IAAA;IAAA;MAAA,0EAED,kBAAc3G,QAAQ,EAAE6G,YAAY;QAAA;QAAA;QAAA;UAAA;YAAA;cAClC,IAAI,CAACjD,KAAK,EAAE;cACZ,IAAI,CAAC/D,MAAM,GAAG,IAAInB,iBAAiB,CACjCmI,YAAY,CAAC5G,UAAU,IAAI,EAAE,EAAE6G,MAAM,CAACC,UAAU,GAAGD,MAAM,CAACE,WAAW,EAAE,GAAG,EAAE,KAAK,CAClF;cACD,IAAI,CAACnH,MAAM,CAACG,QAAQ,CAAC2B,IAAI,CAAC,IAAI1C,OAAO,EAAE,CAACyC,SAAS,CAACmF,YAAY,CAAC7G,QAAQ,CAAC,CAAC;cACzE,IAAI,CAACH,MAAM,CAACO,QAAQ,CAAC+B,GAAG,CAACX,IAAI,CAACC,EAAE,GAAG,CAAC,EAAED,IAAI,CAACC,EAAE,EAAE,CAAC,CAAC;cAAA,wBAEtB,IAAI,CAACmF,MAAM,CAACnG,KAAK,CAACqB,KAAK,CAACmF,oBAAoB,CAAC,IAAI,CAACpH,MAAM,CAAC,EAA5E+F,OAAO,yBAAPA,OAAO,EAAEhC,KAAK,yBAALA,KAAK;cAEhBsD,UAAU,GAAG,IAAIrI,MAAM,CAAC,IAAIC,cAAc,CAAC;gBAAEgH,GAAG,EAAEF,OAAO;gBAAEU,SAAS,EAAE,KAAK;gBAAEa,UAAU,EAAE;cAAM,CAAC,CAAC,CAAC;cACxGD,UAAU,CAACE,MAAM,CAACjF,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;cAC/B+E,UAAU,CAACG,WAAW,GAAG,CAAC;cAC1BH,UAAU,CAAClH,QAAQ,CAAC2B,IAAI,CAAC3B,QAAQ,CAAC;cAE5BmD,OAAO,GAAGhE,GAAG,CAACiE,QAAQ,CAAC,YAAM;gBACjC,MAAI,CAACkE,WAAW,CAACJ,UAAU,CAAC;cAC9B,CAAC,CAAC;cACF,IAAI,CAAC1D,aAAa,CAAC5B,GAAG,CAACuB,OAAO,CAAC;cAAA,kCAExB,IAAIoE,OAAO,CAAC,UAACC,OAAO,EAAK;gBAC9BC,UAAU,CAAC,YAAM;kBACf,IAAMC,UAAU,GAAG,MAAI,CAACC,aAAa,CAAC,MAAI,CAAC9H,MAAM,EAAEqH,UAAU,CAAC;kBAC9D,IAAM9F,KAAK,GAAG,IAAIhD,KAAK,EAAE;kBACzBgD,KAAK,CAACQ,GAAG,CAAC8F,UAAU,CAAC;kBACrBtG,KAAK,CAACQ,GAAG,CAACsF,UAAU,CAAC;kBACrB,MAAI,CAACU,WAAW,CAACC,IAAI,CAACH,UAAU,CAAC;kBACjC,MAAI,CAACE,WAAW,CAACC,IAAI,CAACX,UAAU,CAAC;kBACjCtD,KAAK,EAAE;kBACP4D,OAAO,CAACpG,KAAK,CAAC;gBAChB,CAAC,EAAE,IAAI,CAAC;cACV,CAAC,CAAC;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA,CACH;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA,OAED,mBAAU0G,cAAc,EAAyB;MAAA,IAAvB1H,QAAQ,uEAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;MAC7C;MACA,IAAM2H,MAAM,GAAG1J,SAAS,CAAC2J,QAAQ,CAAC5H,QAAQ,CAAC,CAAC,CAAC,CAAC;MAC9C,IAAM6H,MAAM,GAAG5J,SAAS,CAAC2J,QAAQ,CAAC5H,QAAQ,CAAC,CAAC,CAAC,CAAC;MAC9C,IAAM8H,MAAM,GAAG7J,SAAS,CAAC2J,QAAQ,CAAC5H,QAAQ,CAAC,CAAC,CAAC,CAAC;;MAE9C;MACA,IAAM+H,cAAc,GAAG,IAAI7J,OAAO,EAAE;MACpC6J,cAAc,CAACC,aAAa,CAACL,MAAM,CAAC;MACpCI,cAAc,CAACE,QAAQ,CAAC,IAAI/J,OAAO,EAAE,CAACgK,aAAa,CAACL,MAAM,CAAC,CAAC;MAC5DE,cAAc,CAACE,QAAQ,CAAC,IAAI/J,OAAO,EAAE,CAACiK,aAAa,CAACL,MAAM,CAAC,CAAC;;MAE5D;MACA,IAAMM,eAAe,GAAG,IAAIvJ,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;;MAE5C;MACA,IAAMwJ,eAAe,GAAGD,eAAe,CAACzG,KAAK,EAAE,CAAC2G,YAAY,CAACP,cAAc,CAAC;;MAE5E;MACA,OAAOL,cAAc,CAAC/F,KAAK,EAAE,CAACH,GAAG,CAAC6G,eAAe,CAAC;IACpD;EAAC;IAAA;IAAA,OAED,oBAAWpH,MAAc,EAAE;MACzB,qBAAmBlC,GAAG,CAAC6E,QAAQ,EAAE;QAAzBnE,MAAM,kBAANA,MAAM;;MAEd;MACA,IAAM8I,gBAAgB,GAAG7B,MAAM,CAAC6B,gBAAgB,IAAI,CAAC;MACrD;MACA,IAAMC,IAAI,GAAG,IAAI7K,IAAI,EAAE,CAAC8K,aAAa,CAACxH,MAAM,CAAC;MAC7C;MACA,IAAMyH,GAAG,GAAGF,IAAI,CAACE,GAAG,CAACC,OAAO,CAAClJ,MAAM,CAAC;MACpC,IAAMmJ,GAAG,GAAGJ,IAAI,CAACI,GAAG,CAACD,OAAO,CAAClJ,MAAM,CAAC;MACpCoJ,OAAO,CAACC,GAAG,CAAC,MAAM,EAAEJ,GAAG,CAAC;MACxBG,OAAO,CAACC,GAAG,CAAC,MAAM,EAAEF,GAAG,CAAC;MAExB,YAAa,CAAClC,MAAM,CAACC,UAAU,EAAED,MAAM,CAACE,WAAW,CAAC;QAA/CmC,CAAC;QAAEC,CAAC;MACT,IAAMC,GAAG,GAAGC,QAAQ,CAACC,aAAa,CAAC,MAAM,CAAC;MAC1C,IAAIF,GAAG,EAAE;QACPF,CAAC,GAAGE,GAAG,CAACG,WAAW;QACnBJ,CAAC,GAAGC,GAAG,CAACI,YAAY;MACtB;MACA,IAAIC,KAAK,GAAG,CAAC;MACb,IAAI7J,MAAM,CAAC8J,GAAG,IAAI,EAAE,EAClBD,KAAK,GAAG,CAAC,IAAI,IAAI7J,MAAM,CAAC8J,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,MAEtCD,KAAK,GAAG,IAAI,IAAI,EAAE,GAAG7J,MAAM,CAAC8J,GAAG,CAAC,GAAG,EAAE;;MAEvC;MACA,IAAIC,KAAK,GAAG,CAACZ,GAAG,CAAC/G,CAAC,GAAG6G,GAAG,CAAC7G,CAAC,IAAIkH,CAAC,GAAGR,gBAAgB,IAAI,IAAI,GAAGe,KAAK,CAAC;MACnE,IAAIG,MAAM,GAAG,CAACb,GAAG,CAACzH,CAAC,GAAGuH,GAAG,CAACvH,CAAC,IAAI6H,CAAC,GAAGT,gBAAgB,IAAI,KAAK,GAAGe,KAAK,CAAC;MAErE,IAAMI,WAAW,GAAGnB,gBAAgB,GAAG,GAAG;MAC1C;MACAiB,KAAK,IAAIE,WAAW;MACpBD,MAAM,IAAIC,WAAW;MAErB,OAAO;QAAEF,KAAK,EAALA,KAAK;QAAEC,MAAM,EAANA;MAAO,CAAC;IAC1B;EAAC;IAAA;IAAA,OAED,qBAAYxI,MAAc,EAAE;MAC1B,qBAAmBlC,GAAG,CAAC6E,QAAQ,EAAE;QAAzBnE,MAAM,kBAANA,MAAM;MACd,IAAM6J,KAAK,GAAG,EAAE,GAAG7J,MAAM,CAAC8J,GAAG;MAC7B;MACA,IAAMI,WAAW,GAAG,GAAG;MACvB,IAAMC,WAAW,GAAG,OAAO;MAC3B;MACA,IAAMlC,cAAc,GAAGjI,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEG,QAAQ;MACvC,IAAMiK,cAAc,GAAG5I,MAAM,CAACrB,QAAQ;;MAEtC;MACA,IAAMkK,QAAQ,GAAG,CAAApC,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEzC,UAAU,CAAC4E,cAAc,CAAC,KAAI,GAAG;;MAElE;MACA,IAAME,eAAe,GAAG3I,IAAI,CAACwH,GAAG,CAACe,WAAW,EAAEvI,IAAI,CAACsH,GAAG,CAACkB,WAAW,EAAEE,QAAQ,CAAC,CAAC;MAC9E;MACA;MACA7I,MAAM,CAACC,KAAK,CAACK,IAAI,CAAC,IAAI1C,OAAO,CAACkL,eAAe,IAAI,MAAM,GAAGT,KAAK,CAAC,EAAG,MAAM,GAAGA,KAAK,GAAIS,eAAe,EAAE,CAAC,CAAC,CAAC;IAC3G;EAAC;IAAA;IAAA,OAED,0BAAiBC,SAAS,EAAE3G,EAAE,EAAE;MAC9B,IAAI,IAAI,CAAC4G,SAAS,CAACC,GAAG,CAACF,SAAS,CAAC,EAC/B,IAAI,CAACC,SAAS,CAACD,SAAS,CAAC,GAAG3G,EAAE,MAE9B,IAAI,CAAC4G,SAAS,CAAClI,GAAG,CAACiI,SAAS,EAAE3G,EAAE,CAAC;IACrC;EAAC;IAAA;IAAA,OAED,uBAAc5D,MAAM,EAAEwB,MAAc,EAAE;MAAA;MACpC,uBAAwB,IAAI,CAACkJ,UAAU,CAAClJ,MAAM,CAAC;QAAzCuI,KAAK,oBAALA,KAAK;QAAEC,MAAM,oBAANA,MAAM;;MAEnB;MACA,IAAMW,SAAS,GAAGlB,QAAQ,CAACmB,aAAa,CAAC,KAAK,CAAC;MAC/Cb,KAAK,IAAI,EAAE;MACXC,MAAM,IAAI,EAAE;MACZa,MAAM,CAACC,MAAM,CAACH,SAAS,CAACI,KAAK,EAAE;QAC7B,OAAO,YAAKhB,KAAK,OAAI;QACrB,QAAQ,YAAKC,MAAM,OAAI;QACvB,SAAS,EAAE,cAAc;QACzB,iBAAiB,gBAASlK,OAAO,mBAAgB;QACjD,gBAAgB,EAAE,WAAW;QAC7B,kBAAkB,EAAE,WAAW;QAC/B,UAAU,EAAE;;QAEZ;QACA;MACF,CAAC,CAAC;;MAEF,IAAMkL,UAAU,GAAGvB,QAAQ,CAACmB,aAAa,CAAC,KAAK,CAAC;MAChDI,UAAU,CAACC,SAAS,GAAG,aAAa;MACpCN,SAAS,CAACO,WAAW,CAACF,UAAU,CAAC;;MAEjC;MACA,IAAMG,SAAS,GAAG1B,QAAQ,CAACmB,aAAa,CAAC,MAAM,CAAC;MAChDO,SAAS,CAACF,SAAS,GAAG,cAAc;MACpCN,SAAS,CAACO,WAAW,CAACC,SAAS,CAAC;MAChCA,SAAS,CAAClG,gBAAgB,CAAC,OAAO,EAAE,YAAM;QACxC,MAAI,CAAClB,KAAK,EAAE;MACd,CAAC,CAAC;;MAEF;MACA,IAAMqH,EAAE,GAAG3B,QAAQ,CAACmB,aAAa,CAAC,KAAK,CAAC;MACxCQ,EAAE,CAACH,SAAS,GAAG,gBAAgB;MAC/BN,SAAS,CAACO,WAAW,CAACE,EAAE,CAAC;MACzB,IAAMC,MAAM,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC;MACjDA,MAAM,CAAChK,OAAO,CAAC,UAACiK,GAAG,EAAK;QACtB,IAAMC,OAAO,GAAG9B,QAAQ,CAACmB,aAAa,CAAC,MAAM,CAAC;QAC9CW,OAAO,CAACN,SAAS,+CAAwCK,GAAG,CAAE;QAE9D,IAAME,WAAW,GAAG,SAAdA,WAAW,GAAS;UACxB,QAAQF,GAAG;YACT,KAAK,KAAK;cACRtL,MAAM,CAACO,QAAQ,CAAC6B,CAAC,IAAI,IAAI;cACzB;YACF,KAAK,QAAQ;cACXpC,MAAM,CAACO,QAAQ,CAAC6B,CAAC,IAAI,IAAI;cACzB;YACF,KAAK,MAAM;cACTpC,MAAM,CAACO,QAAQ,CAACmB,CAAC,IAAI,IAAI;cACzB;YACF,KAAK,OAAO;cACV1B,MAAM,CAACO,QAAQ,CAACmB,CAAC,IAAI,IAAI;cACzB;UAAK;UAET,4BAA2B,MAAI,CAACqF,MAAM,CAACnG,KAAK,CAACqB,KAAK,CAACmF,oBAAoB,CAACpH,MAAM,CAAC;YAAvE+F,OAAO,yBAAPA,OAAO;YAAEhC,KAAK,yBAALA,KAAK;UACtBvC,MAAM,CAAC6E,QAAQ,GAAG,IAAIpH,cAAc,CAAC;YAAEgH,GAAG,EAAEF,OAAO;YAAEU,SAAS,EAAE,KAAK;YAAEa,UAAU,EAAE;UAAM,CAAC,CAAC;UAC3FM,UAAU,CAAC;YAAA,OAAM7D,KAAK,EAAE;UAAA,GAAE,GAAG,CAAC;QAChC,CAAC;QAED,IAAI0H,KAAK;QACT,IAAIC,SAAS;QACb,IAAIC,IAAI;QAERJ,OAAO,CAACtG,gBAAgB,CAAC,WAAW,EAAE,YAAM;UAC1CwG,KAAK,GAAG,IAAIrN,KAAK,EAAE;UACnBqN,KAAK,CAACG,QAAQ,EAAE;UAEhBD,IAAI,GAAG/D,UAAU,CAAC,YAAM;YACtB8D,SAAS,GAAGpM,GAAG,CAACiE,QAAQ,CAACiI,WAAW,CAAC;UACvC,CAAC,EAAE,GAAG,CAAC;QACT,CAAC,CAAC;QAEFD,OAAO,CAACtG,gBAAgB,CAAC,SAAS,EAAE,YAAM;UACxC,IAAIwG,KAAK,CAACG,QAAQ,EAAE,GAAG,GAAG,EACxBJ,WAAW,EAAE;UAEfK,YAAY,CAACF,IAAI,CAAC;UAClBD,SAAS,IAAIA,SAAS,EAAE;QAC1B,CAAC,CAAC;;QAEF;QACAN,EAAE,CAACF,WAAW,CAACK,OAAO,CAAC;MACzB,CAAC,CAAC;MAEF,IAAMO,EAAE,GAAG,SAALA,EAAE,CAAIhC,GAAG,EAAK;QAClB,IAAI,CAACA,GAAG,EAAE;QACV9J,MAAM,CAAC8J,GAAG,GAAGA,GAAG;QAChB9J,MAAM,CAAC+L,sBAAsB,EAAE;QAC/B,6BAA2B,MAAI,CAAChF,MAAM,CAACnG,KAAK,CAACqB,KAAK,CAACmF,oBAAoB,CAACpH,MAAM,CAAC;UAAvE+F,OAAO,0BAAPA,OAAO;UAAEhC,KAAK,0BAALA,KAAK;QACtBvC,MAAM,CAAC6E,QAAQ,GAAG,IAAIpH,cAAc,CAAC;UAAEgH,GAAG,EAAEF,OAAO;UAAEU,SAAS,EAAE,KAAK;UAAEa,UAAU,EAAE;QAAM,CAAC,CAAC;QAC3FM,UAAU,CAAC;UAAA,OAAM7D,KAAK,EAAE;QAAA,GAAE,GAAG,CAAC;MAChC,CAAC;MACD,IAAMiI,MAAM,GAAG,IAAI,CAACC,UAAU,CAACH,EAAE,CAAC;MAClCnB,SAAS,CAACO,WAAW,CAACc,MAAM,CAAC;;MAG7B;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;;MAGA,IAAMnE,UAAU,GAAG,IAAItI,QAAQ,CAACoL,SAAS,CAAC;MAC1C9C,UAAU,CAAC1H,QAAQ,CAAC2B,IAAI,CAACN,MAAM,CAACrB,QAAQ,CAAC;MACzC,OAAO0H,UAAU;IACnB;EAAC;IAAA;IAAA,OAED,oBAAWiE,EAAE,EAAE;MACb,IAAI/L,IAAI,GAAG,CAAC;QAAEmM,IAAI,EAAE,KAAK;QAAEpC,GAAG,EAAE;MAAK,CAAC,EAAE;QAAEoC,IAAI,EAAE,GAAG;QAAEpC,GAAG,EAAE;MAAK,CAAC,EAAE;QAAEoC,IAAI,EAAE,KAAK;QAAEpC,GAAG,EAAE;MAAK,CAAC,EAAE;QAAEoC,IAAI,EAAE,KAAK;QAAEpC,GAAG,EAAE;MAAK,CAAC,EAAE;QAAEoC,IAAI,EAAE,KAAK;QAAEpC,GAAG,EAAE;MAAK,CAAC,EAAE;QAAEoC,IAAI,EAAE,KAAK;QAAEpC,GAAG,EAAE;MAAK,CAAC,EAAE;QAAEoC,IAAI,EAAE,KAAK;QAAEpC,GAAG,EAAE;MAAM,CAAC,CAAE;MAE/M,IAAMqC,SAAS,GAAG1C,QAAQ,CAACmB,aAAa,CAAC,KAAK,CAAC;MAC/CuB,SAAS,CAAClB,SAAS,GAAG,yBAAyB;MAE/C,IAAMmB,cAAc,GAAG3C,QAAQ,CAACmB,aAAa,CAAC,KAAK,CAAC;MACpDwB,cAAc,CAACnB,SAAS,GAAG,qBAAqB;MAChDkB,SAAS,CAACjB,WAAW,CAACkB,cAAc,CAAC;MACrCrM,IAAI,CAACsB,OAAO,CAAC,UAAAsB,IAAI,EAAI;QACnB,IAAM0J,GAAG,GAAG5C,QAAQ,CAACmB,aAAa,CAAC,KAAK,CAAC;QACzCyB,GAAG,CAACpB,SAAS,GAAG,oBAAoB;QACpCoB,GAAG,CAACC,SAAS,aAAM3J,IAAI,CAACuJ,IAAI,oBAAiB;QAC7CG,GAAG,CAACE,YAAY,CAAC,KAAK,EAAE5J,IAAI,CAACmH,GAAG,CAAC;QACjCsC,cAAc,CAAClB,WAAW,CAACmB,GAAG,CAAC;MACjC,CAAC,CAAC;MAEF,IAAMG,KAAK,GAAGJ,cAAc,CAAC5I,QAAQ;MACrC,IAAMiJ,UAAU,GAAG,EAAE;MACrB,IAAIC,WAAW,GAAGF,KAAK,CAACG,MAAM,GAAGF,UAAU;MAE3C,IAAMG,UAAU,GAAG,SAAbA,UAAU,GAAS;QACvBC,KAAK,CAACC,IAAI,CAACN,KAAK,CAAC,CAACnL,OAAO,CAAC,UAAAsB,IAAI,EAAI;UAChCyJ,cAAc,CAAClB,WAAW,CAACvI,IAAI,CAACoK,SAAS,CAAC,IAAI,CAAC,CAAC;QAClD,CAAC,CAAC;MACJ,CAAC;MAEDH,UAAU,EAAE;MACZA,UAAU,EAAE;MAEZ,IAAMI,mBAAmB,GAAG,SAAtBA,mBAAmB,GAAS;QAChC,IAAMC,cAAc,GAAGd,SAAS,CAACe,SAAS,GAAGf,SAAS,CAACvC,YAAY,GAAG,CAAC;QACvE,IAAMuD,WAAW,GAAGxL,IAAI,CAACyL,KAAK,CAACH,cAAc,GAAGR,UAAU,CAAC,GAAGD,KAAK,CAACG,MAAM;QAC1EE,KAAK,CAACC,IAAI,CAACN,KAAK,CAAC,CAACnL,OAAO,CAAC,UAACsB,IAAI,EAAE0K,KAAK,EAAK;UACzC,IAAIA,KAAK,KAAKF,WAAW,EAAE;YACzBxK,IAAI,CAAC2K,SAAS,CAACvL,GAAG,CAAC,WAAW,CAAC;YAC/B+J,EAAE,CAACnJ,IAAI,CAAC4K,YAAY,CAAC,KAAK,CAAC,CAAC;UAC9B,CAAC,MAAM;YACL5K,IAAI,CAAC2K,SAAS,CAAC3H,MAAM,CAAC,WAAW,CAAC;UACpC;QACF,CAAC,CAAC;MACJ,CAAC;MACDwG,SAAS,CAAClH,gBAAgB,CAAC,QAAQ,EAAE,YAAM;QACzC,IAAIkH,SAAS,CAACe,SAAS,IAAI,CAAC,EAAE;UAC5Bf,SAAS,CAACe,SAAS,IAAIR,WAAW;QACpC,CAAC,MAAM,IAAIP,SAAS,CAACe,SAAS,IAAIR,WAAW,GAAG,CAAC,EAAE;UACjDP,SAAS,CAACe,SAAS,IAAIR,WAAW;QACpC;QACAM,mBAAmB,EAAE;MACvB,CAAC,CAAC;MACF,IAAMQ,cAAc,GAAG,SAAjBA,cAAc,CAAI9I,cAAc,EAAK;QACzC,IAAMN,aAAa,GAAG+H,SAAS,CAACe,SAAS;QACzC,IAAM7C,QAAQ,GAAG3F,cAAc,GAAGN,aAAa;QAC/C,IAAMrB,QAAQ,GAAG,GAAG;QACpB,IAAI0K,KAAK,GAAG,IAAI;QAEhB,IAAMC,IAAI,GAAG,SAAPA,IAAI,CAAIC,SAAS,EAAK;UAC1B,IAAI,CAACF,KAAK,EAAEA,KAAK,GAAGE,SAAS;UAC7B,IAAMC,QAAQ,GAAGD,SAAS,GAAGF,KAAK;UAClC,IAAMI,aAAa,GAAGlM,IAAI,CAACsH,GAAG,CAAC2E,QAAQ,GAAG7K,QAAQ,EAAE,CAAC,CAAC;UACtDoJ,SAAS,CAACe,SAAS,GAAG9I,aAAa,GAAGiG,QAAQ,GAAGwD,aAAa;UAC9D,IAAID,QAAQ,GAAG7K,QAAQ,EAAE;YACvBkE,MAAM,CAAC6G,qBAAqB,CAACJ,IAAI,CAAC;UACpC,CAAC,MAAM;YACLV,mBAAmB,EAAE;UACvB;QACF,CAAC;QAED/F,MAAM,CAAC6G,qBAAqB,CAACJ,IAAI,CAAC;MACpC,CAAC;MAED,IAAMK,YAAY,GAAG,SAAfA,YAAY,CAAIpL,IAAI,EAAK;QAC7B,IAAM0K,KAAK,GAAGR,KAAK,CAACC,IAAI,CAACN,KAAK,CAAC,CAACwB,OAAO,CAACrL,IAAI,CAAC;QAC7C,IAAM+B,cAAc,GAAG2I,KAAK,GAAGZ,UAAU,GAAGN,SAAS,CAACvC,YAAY,GAAG,CAAC,GAAG6C,UAAU,GAAG,CAAC;QACvFe,cAAc,CAAC9I,cAAc,CAAC;MAChC,CAAC;MACDmI,KAAK,CAACC,IAAI,CAACN,KAAK,CAAC,CAACnL,OAAO,CAAC,UAAAsB,IAAI,EAAI;QAChCA,IAAI,CAACsC,gBAAgB,CAAC,OAAO,EAAE,YAAM;UAAE8I,YAAY,CAACpL,IAAI,CAAC;QAAC,CAAC,CAAC;MAC9D,CAAC,CAAC;MACFiF,UAAU,CAAC,YAAM;QACf;QACAuE,SAAS,CAACe,SAAS,GAAGR,WAAW;QACjCM,mBAAmB,EAAE;MACvB,CAAC,CAAC;MAEF,IAAMiB,SAAS,GAAGxE,QAAQ,CAACmB,aAAa,CAAC,KAAK,CAAC;MAC/CqD,SAAS,CAAChD,SAAS,GAAG,kBAAkB;MACxCgD,SAAS,CAAC/C,WAAW,CAACiB,SAAS,CAAC;MAChC,OAAO8B,SAAS;IAClB;EAAC;IAAA;IAAA,OAED,oBAAW;MACT;MACA,IAAMC,GAAG,uiDAiDiBpO,OAAO,gdAgBPA,OAAO,gYAePA,OAAO,qMAMPA,OAAO,46BA6CbA,OAAO,q9BA2CDA,OAAO,sJAMpC;MACG;MACA,IAAMqO,YAAY,GAAG1E,QAAQ,CAACmB,aAAa,CAAC,OAAO,CAAC;MACpDuD,YAAY,CAACjD,WAAW,CAACzB,QAAQ,CAAC2E,cAAc,CAACF,GAAG,CAAC,CAAC;MACtD;MACAzE,QAAQ,CAAC4E,IAAI,CAACnD,WAAW,CAACiD,YAAY,CAAC;IACzC;EAAC;IAAA;IAAA,OAED,iBAAQ;MACN,IAAI,IAAI,CAACpG,WAAW,EAAE;QACpB,IAAI,CAACA,WAAW,CAAC1G,OAAO,CAAC,UAACuB,IAAI,EAAK;UACjCA,IAAI,CAAC+C,MAAM,EAAE;UACb/C,IAAI,CAACgD,gBAAgB,EAAE;QACzB,CAAC,CAAC;QACF,IAAI,CAACmC,WAAW,CAAC4E,MAAM,GAAG,CAAC;MAC7B;MACA,IAAI,CAACnC,SAAS,CAACC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAACD,SAAS,CAAC8D,GAAG,CAAC,OAAO,CAAC,EAAE;MAC5D;MACA,IAAI,CAAC3K,aAAa,CAACtC,OAAO,CAAC,UAACuC,EAAE,EAAK;QACjCA,EAAE,EAAE;MACN,CAAC,CAAC;MACF,IAAI,CAACD,aAAa,CAACkC,KAAK,EAAE;MAC1B,IAAI,CAAC2E,SAAS,CAAC3E,KAAK,EAAE;IACxB;EAAC;EAAA;AAAA;AAAA,IAGGT,OAAO;EAeX,mBAAc;IAAA;IAAA,+CAdU;MACtB,GAAG,EAAE,MAAM;MACX,GAAG,EAAE,SAAS;MACd,GAAG,EAAE,SAAS;MACd,GAAG,EAAE,SAAS;MACd,GAAG,EAAE;IACP,CAAC;IAAA,mCAEkC,IAAIvE,GAAG,EAAE;IAAA;IAAA;IAAA,oCAG/B,EAAE;IAAA,gCACN,KAAK;EAId;;EAEA;EAAA;IAAA;IAAA,OACA,gBAAOwJ,QAAQ,EAAE;MACf,IAAI,CAACpG,MAAM,GAAG,IAAI;MAClB,IAAMsK,OAAO,GAAG9O,OAAO,CAAC0D,MAAM,CAAC;QAC7BgJ,SAAS,EAAE,IAAI,CAACqC,SAAS,EAAE;QAC3BC,QAAQ,EAAE,IAAI,CAACC;MACjB,CAAC,CAAC;MACF,IAAIC,GAAG,GAAG,IAAI;MACd,IAAM5E,KAAK,GAAG9C,MAAM,CAACC,UAAU;MAC/B,IAAM8C,MAAM,GAAG/C,MAAM,CAACE,WAAW;MACjC,IAAMyH,MAAM,GAAG,EAAE;MACjB,IAAIzF,GAAG,GAAG,CAAC;MACX,OAAOwF,GAAG,EAAE,EAAE;QACZ,IAAME,GAAG,GAAGlN,IAAI,CAACyL,KAAK,CAACzL,IAAI,CAACkF,MAAM,EAAE,GAAG,EAAE,CAAC;QAC1CsC,GAAG,GAAGxH,IAAI,CAACwH,GAAG,CAACA,GAAG,EAAE0F,GAAG,CAAC;QACxB,IAAMpM,KAAK,GAAG;UACZL,CAAC,EAAET,IAAI,CAACyL,KAAK,CAACzL,IAAI,CAACkF,MAAM,EAAE,GAAGkD,KAAK,CAAC;UACpCrI,CAAC,EAAEC,IAAI,CAACyL,KAAK,CAACzL,IAAI,CAACkF,MAAM,EAAE,GAAGmD,MAAM,CAAC;UACrC8E,KAAK,EAAED;QACT,CAAC;QACDD,MAAM,CAAC5G,IAAI,CAACvF,KAAK,CAAC;MACpB;MACA8L,OAAO,CAACQ,OAAO,CAAC;QACd5F,GAAG,EAAHA,GAAG;QACHpJ,IAAI,EAAE6O;MACR,CAAC,CAAC;;MAEF;MACA,IAAMI,OAAO,GAAGvP,OAAO,CAAC0D,MAAM,CAAC;QAC7BgJ,SAAS,EAAE,IAAI,CAACqC,SAAS,EAAE;QAC3BC,QAAQ,EAAE;UACR,GAAG,EAAE,OAAO;UACZ,KAAK,EAAE;QACT;MACF,CAAC,CAAC;MAEFO,OAAO,CAACD,OAAO,CAAC;QACd5F,GAAG,EAAHA,GAAG;QACHpJ,IAAI,EAAE6O;MACR,CAAC,CAAC;MACF,IAAMK,eAAe,GAAG,IAAIlQ,cAAc,CAAC;QACzCoH,WAAW,EAAE,IAAI;QACjBM,SAAS,EAAE,KAAK;QAChBP,IAAI,EAAE5H,UAAU;QAChBgI,YAAY,usBAWX;QACDC,cAAc,seAQV;QACJ2I,QAAQ,EAAE;UACRzP,OAAO,EAAE;YACPqP,KAAK,EAAE;cAAEA,KAAK,EAAErK;YAAU;UAC5B,CAAC;UACD0K,OAAO,EAAE;YACPL,KAAK,EAAE;cAAEA,KAAK,EAAErK;YAAU;UAC5B,CAAC;UACD2K,MAAM,EAAE;YAAEN,KAAK,EAAE;UAAE,CAAC;UAAE;UACtBO,OAAO,EAAE;YACPP,KAAK,EAAE,IAAIzQ,KAAK,CAAC,oBAAoB;UACvC,CAAC;UACDiR,SAAS,EAAE;YACTR,KAAK,EAAE;UACT;QACF;MACF,CAAC,CAAC;MAEF,IAAM/I,OAAO,GAAG,IAAI7G,OAAO,CAACqP,OAAO,CAACgB,SAAS,CAACC,MAAM,CAAC;MACrDzJ,OAAO,CAAC0J,WAAW,GAAG,IAAI;MAC1B,IAAMC,WAAW,GAAG,IAAIxQ,OAAO,CAAC8P,OAAO,CAACO,SAAS,CAACC,MAAM,CAAC;MACzDE,WAAW,CAACD,WAAW,GAAG,IAAI;MAE9BR,eAAe,CAACC,QAAQ,CAACzP,OAAO,CAACqP,KAAK,GAAG/I,OAAO;MAChDkJ,eAAe,CAACC,QAAQ,CAACC,OAAO,CAACL,KAAK,GAAGY,WAAW;MAEpD,qBAAmBpQ,GAAG,CAAC6E,QAAQ,EAAE;QAAzBnE,MAAM,kBAANA,MAAM;MACd;MACA,IAAMuJ,CAAC,GAAG,CAAC,GAAG5H,IAAI,CAACgO,GAAG,CAAC3P,MAAM,CAAC8J,GAAG,GAAGnI,IAAI,CAACC,EAAE,GAAG,GAAG,CAAC,GAAGyI,QAAQ,GAAG,CAAC,GAAG,IAAI;MACxE,IAAMf,CAAC,GAAGC,CAAC,GAAGvJ,MAAM,CAAC4P,MAAM;MAE3B,IAAMC,eAAe,GAAG,IAAI/Q,aAAa,CAACwK,CAAC,EAAEC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAAC;MAC1D,IAAMuG,YAAY,GAAG,IAAIpR,IAAI,CAACmR,eAAe,EAAEZ,eAAe,CAAC;MAC/Da,YAAY,CAACvP,QAAQ,CAAC+B,GAAG,CAAC,CAACX,IAAI,CAACC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;MAE7C,IAAI,CAACkO,YAAY,GAAGA,YAAY;MAChC,OAAOA,YAAY;IACrB;EAAC;IAAA;IAAA,OAED,0BAAiBvF,SAAS,EAAE3G,EAAE,EAAE;MAC9B,IAAI,IAAI,CAAC4G,SAAS,CAACC,GAAG,CAACF,SAAS,CAAC,EAC/B,IAAI,CAACC,SAAS,CAACD,SAAS,CAAC,GAAG3G,EAAE,MAE9B,IAAI,CAAC4G,SAAS,CAAClI,GAAG,CAACiI,SAAS,EAAE3G,EAAE,CAAC;IACrC;EAAC;IAAA;IAAA,OAED,mBAAU;MAAA;MACR,IAAI,CAACmM,OAAO,GAAGtG,QAAQ,CAACmB,aAAa,CAAC,KAAK,CAAC;MAC5C,IAAI,CAACmF,OAAO,CAAC9E,SAAS,GAAG,UAAU;MACnC,IAAI,CAAC8E,OAAO,CAACzD,SAAS,GAAG,IAAI;MAC7B7C,QAAQ,CAACuG,IAAI,CAAC9E,WAAW,CAAC,IAAI,CAAC6E,OAAO,CAAC;MACvC,IAAI,CAACA,OAAO,CAAC9K,gBAAgB,CAAC,OAAO,EAAE,YAAM;QAC3C,MAAI,CAACuF,SAAS,CAACC,GAAG,CAAC,OAAO,CAAC,IAAI,MAAI,CAACD,SAAS,CAAC8D,GAAG,CAAC,OAAO,CAAC,EAAE;QAC5D;MACF,CAAC,CAAC;IACJ;EAAC;IAAA;IAAA,OAED,qBAAY;MACV;MACA,IAAMkB,MAAM,GAAG/F,QAAQ,CAACmB,aAAa,CAAC,QAAQ,CAAC;MAC/C4E,MAAM,CAACzE,KAAK,CAACkF,MAAM,GAAG,IAAI;MAC1B;MACAT,MAAM,CAACzF,KAAK,GAAG9C,MAAM,CAACC,UAAU;MAChCsI,MAAM,CAACxF,MAAM,GAAG/C,MAAM,CAACE,WAAW;MAClCsC,QAAQ,CAACuG,IAAI,CAAC9E,WAAW,CAACsE,MAAM,CAAC;MACjC,IAAI,CAACU,UAAU,CAAClI,IAAI,CAACwH,MAAM,CAAC;MAC5B,OAAOA,MAAM;IACf;EAAC;IAAA;IAAA,OAED,kBAAS;MACP,IAAI,CAACU,UAAU,CAAC7O,OAAO,CAAC,UAACmO,MAAM,EAAK;QAClCA,MAAM,CAAC7J,MAAM,EAAE;MACjB,CAAC,CAAC;MACF;MACA,IAAI,CAACuK,UAAU,CAACvD,MAAM,GAAG,CAAC;MAC1B,IAAI,CAACoD,OAAO,IAAI,IAAI,CAACA,OAAO,CAACpK,MAAM,EAAE;MACrC,IAAI,IAAI,CAACmK,YAAY,EAAE;QACrB,IAAI,CAACA,YAAY,CAAClK,gBAAgB,EAAE;QACpC,IAAI,CAACkK,YAAY,CAACnK,MAAM,EAAE;MAC5B;MACA,IAAI,CAAC1B,MAAM,GAAG,KAAK;IACrB;EAAC;EAAA;AAAA"}
|
|
1
|
+
{"version":3,"names":["AdditiveBlending","Box3","CircleGeometry","Clock","Color","DoubleSide","Group","MathUtils","Matrix4","Mesh","MeshBasicMaterial","ModelLoader","PerspectiveCamera","PlaneGeometry","ShaderMaterial","Sprite","SpriteMaterial","Texture","TextureLoader","Vector3","gsap","use","Css2DPoi","SpritePoi","heatMap","MessageType","sendToMessage","EMessageStatus","loadingManager","usePath","data","camera","id","name","position","fovDefault","fovRange","dialogCamera","rotation","probePoint","warn","load","CameraPoi","gobal","Map","Set","dialogManage","Dialog","addStyle","loadGLTF","gltf","model","forEach","region","group","sprite","scale","y","Math","PI","fromArray","copy","add","scan","scene","clone","addScalar","x","cameraMesh","set","interactionManager","cameraEvent","point","MethanePoint","item","mesh","probeEvent","to","duration","ease","yoyo","repeat","create","warnMesh","rotatingRight","unFrame","useframe","children","z","abs","eventListener","fn","currentDialogMesh","isClose","close","headMap","isShow","closeHotmap","useScene","startPosition","cameraLookAt","getWorldDirection","Event","Success","undefined","targetPosition","toArray","camaraPosition","cameraUtil","target","setMeshVisible","getMesh","addEventListener","visible","removeEventListener","HeadMap","unClick","togglePoi","then","distanceTo","orbitControls","enabled","remove","removeFromParent","clear","geometry","texture","circle","map","side","transparent","rotateX","material","vertexShader","fragmentShader","blending","depthTest","color","numPoints","i","random","cameraManage","manage","careraParams","window","innerWidth","innerHeight","setCustomPerspective","cuteSprite","depthWrite","center","renderOrder","updateScale","Promise","reslove","setTimeout","borderMesh","getBorderMesh","cuteSprites","push","cameraPosition","angleX","degToRad","angleY","angleZ","rotationMatrix","makeRotationX","multiply","makeRotationY","makeRotationZ","cameraDirection","targetDirection","applyMatrix4","devicePixelRatio","bbox","setFromObject","min","project","max","console","log","w","h","dom","document","querySelector","clientWidth","clientHeight","ratio","fov","width","height","scaleFactor","minDistance","maxDistance","objectPosition","distance","clampedDistance","eventName","eventList","has","getBoxSize","dialogDiv","createElement","Object","assign","style","maskingDiv","className","appendChild","closeSpan","op","opList","key","btnSpan","handleClick","clock","longPress","time","getDelta","clearTimeout","cb","updateProjectionMatrix","slider","getFovView","text","container","itemsContainer","div","innerHTML","setAttribute","items","itemHeight","totalHeight","length","cloneItems","Array","from","cloneNode","highlightMiddleItem","middlePosition","scrollTop","middleIndex","floor","index","classList","getAttribute","smoothScrollTo","start","step","timestamp","progress","progressRatio","requestAnimationFrame","scrollToItem","indexOf","conSlider","css","styleElement","createTextNode","head","get","heatmap","createDom","gradient","TemperatureColorStops","len","points","val","value","setData","greymap","heatMapMaterial","uniforms","greyMap","Zscale","u_color","u_opacity","_renderer","canvas","needsUpdate","greyTexture","tan","aspect","heatMapGeometry","heatMapPlane","backEle","body","zIndex","canvasList"],"sources":["../../../src/factory/unit/CameraPoi.ts"],"sourcesContent":["import type { Object3D } from '@anov/3d-core'\nimport { AdditiveBlending, Box3, CircleGeometry, Clock, Color, DoubleSide, Euler, Group, MathUtils, Matrix4, Mesh, MeshBasicMaterial, ModelLoader, PerspectiveCamera, PlaneGeometry, ShaderMaterial, Sprite, SpriteMaterial, Texture, TextureLoader, Vector3, WebGLRenderTarget, gsap, use, utils } from '@anov/3d-core'\nimport { Css2DPoi, SpritePoi } from '@anov/3d-ability'\nimport heatMap from 'anov-heat-map'\nimport { MessageType, sendToMessage } from '../../utils/messageFn'\nimport { EMessageStatus } from '../../messageStatus'\nimport { loadingManager, usePath } from '../3d'\n\n// @ts-ignore\nimport type Factory3D from '../3d'\n\nconst data = {\n camera: [\n {\n id: '1',\n name: '摄像头1',\n position: [-315, 30, -150],\n fovDefault: 60,\n fovRange: [30, 120],\n dialogCamera: {\n position: [-315, 30, -150],\n rotation: [30, 180, 0],\n },\n },\n {\n id: '2',\n name: '摄像头2',\n position: [30, 30, -150],\n fovDefault: 60,\n fovRange: [30, 120],\n dialogCamera: {\n position: [30, 30, -150],\n rotation: [30, 180, 0],\n },\n },\n {\n id: '3',\n name: '摄像头3',\n position: [360, 30, -150],\n fovDefault: 60,\n fovRange: [30, 120],\n dialogCamera: {\n position: [360, 30, -150],\n rotation: [30, 180, 0],\n },\n },\n {\n id: '4',\n name: '摄像头4',\n position: [-320, 30, 32],\n dialogCamera: {\n position: [-320, 30, 32],\n rotation: [30, 180, 0],\n },\n },\n {\n id: '5',\n name: '摄像头5',\n position: [-307, 30, 170],\n fovDefault: 60,\n fovRange: [30, 120],\n dialogCamera: {\n position: [-307, 30, 170],\n rotation: [30, 180, 0],\n },\n },\n {\n id: '6',\n name: '摄像头6',\n position: [77, 30, 96],\n fovDefault: 60,\n fovRange: [30, 120],\n dialogCamera: {\n position: [77, 30, 96],\n rotation: [30, 180, 0],\n },\n },\n {\n id: '7',\n name: '摄像头7',\n position: [404, 30, 85],\n fovDefault: 60,\n fovRange: [30, 120],\n dialogCamera: {\n position: [404, 30, 85],\n rotation: [30, 180, 0],\n },\n },\n ],\n probePoint: [\n {\n id: '1',\n name: '异常监测点1',\n warn: true,\n position: [56, 21, 86],\n },\n {\n id: '2',\n name: '甲烷监测点2',\n warn: false,\n position: [384, 21, 75],\n },\n {\n id: '3',\n name: '甲烷监测点3',\n warn: false,\n position: [9, 21, -134],\n },\n ],\n}\n\nconst load = new ModelLoader()\nclass CameraPoi {\n gobal: Factory3D\n cameraMesh: Map<string, Group> = new Map()\n warnMesh: Map<string, SpritePoi> = new Map()\n headMap: HeadMap\n dialogManage: Dialog\n eventListener: Set<Function> = new Set()\n\n currentDialogMesh: Group\n startPosition: Vector3\n cameraLookAt: Vector3\n\n constructor(gobal: Factory3D) {\n this.gobal = gobal\n this.dialogManage = new Dialog(this)\n this.dialogManage.addStyle()\n }\n\n async generateObject() {\n const model = await load.loadGLTF(`${usePath}shexiang.glb`, false, true, './draco/', (gltf) => {\n return gltf\n })\n\n data.camera.forEach((region) => {\n const group = new Group()\n group.name = region.id\n const sprite = new SpritePoi(`${usePath}p4/camera.png`, { scale: [22, 22, 1] })\n sprite.rotation.y = Math.PI\n const position = new Vector3().fromArray(region.position)\n sprite.position.copy(position)\n group.add(sprite)\n\n const scan = model.scene.clone()\n scan.scale.addScalar(8)\n scan.rotation.x = (-Math.PI / 2) + 0.5\n scan.position.copy(position.clone().add(new Vector3(0, -2, 0)))\n group.add(scan)\n\n this.cameraMesh.set(region.name, group)\n this.gobal.interactionManager.add(group)\n this.cameraEvent(group, region)\n this.gobal.scene.add(group)\n })\n\n // 甲烷检测点\n const point = new MethanePoint()\n data.probePoint?.forEach((item) => {\n let mesh\n if (item.warn) {\n mesh = new SpritePoi(`${usePath}p4/warn.png`, { scale: [22, 22, 1] })\n this.gobal.interactionManager.add(mesh)\n this.probeEvent(mesh, item)\n // 使用GSAP创建跳动动画\n gsap.to(mesh.position, {\n y: '+=3', // 上跳10个单位\n duration: 0.2, // 动画持续时间\n ease: 'power1.inOut', // 缓动函数\n yoyo: true, // 循环\n repeat: -1, // 无限重复\n })\n }\n else {\n mesh = point.create()\n }\n mesh.position.copy(new Vector3().fromArray(item.position))\n this.warnMesh.set(item.name, mesh)\n\n this.gobal.scene.add(mesh)\n })\n // 设置左右旋转的标志位和旋转速度\n let rotatingRight = true // 是否正在向右转动\n\n const unFrame = use.useframe(() => {\n this.cameraMesh.forEach((group) => {\n const scan = group.children[1]\n // 更新相机的旋转角度\n if (rotatingRight) {\n // 向右旋转\n scan.rotation.z += 0.005\n }\n else {\n // 向左旋转\n scan.rotation.z -= 0.005\n }\n\n // 检查是否达到目标旋转角度\n if (Math.abs(scan.rotation.z) >= Math.abs(Math.PI / 4)) {\n // 到达目标角度,切换旋转方向并更新目标角度\n rotatingRight = !rotatingRight\n }\n })\n })\n this.eventListener.add(unFrame)\n }\n\n cameraEvent(sprite: Group, region: any) {\n const fn = async () => {\n if (this.currentDialogMesh) {\n const isClose = this.currentDialogMesh.name === region.name\n this.dialogManage.close()\n if (isClose)\n return\n }\n else {\n if (this.headMap && this.headMap.isShow) {\n this.closeHotmap()\n }\n else {\n const { camera } = use.useScene()\n this.startPosition = camera.position.clone()\n // 获取相机朝向\n this.cameraLookAt = new Vector3() // 创建一个向量来存储相机朝向\n camera.getWorldDirection(this.cameraLookAt) // 获取相机朝向并存储在向量中\n }\n }\n\n sendToMessage(MessageType.Event, 'onCameraStatus', EMessageStatus.Success, undefined, { id: region.id })\n\n const position = new Vector3().fromArray(region.position)\n const targetPosition: [number, number, number] = position.clone().toArray()\n const camaraPosition: [number, number, number] = position.clone().add(new Vector3(0, 40, 80)).toArray()\n\n this.gobal.cameraUtil.set({\n position: camaraPosition,\n target: targetPosition,\n })\n this.setMeshVisible(false)\n\n this.currentDialogMesh = await this.dialogManage.getMesh(position, region) as Group\n this.dialogManage.addEventListener('close', () => {\n // 初始相机到原始位置\n this.gobal.cameraUtil.set({\n position: this.startPosition.toArray(),\n target: this.cameraLookAt.toArray(),\n })\n this.setMeshVisible(true)\n this.currentDialogMesh = null\n this.cameraMesh.forEach((mesh) => {\n mesh.visible = true\n })\n sendToMessage(MessageType.Event, 'onCancelCameraStatus', EMessageStatus.Success, undefined, { id: region.id })\n })\n this.currentDialogMesh.name = region.name\n this.gobal.scene.add(this.currentDialogMesh)\n }\n\n sprite.addEventListener('click', fn)\n this.eventListener.add(() => sprite.removeEventListener('click', fn))\n }\n\n probeEvent(sprite: SpritePoi, region) {\n const { camera } = use.useScene()\n this.headMap = new HeadMap()\n const unClick = sprite.addEventListener('click', async () => {\n if (!sprite.visible)\n return\n sprite.visible = false\n sendToMessage(MessageType.Event, 'onGasMonitorStatus', EMessageStatus.Success, undefined, { id: region.id })\n this.togglePoi(false)\n const position = new Vector3().fromArray(region.position)\n const camaraPosition = position.clone().add(new Vector3(0, 30, 0))\n\n this.startPosition = camera.position.clone()\n // 获取相机朝向\n this.cameraLookAt = new Vector3() // 创建一个向量来存储相机朝向\n camera.getWorldDirection(this.cameraLookAt) // 获取相机朝向并存储在向量中\n this.gobal.cameraUtil.set({\n position: camaraPosition.toArray(),\n target: position.clone().toArray(),\n }).then(() => {\n const mesh = this.headMap.create(camaraPosition.distanceTo(position))\n mesh.position.copy(sprite.position)\n mesh.position.y = 0.5\n this.gobal.scene.add(mesh)\n\n const { orbitControls } = use.useScene()\n orbitControls.enabled = false\n\n // this.headMap.addBack()\n this.headMap.addEventListener('close', () => {\n this.closeHotmap()\n // this.togglePoi(true)\n\n // this.gobal.cameraUtil.set({\n // position: this.startPosition.toArray(),\n // target: this.cameraLookAt.toArray(),\n // })\n })\n })\n })\n this.eventListener.add(unClick)\n }\n\n setMeshVisible(visible) {\n this.cameraMesh.forEach(mesh => mesh.visible = visible)\n this.warnMesh.forEach(mesh => mesh.visible = visible)\n }\n\n closeHotmap() {\n if (!this.headMap)\n return\n this.headMap.remove()\n this.togglePoi(true)\n\n this.gobal.cameraUtil.set({\n position: this.startPosition.toArray(),\n target: this.cameraLookAt.toArray(),\n })\n const { orbitControls } = use.useScene()\n orbitControls.enabled = true\n }\n\n togglePoi(visible = true) {\n this.warnMesh.forEach((sprite) => {\n sprite.visible = visible\n })\n this.cameraMesh.forEach((sprite) => {\n sprite.visible = visible\n })\n }\n\n remove() {\n this.dialogManage.close()\n // 删除摄像机POI点\n this.cameraMesh.forEach((sprite) => {\n sprite.removeFromParent()\n sprite.remove()\n })\n this.cameraMesh.clear()\n this.warnMesh.forEach((sprite) => {\n sprite.removeFromParent()\n sprite.remove()\n })\n this.warnMesh.clear()\n this.eventListener.forEach((fn) => {\n fn()\n })\n // 热力图\n if (this.headMap) {\n this.headMap.remove()\n const { orbitControls } = use.useScene()\n orbitControls.enabled = true\n }\n this.eventListener.clear()\n }\n}\n\nexport default CameraPoi\n\nclass MethanePoint {\n constructor() {\n\n }\n\n create() {\n // 定义Shader的uniform变量\n\n const geometry = new PlaneGeometry(10, 10)\n const texture = new TextureLoader(loadingManager).load(`${usePath}p4/monitor.png`)\n const circle = new Mesh(geometry, new MeshBasicMaterial({\n map: texture,\n side: DoubleSide,\n transparent: true,\n }))\n circle.rotateX(-Math.PI / 3)\n return circle\n }\n\n // 随机多点的方案\n createBack() {\n // 定义Shader的uniform变量\n\n const group = new Group()\n const geometry = new CircleGeometry(2, 32)\n // 创建自定义着色器材质\n const material = new ShaderMaterial({\n vertexShader: `\n void main() {\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n gl_PointSize = 20.0; // 设置点的大小\n }\n `,\n fragmentShader: `\n void main() {\n vec2 center = vec2(0.5, 0.5); // 圆心坐标\n vec2 toCenter = gl_PointCoord - center; // 计算点到圆心的向量\n float distance = length(toCenter); // 计算点到圆心的距离\n if (distance > 0.5) discard; // 超出半径范围的点直接丢弃\n vec3 innerColor = vec3(1.0, .8, 0.0); // 内圈颜色为黄色\n vec3 outerColor = vec3(0.8, 0.4, 0.0); // 外圈颜色为深橘色\n \n vec3 finalColor = mix(innerColor, outerColor, smoothstep(0.1, 0.23, distance)); // 根据距离混合颜色\n if(distance>0.3) finalColor = mix(finalColor, vec3(0.75, 0.4, 0.0), smoothstep(0.25, 0.3, distance)); // 根据距离混合颜色\n gl_FragColor = vec4(finalColor, 1.0); // 设置片段颜色\n }\n `,\n blending: AdditiveBlending,\n depthTest: false,\n transparent: true,\n side: DoubleSide,\n })\n const circle = new Mesh(geometry, new MeshBasicMaterial({ color: '#f7a157' }))\n const numPoints = 100 // 点的数量\n\n for (let i = 0; i < numPoints; i++) {\n const x = Math.random() * 700 - 322 // 随机生成 x 坐标\n const z = Math.random() * 340 - 144 // 随机生成 z 坐标\n const point = circle.clone()\n point.position.copy(new Vector3(x, 20.55, z))\n point.rotateX(-Math.PI / 2)\n group.add(point)\n }\n\n return group\n }\n}\n\nclass Dialog {\n manage: CameraPoi\n\n camera: PerspectiveCamera\n cameraPosition: Vector3\n cameraTargetPosition: Vector3\n\n cuteSprites: Array<Object3D> = []\n eventListener: Set<Function> = new Set()\n eventList: Map<string, Function> = new Map()\n\n constructor(cameraManage) {\n this.manage = cameraManage\n }\n\n async getMesh(position, careraParams) {\n this.close()\n this.camera = new PerspectiveCamera(\n careraParams.fovDefault || 60, window.innerWidth / window.innerHeight, 0.1, 10000,\n )\n this.camera.position.copy(new Vector3().fromArray(careraParams.position))\n this.camera.rotation.set(Math.PI / 6, Math.PI, 0)\n\n const { texture, close } = this.manage.gobal.scene.setCustomPerspective(this.camera)\n\n const cuteSprite = new Sprite(new SpriteMaterial({ map: texture, depthTest: false, depthWrite: false }))\n cuteSprite.center.set(0.5, 0.5)\n cuteSprite.renderOrder = 5\n cuteSprite.position.copy(position)\n\n const unFrame = use.useframe(() => {\n this.updateScale(cuteSprite)\n })\n this.eventListener.add(unFrame)\n\n return new Promise((reslove) => {\n setTimeout(() => {\n const borderMesh = this.getBorderMesh(this.camera, cuteSprite)\n const group = new Group()\n group.add(borderMesh)\n group.add(cuteSprite)\n this.cuteSprites.push(borderMesh)\n this.cuteSprites.push(cuteSprite)\n close()\n reslove(group)\n }, 1000)\n })\n }\n\n getTarget(cameraPosition, rotation = [0, 30, 0]) {\n // 将旋转角度转换为弧度\n const angleX = MathUtils.degToRad(rotation[0])\n const angleY = MathUtils.degToRad(rotation[1])\n const angleZ = MathUtils.degToRad(rotation[2])\n\n // 创建旋转矩阵\n const rotationMatrix = new Matrix4()\n rotationMatrix.makeRotationX(angleX)\n rotationMatrix.multiply(new Matrix4().makeRotationY(angleY))\n rotationMatrix.multiply(new Matrix4().makeRotationZ(angleZ))\n\n // 定义相机的方向向量(例如,相机的方向默认为(0, 0, -1))\n const cameraDirection = new Vector3(0, 0, 1)\n\n // 将相机的方向向量乘以旋转矩阵,得到相机目标位置的向量\n const targetDirection = cameraDirection.clone().applyMatrix4(rotationMatrix)\n\n // 计算相机的目标位置\n return cameraPosition.clone().add(targetDirection)\n }\n\n getBoxSize(sprite: Sprite) {\n const { camera } = use.useScene()\n\n // 获取设备像素比\n const devicePixelRatio = window.devicePixelRatio || 1\n // 获取精灵对象的边界框\n const bbox = new Box3().setFromObject(sprite)\n // 将边界框的最小和最大顶点转换为屏幕坐标\n const min = bbox.min.project(camera)\n const max = bbox.max.project(camera)\n console.log('min:', min)\n console.log('max:', max)\n\n let [w, h] = [window.innerWidth, window.innerHeight]\n const dom = document.querySelector('#app')\n if (dom) {\n w = dom.clientWidth\n h = dom.clientHeight\n }\n let ratio = 0\n if (camera.fov >= 60)\n ratio = -0.05 * (camera.fov - 60) / 30\n else\n ratio = 0.02 * (60 - camera.fov) / 30\n\n // 计算精灵在屏幕中的宽度和高度像素值\n let width = (max.x - min.x) * w / devicePixelRatio * (0.97 + ratio)\n let height = (max.y - min.y) * h / devicePixelRatio * (1.089 + ratio)\n\n const scaleFactor = devicePixelRatio * 0.5\n // 应用缩放系数\n width *= scaleFactor\n height *= scaleFactor\n\n return { width, height }\n }\n\n updateScale(sprite: Sprite) {\n const { camera } = use.useScene()\n const ratio = 60 / camera.fov\n // 距离限制范围的值,用于计算缩放比例\n const minDistance = 0.1\n const maxDistance = 1000000\n // 获取相机和物体的世界坐标位置\n const cameraPosition = camera?.position\n const objectPosition = sprite.position\n\n // 计算相机和物体之间的距离\n const distance = cameraPosition?.distanceTo(objectPosition) || 0.1\n\n // 使用 Math.min() 和 Math.max() 方法限制 resultDistance 的范围\n const clampedDistance = Math.max(minDistance, Math.min(maxDistance, distance))\n // console.log('clampedDistance:',clampedDistance)\n // 按照缩放系数和距离进行缩放,缩放系数应该约定好一个固定值\n sprite.scale.copy(new Vector3(clampedDistance * (1.3281 / ratio), (0.8316 / ratio) * clampedDistance, 1))\n }\n\n addEventListener(eventName, fn) {\n if (this.eventList.has(eventName))\n this.eventList[eventName] = fn\n else\n this.eventList.set(eventName, fn)\n }\n\n getBorderMesh(camera, sprite: Sprite) {\n let { width, height } = this.getBoxSize(sprite)\n\n // 弹窗容器\n const dialogDiv = document.createElement('div')\n width += 10\n height += 10\n Object.assign(dialogDiv.style, {\n 'width': `${width}px`,\n 'height': `${height}px`,\n 'z-index': '3 !important',\n 'backgroundImage': `url(${usePath}p4/border.png)`,\n 'backgroundSize': '100% 100%',\n 'backgroundRepeat': 'no-repeat',\n 'position': 'relative',\n\n // left: `${(window.innerWidth - width) / 2}px`,\n // top: `${(window.innerHeight - height) / 2}px`,\n })\n\n const maskingDiv = document.createElement('div')\n maskingDiv.className = 'dialog-mask'\n dialogDiv.appendChild(maskingDiv)\n\n // 关闭按钮\n const closeSpan = document.createElement('span')\n closeSpan.className = 'dialog-close'\n dialogDiv.appendChild(closeSpan)\n closeSpan.addEventListener('click', () => {\n this.close()\n })\n\n // 操作按钮\n const op = document.createElement('div')\n op.className = 'dialog-operate'\n dialogDiv.appendChild(op)\n const opList = ['left', 'right', 'top', 'bottom']\n opList.forEach((key) => {\n const btnSpan = document.createElement('span')\n btnSpan.className = `dialog-operate-btn dialog-operate-${key}`\n\n const handleClick = () => {\n switch (key) {\n case 'top':\n camera.rotation.x -= 0.01\n break\n case 'bottom':\n camera.rotation.x += 0.01\n break\n case 'left':\n camera.rotation.y += 0.01\n break\n case 'right':\n camera.rotation.y -= 0.01\n break\n }\n const { texture, close } = this.manage.gobal.scene.setCustomPerspective(camera)\n sprite.material = new SpriteMaterial({ map: texture, depthTest: false, depthWrite: false })\n setTimeout(() => close(), 800)\n }\n\n let clock\n let longPress\n let time\n\n btnSpan.addEventListener('mousedown', () => {\n clock = new Clock()\n clock.getDelta()\n\n time = setTimeout(() => {\n longPress = use.useframe(handleClick)\n }, 500)\n })\n\n btnSpan.addEventListener('mouseup', () => {\n if (clock.getDelta() < 0.5)\n handleClick()\n\n clearTimeout(time)\n longPress && longPress()\n })\n\n // btnSpan.addEventListener('click', handleClick)\n op.appendChild(btnSpan)\n })\n\n const cb = (fov) => {\n if (!fov)\n return\n camera.fov = fov\n camera.updateProjectionMatrix()\n const { texture, close } = this.manage.gobal.scene.setCustomPerspective(camera)\n sprite.material = new SpriteMaterial({ map: texture, depthTest: false, depthWrite: false })\n setTimeout(() => close(), 800)\n }\n const slider = this.getFovView(cb)\n dialogDiv.appendChild(slider)\n\n const borderMesh = new Css2DPoi(dialogDiv)\n borderMesh.position.copy(sprite.position)\n return borderMesh\n }\n\n getFovView(cb) {\n const data = [{ text: '0.5', fov: '90' }, { text: '1', fov: '80' }, { text: '1.5', fov: '70' }, { text: '2.0', fov: '60' }, { text: '2.5', fov: '50' }, { text: '3.0', fov: '40' }, { text: '3.5', fov: '30' }]\n\n const container = document.createElement('div')\n container.className = 'dialog-slider-container'\n\n const itemsContainer = document.createElement('div')\n itemsContainer.className = 'dialog-slider-items'\n container.appendChild(itemsContainer)\n data.forEach((item) => {\n const div = document.createElement('div')\n div.className = 'dialog-slider-item'\n div.innerHTML = `${item.text} X -`\n div.setAttribute('fov', item.fov)\n itemsContainer.appendChild(div)\n })\n\n const items = itemsContainer.children\n const itemHeight = 58\n const totalHeight = items.length * itemHeight\n\n const cloneItems = () => {\n Array.from(items).forEach((item) => {\n itemsContainer.appendChild(item.cloneNode(true))\n })\n }\n\n cloneItems()\n cloneItems()\n\n const highlightMiddleItem = () => {\n const middlePosition = container.scrollTop + container.clientHeight / 2\n const middleIndex = Math.floor(middlePosition / itemHeight) % items.length\n Array.from(items).forEach((item, index) => {\n if (index === middleIndex) {\n item.classList.add('highlight')\n cb(item.getAttribute('fov'))\n }\n else {\n item.classList.remove('highlight')\n }\n })\n }\n container.addEventListener('scroll', () => {\n if (container.scrollTop <= 0)\n container.scrollTop += totalHeight\n else if (container.scrollTop >= totalHeight * 2)\n container.scrollTop -= totalHeight\n\n highlightMiddleItem()\n })\n const smoothScrollTo = (targetPosition) => {\n const startPosition = container.scrollTop\n const distance = targetPosition - startPosition\n const duration = 200\n let start = null\n\n const step = (timestamp) => {\n if (!start)\n start = timestamp\n const progress = timestamp - start\n const progressRatio = Math.min(progress / duration, 1)\n container.scrollTop = startPosition + distance * progressRatio\n if (progress < duration)\n window.requestAnimationFrame(step)\n else\n highlightMiddleItem()\n }\n\n window.requestAnimationFrame(step)\n }\n\n const scrollToItem = (item) => {\n const index = Array.from(items).indexOf(item)\n const targetPosition = index * itemHeight - container.clientHeight / 2 + itemHeight / 2\n smoothScrollTo(targetPosition)\n }\n Array.from(items).forEach((item) => {\n item.addEventListener('click', () => { scrollToItem(item) })\n })\n setTimeout(() => {\n // items && (items[3] as HTMLDivElement).click()\n container.scrollTop = totalHeight\n highlightMiddleItem()\n })\n\n const conSlider = document.createElement('div')\n conSlider.className = 'dialog-slider-bg'\n conSlider.appendChild(container)\n return conSlider\n }\n\n addStyle() {\n // 设置 CSS 规则\n const css = `\n .page-mask{\n position: fixed;\n top: 0;\n left: 0;\n bottom:0;\n right:0;\n //width: 100%;\n //height: 100%;\n background-color: rgba(0, 0, 0, 0.5); /* 半透明背景 */\n //filter: blur(10px); /* 模糊效果 */\n z-index: 1 !important; /* 确保蒙版位于其他元素之上 */\n }\n .dialog-mask{\n position: absolute;\n top: 8px;\n left: 6px;\n width: calc(100% - 12px);\n height: calc(100% - 16px);\n background: linear-gradient(90deg, rgba(0, 0, 0,.4) 0%,rgba(0, 0, 0,.2) 10%, rgba(0, 0, 0,0) 20%, rgba(0,0,0, 0) 50%, rgba(0, 0, 0,0) 80%, rgba(0, 0, 0,0.2) 90%, rgba(0, 0, 0,.4) 100%);\n pointer-events: auto;\n opacity: 1;\n transform: perspective(100px) rotateX(0deg) rotateY(0deg) rotateZ(0deg);\n transform-origin: center center;\n }\n .hot-back{\n width: 70px;\n height: 25px;\n border-radius: 2px;\n color: #fff;\n font-weight: bold;\n font-size: 14px;\n border:1px solid #d1ae6d;\n background-color: #c8ab75;\n cursor: pointer; /* 鼠标指针样式 */\n display: flex;\n justify-content: center;\n align-items: center;\n position: absolute;\n left: 30px;\n top: 30px;\n pointer-events: auto;\n }\n .hot-back:hover{\n background-color:#c8a158;\n }\n .dialog-close{\n width: 26px;\n height: 26px;\n background-image: url(${usePath}p4/close.png);\n background-size: 100% 100%;\n background-repeat: no-repeat;\n color: #fff;\n cursor: pointer; /* 鼠标指针样式 */\n display: flex;\n justify-content: center;\n align-items: center;\n position: absolute;\n right: 28px;\n top: 20px;\n pointer-events: auto;\n }\n .dialog-operate{\n width: 199px;\n height: 182px;\n background-image: url(${usePath}p4/operate.png);\n background-size: 100% 100%;\n background-repeat: no-repeat;\n position: absolute;\n right: 20px;\n bottom: 20px;\n pointer-events: auto;\n }\n\n .dialog-operate-btn{\n width: 20px;\n height: 34px;\n position: absolute;\n cursor: pointer;\n pointer-events: auto;\n background-image: url(${usePath}p4/arrow1.png);\n background-size: 100% 100%;\n background-repeat: no-repeat;\n transition: all .2s;\n }\n .dialog-operate-btn:hover{\n background-image: url(${usePath}p4/arrow2.png);\n }\n\n .dialog-operate-top{\n transform: rotateZ(90deg);\n left: calc(50% - 9px);\n top: 40px;\n }\n .dialog-operate-top:hover{\n border-bottom-color:#fff2dd;\n }\n\n .dialog-operate-bottom{\n transform: rotateZ(270deg);\n left: calc(50% - 9px);\n bottom: 40px;\n }\n\n .dialog-operate-bottom:hover{\n border-top-color:#fff2dd;\n }\n\n .dialog-operate-left{\n top: calc(50% - 18px);\n left: 58px;\n }\n .dialog-operate-left:hover{\n border-right-color:#fff2dd;\n }\n\n .dialog-operate-right{\n transform: rotateZ(180deg);\n top: calc(50% - 18px);\n right: 57px;\n }\n\n .dialog-operate-right:hover{\n border-left-color:#fff2dd;\n }\n .dialog-slider-bg {\n width: 166px;\n height: 493px;\n position:absolute;\n right:36px;\n top:100px;\n background: url(${usePath}p4/fov-bg.png);\n background-size: 100% 100%;\n background-repeat: no-repeat;\n pointer-events: auto;\n }\n\n .dialog-slider-container {\n height: 406px;\n margin: 44px 21px;\n overflow: auto;\n position: relative;\n text-align: center;\n scrollbar-width: none;\n -ms-overflow-style: none;\n pointer-events: auto;\n }\n\n .dialog-slider-container::-webkit-scrollbar {\n display: none;\n /* Safari and Chrome */\n }\n\n .dialog-slider-items {\n display: flex;\n flex-direction: column;\n width: 100%;\n }\n\n .dialog-slider-item {\n width: 100%;\n height: 58px;\n display: flex;\n justify-content: center;\n align-items: center;\n box-sizing: border-box;\n font-size: 20px;\n color: #fff;\n transition: all .2s;\n cursor: pointer;\n pointer-events: auto;\n }\n\n .dialog-slider-item.highlight {\n background-image: url(${usePath}p4/fov-border.png);\n background-size: 100% 100%;\n background-repeat: no-repeat;\n font-size: 28px;\n color: #ffda77;\n }\n`\n // 创建一个 <style> 元素\n const styleElement = document.createElement('style')\n styleElement.appendChild(document.createTextNode(css))\n // 将 <style> 元素添加到 <head> 中\n document.head.appendChild(styleElement)\n }\n\n close() {\n if (this.cuteSprites) {\n this.cuteSprites.forEach((mesh) => {\n mesh.remove()\n mesh.removeFromParent()\n })\n this.cuteSprites.length = 0\n }\n this.eventList.has('close') && this.eventList.get('close')()\n // 移除事件监听\n this.eventListener.forEach((fn) => {\n fn()\n })\n this.eventListener.clear()\n this.eventList.clear()\n }\n}\n\nclass HeadMap {\n TemperatureColorStops = {\n 1.0: '#f00',\n 0.9: '#e2fa00',\n 0.6: '#33f900',\n 0.3: '#0349df',\n 0.0: '#0f00ff',\n }\n\n eventList: Map<string, Function> = new Map()\n backEle: HTMLElement\n heatMapPlane: Mesh\n canvasList = []\n isShow = false\n\n constructor() {\n\n }\n\n // 热力图\n create(distance) {\n this.isShow = true\n const heatmap = heatMap.create({\n container: this.createDom(),\n gradient: this.TemperatureColorStops,\n })\n let len = 1200\n const width = window.innerWidth\n const height = window.innerHeight\n const points = []\n let max = 0\n while (len--) {\n const val = Math.floor(Math.random() * 10)\n max = Math.max(max, val)\n const point = {\n x: Math.floor(Math.random() * width),\n y: Math.floor(Math.random() * height),\n value: val,\n }\n points.push(point)\n }\n heatmap.setData({\n max,\n data: points,\n })\n\n // 灰度图\n const greymap = heatMap.create({\n container: this.createDom(),\n gradient: {\n '0': 'black',\n '1.0': 'white',\n },\n })\n\n greymap.setData({\n max,\n data: points,\n })\n const heatMapMaterial = new ShaderMaterial({\n transparent: true,\n depthTest: false,\n side: DoubleSide,\n vertexShader: `varying vec2 vUv;\n uniform float Zscale;\n uniform sampler2D greyMap;\n void main() {\n vUv = uv;\n vec4 frgColor = texture2D(greyMap, uv);//获取灰度图点位信息\n float height = Zscale * frgColor.a;//通过灰度图的rgb*需要设置的高度计算出热力图每个点位最终在z轴高度\n vec3 transformed = vec3( position.x, position.y, height);//重新组装点坐标\n gl_Position = projectionMatrix * modelViewMatrix * vec4(transformed, 1.0);//渲染点位\n \n }\n `,\n fragmentShader: `varying vec2 vUv;\n uniform sampler2D heatMap;//热力图\n uniform vec3 u_color;//基础颜色\n uniform float u_opacity; // 透明度\n void main() {\n //vec4 alphaColor = texture2D(heatMap, vUv);\n // gl_FragColor = alphaColor;\n gl_FragColor = vec4(u_color, u_opacity) * texture2D(heatMap, vUv);//把热力图颜色和透明度进行渲染\n }`,\n uniforms: {\n heatMap: {\n value: { value: undefined },\n },\n greyMap: {\n value: { value: undefined },\n },\n Zscale: { value: 0 }, // 高度参数\n u_color: {\n value: new Color('rgb(255, 255, 255)'),\n },\n u_opacity: {\n value: 0.8,\n },\n },\n })\n\n const texture = new Texture(heatmap._renderer.canvas)\n texture.needsUpdate = true\n const greyTexture = new Texture(greymap._renderer.canvas)\n greyTexture.needsUpdate = true\n\n heatMapMaterial.uniforms.heatMap.value = texture\n heatMapMaterial.uniforms.greyMap.value = greyTexture\n\n const { camera } = use.useScene()\n // 计算平面的尺寸\n const h = 2 * Math.tan(camera.fov * Math.PI / 360) * distance * 2 * 0.85\n const w = h * camera.aspect\n\n const heatMapGeometry = new PlaneGeometry(w, h, 100, 100) // 3d热力图大小,及分块数量\n const heatMapPlane = new Mesh(heatMapGeometry, heatMapMaterial)\n heatMapPlane.rotation.set(-Math.PI / 2, 0, 0)\n\n this.heatMapPlane = heatMapPlane\n return heatMapPlane\n }\n\n addEventListener(eventName, fn) {\n if (this.eventList.has(eventName))\n this.eventList[eventName] = fn\n else\n this.eventList.set(eventName, fn)\n }\n\n addBack() {\n this.backEle = document.createElement('div')\n this.backEle.className = 'hot-back'\n this.backEle.innerHTML = '返回'\n document.body.appendChild(this.backEle)\n this.backEle.addEventListener('click', () => {\n this.eventList.has('close') && this.eventList.get('close')()\n // this.remove()\n })\n }\n\n createDom() {\n // 创建一个新的 canvas 元素\n const canvas = document.createElement('canvas')\n canvas.style.zIndex = '-1'\n // 设置 canvas 元素的宽度和高度\n canvas.width = window.innerWidth\n canvas.height = window.innerHeight\n document.body.appendChild(canvas)\n this.canvasList.push(canvas)\n return canvas\n }\n\n remove() {\n this.canvasList.forEach((canvas) => {\n canvas.remove()\n })\n // this.eventList.has('close') && this.eventList.get('close')()\n this.canvasList.length = 0\n this.backEle && this.backEle.remove()\n if (this.heatMapPlane) {\n this.heatMapPlane.removeFromParent()\n this.heatMapPlane.remove()\n }\n this.isShow = false\n }\n}\n"],"mappings":"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"}
|
|
@@ -99,6 +99,7 @@ var CircleManage = /*#__PURE__*/function () {
|
|
|
99
99
|
image.style.height = '30px';
|
|
100
100
|
image.style.position = 'absolute';
|
|
101
101
|
image.style.top = '5px';
|
|
102
|
+
image.style.left = '30px';
|
|
102
103
|
dom.appendChild(image);
|
|
103
104
|
Object.assign(dom.style, {
|
|
104
105
|
fontSize: '24px',
|
|
@@ -117,7 +118,8 @@ var CircleManage = /*#__PURE__*/function () {
|
|
|
117
118
|
});
|
|
118
119
|
var span = document.createElement('span');
|
|
119
120
|
span.innerText = data.name;
|
|
120
|
-
span.style.paddingLeft = '
|
|
121
|
+
span.style.paddingLeft = '70px';
|
|
122
|
+
span.style.fontFamily = 'YouSheBiaoTiHei3D';
|
|
121
123
|
dom.appendChild(span);
|
|
122
124
|
_this2.peoplePoi = new SpritePoi(dom, {
|
|
123
125
|
animation: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Vector3","use","utils","EAnimationType","SpritePoi","regionMap","usePath","emitter","CircleManage","gobal","Map","Set","scene","interactionManager","storeManagement","get","belongTo","remove","dom","document","createElement","style","width","height","imgs","img","data","getData","forEach","people","cloneNode","src","Math","floor","random","mesh","scale","name","id","position","fromArray","add","bindEvent","circleMesh","set","removeFromParent","clear","peoplePoi","clickPoi","poiRemoveEventListener","eventListener","fn","visible","poi","showPeoplePoi","eventName","image","top","appendChild","Object","assign","fontSize","backgroundImage","backgroundSize","backgroundRepeat","display","justifyContent","alignItems","color","pointerEvents","padding","span","innerText","paddingLeft","animation","type","fadeIn","duration","copy","clone","updateScale","useScene","orbitControls","addEventListener","removeEventListener","unClick","getCameraPosition","cameraUtil","toArray","target","then","emit","hoverMesh","ratio","minDistance","maxDistance","camera","distance","distanceTo","clampedDistance","max","min","scaleValue","x","y","targetPosition","cameraPosition","direction","subVectors","normalize","multiplyScalar","regionKey","keys","find","key"],"sources":["../../../src/factory/unit/circle.ts"],"sourcesContent":["import { Vector3, use, utils } from '@anov/3d-core'\nimport type { InteractionManager, Mesh, Object3D, Scene } from '@anov/3d-core'\nimport { EAnimationType, SpritePoi } from '@anov/3d-ability'\nimport type Factory3D from '../3d'\nimport { regionMap } from '../regionData'\n\nimport { usePath } from '../3d'\n\nconst { emitter } = utils\n\nclass CircleManage {\n private gobal: Factory3D\n private scene: Scene\n readonly circleMesh: Map<string, Object3D> = new Map()\n private interactionManager\n private peoplePoi!: SpritePoi | null\n private clickPoi: Object3D | null\n eventListener: Set<Function> = new Set()\n poiRemoveEventListener: Function\n\n constructor(gobal: Factory3D) {\n this.gobal = gobal\n this.scene = gobal.scene.scene\n this.interactionManager = utils.storeManagement.get<InteractionManager>('interactionManager')\n }\n\n generateCircle(belongTo: string) {\n this.remove()\n // const geometry = new SphereGeometry(2, 32, 16)\n // const material = new MeshPhysicalMaterial({ color: 0xFED602, metalness: 0.1, roughness: 0.5 })\n // const circle = new Mesh(geometry, material)\n const dom = document.createElement('img')\n dom.style.width = '50px'\n dom.style.height = '87px'\n const imgs = ['左', '中', '右']\n let img\n const data = this.getData(belongTo)\n data.forEach((people) => {\n img = dom.cloneNode() as HTMLImageElement\n img.src = `${usePath}p2/${imgs[Math.floor(Math.random() * 3)]}.png`\n const mesh = new SpritePoi(img, {\n scale: [10, 16, 1],\n })\n mesh.name = people.id\n mesh.position.fromArray(people.position)\n this.scene.add(mesh)\n this.bindEvent(mesh, people)\n this.circleMesh.set(people.id, mesh)\n })\n }\n\n remove() {\n this.circleMesh.forEach((mesh) => {\n mesh.removeFromParent()\n mesh.remove()\n })\n this.circleMesh.clear()\n this.peoplePoi && this.peoplePoi.removeFromParent()\n this.peoplePoi = this.clickPoi = null\n if (this.poiRemoveEventListener)\n this.poiRemoveEventListener()\n\n this.eventListener && this.eventListener.forEach((fn) => {\n fn()\n })\n }\n\n setVisible(visible = true) {\n // 控制CYCLE的隐藏、显示\n this.circleMesh.forEach((poi) => {\n poi.visible = visible\n })\n }\n\n private bindEvent(mesh: SpritePoi, data) {\n this.interactionManager.add(mesh)\n\n const showPeoplePoi = (data: any, eventName = 'hover') => {\n if (this.peoplePoi) {\n if (this.peoplePoi.name !== data.id) {\n this.peoplePoi.removeFromParent()\n }\n else {\n if (eventName === 'click')\n this.clickPoi = this.peoplePoi\n return\n }\n }\n this.clickPoi = null\n\n const dom = document.createElement('div')\n const image = document.createElement('img')\n\n image.src = `${usePath}people.png`\n image.style.width = '30px'\n image.style.height = '30px'\n image.style.position = 'absolute'\n image.style.top = '5px'\n\n dom.appendChild(image)\n\n Object.assign(dom.style, {\n fontSize: '24px',\n backgroundImage: `url(${usePath}人员标签.png)`,\n backgroundSize: '100% 100%',\n backgroundRepeat: 'no-repeat',\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n color: '#fff',\n pointerEvents: 'auto',\n height: '50px',\n width: '200px',\n padding: '0 0 12px 15px',\n position: 'relative',\n })\n\n const span = document.createElement('span')\n span.innerText = data.name\n span.style.paddingLeft = '60px'\n dom.appendChild(span)\n\n this.peoplePoi = new SpritePoi(dom, {\n animation: {\n type: EAnimationType.fadeIn,\n duration: 0.2,\n },\n })\n this.peoplePoi.name = data.id\n this.peoplePoi.position.copy(mesh.position.clone().add(new Vector3(0, 16, 0)))\n this.updateScale(this.peoplePoi, 3.2)\n this.scene.add(this.peoplePoi)\n\n const { orbitControls } = use.useScene()\n if (this.poiRemoveEventListener)\n this.poiRemoveEventListener()\n const fn = () => this.updateScale(this.peoplePoi)\n orbitControls?.addEventListener('change', fn)\n this.poiRemoveEventListener = () => orbitControls?.removeEventListener('change', fn)\n }\n\n const unClick = mesh.addEventListener('click', () => {\n const position = this.getCameraPosition(new Vector3().fromArray(data.position).add(new Vector3(0, 10, 0)), 43.5)\n this.gobal.cameraUtil.set({\n position: position.toArray(),\n target: [data.position[0], data.position[1] + 10, data.position[2]],\n }).then(() => {})\n emitter.emit('peoplemanagement-person-click', data)\n showPeoplePoi(data, 'click')\n })\n this.eventListener.add(unClick)\n\n let hoverMesh: SpritePoi\n mesh.addEventListener('mouseover', () => {\n showPeoplePoi(data)\n\n const img = document.createElement('img')\n img.src = `${usePath}人员高亮.png`\n\n hoverMesh = new SpritePoi(img, {\n scale: [10, 16, 1],\n })\n hoverMesh.position.fromArray(data.position)\n\n this.scene.add(hoverMesh)\n })\n\n mesh.addEventListener('mouseout', () => {\n if (hoverMesh)\n hoverMesh.removeFromParent()\n\n if (this.peoplePoi && this.peoplePoi.name !== this.clickPoi?.name) {\n this.peoplePoi.removeFromParent()\n this.peoplePoi = null\n }\n })\n }\n\n /// <summary>\n /// 按照距离缩放,距离越远,缩放越大\n /// </summary>\n updateScale(poi: SpritePoi, ratio = 0) {\n if (!poi)\n return\n // 距离限制范围的值,用于计算缩放比例\n const minDistance = 0.1\n const maxDistance = 1000000\n const { camera } = use.useScene()\n\n // 计算相机和物体之间的距离\n const distance = camera.position?.distanceTo(poi.position) || 0.1\n\n const clampedDistance = Math.max(minDistance, Math.min(maxDistance, distance))\n\n const scaleValue = clampedDistance * 0.03\n if (!ratio && poi.scale)\n ratio = poi.scale.x / poi.scale.y\n\n // 按照缩放系数和距离进行缩放,缩放系数应该约定好一个固定值\n poi.scale.copy(new Vector3(scaleValue * ratio, scaleValue, 1))\n }\n\n private getCameraPosition(targetPosition, distance) {\n // 计算相机的位置\n const cameraPosition = new Vector3()\n const direction = new Vector3() // 目标对象指向相机的方向\n\n const { camera } = use.useScene()\n // 计算相机朝向目标对象的方向\n direction.subVectors(camera.position, targetPosition).normalize()\n\n // 将相机沿着目标对象方向移动以保持距离\n cameraPosition.copy(targetPosition).add(direction.multiplyScalar(distance))\n return cameraPosition\n }\n\n private getData(belongTo) {\n const regionKey = Object.keys(regionMap).find((key: any) => {\n return regionMap[key].id === belongTo\n })\n\n return regionMap[regionKey] && regionMap[regionKey].people\n }\n}\n\nexport default CircleManage"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["Vector3","use","utils","EAnimationType","SpritePoi","regionMap","usePath","emitter","CircleManage","gobal","Map","Set","scene","interactionManager","storeManagement","get","belongTo","remove","dom","document","createElement","style","width","height","imgs","img","data","getData","forEach","people","cloneNode","src","Math","floor","random","mesh","scale","name","id","position","fromArray","add","bindEvent","circleMesh","set","removeFromParent","clear","peoplePoi","clickPoi","poiRemoveEventListener","eventListener","fn","visible","poi","showPeoplePoi","eventName","image","top","left","appendChild","Object","assign","fontSize","backgroundImage","backgroundSize","backgroundRepeat","display","justifyContent","alignItems","color","pointerEvents","padding","span","innerText","paddingLeft","fontFamily","animation","type","fadeIn","duration","copy","clone","updateScale","useScene","orbitControls","addEventListener","removeEventListener","unClick","getCameraPosition","cameraUtil","toArray","target","then","emit","hoverMesh","ratio","minDistance","maxDistance","camera","distance","distanceTo","clampedDistance","max","min","scaleValue","x","y","targetPosition","cameraPosition","direction","subVectors","normalize","multiplyScalar","regionKey","keys","find","key"],"sources":["../../../src/factory/unit/circle.ts"],"sourcesContent":["import { Vector3, use, utils } from '@anov/3d-core'\nimport type { InteractionManager, Mesh, Object3D, Scene } from '@anov/3d-core'\nimport { EAnimationType, SpritePoi } from '@anov/3d-ability'\nimport type Factory3D from '../3d'\nimport { regionMap } from '../regionData'\n\nimport { usePath } from '../3d'\n\nconst { emitter } = utils\n\nclass CircleManage {\n private gobal: Factory3D\n private scene: Scene\n readonly circleMesh: Map<string, Object3D> = new Map()\n private interactionManager\n private peoplePoi!: SpritePoi | null\n private clickPoi: Object3D | null\n eventListener: Set<Function> = new Set()\n poiRemoveEventListener: Function\n\n constructor(gobal: Factory3D) {\n this.gobal = gobal\n this.scene = gobal.scene.scene\n this.interactionManager = utils.storeManagement.get<InteractionManager>('interactionManager')\n }\n\n generateCircle(belongTo: string) {\n this.remove()\n // const geometry = new SphereGeometry(2, 32, 16)\n // const material = new MeshPhysicalMaterial({ color: 0xFED602, metalness: 0.1, roughness: 0.5 })\n // const circle = new Mesh(geometry, material)\n const dom = document.createElement('img')\n dom.style.width = '50px'\n dom.style.height = '87px'\n const imgs = ['左', '中', '右']\n let img\n const data = this.getData(belongTo)\n data.forEach((people) => {\n img = dom.cloneNode() as HTMLImageElement\n img.src = `${usePath}p2/${imgs[Math.floor(Math.random() * 3)]}.png`\n const mesh = new SpritePoi(img, {\n scale: [10, 16, 1],\n })\n mesh.name = people.id\n mesh.position.fromArray(people.position)\n this.scene.add(mesh)\n this.bindEvent(mesh, people)\n this.circleMesh.set(people.id, mesh)\n })\n }\n\n remove() {\n this.circleMesh.forEach((mesh) => {\n mesh.removeFromParent()\n mesh.remove()\n })\n this.circleMesh.clear()\n this.peoplePoi && this.peoplePoi.removeFromParent()\n this.peoplePoi = this.clickPoi = null\n if (this.poiRemoveEventListener)\n this.poiRemoveEventListener()\n\n this.eventListener && this.eventListener.forEach((fn) => {\n fn()\n })\n }\n\n setVisible(visible = true) {\n // 控制CYCLE的隐藏、显示\n this.circleMesh.forEach((poi) => {\n poi.visible = visible\n })\n }\n\n private bindEvent(mesh: SpritePoi, data) {\n this.interactionManager.add(mesh)\n\n const showPeoplePoi = (data: any, eventName = 'hover') => {\n if (this.peoplePoi) {\n if (this.peoplePoi.name !== data.id) {\n this.peoplePoi.removeFromParent()\n }\n else {\n if (eventName === 'click')\n this.clickPoi = this.peoplePoi\n return\n }\n }\n this.clickPoi = null\n\n const dom = document.createElement('div')\n const image = document.createElement('img')\n\n image.src = `${usePath}people.png`\n image.style.width = '30px'\n image.style.height = '30px'\n image.style.position = 'absolute'\n image.style.top = '5px'\n image.style.left = '30px'\n\n dom.appendChild(image)\n\n Object.assign(dom.style, {\n fontSize: '24px',\n backgroundImage: `url(${usePath}人员标签.png)`,\n backgroundSize: '100% 100%',\n backgroundRepeat: 'no-repeat',\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n color: '#fff',\n pointerEvents: 'auto',\n height: '50px',\n width: '200px',\n padding: '0 0 12px 15px',\n position: 'relative',\n })\n\n const span = document.createElement('span')\n span.innerText = data.name\n span.style.paddingLeft = '70px'\n span.style.fontFamily = 'YouSheBiaoTiHei3D'\n dom.appendChild(span)\n\n this.peoplePoi = new SpritePoi(dom, {\n animation: {\n type: EAnimationType.fadeIn,\n duration: 0.2,\n },\n })\n this.peoplePoi.name = data.id\n this.peoplePoi.position.copy(mesh.position.clone().add(new Vector3(0, 16, 0)))\n this.updateScale(this.peoplePoi, 3.2)\n this.scene.add(this.peoplePoi)\n\n const { orbitControls } = use.useScene()\n if (this.poiRemoveEventListener)\n this.poiRemoveEventListener()\n const fn = () => this.updateScale(this.peoplePoi)\n orbitControls?.addEventListener('change', fn)\n this.poiRemoveEventListener = () => orbitControls?.removeEventListener('change', fn)\n }\n\n const unClick = mesh.addEventListener('click', () => {\n const position = this.getCameraPosition(new Vector3().fromArray(data.position).add(new Vector3(0, 10, 0)), 43.5)\n this.gobal.cameraUtil.set({\n position: position.toArray(),\n target: [data.position[0], data.position[1] + 10, data.position[2]],\n }).then(() => {})\n emitter.emit('peoplemanagement-person-click', data)\n showPeoplePoi(data, 'click')\n })\n this.eventListener.add(unClick)\n\n let hoverMesh: SpritePoi\n mesh.addEventListener('mouseover', () => {\n showPeoplePoi(data)\n\n const img = document.createElement('img')\n img.src = `${usePath}人员高亮.png`\n\n hoverMesh = new SpritePoi(img, {\n scale: [10, 16, 1],\n })\n hoverMesh.position.fromArray(data.position)\n\n this.scene.add(hoverMesh)\n })\n\n mesh.addEventListener('mouseout', () => {\n if (hoverMesh)\n hoverMesh.removeFromParent()\n\n if (this.peoplePoi && this.peoplePoi.name !== this.clickPoi?.name) {\n this.peoplePoi.removeFromParent()\n this.peoplePoi = null\n }\n })\n }\n\n /// <summary>\n /// 按照距离缩放,距离越远,缩放越大\n /// </summary>\n updateScale(poi: SpritePoi, ratio = 0) {\n if (!poi)\n return\n // 距离限制范围的值,用于计算缩放比例\n const minDistance = 0.1\n const maxDistance = 1000000\n const { camera } = use.useScene()\n\n // 计算相机和物体之间的距离\n const distance = camera.position?.distanceTo(poi.position) || 0.1\n\n const clampedDistance = Math.max(minDistance, Math.min(maxDistance, distance))\n\n const scaleValue = clampedDistance * 0.03\n if (!ratio && poi.scale)\n ratio = poi.scale.x / poi.scale.y\n\n // 按照缩放系数和距离进行缩放,缩放系数应该约定好一个固定值\n poi.scale.copy(new Vector3(scaleValue * ratio, scaleValue, 1))\n }\n\n private getCameraPosition(targetPosition, distance) {\n // 计算相机的位置\n const cameraPosition = new Vector3()\n const direction = new Vector3() // 目标对象指向相机的方向\n\n const { camera } = use.useScene()\n // 计算相机朝向目标对象的方向\n direction.subVectors(camera.position, targetPosition).normalize()\n\n // 将相机沿着目标对象方向移动以保持距离\n cameraPosition.copy(targetPosition).add(direction.multiplyScalar(distance))\n return cameraPosition\n }\n\n private getData(belongTo) {\n const regionKey = Object.keys(regionMap).find((key: any) => {\n return regionMap[key].id === belongTo\n })\n\n return regionMap[regionKey] && regionMap[regionKey].people\n }\n}\n\nexport default CircleManage"],"mappings":"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"}
|
|
@@ -153,7 +153,9 @@ var getDom = function getDom(data) {
|
|
|
153
153
|
label2.style.fontWeight = 'bold';
|
|
154
154
|
label2.style.fontSize = '30px';
|
|
155
155
|
label2.style.color = 'yellow';
|
|
156
|
-
label2.style.marginTop = '-
|
|
156
|
+
label2.style.marginTop = '-8px';
|
|
157
|
+
label2.style.marginLeft = '5px';
|
|
158
|
+
label2.style.marginRight = '3px';
|
|
157
159
|
dom.appendChild(label2);
|
|
158
160
|
var label3 = document.createElement('span');
|
|
159
161
|
label3.style.marginLeft = '2px';
|
|
@@ -261,7 +263,7 @@ var CylinderManage = /*#__PURE__*/function () {
|
|
|
261
263
|
}]
|
|
262
264
|
};
|
|
263
265
|
var sprite = new SpritePoi(getDom(item), option);
|
|
264
|
-
sprite.position.copy(new Vector3().fromArray([item.points[0], item.points[1] + item.height +
|
|
266
|
+
sprite.position.copy(new Vector3().fromArray([item.points[0], item.points[1] + item.height + 15, item.points[2]]));
|
|
265
267
|
var fixScale = function fixScale(poi) {
|
|
266
268
|
var _camera$position;
|
|
267
269
|
var minDistance = 0.1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BoxGeometry","Color","Group","Mesh","ShaderMaterial","Vector3","globalObjectManage","use","utils","EAnimationType","SpritePoi","SceneStyle","SceneTag","regionMap","collisionDetection","usePath","lookAtOnYAxis","emitter","cylinderData","label","id","title","reform","belongTo","area","color","getHex","points","poi","position","height","areaLabel","camera","target","reduction","crudeOil","catalyticCracking","hydrocrackingUnit","cokingUnit","administrative","getDom","data","dom","document","createElement","wordLength","length","Object","assign","style","fontSize","backgroundImage","backgroundSize","backgroundRepeat","display","justifyContent","alignItems","textAlign","pointerEvents","cursor","minWidth","width","padding","img","src","left","top","appendChild","marginLeft","innerText","fontWeight","fontFamily","label2","slice","marginTop","label3","CylinderManage","gobal","options","Map","currentCameraPosition","control","object","box","areaBoundingBox","boundingBoxMap","get","currentoperate","iscollision","emit","cameraRemoveListener","scene","option","forEach","item","cylinder","getMesh","group","name","visible","copy","fromArray","interactionManager","storeManagement","add","handleClick","real","cameraUtil","set","then","setVisible","regionPlane","planeMesh","mesh","currentGroup","cylinderMesh","plane","addEventListener","tag","highLightAreaId","hoverAreaId","districtLine","setHighLightLine","removeHighLightLine","animation","type","grow","duration","fadeIn","sprite","fixScale","minDistance","maxDistance","useScene","distance","distanceTo","clampedDistance","Math","max","min","scaleValue","scale","useframe","controlAddListener","bar","geometry","gradientMaterial","transparent","depthTest","uniforms","intensity","value","vertexShader","fragmentShader","rotateY","PI","cameraListenerHandle","controls","getDistance","removeEventListener"],"sources":["../../../src/factory/unit/cylinder.ts"],"sourcesContent":["import type { InteractionManager, Object3D, Scene } from '@anov/3d-core'\nimport { BoxGeometry, Color, Float32BufferAttribute, Group, Mesh, MeshBasicMaterial, ShaderMaterial, Vector3, globalObjectManage, use, utils } from '@anov/3d-core'\nimport { EAnimationType, SpritePoi } from '@anov/3d-ability'\nimport createFontMesh from '../utils/fontMesh'\nimport type Factory3D from '../3d'\nimport { SceneStyle, SceneTag } from '../utils/constant'\nimport regionMap from '../regionData'\nimport { collisionDetection } from '../utils/areaBoundingBox'\nimport { usePath } from '../3d'\nimport { lookAtOnYAxis } from '../utils'\n\nconst { emitter } = utils\n\nconst cylinderData = [\n {\n label: '8人',\n id: '1',\n title: regionMap.reform.title,\n belongTo: regionMap.reform.id,\n area: regionMap.reform.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.reform.poi.position,\n height: 80,\n areaLabel: '重整装置区',\n camera: {\n target: [\n -314.011126,\n 0.55002,\n -146.543503,\n ],\n position: [\n -312.394914,\n 257.245626,\n 47.197057,\n ],\n },\n },\n {\n label: '7人',\n id: '2',\n title: regionMap.reduction.title,\n belongTo: regionMap.reduction.id,\n area: regionMap.reduction.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.reduction.poi.position,\n height: 70,\n areaLabel: '常减压装置区',\n camera: {\n target: [\n 31.316545,\n 0.550012,\n -130.972087,\n ],\n position: [\n 34.239022,\n 267.62292,\n 62.561665,\n ],\n },\n },\n {\n label: '4人',\n id: '3',\n title: regionMap.crudeOil.title,\n belongTo: regionMap.crudeOil.id,\n area: regionMap.crudeOil.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.crudeOil.poi.position,\n height: 40,\n areaLabel: '原油罐区',\n camera: {\n target: [\n 353.973508,\n 0.550011,\n -125.345886,\n ],\n position: [\n 353.432421,\n 201.482934,\n 32.729098,\n ],\n },\n },\n {\n label: '10人',\n id: '4',\n title: regionMap.catalyticCracking.title,\n belongTo: regionMap.catalyticCracking.id,\n area: regionMap.catalyticCracking.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.catalyticCracking.poi.position,\n height: 100,\n areaLabel: '催化裂化装置区',\n camera: {\n target: [\n -322.573001,\n 0.550014,\n 31.815163,\n ],\n position: [\n -320.957427,\n 257.144259,\n 225.47922,\n ],\n },\n },\n {\n label: '3人',\n id: '5',\n title: regionMap.hydrocrackingUnit.title,\n belongTo: regionMap.hydrocrackingUnit.id,\n area: regionMap.hydrocrackingUnit.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.hydrocrackingUnit.poi.position,\n height: 30,\n areaLabel: '加氢裂化装置区',\n camera: {\n target: [\n -307.049915,\n 0.550014,\n 168.905777,\n ],\n position: [\n -305.525588,\n 240.704876,\n 351.631836,\n ],\n },\n },\n {\n label: '8人',\n id: '6',\n title: regionMap.cokingUnit.title,\n belongTo: regionMap.cokingUnit.id,\n area: regionMap.cokingUnit.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.cokingUnit.poi.position,\n height: 80,\n areaLabel: '焦化装置区',\n camera: {\n target: [\n 92.780379,\n 0.550012,\n 106.726765,\n ],\n position: [\n 96.849312,\n 372.392759,\n 376.181734,\n ],\n },\n },\n {\n label: '20人',\n id: '7',\n title: regionMap.administrative.title,\n belongTo: regionMap.administrative.id,\n area: regionMap.administrative.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.administrative.poi.position,\n height: 150,\n areaLabel: '办公区',\n camera: {\n target: [\n 416.932569,\n 0.550009,\n 85.100115,\n ],\n position: [\n 567.413903,\n 236.090124,\n 82.586741,\n ],\n },\n },\n]\n\ntype CylinderManageOption = {\n visible?: boolean\n}\n\nconst getDom = (data) => {\n const dom = document.createElement('div')\n const wordLength = data.areaLabel.length + 1\n Object.assign(dom.style, {\n fontSize: '22px',\n backgroundImage: `url(${usePath}p2text.png)`,\n backgroundSize: '100% 100%',\n backgroundRepeat: 'no-repeat',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'flex-start',\n textAlign: 'center',\n color: '#fff',\n pointerEvents: 'auto',\n cursor: 'pointer',\n height: '40px',\n minWidth: '180px',\n width: `${(wordLength * (wordLength > 6 ? 44 : 50))}px`,\n padding: '6px 0 0 6px',\n position: 'relative',\n })\n const img = document.createElement('img')\n img.src = `${usePath}p2${data.areaLabel}.png`\n img.style.position = 'absolute'\n img.style.left = '15px'\n img.style.top = '11px'\n img.style.width = '20px'\n img.style.height = '20px'\n dom.appendChild(img)\n\n const label = document.createElement('span')\n label.style.marginLeft = '2px'\n label.innerText = data.areaLabel\n label.style.fontWeight = 'bold'\n label.style.fontFamily = 'YouSheBiaoTiHei3D'\n dom.appendChild(label)\n\n const label2 = document.createElement('span')\n label2.style.marginLeft = '2px'\n label2.innerText = (data.label as string).slice(0, data.label.length - 1)\n label2.style.fontWeight = 'bold'\n label2.style.fontSize = '30px'\n label2.style.color = 'yellow'\n label2.style.marginTop = '-5px'\n dom.appendChild(label2)\n\n const label3 = document.createElement('span')\n label3.style.marginLeft = '2px'\n label3.innerText = data.label.slice(data.label.length - 1)\n label3.style.fontWeight = 'bold'\n label3.style.fontFamily = 'YouSheBiaoTiHei3D'\n label3.style.color = 'yellow'\n dom.appendChild(label3)\n return dom\n}\n\nclass CylinderManage {\n private scene: Scene\n readonly cylinderMesh: Map<string, Object3D> = new Map()\n private option: CylinderManageOption\n private gobal: Factory3D\n private currentoperate: string = cylinderData[0].belongTo\n\n private highLightAreaId: string\n private hoverAreaId: string\n\n constructor(gobal: Factory3D, options?: CylinderManageOption) {\n this.scene = gobal.scene.scene\n this.gobal = gobal\n this.option = options || {}\n }\n\n generateCylinder() {\n cylinderData.forEach((item) => {\n const cylinder = this.getMesh(item)\n const group = new Group()\n group.name = item.title\n\n group.visible = this.option?.visible ?? true\n cylinder.position.copy(new Vector3().fromArray([item.points[0], item.points[1] + item.height / 2, item.points[2]]))\n\n const interactionManager = utils.storeManagement.get<InteractionManager>('interactionManager')\n interactionManager.add(group)\n\n const handleClick = () => {\n if (this.gobal.style === SceneStyle.real || group.visible === false)\n return\n\n const { position, target } = item.camera\n this.gobal.cameraUtil.set({\n position, target,\n }).then(() => {\n emitter.emit('peoplemanagement-camera-enter', item)\n this.setVisible()\n\n // @ts-ignore\n this.gobal.regionPlane.planeMesh.forEach((mesh) => {\n mesh.visible = false\n })\n\n const currentGroup = this.cylinderMesh.get(item.belongTo) as Group\n currentGroup.visible = false\n\n this.currentoperate = item.belongTo\n })\n\n // this.gobal.cameraUtil.focus({ target: item.area, pitch: 0 }).then(() => { })\n }\n\n // @ts-ignore\n const plane = (this.gobal.regionPlane.planeMesh as Map<string, Object3D>).get(item.id)\n plane.addEventListener('click', () => {\n if (this.gobal.tag === SceneTag['people-management']) {\n this.highLightAreaId = item.id\n handleClick()\n }\n })\n plane.addEventListener('mouseover', () => {\n if (this.gobal.tag === SceneTag['people-management']) {\n this.hoverAreaId = item?.belongTo\n this.gobal.districtLine?.setHighLightLine(item?.belongTo)\n }\n })\n plane.addEventListener('mouseout', () => {\n if (this.gobal.tag === SceneTag['people-management'] && this.hoverAreaId !== this.highLightAreaId)\n this.gobal.districtLine?.removeHighLightLine(this.hoverAreaId)\n })\n\n group.addEventListener('click', () => {\n handleClick()\n })\n\n this.cylinderMesh.set(item.belongTo, group)\n group.add(cylinder)\n\n const option = {\n animation: [{\n type: EAnimationType.grow,\n duration: 1,\n }, {\n type: EAnimationType.fadeIn,\n duration: 0.2,\n }],\n }\n\n const sprite = new SpritePoi(getDom(item), option)\n\n sprite.position.copy(new Vector3().fromArray([item.points[0], item.points[1] + item.height + 5, item.points[2]]))\n\n const fixScale = (poi) => {\n const minDistance = 0.1\n const maxDistance = 1000000\n const { camera } = use.useScene()\n\n const distance = camera.position?.distanceTo(poi.position) || 0.1\n\n const clampedDistance = Math.max(minDistance, Math.min(maxDistance, distance))\n\n const scaleValue = clampedDistance * 0.12\n\n poi.scale.copy(new Vector3(scaleValue * 1.2, scaleValue * 0.20, 1))\n }\n\n fixScale(sprite)\n\n use.useframe(() => {\n lookAtOnYAxis(sprite, globalObjectManage.camera.position)\n })\n\n group.add(sprite)\n this.scene.add(group)\n })\n this.controlAddListener()\n }\n\n setVisible(visible = true) {\n // 控制CYCLE的隐藏、显示\n this.cylinderMesh.forEach((bar) => {\n bar.visible = visible\n })\n }\n\n getMesh(data) {\n const width = 10\n\n const geometry = new BoxGeometry(width, data.height, width)\n\n const gradientMaterial = new ShaderMaterial({\n transparent: true,\n depthTest: false,\n uniforms: {\n intensity: { value: 1.0 },\n },\n vertexShader: `\n varying vec2 vUv;\n varying vec3 vNormal;\n void main()\n {\n vUv = uv;\n vNormal =normalize( normal ) ;\n vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n gl_Position = projectionMatrix * mvPosition;\n }\n \n `,\n fragmentShader: `\n \n varying vec3 vNormal;\n varying vec2 vUv;\n uniform float intensity;\n\n void main( void ) {\n \n float colX =clamp( vUv.y+0.3,0.,1.);\n\n if(vNormal.y >0.5)\n {\n colX=1.;\n }\n if(vNormal.y <-0.5)\n {\n colX=0.;\n }\n\n vec4 col = vec4 (1.,mix(0.2,0.8,colX),0.,1.);\n\n gl_FragColor=col*colX*intensity;\n }\n `,\n\n })\n\n // 创建渐变立方体\n const cylinder = new Mesh(geometry, gradientMaterial)\n cylinder.rotateY(Math.PI / 2)\n return cylinder\n }\n\n private cameraListenerHandle = () => {\n const currentCameraPosition = this.gobal.control.object.position\n const box = this.gobal.areaBoundingBox.boundingBoxMap.get(this.currentoperate)\n const iscollision = collisionDetection(box, currentCameraPosition)\n if (!iscollision) {\n emitter.emit('peoplemanagement-camera-out', {\n belongTo: this.currentoperate,\n })\n\n this.cameraRemoveListener()\n }\n }\n\n private cameraAddListener() {\n this.gobal.control.addEventListener('change', this.cameraListenerHandle)\n }\n\n private controlAddListener() {\n // @ts-ignore\n const maxDistance = this.gobal.option.controls.maxDistance\n maxDistance && this.gobal.control.addEventListener('change', () => {\n if (this.gobal.control.getDistance() >= maxDistance - 5)\n emitter.emit('peoplemanagement-control-maxDistance', null)\n })\n }\n\n private cameraRemoveListener() {\n this.gobal.control.removeEventListener('change', this.cameraListenerHandle)\n }\n}\n\nexport default CylinderManage"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["BoxGeometry","Color","Group","Mesh","ShaderMaterial","Vector3","globalObjectManage","use","utils","EAnimationType","SpritePoi","SceneStyle","SceneTag","regionMap","collisionDetection","usePath","lookAtOnYAxis","emitter","cylinderData","label","id","title","reform","belongTo","area","color","getHex","points","poi","position","height","areaLabel","camera","target","reduction","crudeOil","catalyticCracking","hydrocrackingUnit","cokingUnit","administrative","getDom","data","dom","document","createElement","wordLength","length","Object","assign","style","fontSize","backgroundImage","backgroundSize","backgroundRepeat","display","justifyContent","alignItems","textAlign","pointerEvents","cursor","minWidth","width","padding","img","src","left","top","appendChild","marginLeft","innerText","fontWeight","fontFamily","label2","slice","marginTop","marginRight","label3","CylinderManage","gobal","options","Map","currentCameraPosition","control","object","box","areaBoundingBox","boundingBoxMap","get","currentoperate","iscollision","emit","cameraRemoveListener","scene","option","forEach","item","cylinder","getMesh","group","name","visible","copy","fromArray","interactionManager","storeManagement","add","handleClick","real","cameraUtil","set","then","setVisible","regionPlane","planeMesh","mesh","currentGroup","cylinderMesh","plane","addEventListener","tag","highLightAreaId","hoverAreaId","districtLine","setHighLightLine","removeHighLightLine","animation","type","grow","duration","fadeIn","sprite","fixScale","minDistance","maxDistance","useScene","distance","distanceTo","clampedDistance","Math","max","min","scaleValue","scale","useframe","controlAddListener","bar","geometry","gradientMaterial","transparent","depthTest","uniforms","intensity","value","vertexShader","fragmentShader","rotateY","PI","cameraListenerHandle","controls","getDistance","removeEventListener"],"sources":["../../../src/factory/unit/cylinder.ts"],"sourcesContent":["import type { InteractionManager, Object3D, Scene } from '@anov/3d-core'\nimport { BoxGeometry, Color, Float32BufferAttribute, Group, Mesh, MeshBasicMaterial, ShaderMaterial, Vector3, globalObjectManage, use, utils } from '@anov/3d-core'\nimport { EAnimationType, SpritePoi } from '@anov/3d-ability'\nimport createFontMesh from '../utils/fontMesh'\nimport type Factory3D from '../3d'\nimport { SceneStyle, SceneTag } from '../utils/constant'\nimport regionMap from '../regionData'\nimport { collisionDetection } from '../utils/areaBoundingBox'\nimport { usePath } from '../3d'\nimport { lookAtOnYAxis } from '../utils'\n\nconst { emitter } = utils\n\nconst cylinderData = [\n {\n label: '8人',\n id: '1',\n title: regionMap.reform.title,\n belongTo: regionMap.reform.id,\n area: regionMap.reform.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.reform.poi.position,\n height: 80,\n areaLabel: '重整装置区',\n camera: {\n target: [\n -314.011126,\n 0.55002,\n -146.543503,\n ],\n position: [\n -312.394914,\n 257.245626,\n 47.197057,\n ],\n },\n },\n {\n label: '7人',\n id: '2',\n title: regionMap.reduction.title,\n belongTo: regionMap.reduction.id,\n area: regionMap.reduction.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.reduction.poi.position,\n height: 70,\n areaLabel: '常减压装置区',\n camera: {\n target: [\n 31.316545,\n 0.550012,\n -130.972087,\n ],\n position: [\n 34.239022,\n 267.62292,\n 62.561665,\n ],\n },\n },\n {\n label: '4人',\n id: '3',\n title: regionMap.crudeOil.title,\n belongTo: regionMap.crudeOil.id,\n area: regionMap.crudeOil.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.crudeOil.poi.position,\n height: 40,\n areaLabel: '原油罐区',\n camera: {\n target: [\n 353.973508,\n 0.550011,\n -125.345886,\n ],\n position: [\n 353.432421,\n 201.482934,\n 32.729098,\n ],\n },\n },\n {\n label: '10人',\n id: '4',\n title: regionMap.catalyticCracking.title,\n belongTo: regionMap.catalyticCracking.id,\n area: regionMap.catalyticCracking.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.catalyticCracking.poi.position,\n height: 100,\n areaLabel: '催化裂化装置区',\n camera: {\n target: [\n -322.573001,\n 0.550014,\n 31.815163,\n ],\n position: [\n -320.957427,\n 257.144259,\n 225.47922,\n ],\n },\n },\n {\n label: '3人',\n id: '5',\n title: regionMap.hydrocrackingUnit.title,\n belongTo: regionMap.hydrocrackingUnit.id,\n area: regionMap.hydrocrackingUnit.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.hydrocrackingUnit.poi.position,\n height: 30,\n areaLabel: '加氢裂化装置区',\n camera: {\n target: [\n -307.049915,\n 0.550014,\n 168.905777,\n ],\n position: [\n -305.525588,\n 240.704876,\n 351.631836,\n ],\n },\n },\n {\n label: '8人',\n id: '6',\n title: regionMap.cokingUnit.title,\n belongTo: regionMap.cokingUnit.id,\n area: regionMap.cokingUnit.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.cokingUnit.poi.position,\n height: 80,\n areaLabel: '焦化装置区',\n camera: {\n target: [\n 92.780379,\n 0.550012,\n 106.726765,\n ],\n position: [\n 96.849312,\n 372.392759,\n 376.181734,\n ],\n },\n },\n {\n label: '20人',\n id: '7',\n title: regionMap.administrative.title,\n belongTo: regionMap.administrative.id,\n area: regionMap.administrative.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.administrative.poi.position,\n height: 150,\n areaLabel: '办公区',\n camera: {\n target: [\n 416.932569,\n 0.550009,\n 85.100115,\n ],\n position: [\n 567.413903,\n 236.090124,\n 82.586741,\n ],\n },\n },\n]\n\ntype CylinderManageOption = {\n visible?: boolean\n}\n\nconst getDom = (data) => {\n const dom = document.createElement('div')\n const wordLength = data.areaLabel.length + 1\n Object.assign(dom.style, {\n fontSize: '22px',\n backgroundImage: `url(${usePath}p2text.png)`,\n backgroundSize: '100% 100%',\n backgroundRepeat: 'no-repeat',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'flex-start',\n textAlign: 'center',\n color: '#fff',\n pointerEvents: 'auto',\n cursor: 'pointer',\n height: '40px',\n minWidth: '180px',\n width: `${(wordLength * (wordLength > 6 ? 44 : 50))}px`,\n padding: '6px 0 0 6px',\n position: 'relative',\n })\n const img = document.createElement('img')\n img.src = `${usePath}p2${data.areaLabel}.png`\n img.style.position = 'absolute'\n img.style.left = '15px'\n img.style.top = '11px'\n img.style.width = '20px'\n img.style.height = '20px'\n dom.appendChild(img)\n\n const label = document.createElement('span')\n label.style.marginLeft = '2px'\n label.innerText = data.areaLabel\n label.style.fontWeight = 'bold'\n label.style.fontFamily = 'YouSheBiaoTiHei3D'\n dom.appendChild(label)\n\n const label2 = document.createElement('span')\n label2.style.marginLeft = '2px'\n label2.innerText = (data.label as string).slice(0, data.label.length - 1)\n label2.style.fontWeight = 'bold'\n label2.style.fontSize = '30px'\n label2.style.color = 'yellow'\n label2.style.marginTop = '-8px'\n label2.style.marginLeft = '5px'\n label2.style.marginRight = '3px'\n dom.appendChild(label2)\n\n const label3 = document.createElement('span')\n label3.style.marginLeft = '2px'\n label3.innerText = data.label.slice(data.label.length - 1)\n label3.style.fontWeight = 'bold'\n label3.style.fontFamily = 'YouSheBiaoTiHei3D'\n label3.style.color = 'yellow'\n dom.appendChild(label3)\n return dom\n}\n\nclass CylinderManage {\n private scene: Scene\n readonly cylinderMesh: Map<string, Object3D> = new Map()\n private option: CylinderManageOption\n private gobal: Factory3D\n private currentoperate: string = cylinderData[0].belongTo\n\n private highLightAreaId: string\n private hoverAreaId: string\n\n constructor(gobal: Factory3D, options?: CylinderManageOption) {\n this.scene = gobal.scene.scene\n this.gobal = gobal\n this.option = options || {}\n }\n\n generateCylinder() {\n cylinderData.forEach((item) => {\n const cylinder = this.getMesh(item)\n const group = new Group()\n group.name = item.title\n\n group.visible = this.option?.visible ?? true\n cylinder.position.copy(new Vector3().fromArray([item.points[0], item.points[1] + item.height / 2, item.points[2]]))\n\n const interactionManager = utils.storeManagement.get<InteractionManager>('interactionManager')\n interactionManager.add(group)\n\n const handleClick = () => {\n if (this.gobal.style === SceneStyle.real || group.visible === false)\n return\n\n const { position, target } = item.camera\n this.gobal.cameraUtil.set({\n position, target,\n }).then(() => {\n emitter.emit('peoplemanagement-camera-enter', item)\n this.setVisible()\n\n // @ts-ignore\n this.gobal.regionPlane.planeMesh.forEach((mesh) => {\n mesh.visible = false\n })\n\n const currentGroup = this.cylinderMesh.get(item.belongTo) as Group\n currentGroup.visible = false\n\n this.currentoperate = item.belongTo\n })\n\n // this.gobal.cameraUtil.focus({ target: item.area, pitch: 0 }).then(() => { })\n }\n\n // @ts-ignore\n const plane = (this.gobal.regionPlane.planeMesh as Map<string, Object3D>).get(item.id)\n plane.addEventListener('click', () => {\n if (this.gobal.tag === SceneTag['people-management']) {\n this.highLightAreaId = item.id\n handleClick()\n }\n })\n plane.addEventListener('mouseover', () => {\n if (this.gobal.tag === SceneTag['people-management']) {\n this.hoverAreaId = item?.belongTo\n this.gobal.districtLine?.setHighLightLine(item?.belongTo)\n }\n })\n plane.addEventListener('mouseout', () => {\n if (this.gobal.tag === SceneTag['people-management'] && this.hoverAreaId !== this.highLightAreaId)\n this.gobal.districtLine?.removeHighLightLine(this.hoverAreaId)\n })\n\n group.addEventListener('click', () => {\n handleClick()\n })\n\n this.cylinderMesh.set(item.belongTo, group)\n group.add(cylinder)\n\n const option = {\n animation: [{\n type: EAnimationType.grow,\n duration: 1,\n }, {\n type: EAnimationType.fadeIn,\n duration: 0.2,\n }],\n }\n\n const sprite = new SpritePoi(getDom(item), option)\n\n sprite.position.copy(new Vector3().fromArray([item.points[0], item.points[1] + item.height + 15, item.points[2]]))\n\n const fixScale = (poi) => {\n const minDistance = 0.1\n const maxDistance = 1000000\n const { camera } = use.useScene()\n\n const distance = camera.position?.distanceTo(poi.position) || 0.1\n\n const clampedDistance = Math.max(minDistance, Math.min(maxDistance, distance))\n\n const scaleValue = clampedDistance * 0.12\n\n poi.scale.copy(new Vector3(scaleValue * 1.2, scaleValue * 0.20, 1))\n }\n\n fixScale(sprite)\n\n use.useframe(() => {\n lookAtOnYAxis(sprite, globalObjectManage.camera.position)\n })\n\n group.add(sprite)\n this.scene.add(group)\n })\n this.controlAddListener()\n }\n\n setVisible(visible = true) {\n // 控制CYCLE的隐藏、显示\n this.cylinderMesh.forEach((bar) => {\n bar.visible = visible\n })\n }\n\n getMesh(data) {\n const width = 10\n\n const geometry = new BoxGeometry(width, data.height, width)\n\n const gradientMaterial = new ShaderMaterial({\n transparent: true,\n depthTest: false,\n uniforms: {\n intensity: { value: 1.0 },\n },\n vertexShader: `\n varying vec2 vUv;\n varying vec3 vNormal;\n void main()\n {\n vUv = uv;\n vNormal =normalize( normal ) ;\n vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n gl_Position = projectionMatrix * mvPosition;\n }\n \n `,\n fragmentShader: `\n \n varying vec3 vNormal;\n varying vec2 vUv;\n uniform float intensity;\n\n void main( void ) {\n \n float colX =clamp( vUv.y+0.3,0.,1.);\n\n if(vNormal.y >0.5)\n {\n colX=1.;\n }\n if(vNormal.y <-0.5)\n {\n colX=0.;\n }\n\n vec4 col = vec4 (1.,mix(0.2,0.8,colX),0.,1.);\n\n gl_FragColor=col*colX*intensity;\n }\n `,\n\n })\n\n // 创建渐变立方体\n const cylinder = new Mesh(geometry, gradientMaterial)\n cylinder.rotateY(Math.PI / 2)\n return cylinder\n }\n\n private cameraListenerHandle = () => {\n const currentCameraPosition = this.gobal.control.object.position\n const box = this.gobal.areaBoundingBox.boundingBoxMap.get(this.currentoperate)\n const iscollision = collisionDetection(box, currentCameraPosition)\n if (!iscollision) {\n emitter.emit('peoplemanagement-camera-out', {\n belongTo: this.currentoperate,\n })\n\n this.cameraRemoveListener()\n }\n }\n\n private cameraAddListener() {\n this.gobal.control.addEventListener('change', this.cameraListenerHandle)\n }\n\n private controlAddListener() {\n // @ts-ignore\n const maxDistance = this.gobal.option.controls.maxDistance\n maxDistance && this.gobal.control.addEventListener('change', () => {\n if (this.gobal.control.getDistance() >= maxDistance - 5)\n emitter.emit('peoplemanagement-control-maxDistance', null)\n })\n }\n\n private cameraRemoveListener() {\n this.gobal.control.removeEventListener('change', this.cameraListenerHandle)\n }\n}\n\nexport default CylinderManage"],"mappings":"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"}
|
|
@@ -86,7 +86,7 @@ var InspectionObject = /*#__PURE__*/function () {
|
|
|
86
86
|
span.innerText = '巡检无人机';
|
|
87
87
|
span.style.fontFamily = 'YouSheBiaoTiHei3D';
|
|
88
88
|
span.style.position = 'absolute';
|
|
89
|
-
span.style.top = '
|
|
89
|
+
span.style.top = '8px';
|
|
90
90
|
span.style.left = '45%';
|
|
91
91
|
span.style.transform = 'translateX(-30%)';
|
|
92
92
|
span.style.color = 'white';
|
|
@@ -160,7 +160,6 @@ var InspectionObject = /*#__PURE__*/function () {
|
|
|
160
160
|
});
|
|
161
161
|
glb.scene.scale.set(5, 5, 5);
|
|
162
162
|
glb.scene.traverse(function (child) {
|
|
163
|
-
// child.layers.enable(2)
|
|
164
163
|
child.layers.enable(5);
|
|
165
164
|
});
|
|
166
165
|
this.inspection.gobal.scene.add(this.model);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AudioListener","AudioLoader","Clock","Color","EdgesGeometry","Euler","Group","LineBasicMaterial","LineCurve3","LineSegments","MathUtils","Matrix4","Mesh","MeshBasicMaterial","MirroredRepeatWrapping","ModelLoader","PlaneGeometry","PositionalAudio","Quaternion","RepeatWrapping","TextureLoader","Vector3","use","utils","SpritePoi","Tween","createFinirMaterial","usePath","MessageType","sendToMessage","EMessageStatus","SceneTag","isCheck","targetProgresspoints","TubeGeometryV2","modelLoader","InspectionObject","inspection","verticalSpeed","horizontalSpeed","height","targetQuaternion","mesh","cb","clock","quaternion","equals","animation","useframe","delta","getDelta","step","rotateTowards","temp","load","wrapS","wrapT","repeat","set","rotation","Math","PI","loadGLTF","glb","div","document","createElement","style","position","img","src","span","innerText","fontFamily","top","left","transform","color","fontSize","fontWeight","appendChild","poi","width","img2","poi2","scale","fly1","scene","getObjectByName","fly2","fly3","fly4","planeGeometry","planeMaterial","map","transparent","plyMap","x","copy","layers","group","name","add","minCamera","clone","z","getSportsProgress","isLock","stop","checkAnimation","compassInfo","y","rotateY","initialMinCameraQuaternion","model","gobal","interactionManager","visible","addEventListener","traverse","child","enable","loadPosAudio","breathinglamp","target","startColor","endColor","breathingSpeed","elapsedTime","getElapsedTime","t","sin","currentColor","lerp","material","handleMouseMove","listener","posAudio","audioLoader","audioBuffer","setBuffer","setVolume","setRefDistance","setLoop","emitter","on","isStartUp","play","removeEventListener","curve","loadModel","control","moveWithLine","groundCurve","getPointAt","setTimeout","sendCompassInfo","groundMaterial","uniforms","u_time","value","mapMaterial","mapAnchorObject","forEach","mapAnchor","uColor","Event","Success","undefined","percentage","setInterval","updateMatrixWorld","worldQuaternion","getWorldQuaternion","worldEuler","setFromQuaternion","rotationY","rotationYInDegrees","round","radToDeg","rotate","abs","degree","distance","getLength","getProgress","Promise","resolve","data","progress","isAnimation","defaultFirstPerspectiveControls","enabled","key","Object","keys","find","p","num","parseFloat","targetMeshId","lookAt","targetMesh","pipeline","realModl","contineMove","currentAnchor","anchorObject","get","currentMapAnchor","numberKey","Number","rotationMatrix","startQuaternion","startCameraQuaternion","targetMeshPosition","up","setFromRotationMatrix","forwardTween","to","onUpdate","obj","slerp","backwardTween","onComplete","finirMesh","finirMaterialV2","type","lineSegments","geometry","subscription","then","start","off","currentPosition","targetPosition","tube","tempPathMesh","depthTest","tempDemo","offset","tag","dispose","removeFromParent","upCurve","upControl","loop","lookat","contine","targetProgress","startRotate","tempPathMeshtargetPosition","generateTempPathMesh","generateTempPath","tempCurve","tempControl","lastPosition","downCurve","downControl","rotationMatrix2","targetQuaternion2","targetPosition2","cleanTempPathMesh","setProgress","speed","setSpeed","Error","contineCount","takeOffAnimation","emit","camera"],"sources":["../../../../src/factory/unit/inspection/InspectionObject.ts"],"sourcesContent":["import type { Camera, Curve, Object3D } from '@anov/3d-core'\nimport { AudioListener, AudioLoader, BoxGeometry, Clock, Color, EdgesGeometry, Euler, Group, LineBasicMaterial, LineCurve3, LineSegments, MathUtils, Matrix4, Mesh, MeshBasicMaterial, MeshStandardMaterial, MirroredRepeatWrapping, ModelLoader, PlaneGeometry, PointLight, PositionalAudio, Quaternion, RepeatWrapping, ShaderChunk, ShaderMaterial, Sprite, SpriteMaterial, TextureLoader, TubeGeometry, Vector3, Vector4, use, utils } from '@anov/3d-core'\nimport type { Css2DPoi } from '@anov/3d-ability'\nimport { SpritePoi, addColorifyPass, createHighSelectedTool } from '@anov/3d-ability'\nimport { Tween } from '@tweenjs/tween.js'\nimport { createFinirMaterial } from '../../utils/finirMaterial'\nimport { usePath } from '../../3d'\nimport { MessageType, sendToMessage } from '../../../utils/messageFn'\nimport { EMessageStatus } from '../../../messageStatus'\nimport { SceneTag } from '../../utils/constant'\nimport { isCheck, targetProgresspoints } from './lineData'\nimport TubeGeometryV2 from './tubeGeometry'\n\nconst modelLoader = new ModelLoader()\n\nclass InspectionObject {\n model\n private inspection\n private control\n private isLock = false\n private isAnimation = false\n walkCurveMesh\n tempPathMesh\n css2d: Css2DPoi\n temp\n tempDemo\n isStartUp = false\n initialMinCameraQuaternion\n contineCount = 0\n\n compassInfo = {\n verticalSpeed: 0,\n horizontalSpeed: 10,\n height: 0,\n }\n\n constructor(inspection) {\n this.inspection = inspection\n\n const temp = new TextureLoader().load(`${usePath}test07.png`)\n temp.wrapS = RepeatWrapping\n temp.wrapT = MirroredRepeatWrapping\n temp.repeat.set(1, 2)\n temp.rotation = Math.PI\n\n this.temp = temp\n }\n\n private async loadModel() {\n const glb = await (await modelLoader.loadGLTF(`${usePath}car.glb`, false, true, './draco/'))\n\n const div = document.createElement('div')\n div.style.position = 'relative'\n\n const img = document.createElement('img')\n img.src = `${usePath}aerialVehicle02.png`\n\n const span = document.createElement('span')\n span.innerText = '巡检无人机'\n span.style.fontFamily = 'YouSheBiaoTiHei3D'\n span.style.position = 'absolute'\n span.style.top = '10px'\n span.style.left = '45%'\n span.style.transform = 'translateX(-30%)'\n\n span.style.color = 'white'\n span.style.fontSize = '20px'\n span.style.fontWeight = 'bold'\n\n div.appendChild(img)\n div.appendChild(span)\n\n const poi = new SpritePoi(div, {\n width: 100 * 2,\n height: 40 * 2,\n })\n\n const img2 = document.createElement('img')\n img2.src = `${usePath}aerialVehicle01.png`\n\n const poi2 = new SpritePoi(img2, {\n width: 400 * 2,\n height: 160 * 2,\n })\n\n poi.scale.set(80, 30, 1)\n poi2.scale.set(400, 160, 1)\n\n const fly1 = glb.scene.getObjectByName('fly1')\n const fly2 = glb.scene.getObjectByName('fly1_1')\n const fly3 = glb.scene.getObjectByName('fly1_2')\n const fly4 = glb.scene.getObjectByName('fly1_3')\n\n const planeGeometry = new PlaneGeometry(50, 50)\n const planeMaterial = new MeshBasicMaterial({ map: new TextureLoader().load(`${usePath}fly.png`), transparent: true })\n const plyMap = new Mesh(planeGeometry, planeMaterial)\n\n plyMap.rotation.x = -Math.PI / 2\n plyMap.position.copy(glb.scene.position)\n plyMap.layers.set(5)\n\n const group = new Group()\n glb.scene.name = 'ply'\n group.add(glb.scene)\n group.add(poi)\n group.add(plyMap)\n group.add(this.inspection.minCamera)\n\n use.useframe(() => {\n poi.position.copy(glb.scene.position.clone().add(new Vector3(0, 10, 0)))\n poi2.position.copy(glb.scene.position.clone().add(new Vector3(0, 10, 0)))\n\n fly1.rotation.z += 1.3\n fly2.rotation.z += 1.3\n fly3.rotation.z += 1.3\n fly4.rotation.z += 1.3\n\n if (isCheck(this.getSportsProgress)\n && !this.isLock) {\n this.stop()\n this.checkAnimation(this.getSportsProgress)\n this.compassInfo.horizontalSpeed = 0\n this.compassInfo.verticalSpeed = 0\n }\n })\n\n this.inspection.minCamera.position.copy(glb.scene.position)\n this.inspection.minCamera.position.z -= 18\n this.inspection.minCamera.position.y += 4\n this.inspection.minCamera.rotateY(Math.PI)\n this.initialMinCameraQuaternion = this.inspection.minCamera.quaternion.clone()\n\n this.model = group\n\n this.inspection.gobal.interactionManager.add(poi)\n this.inspection.gobal.interactionManager.add(poi2)\n\n poi2.visible = false\n\n poi.addEventListener('click', () => {\n group.add(poi2)\n poi2.visible = true\n poi.visible = false\n })\n\n poi2.addEventListener('click', () => {\n group.add(poi2)\n poi.visible = true\n poi2.visible = false\n })\n\n glb.scene.scale.set(5, 5, 5)\n glb.scene.traverse((child) => {\n // child.layers.enable(2)\n child.layers.enable(5)\n })\n\n this.inspection.gobal.scene.add(this.model)\n\n this.loadPosAudio()\n this.breathinglamp(this.model)\n }\n\n private breathinglamp(model: Group) {\n const target = model.getObjectByName('网格004_5')\n\n const startColor = new Color('#999')\n const endColor = new Color('#2df3ee')\n\n const clock = new Clock()\n const breathingSpeed = 1\n\n use.useframe(() => {\n const elapsedTime = clock.getElapsedTime()\n const t = (Math.sin(elapsedTime * Math.PI * breathingSpeed) + 1) / 2\n const currentColor = startColor.clone().lerp(endColor, t)\n\n // @ts-ignore\n target.material.color.set(currentColor)\n })\n }\n\n private loadPosAudio() {\n const handleMouseMove = () => {\n const listener = new AudioListener()\n this.inspection.minCamera.add(listener)\n\n const posAudio = new PositionalAudio(listener)\n this.model.add(posAudio)\n\n const audioLoader = new AudioLoader()\n\n audioLoader.load(`${usePath}demo.mp3`, (audioBuffer) => {\n posAudio.setBuffer(audioBuffer)\n posAudio.setVolume(0.8)\n posAudio.setRefDistance(200)\n posAudio.setLoop(true)\n })\n\n utils.emitter.on('play', () => {\n this.isStartUp && posAudio.play()\n })\n\n utils.emitter.on('stop', () => {\n posAudio.stop()\n })\n\n document.removeEventListener('mousemove', handleMouseMove)\n }\n\n document.addEventListener('mousemove', handleMouseMove)\n }\n\n async startMove(curve) {\n if (!this.model)\n await this.loadModel()\n\n this.control = utils.moveWithLine(this.model, curve, 10, {\n groundCurve: this.inspection.groundCurve,\n })\n\n this.model.position.copy(curve.getPointAt(0))\n\n setTimeout(() => {\n this.stop();\n ((this.model) as Object3D).position.y = (this.model.position.y - 20)\n }, 20)\n\n this.sendCompassInfo()\n\n use.useframe(() => {\n this.inspection.groundMaterial.uniforms.u_time.value = this.getSportsProgress - 0.01\n this.inspection.mapMaterial.uniforms.u_time.value = this.getSportsProgress - 0.01\n\n if (this.getSportsProgress > 0 && this.getSportsProgress < 0.01) {\n this.inspection.mapAnchorObject.forEach((mapAnchor) => {\n mapAnchor.material.uniforms.uColor.value.set(1, 1, 1, 1)\n })\n }\n\n sendToMessage(MessageType.Event, 'onInspectProgress', EMessageStatus.Success, undefined, {\n percentage: this.getSportsProgress * 1000,\n })\n })\n }\n\n /**\n * send compass info\n * not use useframe, because useframe will be lose some frame\n */\n private sendCompassInfo() {\n setInterval(() => {\n const mesh = this.model\n mesh.updateMatrixWorld(true)\n\n const worldQuaternion = new Quaternion()\n mesh.getWorldQuaternion(worldQuaternion)\n\n const worldEuler = new Euler().setFromQuaternion(worldQuaternion, 'YXZ')\n const rotationY = worldEuler.y\n const rotationYInDegrees = Math.round(MathUtils.radToDeg(rotationY))\n\n sendToMessage(MessageType.Event, 'onCompassInfo', EMessageStatus.Success, undefined, {\n rotate: rotationYInDegrees >= 0 ? 180 - rotationYInDegrees : -180 + Math.abs(rotationYInDegrees),\n degree: rotationYInDegrees >= 0 ? 180 - rotationYInDegrees : -180 + Math.abs(rotationYInDegrees) + 360,\n distance: this.getSportsProgress * this.inspection.curve.getLength(),\n verticalSpeed: this.compassInfo.verticalSpeed,\n horizontalSpeed: this.compassInfo.horizontalSpeed * 3.6,\n height: (this.model as Object3D).position.y,\n })\n }, 100)\n }\n\n get getSportsProgress() {\n if (!this.control)\n return 0\n\n return this.control.getProgress()\n }\n\n subscription() {\n return new Promise((resolve) => {\n utils.emitter.on('continue', (data) => {\n resolve(data)\n })\n })\n }\n\n private checkAnimation(progress: number) {\n this.isLock = true\n this.isAnimation = true\n this.inspection.defaultFirstPerspectiveControls.enabled = false\n\n const key = Object.keys(targetProgresspoints).find((p) => {\n const num = parseFloat(p)\n if (progress >= num && progress < num + 0.01)\n return true\n })\n\n const targetMeshId = targetProgresspoints[key].lookAt\n\n let targetMesh: Group | null = null\n\n if (targetMeshId === 'GY_GD_guandaofamen_5')\n targetMesh = this.inspection.gobal.pipeline.getObjectByName(targetMeshId) as Group\n\n else\n targetMesh = this.inspection.gobal.realModl.getObjectByName(targetMeshId) as Group\n\n if (!targetMesh) {\n this.contineMove()\n this.isAnimation = false\n setTimeout(() => {\n this.isLock = false\n }, 500)\n return\n }\n\n const currentAnchor = this.inspection.anchorObject.get(targetProgresspoints[key].name)\n const currentMapAnchor = this.inspection.mapAnchorObject\n\n currentAnchor.traverse((child) => {\n if (child.name === 'cylinder')\n child.material = new MeshBasicMaterial({ color: new Color('yellow') })\n else\n child.material = new MeshBasicMaterial({ color: new Color('#facb2b') })\n });\n\n (currentMapAnchor as Map<string, Mesh>).forEach((mapAnchor, key) => {\n const numberKey = Number(key)\n\n // @ts-ignore\n this.getSportsProgress > numberKey && mapAnchor.material.uniforms.uColor.value.set(1, 1, 0, 0.8)\n\n // @ts-ignore\n this.getSportsProgress < numberKey && mapAnchor.material.uniforms.uColor.value.set(1, 1, 1, 1)\n })\n\n setTimeout(() => {\n const rotationMatrix = new Matrix4()\n const targetQuaternion = new Quaternion()\n const startQuaternion = this.model.quaternion.clone()\n const startCameraQuaternion = this.inspection.minCamera.quaternion.clone()\n\n const targetMeshPosition = targetMesh.position.clone()\n targetMeshPosition.y = targetMeshPosition.y + ((Number(key) === 0.048 || Number(key) === 0.682 || Number(key) === 0.400) ? 20 : 0)\n\n rotationMatrix.lookAt(targetMeshPosition, this.model.position, this.model.up)\n targetQuaternion.setFromRotationMatrix(rotationMatrix)\n\n const forwardTween = new Tween({ t: 0 })\n .to({ t: 1 }, 2000)\n .onUpdate((obj) => {\n this.model.quaternion.copy(startQuaternion).slerp(targetQuaternion, obj.t)\n this.inspection.minCamera.quaternion.copy(startCameraQuaternion).slerp(this.initialMinCameraQuaternion, obj.t)\n })\n\n const backwardTween = new Tween({ t: 1 })\n .to({ t: 0 }, 2000)\n .onUpdate((obj) => {\n this.model.quaternion.copy(startQuaternion).slerp(targetQuaternion, obj.t)\n })\n\n forwardTween.onComplete(() => {\n let finirMesh: Group | null = null\n\n sendToMessage(MessageType.Event, 'onReachTarget', EMessageStatus.Success, undefined, {\n target: targetProgresspoints[key].name,\n })\n\n if (Number(key) === 0.048 || Number(key) === 0.682 || Number(key) === 0.400)\n (this.inspection.minCamera as Camera).layers.set(2)\n\n if (Number(key) === 0.155 || Number(key) === 0.247) {\n (this.inspection.minCamera as Camera).layers.enable(3)\n // @ts-ignore\n if (!targetMesh.finirMesh) {\n finirMesh = targetMesh.clone() as any as Group\n\n const finirMaterialV2 = createFinirMaterial('#08A6E3', 4.3)\n\n finirMesh.traverse((child) => {\n child.layers.set(3)\n\n if (child.type === 'Mesh') {\n // @ts-ignore\n child.material = finirMaterialV2\n\n // @ts-ignore\n const lineSegments = new LineSegments(new EdgesGeometry(child.geometry as any), new LineBasicMaterial({ color: '#08A6E3' }))\n\n lineSegments.layers.set(3)\n finirMesh.add(lineSegments)\n }\n })\n\n // @ts-ignore\n targetMesh.finirMesh = finirMesh\n\n this.inspection.gobal.scene.add(finirMesh)\n }\n else {\n // @ts-ignore\n finirMesh = targetMesh.finirMesh\n\n finirMesh.visible = true\n }\n }\n\n // 异常点\n if (Number(key) === 0.155 || Number(key) === 0.247) {\n this.subscription().then((data) => {\n if (data) {\n finirMesh.visible = false\n backwardTween.start()\n\n utils.emitter.off('continue')\n }\n })\n }\n else {\n setTimeout(() => {\n if (Number(key) === 0.048 || Number(key) === 0.682 || Number(key) === 0.400)\n (this.inspection.minCamera as Camera).layers.set(0)\n\n // if (Number(key) === 0.40)\n // finirMesh.visible = false\n\n backwardTween.start()\n }, 6000)\n }\n })\n\n setTimeout(() => {\n forwardTween.start()\n }, 1000)\n\n backwardTween.onComplete(() => {\n this.isAnimation = false\n this.contineMove()\n\n this.compassInfo.verticalSpeed = 0\n this.compassInfo.horizontalSpeed = 10\n\n currentAnchor.traverse((child) => {\n if (child.name === 'cylinder')\n child.material = new MeshBasicMaterial({ color: new Color('#cdccca') })\n else\n child.material = new MeshBasicMaterial({ color: new Color('#fff') })\n })\n\n setTimeout(() => {\n this.inspection.defaultFirstPerspectiveControls.enabled = true\n this.isLock = false\n }, 500)\n })\n }, 1000)\n }\n\n generateTempPath(currentPosition: Vector3, targetPosition: Vector3) {\n return new LineCurve3(currentPosition, targetPosition)\n }\n\n private startRotate = (targetQuaternion: Quaternion, mesh: Group, cb: () => void) => {\n const clock = new Clock()\n\n if (mesh.quaternion.equals(targetQuaternion))\n return cb()\n\n const animation = use.useframe(() => {\n const delta = clock.getDelta()\n if (!mesh.quaternion.equals(targetQuaternion)) {\n const step = 1 * delta\n mesh.quaternion.rotateTowards(targetQuaternion, step)\n }\n else {\n animation()\n cb()\n }\n },\n )\n }\n\n private generateTempPathMesh(curve: Curve<Vector3>) {\n // @ts-ignore\n const tube = new TubeGeometryV2(curve, 100, 5, 2, false)\n const tempPathMesh = new Mesh(tube, new MeshBasicMaterial({ map: this.temp, transparent: true, depthTest: true }))\n\n this.inspection.gobal.scene.add(tempPathMesh)\n this.tempPathMesh = tempPathMesh\n\n tempPathMesh.layers.enable(5)\n\n this.temp.repeat.set(curve.getLength() / 500, 2)\n this.tempDemo = use.useframe(() => {\n this.temp.offset.x -= -0.0009\n\n if (this.inspection.gobal.tag === SceneTag['smart-inspection'])\n this.tempPathMesh.visible = true\n else\n this.tempPathMesh.visible = false\n })\n }\n\n private cleanTempPathMesh() {\n if (this.tempPathMesh) {\n this.tempDemo()\n this.tempPathMesh.geometry.dispose()\n this.tempPathMesh.material.dispose();\n (this.tempPathMesh as Mesh).removeFromParent()\n }\n }\n\n private takeOffAnimation() {\n const currentPosition = this.model.position\n const upCurve = new LineCurve3(currentPosition, new Vector3(currentPosition.x, currentPosition.y + 20, currentPosition.z))\n const upControl = utils.moveWithLine(this.model, upCurve, 10, { loop: false, lookat: false })\n\n this.compassInfo.horizontalSpeed = 0\n this.compassInfo.verticalSpeed = 10\n\n upControl.addEventListener('end', () => {\n this.control.contine()\n this.compassInfo.verticalSpeed = 0\n this.compassInfo.horizontalSpeed = 10\n })\n }\n\n gotoTarget(targetPosition: Vector3, targetProgress: number) {\n if (this.isAnimation)\n return\n\n this.isAnimation = true\n\n this.control.stop()\n\n this.compassInfo.verticalSpeed = 0\n this.compassInfo.horizontalSpeed = 0\n\n const rotationMatrix = new Matrix4()\n const targetQuaternion = new Quaternion()\n\n rotationMatrix.lookAt(targetPosition, this.model.position, this.model.up)\n targetQuaternion.setFromRotationMatrix(rotationMatrix)\n\n this.startRotate(targetQuaternion, this.model,\n () => {\n const tempPathMeshtargetPosition = new Vector3(targetPosition.x, 1.1, targetPosition.z)\n this.generateTempPathMesh(this.generateTempPath(new Vector3(this.model.position.x, 1.1, this.model.position.z), tempPathMeshtargetPosition))\n\n const currentPosition = this.model.position\n const upCurve = new LineCurve3(currentPosition, new Vector3(currentPosition.x, currentPosition.y + 50, currentPosition.z))\n const upControl = utils.moveWithLine(this.model, upCurve, 10, { loop: false, lookat: targetPosition })\n\n this.compassInfo.verticalSpeed = 10\n this.compassInfo.horizontalSpeed = 0\n\n // up end\n upControl.addEventListener('end', () => {\n const tempCurve = this.generateTempPath(currentPosition, new Vector3(targetPosition.x, targetPosition.y + 50, targetPosition.z))\n const tempControl = utils.moveWithLine(this.model, tempCurve, 60, { loop: false, lookat: false })\n\n this.compassInfo.verticalSpeed = 0\n this.compassInfo.horizontalSpeed = 60\n\n // temp end\n tempControl.addEventListener('end', () => {\n const lastPosition = this.model.position\n const downCurve = new LineCurve3(lastPosition, new Vector3(lastPosition.x, lastPosition.y - 50, lastPosition.z))\n const downControl = utils.moveWithLine(this.model, downCurve, 10, { loop: false, lookat: false })\n\n this.compassInfo.verticalSpeed = 10\n this.compassInfo.horizontalSpeed = 0\n\n // down end\n downControl.addEventListener('end', () => {\n const rotationMatrix2 = new Matrix4()\n const targetQuaternion2 = new Quaternion()\n\n const targetPosition2 = this.inspection.curve.getPointAt((targetProgress + 0.01) % 1)\n\n rotationMatrix2.lookAt(targetPosition2, this.model.position, this.model.up)\n targetQuaternion2.setFromRotationMatrix(rotationMatrix2)\n\n this.startRotate(targetQuaternion2, this.model, () => {\n setTimeout(() => {\n this.cleanTempPathMesh()\n this.isAnimation = false\n this.control.setProgress(targetProgress)\n this.control.contine()\n\n this.compassInfo.verticalSpeed = 0\n this.compassInfo.horizontalSpeed = 10\n }, 500)\n })\n })\n })\n })\n })\n }\n\n setSpeed(speed: number) {\n if (this.control)\n this.control.setSpeed(speed)\n }\n\n stop() {\n if (this.control)\n this.control.stop()\n }\n\n contineMove() {\n if (!this.control)\n throw new Error('control not init')\n\n if (this.contineCount === 0)\n this.takeOffAnimation()\n\n else\n this.control.contine()\n\n this.contineCount++\n\n this.isStartUp = true\n\n utils.emitter.emit('continue', true)\n\n if (this.inspection.minCamera === this.inspection.gobal.scene.camera)\n utils.emitter.emit('play')\n }\n\n /**\n * todo: now temporarily not implemented\n */\n dispose() { }\n}\n\nexport default InspectionObject"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["AudioListener","AudioLoader","Clock","Color","EdgesGeometry","Euler","Group","LineBasicMaterial","LineCurve3","LineSegments","MathUtils","Matrix4","Mesh","MeshBasicMaterial","MirroredRepeatWrapping","ModelLoader","PlaneGeometry","PositionalAudio","Quaternion","RepeatWrapping","TextureLoader","Vector3","use","utils","SpritePoi","Tween","createFinirMaterial","usePath","MessageType","sendToMessage","EMessageStatus","SceneTag","isCheck","targetProgresspoints","TubeGeometryV2","modelLoader","InspectionObject","inspection","verticalSpeed","horizontalSpeed","height","targetQuaternion","mesh","cb","clock","quaternion","equals","animation","useframe","delta","getDelta","step","rotateTowards","temp","load","wrapS","wrapT","repeat","set","rotation","Math","PI","loadGLTF","glb","div","document","createElement","style","position","img","src","span","innerText","fontFamily","top","left","transform","color","fontSize","fontWeight","appendChild","poi","width","img2","poi2","scale","fly1","scene","getObjectByName","fly2","fly3","fly4","planeGeometry","planeMaterial","map","transparent","plyMap","x","copy","layers","group","name","add","minCamera","clone","z","getSportsProgress","isLock","stop","checkAnimation","compassInfo","y","rotateY","initialMinCameraQuaternion","model","gobal","interactionManager","visible","addEventListener","traverse","child","enable","loadPosAudio","breathinglamp","target","startColor","endColor","breathingSpeed","elapsedTime","getElapsedTime","t","sin","currentColor","lerp","material","handleMouseMove","listener","posAudio","audioLoader","audioBuffer","setBuffer","setVolume","setRefDistance","setLoop","emitter","on","isStartUp","play","removeEventListener","curve","loadModel","control","moveWithLine","groundCurve","getPointAt","setTimeout","sendCompassInfo","groundMaterial","uniforms","u_time","value","mapMaterial","mapAnchorObject","forEach","mapAnchor","uColor","Event","Success","undefined","percentage","setInterval","updateMatrixWorld","worldQuaternion","getWorldQuaternion","worldEuler","setFromQuaternion","rotationY","rotationYInDegrees","round","radToDeg","rotate","abs","degree","distance","getLength","getProgress","Promise","resolve","data","progress","isAnimation","defaultFirstPerspectiveControls","enabled","key","Object","keys","find","p","num","parseFloat","targetMeshId","lookAt","targetMesh","pipeline","realModl","contineMove","currentAnchor","anchorObject","get","currentMapAnchor","numberKey","Number","rotationMatrix","startQuaternion","startCameraQuaternion","targetMeshPosition","up","setFromRotationMatrix","forwardTween","to","onUpdate","obj","slerp","backwardTween","onComplete","finirMesh","finirMaterialV2","type","lineSegments","geometry","subscription","then","start","off","currentPosition","targetPosition","tube","tempPathMesh","depthTest","tempDemo","offset","tag","dispose","removeFromParent","upCurve","upControl","loop","lookat","contine","targetProgress","startRotate","tempPathMeshtargetPosition","generateTempPathMesh","generateTempPath","tempCurve","tempControl","lastPosition","downCurve","downControl","rotationMatrix2","targetQuaternion2","targetPosition2","cleanTempPathMesh","setProgress","speed","setSpeed","Error","contineCount","takeOffAnimation","emit","camera"],"sources":["../../../../src/factory/unit/inspection/InspectionObject.ts"],"sourcesContent":["import type { Camera, Curve, Object3D } from '@anov/3d-core'\nimport { AudioListener, AudioLoader, BoxGeometry, Clock, Color, EdgesGeometry, Euler, Group, LineBasicMaterial, LineCurve3, LineSegments, MathUtils, Matrix4, Mesh, MeshBasicMaterial, MeshStandardMaterial, MirroredRepeatWrapping, ModelLoader, PlaneGeometry, PointLight, PositionalAudio, Quaternion, RepeatWrapping, ShaderChunk, ShaderMaterial, Sprite, SpriteMaterial, TextureLoader, TubeGeometry, Vector3, Vector4, use, utils } from '@anov/3d-core'\nimport type { Css2DPoi } from '@anov/3d-ability'\nimport { SpritePoi, addColorifyPass, createHighSelectedTool } from '@anov/3d-ability'\nimport { Tween } from '@tweenjs/tween.js'\nimport { createFinirMaterial } from '../../utils/finirMaterial'\nimport { usePath } from '../../3d'\nimport { MessageType, sendToMessage } from '../../../utils/messageFn'\nimport { EMessageStatus } from '../../../messageStatus'\nimport { SceneTag } from '../../utils/constant'\nimport { isCheck, targetProgresspoints } from './lineData'\nimport TubeGeometryV2 from './tubeGeometry'\n\nconst modelLoader = new ModelLoader()\n\nclass InspectionObject {\n model\n private inspection\n private control\n private isLock = false\n private isAnimation = false\n walkCurveMesh\n tempPathMesh\n css2d: Css2DPoi\n temp\n tempDemo\n isStartUp = false\n initialMinCameraQuaternion\n contineCount = 0\n\n compassInfo = {\n verticalSpeed: 0,\n horizontalSpeed: 10,\n height: 0,\n }\n\n constructor(inspection) {\n this.inspection = inspection\n\n const temp = new TextureLoader().load(`${usePath}test07.png`)\n temp.wrapS = RepeatWrapping\n temp.wrapT = MirroredRepeatWrapping\n temp.repeat.set(1, 2)\n temp.rotation = Math.PI\n\n this.temp = temp\n }\n\n private async loadModel() {\n const glb = await (await modelLoader.loadGLTF(`${usePath}car.glb`, false, true, './draco/'))\n\n const div = document.createElement('div')\n div.style.position = 'relative'\n\n const img = document.createElement('img')\n img.src = `${usePath}aerialVehicle02.png`\n\n const span = document.createElement('span')\n span.innerText = '巡检无人机'\n span.style.fontFamily = 'YouSheBiaoTiHei3D'\n span.style.position = 'absolute'\n span.style.top = '8px'\n span.style.left = '45%'\n span.style.transform = 'translateX(-30%)'\n\n span.style.color = 'white'\n span.style.fontSize = '20px'\n span.style.fontWeight = 'bold'\n\n div.appendChild(img)\n div.appendChild(span)\n\n const poi = new SpritePoi(div, {\n width: 100 * 2,\n height: 40 * 2,\n })\n\n const img2 = document.createElement('img')\n img2.src = `${usePath}aerialVehicle01.png`\n\n const poi2 = new SpritePoi(img2, {\n width: 400 * 2,\n height: 160 * 2,\n })\n\n poi.scale.set(80, 30, 1)\n poi2.scale.set(400, 160, 1)\n\n const fly1 = glb.scene.getObjectByName('fly1')\n const fly2 = glb.scene.getObjectByName('fly1_1')\n const fly3 = glb.scene.getObjectByName('fly1_2')\n const fly4 = glb.scene.getObjectByName('fly1_3')\n\n const planeGeometry = new PlaneGeometry(50, 50)\n const planeMaterial = new MeshBasicMaterial({ map: new TextureLoader().load(`${usePath}fly.png`), transparent: true })\n const plyMap = new Mesh(planeGeometry, planeMaterial)\n\n plyMap.rotation.x = -Math.PI / 2\n plyMap.position.copy(glb.scene.position)\n plyMap.layers.set(5)\n\n const group = new Group()\n glb.scene.name = 'ply'\n group.add(glb.scene)\n group.add(poi)\n group.add(plyMap)\n group.add(this.inspection.minCamera)\n\n use.useframe(() => {\n poi.position.copy(glb.scene.position.clone().add(new Vector3(0, 10, 0)))\n poi2.position.copy(glb.scene.position.clone().add(new Vector3(0, 10, 0)))\n\n fly1.rotation.z += 1.3\n fly2.rotation.z += 1.3\n fly3.rotation.z += 1.3\n fly4.rotation.z += 1.3\n\n if (isCheck(this.getSportsProgress)\n && !this.isLock) {\n this.stop()\n this.checkAnimation(this.getSportsProgress)\n this.compassInfo.horizontalSpeed = 0\n this.compassInfo.verticalSpeed = 0\n }\n })\n\n this.inspection.minCamera.position.copy(glb.scene.position)\n this.inspection.minCamera.position.z -= 18\n this.inspection.minCamera.position.y += 4\n this.inspection.minCamera.rotateY(Math.PI)\n this.initialMinCameraQuaternion = this.inspection.minCamera.quaternion.clone()\n\n this.model = group\n\n this.inspection.gobal.interactionManager.add(poi)\n this.inspection.gobal.interactionManager.add(poi2)\n\n poi2.visible = false\n\n poi.addEventListener('click', () => {\n group.add(poi2)\n poi2.visible = true\n poi.visible = false\n })\n\n poi2.addEventListener('click', () => {\n group.add(poi2)\n poi.visible = true\n poi2.visible = false\n })\n\n glb.scene.scale.set(5, 5, 5)\n glb.scene.traverse((child) => {\n child.layers.enable(5)\n })\n\n this.inspection.gobal.scene.add(this.model)\n\n this.loadPosAudio()\n this.breathinglamp(this.model)\n }\n\n private breathinglamp(model: Group) {\n const target = model.getObjectByName('网格004_5')\n\n const startColor = new Color('#999')\n const endColor = new Color('#2df3ee')\n\n const clock = new Clock()\n const breathingSpeed = 1\n\n use.useframe(() => {\n const elapsedTime = clock.getElapsedTime()\n const t = (Math.sin(elapsedTime * Math.PI * breathingSpeed) + 1) / 2\n const currentColor = startColor.clone().lerp(endColor, t)\n\n // @ts-ignore\n target.material.color.set(currentColor)\n })\n }\n\n private loadPosAudio() {\n const handleMouseMove = () => {\n const listener = new AudioListener()\n this.inspection.minCamera.add(listener)\n\n const posAudio = new PositionalAudio(listener)\n this.model.add(posAudio)\n\n const audioLoader = new AudioLoader()\n\n audioLoader.load(`${usePath}demo.mp3`, (audioBuffer) => {\n posAudio.setBuffer(audioBuffer)\n posAudio.setVolume(0.8)\n posAudio.setRefDistance(200)\n posAudio.setLoop(true)\n })\n\n utils.emitter.on('play', () => {\n this.isStartUp && posAudio.play()\n })\n\n utils.emitter.on('stop', () => {\n posAudio.stop()\n })\n\n document.removeEventListener('mousemove', handleMouseMove)\n }\n\n document.addEventListener('mousemove', handleMouseMove)\n }\n\n async startMove(curve) {\n if (!this.model)\n await this.loadModel()\n\n this.control = utils.moveWithLine(this.model, curve, 10, {\n groundCurve: this.inspection.groundCurve,\n })\n\n this.model.position.copy(curve.getPointAt(0))\n\n setTimeout(() => {\n this.stop();\n ((this.model) as Object3D).position.y = (this.model.position.y - 20)\n }, 20)\n\n this.sendCompassInfo()\n\n use.useframe(() => {\n this.inspection.groundMaterial.uniforms.u_time.value = this.getSportsProgress - 0.01\n this.inspection.mapMaterial.uniforms.u_time.value = this.getSportsProgress - 0.01\n\n if (this.getSportsProgress > 0 && this.getSportsProgress < 0.01) {\n this.inspection.mapAnchorObject.forEach((mapAnchor) => {\n mapAnchor.material.uniforms.uColor.value.set(1, 1, 1, 1)\n })\n }\n\n sendToMessage(MessageType.Event, 'onInspectProgress', EMessageStatus.Success, undefined, {\n percentage: this.getSportsProgress * 1000,\n })\n })\n }\n\n /**\n * send compass info\n * not use useframe, because useframe will be lose some frame\n */\n private sendCompassInfo() {\n setInterval(() => {\n const mesh = this.model\n mesh.updateMatrixWorld(true)\n\n const worldQuaternion = new Quaternion()\n mesh.getWorldQuaternion(worldQuaternion)\n\n const worldEuler = new Euler().setFromQuaternion(worldQuaternion, 'YXZ')\n const rotationY = worldEuler.y\n const rotationYInDegrees = Math.round(MathUtils.radToDeg(rotationY))\n\n sendToMessage(MessageType.Event, 'onCompassInfo', EMessageStatus.Success, undefined, {\n rotate: rotationYInDegrees >= 0 ? 180 - rotationYInDegrees : -180 + Math.abs(rotationYInDegrees),\n degree: rotationYInDegrees >= 0 ? 180 - rotationYInDegrees : -180 + Math.abs(rotationYInDegrees) + 360,\n distance: this.getSportsProgress * this.inspection.curve.getLength(),\n verticalSpeed: this.compassInfo.verticalSpeed,\n horizontalSpeed: this.compassInfo.horizontalSpeed * 3.6,\n height: (this.model as Object3D).position.y,\n })\n }, 100)\n }\n\n get getSportsProgress() {\n if (!this.control)\n return 0\n\n return this.control.getProgress()\n }\n\n subscription() {\n return new Promise((resolve) => {\n utils.emitter.on('continue', (data) => {\n resolve(data)\n })\n })\n }\n\n private checkAnimation(progress: number) {\n this.isLock = true\n this.isAnimation = true\n this.inspection.defaultFirstPerspectiveControls.enabled = false\n\n const key = Object.keys(targetProgresspoints).find((p) => {\n const num = parseFloat(p)\n if (progress >= num && progress < num + 0.01)\n return true\n })\n\n const targetMeshId = targetProgresspoints[key].lookAt\n\n let targetMesh: Group | null = null\n\n if (targetMeshId === 'GY_GD_guandaofamen_5')\n targetMesh = this.inspection.gobal.pipeline.getObjectByName(targetMeshId) as Group\n\n else\n targetMesh = this.inspection.gobal.realModl.getObjectByName(targetMeshId) as Group\n\n if (!targetMesh) {\n this.contineMove()\n this.isAnimation = false\n setTimeout(() => {\n this.isLock = false\n }, 500)\n return\n }\n\n const currentAnchor = this.inspection.anchorObject.get(targetProgresspoints[key].name)\n const currentMapAnchor = this.inspection.mapAnchorObject\n\n currentAnchor.traverse((child) => {\n if (child.name === 'cylinder')\n child.material = new MeshBasicMaterial({ color: new Color('yellow') })\n else\n child.material = new MeshBasicMaterial({ color: new Color('#facb2b') })\n });\n\n (currentMapAnchor as Map<string, Mesh>).forEach((mapAnchor, key) => {\n const numberKey = Number(key)\n\n // @ts-ignore\n this.getSportsProgress > numberKey && mapAnchor.material.uniforms.uColor.value.set(1, 1, 0, 0.8)\n\n // @ts-ignore\n this.getSportsProgress < numberKey && mapAnchor.material.uniforms.uColor.value.set(1, 1, 1, 1)\n })\n\n setTimeout(() => {\n const rotationMatrix = new Matrix4()\n const targetQuaternion = new Quaternion()\n const startQuaternion = this.model.quaternion.clone()\n const startCameraQuaternion = this.inspection.minCamera.quaternion.clone()\n\n const targetMeshPosition = targetMesh.position.clone()\n targetMeshPosition.y = targetMeshPosition.y + ((Number(key) === 0.048 || Number(key) === 0.682 || Number(key) === 0.400) ? 20 : 0)\n\n rotationMatrix.lookAt(targetMeshPosition, this.model.position, this.model.up)\n targetQuaternion.setFromRotationMatrix(rotationMatrix)\n\n const forwardTween = new Tween({ t: 0 })\n .to({ t: 1 }, 2000)\n .onUpdate((obj) => {\n this.model.quaternion.copy(startQuaternion).slerp(targetQuaternion, obj.t)\n this.inspection.minCamera.quaternion.copy(startCameraQuaternion).slerp(this.initialMinCameraQuaternion, obj.t)\n })\n\n const backwardTween = new Tween({ t: 1 })\n .to({ t: 0 }, 2000)\n .onUpdate((obj) => {\n this.model.quaternion.copy(startQuaternion).slerp(targetQuaternion, obj.t)\n })\n\n forwardTween.onComplete(() => {\n let finirMesh: Group | null = null\n\n sendToMessage(MessageType.Event, 'onReachTarget', EMessageStatus.Success, undefined, {\n target: targetProgresspoints[key].name,\n })\n\n if (Number(key) === 0.048 || Number(key) === 0.682 || Number(key) === 0.400)\n (this.inspection.minCamera as Camera).layers.set(2)\n\n if (Number(key) === 0.155 || Number(key) === 0.247) {\n (this.inspection.minCamera as Camera).layers.enable(3)\n // @ts-ignore\n if (!targetMesh.finirMesh) {\n finirMesh = targetMesh.clone() as any as Group\n\n const finirMaterialV2 = createFinirMaterial('#08A6E3', 4.3)\n\n finirMesh.traverse((child) => {\n child.layers.set(3)\n\n if (child.type === 'Mesh') {\n // @ts-ignore\n child.material = finirMaterialV2\n\n // @ts-ignore\n const lineSegments = new LineSegments(new EdgesGeometry(child.geometry as any), new LineBasicMaterial({ color: '#08A6E3' }))\n\n lineSegments.layers.set(3)\n finirMesh.add(lineSegments)\n }\n })\n\n // @ts-ignore\n targetMesh.finirMesh = finirMesh\n\n this.inspection.gobal.scene.add(finirMesh)\n }\n else {\n // @ts-ignore\n finirMesh = targetMesh.finirMesh\n\n finirMesh.visible = true\n }\n }\n\n // 异常点\n if (Number(key) === 0.155 || Number(key) === 0.247) {\n this.subscription().then((data) => {\n if (data) {\n finirMesh.visible = false\n backwardTween.start()\n\n utils.emitter.off('continue')\n }\n })\n }\n else {\n setTimeout(() => {\n if (Number(key) === 0.048 || Number(key) === 0.682 || Number(key) === 0.400)\n (this.inspection.minCamera as Camera).layers.set(0)\n\n // if (Number(key) === 0.40)\n // finirMesh.visible = false\n\n backwardTween.start()\n }, 6000)\n }\n })\n\n setTimeout(() => {\n forwardTween.start()\n }, 1000)\n\n backwardTween.onComplete(() => {\n this.isAnimation = false\n this.contineMove()\n\n this.compassInfo.verticalSpeed = 0\n this.compassInfo.horizontalSpeed = 10\n\n currentAnchor.traverse((child) => {\n if (child.name === 'cylinder')\n child.material = new MeshBasicMaterial({ color: new Color('#cdccca') })\n else\n child.material = new MeshBasicMaterial({ color: new Color('#fff') })\n })\n\n setTimeout(() => {\n this.inspection.defaultFirstPerspectiveControls.enabled = true\n this.isLock = false\n }, 500)\n })\n }, 1000)\n }\n\n generateTempPath(currentPosition: Vector3, targetPosition: Vector3) {\n return new LineCurve3(currentPosition, targetPosition)\n }\n\n private startRotate = (targetQuaternion: Quaternion, mesh: Group, cb: () => void) => {\n const clock = new Clock()\n\n if (mesh.quaternion.equals(targetQuaternion))\n return cb()\n\n const animation = use.useframe(() => {\n const delta = clock.getDelta()\n if (!mesh.quaternion.equals(targetQuaternion)) {\n const step = 1 * delta\n mesh.quaternion.rotateTowards(targetQuaternion, step)\n }\n else {\n animation()\n cb()\n }\n },\n )\n }\n\n private generateTempPathMesh(curve: Curve<Vector3>) {\n // @ts-ignore\n const tube = new TubeGeometryV2(curve, 100, 5, 2, false)\n const tempPathMesh = new Mesh(tube, new MeshBasicMaterial({ map: this.temp, transparent: true, depthTest: true }))\n\n this.inspection.gobal.scene.add(tempPathMesh)\n this.tempPathMesh = tempPathMesh\n\n tempPathMesh.layers.enable(5)\n\n this.temp.repeat.set(curve.getLength() / 500, 2)\n this.tempDemo = use.useframe(() => {\n this.temp.offset.x -= -0.0009\n\n if (this.inspection.gobal.tag === SceneTag['smart-inspection'])\n this.tempPathMesh.visible = true\n else\n this.tempPathMesh.visible = false\n })\n }\n\n private cleanTempPathMesh() {\n if (this.tempPathMesh) {\n this.tempDemo()\n this.tempPathMesh.geometry.dispose()\n this.tempPathMesh.material.dispose();\n (this.tempPathMesh as Mesh).removeFromParent()\n }\n }\n\n private takeOffAnimation() {\n const currentPosition = this.model.position\n const upCurve = new LineCurve3(currentPosition, new Vector3(currentPosition.x, currentPosition.y + 20, currentPosition.z))\n const upControl = utils.moveWithLine(this.model, upCurve, 10, { loop: false, lookat: false })\n\n this.compassInfo.horizontalSpeed = 0\n this.compassInfo.verticalSpeed = 10\n\n upControl.addEventListener('end', () => {\n this.control.contine()\n this.compassInfo.verticalSpeed = 0\n this.compassInfo.horizontalSpeed = 10\n })\n }\n\n gotoTarget(targetPosition: Vector3, targetProgress: number) {\n if (this.isAnimation)\n return\n\n this.isAnimation = true\n\n this.control.stop()\n\n this.compassInfo.verticalSpeed = 0\n this.compassInfo.horizontalSpeed = 0\n\n const rotationMatrix = new Matrix4()\n const targetQuaternion = new Quaternion()\n\n rotationMatrix.lookAt(targetPosition, this.model.position, this.model.up)\n targetQuaternion.setFromRotationMatrix(rotationMatrix)\n\n this.startRotate(targetQuaternion, this.model,\n () => {\n const tempPathMeshtargetPosition = new Vector3(targetPosition.x, 1.1, targetPosition.z)\n this.generateTempPathMesh(this.generateTempPath(new Vector3(this.model.position.x, 1.1, this.model.position.z), tempPathMeshtargetPosition))\n\n const currentPosition = this.model.position\n const upCurve = new LineCurve3(currentPosition, new Vector3(currentPosition.x, currentPosition.y + 50, currentPosition.z))\n const upControl = utils.moveWithLine(this.model, upCurve, 10, { loop: false, lookat: targetPosition })\n\n this.compassInfo.verticalSpeed = 10\n this.compassInfo.horizontalSpeed = 0\n\n // up end\n upControl.addEventListener('end', () => {\n const tempCurve = this.generateTempPath(currentPosition, new Vector3(targetPosition.x, targetPosition.y + 50, targetPosition.z))\n const tempControl = utils.moveWithLine(this.model, tempCurve, 60, { loop: false, lookat: false })\n\n this.compassInfo.verticalSpeed = 0\n this.compassInfo.horizontalSpeed = 60\n\n // temp end\n tempControl.addEventListener('end', () => {\n const lastPosition = this.model.position\n const downCurve = new LineCurve3(lastPosition, new Vector3(lastPosition.x, lastPosition.y - 50, lastPosition.z))\n const downControl = utils.moveWithLine(this.model, downCurve, 10, { loop: false, lookat: false })\n\n this.compassInfo.verticalSpeed = 10\n this.compassInfo.horizontalSpeed = 0\n\n // down end\n downControl.addEventListener('end', () => {\n const rotationMatrix2 = new Matrix4()\n const targetQuaternion2 = new Quaternion()\n\n const targetPosition2 = this.inspection.curve.getPointAt((targetProgress + 0.01) % 1)\n\n rotationMatrix2.lookAt(targetPosition2, this.model.position, this.model.up)\n targetQuaternion2.setFromRotationMatrix(rotationMatrix2)\n\n this.startRotate(targetQuaternion2, this.model, () => {\n setTimeout(() => {\n this.cleanTempPathMesh()\n this.isAnimation = false\n this.control.setProgress(targetProgress)\n this.control.contine()\n\n this.compassInfo.verticalSpeed = 0\n this.compassInfo.horizontalSpeed = 10\n }, 500)\n })\n })\n })\n })\n })\n }\n\n setSpeed(speed: number) {\n if (this.control)\n this.control.setSpeed(speed)\n }\n\n stop() {\n if (this.control)\n this.control.stop()\n }\n\n contineMove() {\n if (!this.control)\n throw new Error('control not init')\n\n if (this.contineCount === 0)\n this.takeOffAnimation()\n\n else\n this.control.contine()\n\n this.contineCount++\n\n this.isStartUp = true\n\n utils.emitter.emit('continue', true)\n\n if (this.inspection.minCamera === this.inspection.gobal.scene.camera)\n utils.emitter.emit('play')\n }\n\n /**\n * todo: now temporarily not implemented\n */\n dispose() { }\n}\n\nexport default InspectionObject"],"mappings":"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"}
|
package/dist/factory/unit/poi.js
CHANGED
|
@@ -48,7 +48,7 @@ var PoiManage = /*#__PURE__*/function () {
|
|
|
48
48
|
case 0:
|
|
49
49
|
region = regionMap[key];
|
|
50
50
|
wordLength = region.title.length;
|
|
51
|
-
ratio = Math.max(wordLength * (wordLength > 6 ?
|
|
51
|
+
ratio = Math.max(wordLength * (wordLength > 6 ? 48 : 50), 180) / _this.poiHeight;
|
|
52
52
|
option = {
|
|
53
53
|
animation: [{
|
|
54
54
|
type: EAnimationType.grow,
|
|
@@ -61,7 +61,7 @@ var PoiManage = /*#__PURE__*/function () {
|
|
|
61
61
|
sprite = new SpritePoi(_this.getDom(region), option);
|
|
62
62
|
sprite.position.copy(new Vector3().fromArray(region.poi.position));
|
|
63
63
|
_this.scene.add(sprite);
|
|
64
|
-
_this.updateScale(sprite, ratio + 0.3, ratio + 0.
|
|
64
|
+
_this.updateScale(sprite, ratio + 0.3, ratio + 0.4);
|
|
65
65
|
_this.poiMesh.set(region.poi.id, sprite);
|
|
66
66
|
|
|
67
67
|
// @ts-ignore
|
|
@@ -106,19 +106,12 @@ var PoiManage = /*#__PURE__*/function () {
|
|
|
106
106
|
wall.visible = true;
|
|
107
107
|
// 隐藏当前POI点
|
|
108
108
|
sprite.visible = false;
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
// walllMaterial.uniforms.grow.value = 0
|
|
116
|
-
|
|
117
|
-
// wallGrowFrame = use.useframe(() => {
|
|
118
|
-
// walllMaterial.uniforms.grow.value += 3
|
|
119
|
-
// })
|
|
120
|
-
|
|
121
|
-
_this.addDialogPanel(region, event.point);
|
|
109
|
+
_this.gobal.cameraUtil.focus({
|
|
110
|
+
target: region.area,
|
|
111
|
+
pitch: 0
|
|
112
|
+
}).then(function () {
|
|
113
|
+
_this.addDialogPanel(region, event.point);
|
|
114
|
+
});
|
|
122
115
|
});
|
|
123
116
|
_this.poiEventListener.add(unClick);
|
|
124
117
|
case 18:
|
|
@@ -137,10 +130,6 @@ var PoiManage = /*#__PURE__*/function () {
|
|
|
137
130
|
});
|
|
138
131
|
});
|
|
139
132
|
this.poiEventListener.add(unFrame);
|
|
140
|
-
// // 控制POI始终是一个大小
|
|
141
|
-
// const orbitControls = use.useScene().orbitControls
|
|
142
|
-
// orbitControls?.addEventListener('change', fn)
|
|
143
|
-
// this.poiEventListener.add(() => orbitControls?.removeEventListener('change', fn))
|
|
144
133
|
case 3:
|
|
145
134
|
case "end":
|
|
146
135
|
return _context2.stop();
|
|
@@ -196,19 +185,19 @@ var PoiManage = /*#__PURE__*/function () {
|
|
|
196
185
|
height: "".concat(this.poiHeight, "px"),
|
|
197
186
|
minWidth: '180px',
|
|
198
187
|
width: "".concat(wordLength * (wordLength > 6 ? 34 : 40), "px"),
|
|
199
|
-
padding: '
|
|
188
|
+
padding: '8px 0 0 25px',
|
|
200
189
|
position: 'relative'
|
|
201
190
|
});
|
|
202
191
|
var img = document.createElement('img');
|
|
203
192
|
img.src = "".concat(usePath).concat(data.title, "\u56FE\u6807.png");
|
|
204
193
|
img.style.position = 'absolute';
|
|
205
|
-
img.style.left = '
|
|
206
|
-
img.style.top = '
|
|
194
|
+
img.style.left = '18px';
|
|
195
|
+
img.style.top = '13px';
|
|
207
196
|
img.style.width = '30px';
|
|
208
197
|
img.style.height = '30px';
|
|
209
198
|
dom.appendChild(img);
|
|
210
199
|
var label = document.createElement('label');
|
|
211
|
-
label.style.marginLeft = '
|
|
200
|
+
label.style.marginLeft = '16px';
|
|
212
201
|
label.innerText = data.title;
|
|
213
202
|
dom.appendChild(label);
|
|
214
203
|
return dom;
|
|
@@ -269,7 +258,7 @@ var PoiManage = /*#__PURE__*/function () {
|
|
|
269
258
|
duration: 0.02
|
|
270
259
|
}]
|
|
271
260
|
});
|
|
272
|
-
this.dialogPoi.position.copy(position.clone().add(new Vector3(
|
|
261
|
+
this.dialogPoi.position.copy(position.clone().add(new Vector3(10, 0, 0)));
|
|
273
262
|
setTimeout(function () {
|
|
274
263
|
return _this3.scene.add(_this3.dialogPoi);
|
|
275
264
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Vector3","use","utils","Css2DPoi","EAnimationType","SpritePoi","usePath","regionMap","SceneTag","walllMaterial","PoiManage","gobal","Map","Set","scene","wallManage","wall","interactionManager","storeManagement","get","Object","keys","forEach","key","region","wordLength","title","length","ratio","Math","max","poiHeight","option","animation","type","grow","duration","fadeIn","sprite","getDom","position","copy","fromArray","poi","add","updateScale","poiMesh","set","id","target","regionPlane","planeMesh","changeWallState","show","dialogPoi","visible","wallMesh","uniforms","value","wallGrowFrame","useframe","addEventListener","tag","overview","unClick","event","reset","addDialogPanel","point","poiEventListener","unFrame","hratio","minDistance","maxDistance","useScene","camera","distance","distanceTo","clampedDistance","min","scaleValue","scale","x","y","data","dom","document","createElement","assign","style","fontSize","backgroundImage","backgroundSize","backgroundRepeat","display","justifyContent","alignItems","fontFamily","textAlign","color","pointerEvents","cursor","height","minWidth","width","padding","img","src","left","top","appendChild","label","marginLeft","innerText","remove","removeFromParent","f","clear","content","print","clone","setTimeout"],"sources":["../../../src/factory/unit/poi.ts"],"sourcesContent":["import type { InteractionManager, Object3D, Scene } from '@anov/3d-core'\nimport { Mesh, Vector3, use, utils } from '@anov/3d-core'\nimport { Css2DPoi, EAnimationType, SpritePoi } from '@anov/3d-ability'\nimport type Factory3D from '../3d'\nimport { usePath } from '../3d'\nimport { regionMap } from '../regionData'\nimport { SceneTag } from '../utils/constant'\nimport type WallManage from './wall'\nimport { walllMaterial } from './wall'\n\nclass PoiManage {\n private gobal: Factory3D\n private scene: Scene\n private dialogPoi: Object3D\n readonly poiMesh: Map<string, Object3D> = new Map()\n readonly poiEventListener: Set<Function> = new Set()\n private wallManage: WallManage\n private interactionManager\n private poiWidth: number\n private poiHeight = 262\n\n constructor(gobal) {\n this.gobal = gobal\n this.scene = gobal.scene.scene\n this.wallManage = gobal.wall\n this.interactionManager = utils.storeManagement.get<InteractionManager>('interactionManager')\n }\n\n async generatePoi() {\n let wordLength, ratio\n Object.keys(regionMap).forEach(async (key: string) => {\n const region = regionMap[key]\n wordLength = region.title.length\n ratio = (Math.max(wordLength * (wordLength > 6 ? 34 : 40), 180) / this.poiHeight)\n const option = {\n animation: [{\n type: EAnimationType.grow,\n duration: 1,\n }, {\n type: EAnimationType.fadeIn,\n duration: 0.2,\n }],\n }\n const sprite = new SpritePoi(this.getDom(region), option)\n sprite.position.copy(new Vector3().fromArray(region.poi.position))\n this.scene.add(sprite)\n this.updateScale(sprite, ratio + 0.3, ratio + 0.1)\n this.poiMesh.set(region.poi.id, sprite)\n\n // @ts-ignore\n const target = this.gobal.regionPlane.planeMesh.get(region.id)\n\n // 绑定事件\n this.interactionManager.add(sprite)\n const changeWallState = (show) => {\n if (this.dialogPoi?.visible)\n return\n // 光墙\n const wall = this.wallManage.wallMesh.get(region.id)\n wall.visible = show\n walllMaterial.uniforms.grow.value = 0\n\n if (show) {\n let wallGrowFrame\n\n if (wallGrowFrame)\n wallGrowFrame()\n\n wallGrowFrame = use.useframe(() => {\n walllMaterial.uniforms.grow.value += 3\n\n if (walllMaterial.uniforms.grow.value > 50)\n wallGrowFrame()\n })\n }\n }\n\n target.addEventListener('mouseover', () => {\n if (!sprite.visible)\n return\n if (this.gobal.tag === SceneTag.overview)\n changeWallState(true)\n })\n\n sprite.addEventListener('mouseover', () => {\n if (!sprite.visible)\n return\n changeWallState(true)\n })\n\n target.addEventListener('mouseout', () => {\n changeWallState(false)\n })\n\n sprite.addEventListener('mouseout', () => {\n if (this.gobal.tag === SceneTag.overview)\n changeWallState(false)\n })\n\n const unClick = sprite.addEventListener('click', (event) => {\n if (!sprite.visible)\n return\n this.reset()\n\n // 光墙\n const wall = this.wallManage.wallMesh.get(region.id)\n wall.visible = true\n // 隐藏当前POI点\n sprite.visible = false\n\n // let wallGrowFrame\n\n // if (wallGrowFrame)\n // wallGrowFrame()\n\n // walllMaterial.uniforms.grow.value = 0\n\n // wallGrowFrame = use.useframe(() => {\n // walllMaterial.uniforms.grow.value += 3\n // })\n\n this.addDialogPanel(region, event.point)\n }) as Function\n this.poiEventListener.add(unClick)\n })\n\n const unFrame = use.useframe(() => {\n this.poiMesh.forEach((poi: SpritePoi) => {\n this.updateScale(poi)\n })\n })\n this.poiEventListener.add(unFrame)\n // // 控制POI始终是一个大小\n // const orbitControls = use.useScene().orbitControls\n // orbitControls?.addEventListener('change', fn)\n // this.poiEventListener.add(() => orbitControls?.removeEventListener('change', fn))\n }\n\n /// <summary>\n /// 按照距离缩放,距离越远,缩放越大\n /// </summary>\n updateScale(poi: SpritePoi, ratio = 0, hratio) {\n // 距离限制范围的值,用于计算缩放比例\n const minDistance = 0.1\n const maxDistance = 1000000\n const { camera } = use.useScene()\n\n // 计算相机和物体之间的距离\n const distance = camera.position?.distanceTo(poi.position) || 0.1\n\n const clampedDistance = Math.max(minDistance, Math.min(maxDistance, distance))\n\n const scaleValue = clampedDistance * 0.12\n if (!ratio && poi.scale)\n ratio = poi.scale.x / poi.scale.y\n\n // 按照缩放系数和距离进行缩放,缩放系数应该约定好一个固定值\n poi.scale.copy(new Vector3(scaleValue * ratio * 0.8, scaleValue * hratio * 0.8 || scaleValue * 0.8, 1))\n }\n\n getDom(data) {\n const dom = document.createElement('div')\n const wordLength = data.title.length\n Object.assign(dom.style, {\n fontSize: '26px',\n backgroundImage: `url(${usePath}poi.png)`,\n backgroundSize: '100% 100%',\n backgroundRepeat: 'no-repeat',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'flex-start',\n fontFamily: 'YouSheBiaoTiHei3D',\n textAlign: 'center',\n color: '#fff',\n pointerEvents: 'auto',\n cursor: 'pointer',\n height: `${this.poiHeight}px`,\n minWidth: '180px',\n width: `${wordLength * (wordLength > 6 ? 34 : 40)}px`,\n padding: '12px 0 0 25px',\n position: 'relative',\n })\n const img = document.createElement('img')\n img.src = `${usePath}${data.title}图标.png`\n img.style.position = 'absolute'\n img.style.left = '20px'\n img.style.top = '15px'\n img.style.width = '30px'\n img.style.height = '30px'\n dom.appendChild(img)\n\n const label = document.createElement('label')\n label.style.marginLeft = '10px'\n label.innerText = data.title\n dom.appendChild(label)\n return dom\n }\n\n remove() {\n // 控制POI点的隐藏、显示\n this.poiMesh.forEach((poi) => {\n this.interactionManager.remove(poi)\n poi.removeFromParent()\n poi.remove()\n })\n // 取消事件监听\n this.poiEventListener.forEach((f) => {\n f()\n })\n this.poiEventListener.clear()\n // 移除面板\n if (this.dialogPoi)\n this.dialogPoi.removeFromParent()\n this.poiMesh.clear()\n }\n\n reset() {\n // 控制POI点的隐藏、显示\n // 控制POI点的隐藏、显示\n this.poiMesh.forEach((poi) => {\n poi.visible = true\n })\n // 移除面板\n if (this.dialogPoi)\n this.dialogPoi.removeFromParent()\n // 控制光墙的隐藏、显示\n this.wallManage?.wallMesh.forEach((wall) => {\n wall.visible = false\n })\n }\n\n private addDialogPanel(data, position) {\n // 添加面板\n // , {\n // type: EAnimationType.fadeIn,\n // duration: 0.3,\n // }\n this.dialogPoi = new Css2DPoi({ title: data.title, content: data.poi.content }, {\n animation: [{\n type: EAnimationType.grow,\n duration: 1,\n }, {\n type: EAnimationType.print,\n duration: 0.02,\n }],\n })\n this.dialogPoi.position.copy(position.clone().add(new Vector3(-30, 30, 0)))\n setTimeout(() => this.scene.add(this.dialogPoi))\n\n this.interactionManager.add(this.dialogPoi)\n this.dialogPoi.addEventListener('click', () => {\n this.dialogPoi.remove()\n this.dialogPoi.removeFromParent()\n this.dialogPoi = null\n this.reset()\n })\n }\n}\n\nexport default PoiManage"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["Vector3","use","utils","Css2DPoi","EAnimationType","SpritePoi","usePath","regionMap","SceneTag","walllMaterial","PoiManage","gobal","Map","Set","scene","wallManage","wall","interactionManager","storeManagement","get","Object","keys","forEach","key","region","wordLength","title","length","ratio","Math","max","poiHeight","option","animation","type","grow","duration","fadeIn","sprite","getDom","position","copy","fromArray","poi","add","updateScale","poiMesh","set","id","target","regionPlane","planeMesh","changeWallState","show","dialogPoi","visible","wallMesh","uniforms","value","wallGrowFrame","useframe","addEventListener","tag","overview","unClick","event","reset","cameraUtil","focus","area","pitch","then","addDialogPanel","point","poiEventListener","unFrame","hratio","minDistance","maxDistance","useScene","camera","distance","distanceTo","clampedDistance","min","scaleValue","scale","x","y","data","dom","document","createElement","assign","style","fontSize","backgroundImage","backgroundSize","backgroundRepeat","display","justifyContent","alignItems","fontFamily","textAlign","color","pointerEvents","cursor","height","minWidth","width","padding","img","src","left","top","appendChild","label","marginLeft","innerText","remove","removeFromParent","f","clear","content","print","clone","setTimeout"],"sources":["../../../src/factory/unit/poi.ts"],"sourcesContent":["import type { InteractionManager, Object3D, Scene } from '@anov/3d-core'\nimport { Mesh, Vector3, use, utils } from '@anov/3d-core'\nimport { Css2DPoi, EAnimationType, SpritePoi } from '@anov/3d-ability'\nimport type Factory3D from '../3d'\nimport { usePath } from '../3d'\nimport { regionMap } from '../regionData'\nimport { SceneTag } from '../utils/constant'\nimport type WallManage from './wall'\nimport { walllMaterial } from './wall'\n\nclass PoiManage {\n private gobal: Factory3D\n private scene: Scene\n private dialogPoi: Object3D\n readonly poiMesh: Map<string, Object3D> = new Map()\n readonly poiEventListener: Set<Function> = new Set()\n private wallManage: WallManage\n private interactionManager\n private poiWidth: number\n private poiHeight = 262\n\n constructor(gobal) {\n this.gobal = gobal\n this.scene = gobal.scene.scene\n this.wallManage = gobal.wall\n this.interactionManager = utils.storeManagement.get<InteractionManager>('interactionManager')\n }\n\n async generatePoi() {\n let wordLength, ratio\n Object.keys(regionMap).forEach(async (key: string) => {\n const region = regionMap[key]\n wordLength = region.title.length\n ratio = (Math.max(wordLength * (wordLength > 6 ? 48 : 50), 180) / this.poiHeight)\n const option = {\n animation: [{\n type: EAnimationType.grow,\n duration: 1,\n }, {\n type: EAnimationType.fadeIn,\n duration: 0.2,\n }],\n }\n const sprite = new SpritePoi(this.getDom(region), option)\n sprite.position.copy(new Vector3().fromArray(region.poi.position))\n this.scene.add(sprite)\n this.updateScale(sprite, ratio + 0.3, ratio + 0.4)\n this.poiMesh.set(region.poi.id, sprite)\n\n // @ts-ignore\n const target = this.gobal.regionPlane.planeMesh.get(region.id)\n\n // 绑定事件\n this.interactionManager.add(sprite)\n const changeWallState = (show) => {\n if (this.dialogPoi?.visible)\n return\n // 光墙\n const wall = this.wallManage.wallMesh.get(region.id)\n wall.visible = show\n walllMaterial.uniforms.grow.value = 0\n\n if (show) {\n let wallGrowFrame\n\n if (wallGrowFrame)\n wallGrowFrame()\n\n wallGrowFrame = use.useframe(() => {\n walllMaterial.uniforms.grow.value += 3\n\n if (walllMaterial.uniforms.grow.value > 50)\n wallGrowFrame()\n })\n }\n }\n\n target.addEventListener('mouseover', () => {\n if (!sprite.visible)\n return\n if (this.gobal.tag === SceneTag.overview)\n changeWallState(true)\n })\n\n sprite.addEventListener('mouseover', () => {\n if (!sprite.visible)\n return\n changeWallState(true)\n })\n\n target.addEventListener('mouseout', () => {\n changeWallState(false)\n })\n\n sprite.addEventListener('mouseout', () => {\n if (this.gobal.tag === SceneTag.overview)\n changeWallState(false)\n })\n\n const unClick = sprite.addEventListener('click', (event) => {\n if (!sprite.visible)\n return\n this.reset()\n\n // 光墙\n const wall = this.wallManage.wallMesh.get(region.id)\n wall.visible = true\n // 隐藏当前POI点\n sprite.visible = false\n\n this.gobal.cameraUtil.focus({ target: region.area, pitch: 0 }).then(() => {\n this.addDialogPanel(region, event.point)\n })\n }) as Function\n this.poiEventListener.add(unClick)\n })\n\n const unFrame = use.useframe(() => {\n this.poiMesh.forEach((poi: SpritePoi) => {\n this.updateScale(poi)\n })\n })\n this.poiEventListener.add(unFrame)\n }\n\n /// <summary>\n /// 按照距离缩放,距离越远,缩放越大\n /// </summary>\n updateScale(poi: SpritePoi, ratio = 0, hratio) {\n // 距离限制范围的值,用于计算缩放比例\n const minDistance = 0.1\n const maxDistance = 1000000\n const { camera } = use.useScene()\n\n // 计算相机和物体之间的距离\n const distance = camera.position?.distanceTo(poi.position) || 0.1\n\n const clampedDistance = Math.max(minDistance, Math.min(maxDistance, distance))\n\n const scaleValue = clampedDistance * 0.12\n if (!ratio && poi.scale)\n ratio = poi.scale.x / poi.scale.y\n\n // 按照缩放系数和距离进行缩放,缩放系数应该约定好一个固定值\n poi.scale.copy(new Vector3(scaleValue * ratio * 0.8, scaleValue * hratio * 0.8 || scaleValue * 0.8, 1))\n }\n\n getDom(data) {\n const dom = document.createElement('div')\n const wordLength = data.title.length\n Object.assign(dom.style, {\n fontSize: '26px',\n backgroundImage: `url(${usePath}poi.png)`,\n backgroundSize: '100% 100%',\n backgroundRepeat: 'no-repeat',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'flex-start',\n fontFamily: 'YouSheBiaoTiHei3D',\n textAlign: 'center',\n color: '#fff',\n pointerEvents: 'auto',\n cursor: 'pointer',\n height: `${this.poiHeight}px`,\n minWidth: '180px',\n width: `${wordLength * (wordLength > 6 ? 34 : 40)}px`,\n padding: '8px 0 0 25px',\n position: 'relative',\n })\n const img = document.createElement('img')\n img.src = `${usePath}${data.title}图标.png`\n img.style.position = 'absolute'\n img.style.left = '18px'\n img.style.top = '13px'\n img.style.width = '30px'\n img.style.height = '30px'\n dom.appendChild(img)\n\n const label = document.createElement('label')\n label.style.marginLeft = '16px'\n label.innerText = data.title\n dom.appendChild(label)\n return dom\n }\n\n remove() {\n // 控制POI点的隐藏、显示\n this.poiMesh.forEach((poi) => {\n this.interactionManager.remove(poi)\n poi.removeFromParent()\n poi.remove()\n })\n // 取消事件监听\n this.poiEventListener.forEach((f) => {\n f()\n })\n this.poiEventListener.clear()\n // 移除面板\n if (this.dialogPoi)\n this.dialogPoi.removeFromParent()\n this.poiMesh.clear()\n }\n\n reset() {\n // 控制POI点的隐藏、显示\n // 控制POI点的隐藏、显示\n this.poiMesh.forEach((poi) => {\n poi.visible = true\n })\n // 移除面板\n if (this.dialogPoi)\n this.dialogPoi.removeFromParent()\n // 控制光墙的隐藏、显示\n this.wallManage?.wallMesh.forEach((wall) => {\n wall.visible = false\n })\n }\n\n private addDialogPanel(data, position) {\n // 添加面板\n // , {\n // type: EAnimationType.fadeIn,\n // duration: 0.3,\n // }\n this.dialogPoi = new Css2DPoi({ title: data.title, content: data.poi.content }, {\n animation: [{\n type: EAnimationType.grow,\n duration: 1,\n }, {\n type: EAnimationType.print,\n duration: 0.02,\n }],\n },\n\n )\n this.dialogPoi.position.copy(position.clone().add(new Vector3(10, 0, 0)))\n setTimeout(() => this.scene.add(this.dialogPoi))\n\n this.interactionManager.add(this.dialogPoi)\n this.dialogPoi.addEventListener('click', () => {\n this.dialogPoi.remove()\n this.dialogPoi.removeFromParent()\n this.dialogPoi = null\n this.reset()\n })\n }\n}\n\nexport default PoiManage"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@anov/3d",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.131",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "",
|
|
6
6
|
"license": "MIT",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"resize-observer-polyfill": "^1.5.1",
|
|
24
24
|
"uuid": "^9.0.1",
|
|
25
25
|
"@anov/3d-core": "^0.0.22",
|
|
26
|
-
"@anov/3d-ability": "^0.0.
|
|
26
|
+
"@anov/3d-ability": "^0.0.23"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@types/uuid": "^9.0.7"
|