@anov/3d 0.0.142 → 0.0.156

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.
Files changed (61) hide show
  1. package/README.md +3 -1
  2. package/dist/anov3d.js +15 -25
  3. package/dist/anov3d.js.map +1 -1
  4. package/dist/applicationApi.js +14 -90
  5. package/dist/applicationApi.js.map +1 -1
  6. package/dist/applicationApiType.js +2 -0
  7. package/dist/applicationApiType.js.map +1 -0
  8. package/dist/factory/3d.js +1 -9
  9. package/dist/factory/3d.js.map +1 -1
  10. package/dist/factory/unit/CameraPoi.js +0 -2
  11. package/dist/factory/unit/CameraPoi.js.map +1 -1
  12. package/dist/factory/unit/circle.js +0 -3
  13. package/dist/factory/unit/circle.js.map +1 -1
  14. package/dist/factory/unit/cylinder.js +0 -2
  15. package/dist/factory/unit/cylinder.js.map +1 -1
  16. package/dist/factory/unit/inspection/InspectionObject.js +18 -15
  17. package/dist/factory/unit/inspection/InspectionObject.js.map +1 -1
  18. package/dist/factory/unit/poi.js +8 -14
  19. package/dist/factory/unit/poi.js.map +1 -1
  20. package/dist/factory/unit/region.js +1 -2
  21. package/dist/factory/unit/region.js.map +1 -1
  22. package/dist/hooksManager.js +37 -13
  23. package/dist/hooksManager.js.map +1 -1
  24. package/dist/module/animation/index.js +118 -0
  25. package/dist/module/animation/index.js.map +1 -0
  26. package/dist/module/animation/motion/index.js +61 -0
  27. package/dist/module/animation/motion/index.js.map +1 -0
  28. package/dist/module/animation/strategy.js +27 -0
  29. package/dist/module/animation/strategy.js.map +1 -0
  30. package/dist/module/camera/index.js +246 -217
  31. package/dist/module/camera/index.js.map +1 -1
  32. package/dist/module/camera/type.js +2 -0
  33. package/dist/module/camera/type.js.map +1 -0
  34. package/dist/module/entity/hybridList.js +5 -0
  35. package/dist/module/entity/hybridList.js.map +1 -1
  36. package/dist/module/entity/index.js +256 -117
  37. package/dist/module/entity/index.js.map +1 -1
  38. package/dist/module/entity/model/index.js +3 -3
  39. package/dist/module/entity/model/index.js.map +1 -1
  40. package/dist/module/entity/model/load/loadFbx.js +14 -1
  41. package/dist/module/entity/model/load/loadFbx.js.map +1 -1
  42. package/dist/module/entity/model/load/loadGlb.js +17 -3
  43. package/dist/module/entity/model/load/loadGlb.js.map +1 -1
  44. package/dist/module/entity/poi/index.js +232 -19
  45. package/dist/module/entity/poi/index.js.map +1 -1
  46. package/dist/module/entity/poi/indexBack.js +29 -0
  47. package/dist/module/entity/poi/indexBack.js.map +1 -0
  48. package/dist/module/entity/poi/type.js.map +1 -1
  49. package/dist/module/entity/poi/utils.js +42 -0
  50. package/dist/module/entity/poi/utils.js.map +1 -0
  51. package/dist/module/entity/spline/style/line_01.js.map +1 -1
  52. package/dist/module/entity/type.js.map +1 -1
  53. package/dist/module/eventBus/index.js +20 -7
  54. package/dist/module/eventBus/index.js.map +1 -1
  55. package/dist/sdkEntry.js +4 -0
  56. package/dist/sdkEntry.js.map +1 -1
  57. package/dist/utils/index.js +16 -4
  58. package/dist/utils/index.js.map +1 -1
  59. package/dist/utils/messageFn.js +5 -2
  60. package/dist/utils/messageFn.js.map +1 -1
  61. package/package.json +5 -3
@@ -1 +1 @@
1
- {"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","_defineProperty","obj","_toPrimitive","String","toPrimitive","Number","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","position","fovDefault","fovRange","dialogCamera","rotation","probePoint","warn","load","CameraPoi","gobal","Map","Set","dialogManage","Dialog","addStyle","_generateObject","_callee","_this","_data$probePoint","model","point","rotatingRight","unFrame","_callee$","_context","loadGLTF","concat","gltf","region","group","sprite","scale","Math","PI","fromArray","copy","add","scan","scene","clone","addScalar","x","cameraMesh","set","interactionManager","cameraEvent","MethanePoint","item","mesh","probeEvent","to","duration","ease","yoyo","repeat","warnMesh","useframe","children","z","abs","eventListener","generateObject","_this2","_ref","_callee2","isClose","_use$useScene","targetPosition","camaraPosition","_callee2$","_context2","currentDialogMesh","close","headMap","isShow","closeHotmap","useScene","startPosition","cameraLookAt","getWorldDirection","messageType","Event","messageName","status","Success","toArray","cameraUtil","setMeshVisible","getMesh","addEventListener","visible","removeEventListener","_this3","_use$useScene2","HeadMap","unClick","_callee3","_callee3$","_context3","togglePoi","distanceTo","_use$useScene3","orbitControls","enabled","remove","_use$useScene4","removeFromParent","clear","_use$useScene5","geometry","texture","circle","map","side","transparent","rotateX","createBack","material","vertexShader","fragmentShader","blending","depthTest","color","numPoints","random","cameraManage","manage","_getMesh","_callee4","careraParams","_this4","_this$manage$gobal$sc","cuteSprite","_callee4$","_context4","window","innerWidth","innerHeight","setCustomPerspective","depthWrite","center","renderOrder","updateScale","reslove","setTimeout","borderMesh","getBorderMesh","cuteSprites","_x","_x2","getTarget","cameraPosition","angleX","degToRad","angleY","angleZ","rotationMatrix","makeRotationX","multiply","makeRotationY","makeRotationZ","cameraDirection","targetDirection","applyMatrix4","getBoxSize","_use$useScene6","devicePixelRatio","bbox","setFromObject","min","project","max","console","log","_ref3","w","dom","document","querySelector","clientWidth","clientHeight","ratio","fov","width","height","scaleFactor","_use$useScene7","minDistance","maxDistance","objectPosition","distance","clampedDistance","eventName","eventList","has","_this5","_this$getBoxSize","dialogDiv","createElement","assign","style","maskingDiv","className","appendChild","closeSpan","op","opList","btnSpan","handleClick","_this5$manage$gobal$s","clock","longPress","time","getDelta","clearTimeout","cb","updateProjectionMatrix","_this5$manage$gobal$s2","slider","getFovView","text","container","itemsContainer","div","innerHTML","setAttribute","items","itemHeight","totalHeight","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","_ref4","points","val","setData","greymap","heatMapMaterial","uniforms","greyMap","Zscale","u_color","u_opacity","_renderer","canvas","needsUpdate","greyTexture","_use$useScene8","tan","aspect","heatMapGeometry","heatMapPlane","addBack","_this6","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(\n {\n messageType: MessageType.Event,\n messageName: 'onCameraStatus',\n status: EMessageStatus.Success,\n },\n {\n id: region.id,\n })\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(\n {\n messageType: MessageType.Event,\n messageName: 'onCancelCameraStatus',\n status: EMessageStatus.Success,\n },\n { id: region.id },\n )\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(\n {\n messageType: MessageType.Event,\n messageName: 'onGasMonitorStatus',\n status: EMessageStatus.Success,\n },\n { id: region.id },\n )\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&nbsp;&nbsp;-`\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 = 100\n let [width, height] = [window.innerWidth, window.innerHeight]\n const dom = document.querySelector('#app')\n if (dom) {\n width = dom.clientWidth\n height = dom.clientHeight\n }\n\n const points = []\n let max = 0\n while (len--) {\n const val = Math.floor(Math.random() * 5)\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(60, 60 * height / width) // 3d热力图大小,及分块数量\n\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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"}
1
+ {"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","_defineProperty","obj","_toPrimitive","String","toPrimitive","Number","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","position","fovDefault","fovRange","dialogCamera","rotation","probePoint","warn","load","CameraPoi","gobal","Map","Set","dialogManage","Dialog","addStyle","_generateObject","_callee","_this","_data$probePoint","model","point","rotatingRight","unFrame","_callee$","_context","loadGLTF","concat","gltf","region","group","sprite","scale","Math","PI","fromArray","copy","add","scan","scene","clone","addScalar","x","cameraMesh","set","cameraEvent","MethanePoint","item","mesh","probeEvent","to","duration","ease","yoyo","repeat","warnMesh","useframe","children","z","abs","eventListener","generateObject","_this2","_ref","_callee2","isClose","_use$useScene","targetPosition","camaraPosition","_callee2$","_context2","currentDialogMesh","close","headMap","isShow","closeHotmap","useScene","startPosition","cameraLookAt","getWorldDirection","messageType","Event","messageName","status","Success","toArray","cameraUtil","setMeshVisible","getMesh","addEventListener","visible","removeEventListener","_this3","_use$useScene2","HeadMap","unClick","_callee3","_callee3$","_context3","togglePoi","distanceTo","_use$useScene3","orbitControls","enabled","remove","_use$useScene4","removeFromParent","clear","_use$useScene5","geometry","texture","circle","map","side","transparent","rotateX","createBack","material","vertexShader","fragmentShader","blending","depthTest","color","numPoints","random","cameraManage","manage","_getMesh","_callee4","careraParams","_this4","_this$manage$gobal$sc","cuteSprite","_callee4$","_context4","window","innerWidth","innerHeight","setCustomPerspective","depthWrite","center","renderOrder","updateScale","reslove","setTimeout","borderMesh","getBorderMesh","cuteSprites","_x","_x2","getTarget","cameraPosition","angleX","degToRad","angleY","angleZ","rotationMatrix","makeRotationX","multiply","makeRotationY","makeRotationZ","cameraDirection","targetDirection","applyMatrix4","getBoxSize","_use$useScene6","devicePixelRatio","bbox","setFromObject","min","project","max","console","log","_ref3","w","dom","document","querySelector","clientWidth","clientHeight","ratio","fov","width","height","scaleFactor","_use$useScene7","minDistance","maxDistance","objectPosition","distance","clampedDistance","eventName","eventList","has","_this5","_this$getBoxSize","dialogDiv","createElement","assign","style","maskingDiv","className","appendChild","closeSpan","op","opList","btnSpan","handleClick","_this5$manage$gobal$s","clock","longPress","time","getDelta","clearTimeout","cb","updateProjectionMatrix","_this5$manage$gobal$s2","slider","getFovView","text","container","itemsContainer","div","innerHTML","setAttribute","items","itemHeight","totalHeight","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","_ref4","points","val","setData","greymap","heatMapMaterial","uniforms","greyMap","Zscale","u_color","u_opacity","_renderer","canvas","needsUpdate","greyTexture","_use$useScene8","tan","aspect","heatMapGeometry","heatMapPlane","addBack","_this6","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.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.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(\n {\n messageType: MessageType.Event,\n messageName: 'onCameraStatus',\n status: EMessageStatus.Success,\n },\n {\n id: region.id,\n })\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(\n {\n messageType: MessageType.Event,\n messageName: 'onCancelCameraStatus',\n status: EMessageStatus.Success,\n },\n { id: region.id },\n )\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(\n {\n messageType: MessageType.Event,\n messageName: 'onGasMonitorStatus',\n status: EMessageStatus.Success,\n },\n { id: region.id },\n )\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&nbsp;&nbsp;-`\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 = 100\n let [width, height] = [window.innerWidth, window.innerHeight]\n const dom = document.querySelector('#app')\n if (dom) {\n width = dom.clientWidth\n height = dom.clientHeight\n }\n\n const points = []\n let max = 0\n while (len--) {\n const val = Math.floor(Math.random() * 5)\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(60, 60 * height / width) // 3d热力图大小,及分块数量\n\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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"}
@@ -16,14 +16,12 @@ var CircleManage = /*#__PURE__*/function () {
16
16
  _defineProperty(this, "gobal", void 0);
17
17
  _defineProperty(this, "scene", void 0);
18
18
  _defineProperty(this, "circleMesh", new Map());
19
- _defineProperty(this, "interactionManager", void 0);
20
19
  _defineProperty(this, "peoplePoi", void 0);
21
20
  _defineProperty(this, "clickPoi", void 0);
22
21
  _defineProperty(this, "eventListener", new Set());
23
22
  _defineProperty(this, "poiRemoveEventListener", void 0);
24
23
  this.gobal = gobal;
25
24
  this.scene = gobal.scene.scene;
26
- this.interactionManager = utils.storeManagement.get('interactionManager');
27
25
  }
28
26
  _createClass(CircleManage, [{
29
27
  key: "generateCircle",
@@ -80,7 +78,6 @@ var CircleManage = /*#__PURE__*/function () {
80
78
  key: "bindEvent",
81
79
  value: function bindEvent(mesh, data) {
82
80
  var _this2 = this;
83
- this.interactionManager.add(mesh);
84
81
  var showPeoplePoi = function showPeoplePoi(data) {
85
82
  var eventName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'hover';
86
83
  if (_this2.peoplePoi) {
@@ -1 +1 @@
1
- {"version":3,"names":["Vector3","use","utils","EAnimationType","SpritePoi","regionMap","usePath","emitter","CircleManage","gobal","_classCallCheck","_defineProperty","Map","Set","scene","interactionManager","storeManagement","get","_createClass","key","value","generateCircle","belongTo","_this","remove","dom","document","createElement","style","width","height","imgs","img","data","getData","forEach","people","cloneNode","src","concat","Math","floor","random","mesh","scale","name","id","position","fromArray","add","bindEvent","circleMesh","set","removeFromParent","clear","peoplePoi","clickPoi","poiRemoveEventListener","eventListener","fn","setVisible","visible","arguments","length","undefined","poi","_this2","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","_use$useScene","useScene","orbitControls","addEventListener","removeEventListener","unClick","getCameraPosition","cameraUtil","toArray","target","then","emit","hoverMesh","_this2$clickPoi","_camera$position","ratio","minDistance","maxDistance","_use$useScene2","camera","distance","distanceTo","clampedDistance","max","min","scaleValue","x","y","targetPosition","cameraPosition","direction","_use$useScene3","subVectors","normalize","multiplyScalar","regionKey","keys","find"],"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 = '60px'\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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"}
1
+ {"version":3,"names":["Vector3","use","utils","EAnimationType","SpritePoi","regionMap","usePath","emitter","CircleManage","gobal","_classCallCheck","_defineProperty","Map","Set","scene","_createClass","key","value","generateCircle","belongTo","_this","remove","dom","document","createElement","style","width","height","imgs","img","data","getData","forEach","people","cloneNode","src","concat","Math","floor","random","mesh","scale","name","id","position","fromArray","add","bindEvent","circleMesh","set","removeFromParent","clear","peoplePoi","clickPoi","poiRemoveEventListener","eventListener","fn","setVisible","visible","arguments","length","undefined","poi","_this2","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","_use$useScene","useScene","orbitControls","addEventListener","removeEventListener","unClick","getCameraPosition","cameraUtil","toArray","target","then","emit","hoverMesh","_this2$clickPoi","_camera$position","ratio","minDistance","maxDistance","_use$useScene2","camera","distance","distanceTo","clampedDistance","max","min","scaleValue","x","y","targetPosition","cameraPosition","direction","_use$useScene3","subVectors","normalize","multiplyScalar","regionKey","keys","find"],"sources":["../../../src/factory/unit/circle.ts"],"sourcesContent":["import { Vector3, use, utils } from '@anov/3d-core'\nimport type { 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\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 }\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 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 = '60px'\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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"}
@@ -148,8 +148,6 @@ var CylinderManage = /*#__PURE__*/function () {
148
148
  group.name = item.title;
149
149
  group.visible = (_this2$option$visible = (_this2$option = _this2.option) === null || _this2$option === void 0 ? void 0 : _this2$option.visible) !== null && _this2$option$visible !== void 0 ? _this2$option$visible : true;
150
150
  cylinder.position.copy(new Vector3().fromArray([item.points[0], item.points[1] + item.height / 2, item.points[2]]));
151
- var interactionManager = utils.storeManagement.get('interactionManager');
152
- interactionManager.add(group);
153
151
  var handleClick = function handleClick() {
154
152
  if (_this2.gobal.style === SceneStyle.real || group.visible === false) return;
155
153
  var _item$camera = item.camera,