@anov/3d 0.0.13 → 0.0.15

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 (49) hide show
  1. package/dist/factory/3d.d.ts +23 -14
  2. package/dist/factory/3d.js +143 -55
  3. package/dist/factory/3d.js.map +1 -1
  4. package/dist/factory/regionData.d.ts +8 -0
  5. package/dist/factory/regionData.js +59 -6
  6. package/dist/factory/regionData.js.map +1 -1
  7. package/dist/factory/unit/CameraPoi.d.ts +52 -4
  8. package/dist/factory/unit/CameraPoi.js +701 -55
  9. package/dist/factory/unit/CameraPoi.js.map +1 -1
  10. package/dist/factory/unit/glsl/heat/frag.d.ts +2 -0
  11. package/dist/factory/unit/glsl/heat/frag.glsl +37 -0
  12. package/dist/factory/unit/glsl/heat/frag.js +3 -0
  13. package/dist/factory/unit/glsl/heat/frag.js.map +1 -0
  14. package/dist/factory/unit/glsl/heat/ver.d.ts +2 -0
  15. package/dist/factory/unit/glsl/heat/ver.glsl +15 -0
  16. package/dist/factory/unit/glsl/heat/ver.js +3 -0
  17. package/dist/factory/unit/glsl/heat/ver.js.map +1 -0
  18. package/dist/factory/unit/handle.d.ts +4 -0
  19. package/dist/factory/unit/handle.js +20 -14
  20. package/dist/factory/unit/handle.js.map +1 -1
  21. package/dist/factory/unit/index.js +23 -13
  22. package/dist/factory/unit/index.js.map +1 -1
  23. package/dist/factory/unit/inspection/InspectionObject.d.ts +26 -0
  24. package/dist/factory/unit/{inspection.js → inspection/InspectionObject.js} +275 -133
  25. package/dist/factory/unit/inspection/InspectionObject.js.map +1 -0
  26. package/dist/factory/unit/{inspection.d.ts → inspection/index.d.ts} +8 -9
  27. package/dist/factory/unit/inspection/index.js +160 -0
  28. package/dist/factory/unit/inspection/index.js.map +1 -0
  29. package/dist/factory/unit/inspection/lineData.d.ts +21 -0
  30. package/dist/factory/unit/inspection/lineData.js +32 -0
  31. package/dist/factory/unit/inspection/lineData.js.map +1 -0
  32. package/dist/factory/unit/poi.d.ts +1 -0
  33. package/dist/factory/unit/poi.js +28 -14
  34. package/dist/factory/unit/poi.js.map +1 -1
  35. package/dist/factory/utils/constant.d.ts +0 -1
  36. package/dist/factory/utils/constant.js +0 -1
  37. package/dist/factory/utils/constant.js.map +1 -1
  38. package/dist/factory/utils/finirMaterial.d.ts +1 -0
  39. package/dist/factory/utils/finirMaterial.js +19 -1
  40. package/dist/factory/utils/finirMaterial.js.map +1 -1
  41. package/dist/index.js +1 -1
  42. package/dist/index.js.map +1 -1
  43. package/dist/module/environment/time/index.d.ts +1 -1
  44. package/dist/utils/index.d.ts +1 -1
  45. package/package.json +4 -3
  46. package/dist/factory/unit/inspection.js.map +0 -1
  47. package/dist/factory/unit/poi copy.d.ts +0 -15
  48. package/dist/factory/unit/poi copy.js +0 -144
  49. package/dist/factory/unit/poi copy.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["PerspectiveCamera","Sprite","SpriteMaterial","utils","createDomTexture","data","position","name","type","dom","document","createElement","src","CameraPoi","gobal","Map","generateObject","width","height","texture","baseSprite","map","depthTest","depthWrite","scale","set","center","forEach","poi","sprite","clone","fromArray","interactionManager","add","bindEvent","spriteCameraPoi","scene","addEventListener","camera","window","innerWidth","innerHeight","lookAt","setCustomPerspective","removeFromParent","clear"],"sources":["../../../src/factory/unit/CameraPoi.ts"],"sourcesContent":["import { PerspectiveCamera, Sprite, SpriteMaterial, utils } from '@anov/3d-core'\nimport type Factory3D from '../3d'\n\nconst { createDomTexture } = utils\n\nconst data = [{\n position: [386.24, 7.73, 143.96],\n name: '摄像1',\n type: 'camera',\n}]\n\nconst dom = document.createElement('img')\ndom.src = './camera.png'\n\nclass CameraPoi {\n private gobal: Factory3D\n spriteCameraPoi: Map<string, Sprite> = new Map()\n\n constructor(gobal: Factory3D) {\n this.gobal = gobal\n this.generateObject()\n }\n\n async generateObject() {\n const texture = await createDomTexture(dom, {\n width: 62,\n height: 62,\n })\n const baseSprite = new Sprite(new SpriteMaterial({ map: texture, depthTest: false, depthWrite: false }))\n\n baseSprite.scale.set(10, 10, 10)\n baseSprite.center.set(0.5, 0)\n\n data.forEach((poi) => {\n const sprite = baseSprite.clone()\n sprite.position.fromArray(poi.position)\n this.gobal.interactionManager.add(sprite)\n this.bindEvent(sprite)\n this.spriteCameraPoi.set(poi.name, sprite)\n this.gobal.scene.add(sprite)\n })\n }\n\n bindEvent(sprite: Sprite) {\n sprite.addEventListener('click', () => {\n const camera = new PerspectiveCamera(\n 90, window.innerWidth / window.innerHeight, 0.1, 100000000,\n )\n camera.position.set(373.72, 7.73, 144.75)\n camera.lookAt(407.48, 0.03, 177.44)\n\n const { texture } = this.gobal.scene.setCustomPerspective(camera)\n const baseSprite = new Sprite(new SpriteMaterial({ map: texture, depthTest: false, depthWrite: false }))\n\n baseSprite.scale.set(70, 50, 50)\n baseSprite.center.set(0.5, 0)\n baseSprite.position.set(349.80, 0.00, 129.74)\n\n this.gobal.scene.add(baseSprite)\n })\n }\n\n remove() {\n this.spriteCameraPoi.forEach((sprite) => {\n sprite.removeFromParent()\n })\n this.spriteCameraPoi.clear()\n }\n}\n\nexport default CameraPoi"],"mappings":"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"}
1
+ {"version":3,"names":["AdditiveBlending","Box3","CircleGeometry","Color","DoubleSide","Group","MathUtils","Matrix4","Mesh","MeshBasicMaterial","ModelLoader","PerspectiveCamera","PlaneGeometry","ShaderMaterial","Sprite","SpriteMaterial","Texture","TextureLoader","Vector3","use","Css2DPoi","SpritePoi","heatMap","regionMap","usePath","load","CameraPoi","gobal","Map","Set","dialogManage","Dialog","addStyle","loadGLTF","gltf","model","Object","keys","forEach","key","region","group","name","camera","sprite","scale","rotation","y","Math","PI","position","fromArray","copy","add","scan","scene","clone","addScalar","x","cameraMesh","set","title","interactionManager","cameraEvent","point","MethanePoint","probePoint","item","mesh","warn","probeEvent","create","warnMesh","rotatingRight","unFrame","useframe","children","z","abs","eventListener","useScene","unClick","addEventListener","targetPosition","toArray","camaraPosition","startPosition","cameraLookAt","getWorldDirection","cameraUtil","target","getMesh","dialogMesh","visible","togglePoi","headMap","HeadMap","addBack","removeFromParent","remove","clear","fn","close","geometry","texture","circle","map","side","transparent","rotateX","material","vertexShader","fragmentShader","blending","depthTest","color","numPoints","i","random","cameraManage","manage","cameraPosition","window","innerWidth","innerHeight","getTarget","lookAt","setCustomPerspective","cuteSprite","depthWrite","center","updateScale","Promise","reslove","setTimeout","getBorderMesh","borderMesh","angleX","degToRad","angleY","angleZ","rotationMatrix","makeRotationX","multiply","makeRotationY","makeRotationZ","cameraDirection","targetDirection","applyMatrix4","devicePixelRatio","bbox","setFromObject","min","project","max","width","height","scaleFactors","scaleFactor","minDistance","maxDistance","objectPosition","distance","distanceTo","clampedDistance","eventName","eventList","has","getBoxSize","dialogDiv","document","createElement","assign","style","zIndex","backgroundImage","backgroundSize","backgroundRepeat","maskingDiv","className","appendChild","closeSpan","get","hLine","vLine","op","opList","btnSpan","sliderDiv","sliderBar","type","value","fov","updateProjectionMatrix","css","styleElement","createTextNode","head","heatmap","container","createDom","gradient","TemperatureColorStops","len","points","val","floor","push","setData","data","greymap","heatMapMaterial","uniforms","undefined","greyMap","Zscale","u_color","u_opacity","_renderer","canvas","needsUpdate","greyTexture","heatMapGeometry","heatMapPlane","backEle","innerHTML","body","canvasList","length"],"sources":["../../../src/factory/unit/CameraPoi.ts"],"sourcesContent":["import { AdditiveBlending, Box3, CircleGeometry, Color, DoubleSide, Group, MathUtils, Matrix4, Mesh, MeshBasicMaterial, ModelLoader, PerspectiveCamera, PlaneGeometry, ShaderMaterial, Sprite, SpriteMaterial, Texture, TextureLoader, Vector3, use } from '@anov/3d-core'\nimport { Css2DPoi, SpritePoi } from '@anov/3d-ability'\n\n// @ts-ignore\nimport heatMap from 'anov-heat-map'\nimport type Factory3D from '../3d'\n\n// @ts-ignore\nimport { regionMap } from '../regionData'\n\nimport { usePath } from '../3d'\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 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 Object.keys(regionMap).forEach(async (key: string) => {\n // 摄像机\n const region = regionMap[key]\n const group = new Group()\n group.name = region.camera.name\n const sprite = new SpritePoi(`${usePath}camera.png`, { scale: [10, 10, 1] })\n sprite.rotation.y = Math.PI\n const position = new Vector3().fromArray(region.camera.position)\n sprite.position.copy(position)\n group.add(sprite)\n\n const scan = model.scene.clone()\n scan.scale.addScalar(5)\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.title, group)\n this.gobal.interactionManager.add(group)\n this.cameraEvent(group, region)\n this.gobal.scene.add(group)\n\n // 甲烷检测点\n const point = new MethanePoint()\n region.probePoint?.forEach((item) => {\n let mesh\n if (item.warn) {\n mesh = new SpritePoi(`${usePath}p4/warn.png`, { scale: [10, 10, 1] })\n this.gobal.interactionManager.add(mesh)\n this.probeEvent(mesh, region)\n }\n else {\n mesh = point.create()\n }\n mesh.position.copy(new Vector3().fromArray(item.position))\n this.warnMesh.set(region.title, mesh)\n\n this.gobal.scene.add(mesh)\n })\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 { camera } = use.useScene()\n const unClick = sprite.addEventListener('click', async () => {\n const position = new Vector3().fromArray(region.camera.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 const startPosition = camera.position.clone()\n // 获取相机朝向\n const cameraLookAt = new Vector3() // 创建一个向量来存储相机朝向\n camera.getWorldDirection(cameraLookAt) // 获取相机朝向并存储在向量中\n this.gobal.cameraUtil.set({\n position: camaraPosition,\n target: targetPosition,\n })\n\n const dialogMesh = await this.dialogManage.getMesh(position, position.clone().add(new Vector3(0, -15, 5)))\n this.dialogManage.addEventListener('close', () => {\n // 初始相机到原始位置\n this.gobal.cameraUtil.set({\n position: startPosition.toArray(),\n target: cameraLookAt.toArray(),\n })\n })\n this.gobal.scene.add(dialogMesh)\n })\n // this.eventListener.add(unClick)\n }\n\n probeEvent(sprite: SpritePoi, region) {\n const { camera } = use.useScene()\n sprite.addEventListener('click', async () => {\n if (!sprite.visible)\n return\n sprite.visible = false\n this.togglePoi(false)\n const position = new Vector3().fromArray(region.probePoint[0].position)\n const targetPosition: [number, number, number] = position.clone().toArray()\n const camaraPosition: [number, number, number] = position.clone().add(new Vector3(0, 30, 0)).toArray()\n\n const startPosition = camera.position.clone()\n // 获取相机朝向\n const cameraLookAt = new Vector3() // 创建一个向量来存储相机朝向\n camera.getWorldDirection(cameraLookAt) // 获取相机朝向并存储在向量中\n this.gobal.cameraUtil.set({\n position: camaraPosition,\n target: targetPosition,\n })\n\n this.headMap = new HeadMap()\n const mesh = this.headMap.create()\n mesh.position.copy(sprite.position)\n mesh.position.y = 0.5\n this.gobal.scene.add(mesh)\n\n this.headMap.addBack()\n this.headMap.addEventListener('close', () => {\n this.togglePoi(true)\n\n this.gobal.cameraUtil.set({\n position: startPosition.toArray(),\n target: cameraLookAt.toArray(),\n })\n })\n })\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 // 删除摄像机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 this.eventListener.clear()\n\n this.dialogManage.close()\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().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 borderMesh: Css2DPoi\n cuteSprite: Sprite\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, cameraPosition) {\n this.camera = new PerspectiveCamera(\n 90, window.innerWidth / window.innerHeight, 0.1, 100000000,\n )\n this.camera.position.copy(cameraPosition)\n const target = this.getTarget(cameraPosition)\n this.camera.lookAt(target)\n const { texture, close } = this.manage.gobal.scene.setCustomPerspective(this.camera)\n this.cuteSprite = new Sprite(new SpriteMaterial({ map: texture, depthTest: false, depthWrite: false }))\n this.cuteSprite.center.set(0.5, 0.5)\n this.cuteSprite.position.copy(position)\n\n const unFrame = use.useframe(() => {\n this.updateScale(this.cuteSprite)\n })\n this.eventListener.add(unFrame)\n\n return new Promise((reslove) => {\n setTimeout(() => {\n this.getBorderMesh(this.camera, this.cuteSprite)\n const group = new Group()\n group.add(this.borderMesh)\n group.add(this.cuteSprite)\n close()\n reslove(group)\n }, 1000)\n })\n }\n\n getTarget(cameraPosition, rotation = [-30, 0, 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\n // 计算精灵在屏幕中的宽度和高度像素值\n let width = (max.x - min.x) * window.innerWidth / devicePixelRatio * 0.9458\n let height = (max.y - min.y) * window.innerHeight / devicePixelRatio * 1.0617\n\n // 定义设备像素比和对应的缩放系数的映射关系\n const scaleFactors = {\n 1: 0.5,\n 1.5: 0.75,\n 2: 1,\n }\n const scaleFactor = scaleFactors[devicePixelRatio] || 1\n // 应用缩放系数\n width *= scaleFactor\n height *= scaleFactor\n\n return { width, height }\n }\n\n updateScale(sprite: Sprite) {\n const { camera } = use.useScene()\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\n sprite.scale.copy(new Vector3(clampedDistance * 1.5, 1.05 * 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 += 5\n height += 5\n Object.assign(dialogDiv.style, {\n width: `${width}px`,\n height: `${height}px`,\n zIndex: 2,\n backgroundImage: `url(${usePath}p4/border.png)`,\n backgroundSize: '100% 100%',\n backgroundRepeat: 'no-repeat',\n position: 'releate',\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-masking'\n dialogDiv.appendChild(maskingDiv)\n\n // 关闭按钮\n const closeSpan = document.createElement('span')\n closeSpan.className = 'dialog-close'\n closeSpan.addEventListener('click', () => {\n this.eventList.has('close') && this.eventList.get('close')()\n this.close()\n })\n const hLine = document.createElement('span')\n hLine.className = 'dialog-close-line dialog-close-h-line'\n closeSpan.appendChild(hLine)\n const vLine = document.createElement('span')\n vLine.className = 'dialog-close-line dialog-close-v-line'\n closeSpan.appendChild(vLine)\n dialogDiv.appendChild(closeSpan)\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 btnSpan.addEventListener('click', () => {\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 op.appendChild(btnSpan)\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 = '90'\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 this.borderMesh = new Css2DPoi(dialogDiv)\n this.borderMesh.position.copy(sprite.position)\n return this.borderMesh\n }\n\n addStyle() {\n // 设置 CSS 规则\n const css = `\n .dialog-masking{\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: 20px;\n height: 20px;\n border-radius: 2px;\n color: #fff;\n background-color: #c8ab75;\n cursor: pointer; /* 鼠标指针样式 */\n display: flex;\n justify-content: center;\n align-items: center;\n position: absolute;\n right: 20px;\n top: 15px;\n pointer-events: auto;\n }\n\n .dialog-close:hover{\n background-color:#c8a158;\n }\n\n .dialog-close-line{\n width: 14px;\n height: 2px;\n background-color: #fff;\n position: absolute;\n top: 9px;\n display: block;\n }\n\n .dialog-close-h-line{\n transform: rotate(-45deg);\n }\n\n .dialog-close-v-line{\n transform: rotate(45deg);\n }\n\n .dialog-operate{\n width: 120px;\n height: 120px;\n background-image: url(${usePath}p4/operate.png);\n background-size: 100% 100%;\n background-repeat: no-repeat;\n position: absolute;\n right: 15px;\n bottom: 10px;\n pointer-events: auto;\n }\n\n .dialog-operate-btn{\n width: 0;\n height: 0;\n position: absolute;\n cursor: pointer;\n pointer-events: auto;\n }\n\n .dialog-operate-top{\n border-left: 8px solid transparent; /* 左边透明 */\n border-right: 8px solid transparent; /* 右边透明 */\n border-bottom: 8px solid #f2c67d; /* 底边实心 */\n left: calc(50% - 9px);\n top: 20px;\n }\n .dialog-operate-top:hover{\n border-bottom-color:#fff2dd;\n }\n\n .dialog-operate-bottom{\n border-left: 8px solid transparent; /* 左边透明 */\n border-right: 8px solid transparent; /* 右边透明 */\n border-top: 8px solid #f2c67d; /* 底边实心 */\n left: calc(50% - 9px);\n bottom: 20px;\n }\n\n .dialog-operate-bottom:hover{\n border-top-color:#fff2dd;\n }\n\n .dialog-operate-left{\n border-top: 8px solid transparent; /* 左边透明 */\n border-bottom: 8px solid transparent; /* 右边透明 */\n border-right: 8px solid #f2c67d; /* 底边实心 */\n top: calc(50% - 9px);\n left: 20px;\n }\n .dialog-operate-left:hover{\n border-right-color:#fff2dd;\n }\n\n .dialog-operate-right{\n border-top: 8px solid transparent; /* 左边透明 */\n border-bottom: 8px solid transparent; /* 右边透明 */\n border-left: 8px solid #f2c67d; /* 底边实心 */\n top: calc(50% - 9px);\n right: 20px;\n }\n\n .dialog-operate-right:hover{\n border-left-color:#fff2dd;\n }\n \n .dialog-slider-container {\n width: 13px;\n height: 300px;\n background: url(${usePath}p4/slider.png);\n background-size: 100% 100%;\n position:absolute;\n right:23px;\n top:50px;\n }\n\n .dialog-slider {\n -webkit-appearance: none;\n width: 300px;\n height: 13px;\n background: transparent;\n outline: none;\n opacity: 0.7;\n -webkit-transition: .2s;\n transition: opacity .2s;\n transform: rotate(-90deg);\n margin-left: -144px;\n margin-top: 144px;\n pointer-events: auto;\n }\n\n .dialog-slider::-webkit-slider-thumb {\n -webkit-appearance: none;\n appearance: none;\n width: 7px;\n height: 20px;\n background: #eebe76;\n cursor: pointer;\n border-radius: 5px;\n }\n\n .dialog-slider::-moz-range-thumb {\n width: 7px;\n height: 20px;\n background: #eebe76;\n cursor: pointer;\n border-radius: 5px;\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 // 删除弹窗POI\n if (this.borderMesh) {\n this.borderMesh.remove()\n this.borderMesh.removeFromParent()\n }\n if (this.cuteSprite) {\n this.cuteSprite.remove()\n this.cuteSprite.removeFromParent()\n }\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\n constructor() {\n\n }\n\n // 热力图\n create() {\n const heatmap = heatMap.create({\n container: this.createDom(),\n gradient: this.TemperatureColorStops,\n })\n let len = 1200\n const width = 2000\n const height = 1000\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 heatMapGeometry = new PlaneGeometry(200, 100, 100, 100) // 3d热力图大小,及分块数量\n const heatMapPlane = new Mesh(heatMapGeometry, heatMapMaterial)\n heatMapPlane.rotation.set(-Math.PI / 2, 0, 0)\n // heatMapPlane.position.set(0, 0, 0) // 3d热力图中心点位置\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.canvasList.length = 0\n this.backEle && this.backEle.remove()\n this.heatMapPlane.removeFromParent()\n this.heatMapPlane.remove()\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ declare const frag = "\nuniform sampler2D texture1;\nuniform sampler2D texture2;\n\nvarying vec2 vUv;\nvarying vec3 Position;\nvarying vec3 vNormal;\nvarying vec4 worldPosition;\nvoid main(void) {\n float time = 0.1;\n float intensity = 0.1;\n float heat = 0.9;\n float noiseLoop = 0.02;\n\n vec4 poi3 = vec4(66.708, 30, -102.708, 1.3);\n vec4 poi4 = vec4(-291.869, 30, -127.770, 0.9);\n\n vec4[] poi = vec4[](poi3,poi4);\n\n vec2 xy = vec2(worldPosition.x, worldPosition.y) + time * 0.9;\n vec2 xz = vec2(worldPosition.x, worldPosition.z) + time * 0.8;\n vec2 yz = vec2(worldPosition.y, worldPosition.z) + time * 0.9;\n\n float ix = clamp((abs(vNormal.x) - 0.4) * 2., 0., 1.);\n float iy = clamp((abs(vNormal.y) - 0.4) * 2., 0., 1.);\n\n vec4 noiseT = mix((mix(texture2D(texture1, xy * noiseLoop), texture2D(texture1, yz * noiseLoop), ix)), texture2D(texture1, xz * noiseLoop), iy);\n vec3 HeatPosition = vec3(0., 1.5, 0.0);\n float i1 = 1. - distance(HeatPosition, vec3(worldPosition.x + noiseT.x, worldPosition.y + noiseT.y, worldPosition.z + noiseT.z)) * 0.6;\n\n float i2;\n for(int i = 0; i < 2; i++) {\n i2 += clamp(1. - distance(poi[i].xyz, worldPosition.xyz) * 0.05 * heat / poi[i].w + noiseT.x, 0., 1.);\n };\n\n vec4 heatmap = texture2D(texture2, vec2(pow(clamp(i2, 0.01, 0.99), intensity + sin(1. * 2.) * 0.01), 0.5));\n gl_FragColor = heatmap;\n}\n";
2
+ export default frag;
@@ -0,0 +1,37 @@
1
+ uniform sampler2D texture1;
2
+ uniform sampler2D texture2;
3
+
4
+ varying vec2 vUv;
5
+ varying vec3 Position;
6
+ varying vec3 vNormal;
7
+ varying vec4 worldPosition;
8
+ void main(void) {
9
+ float time = 0.1;
10
+ float intensity = 0.1;
11
+ float heat = 0.9;
12
+ float noiseLoop = 0.02;
13
+
14
+ vec4 poi3 = vec4(66.708, 30, -102.708, 1.3);
15
+ vec4 poi4 = vec4(-291.869, 30, -127.770, 0.9);
16
+
17
+ vec4[] poi = vec4[](poi3,poi4);
18
+
19
+ vec2 xy = vec2(worldPosition.x, worldPosition.y) + time * 0.9;
20
+ vec2 xz = vec2(worldPosition.x, worldPosition.z) + time * 0.8;
21
+ vec2 yz = vec2(worldPosition.y, worldPosition.z) + time * 0.9;
22
+
23
+ float ix = clamp((abs(vNormal.x) - 0.4) * 2., 0., 1.);
24
+ float iy = clamp((abs(vNormal.y) - 0.4) * 2., 0., 1.);
25
+
26
+ vec4 noiseT = mix((mix(texture2D(texture1, xy * noiseLoop), texture2D(texture1, yz * noiseLoop), ix)), texture2D(texture1, xz * noiseLoop), iy);
27
+ vec3 HeatPosition = vec3(0., 1.5, 0.0);
28
+ float i1 = 1. - distance(HeatPosition, vec3(worldPosition.x + noiseT.x, worldPosition.y + noiseT.y, worldPosition.z + noiseT.z)) * 0.6;
29
+
30
+ float i2;
31
+ for(int i = 0; i < 2; i++) {
32
+ i2 += clamp(1. - distance(poi[i].xyz, worldPosition.xyz) * 0.05 * heat / poi[i].w + noiseT.x, 0., 1.);
33
+ };
34
+
35
+ vec4 heatmap = texture2D(texture2, vec2(pow(clamp(i2, 0.01, 0.99), intensity + sin(1. * 2.) * 0.01), 0.5));
36
+ gl_FragColor = heatmap;
37
+ }
@@ -0,0 +1,3 @@
1
+ var frag = /* glsl */"\nuniform sampler2D texture1;\nuniform sampler2D texture2;\n\nvarying vec2 vUv;\nvarying vec3 Position;\nvarying vec3 vNormal;\nvarying vec4 worldPosition;\nvoid main(void) {\n float time = 0.1;\n float intensity = 0.1;\n float heat = 0.9;\n float noiseLoop = 0.02;\n\n vec4 poi3 = vec4(66.708, 30, -102.708, 1.3);\n vec4 poi4 = vec4(-291.869, 30, -127.770, 0.9);\n\n vec4[] poi = vec4[](poi3,poi4);\n\n vec2 xy = vec2(worldPosition.x, worldPosition.y) + time * 0.9;\n vec2 xz = vec2(worldPosition.x, worldPosition.z) + time * 0.8;\n vec2 yz = vec2(worldPosition.y, worldPosition.z) + time * 0.9;\n\n float ix = clamp((abs(vNormal.x) - 0.4) * 2., 0., 1.);\n float iy = clamp((abs(vNormal.y) - 0.4) * 2., 0., 1.);\n\n vec4 noiseT = mix((mix(texture2D(texture1, xy * noiseLoop), texture2D(texture1, yz * noiseLoop), ix)), texture2D(texture1, xz * noiseLoop), iy);\n vec3 HeatPosition = vec3(0., 1.5, 0.0);\n float i1 = 1. - distance(HeatPosition, vec3(worldPosition.x + noiseT.x, worldPosition.y + noiseT.y, worldPosition.z + noiseT.z)) * 0.6;\n\n float i2;\n for(int i = 0; i < 2; i++) {\n i2 += clamp(1. - distance(poi[i].xyz, worldPosition.xyz) * 0.05 * heat / poi[i].w + noiseT.x, 0., 1.);\n };\n\n vec4 heatmap = texture2D(texture2, vec2(pow(clamp(i2, 0.01, 0.99), intensity + sin(1. * 2.) * 0.01), 0.5));\n gl_FragColor = heatmap;\n}\n";
2
+ export default frag;
3
+ //# sourceMappingURL=frag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["frag"],"sources":["../../../../../src/factory/unit/glsl/heat/frag.ts"],"sourcesContent":["const frag = /* glsl */`\nuniform sampler2D texture1;\nuniform sampler2D texture2;\n\nvarying vec2 vUv;\nvarying vec3 Position;\nvarying vec3 vNormal;\nvarying vec4 worldPosition;\nvoid main(void) {\n float time = 0.1;\n float intensity = 0.1;\n float heat = 0.9;\n float noiseLoop = 0.02;\n\n vec4 poi3 = vec4(66.708, 30, -102.708, 1.3);\n vec4 poi4 = vec4(-291.869, 30, -127.770, 0.9);\n\n vec4[] poi = vec4[](poi3,poi4);\n\n vec2 xy = vec2(worldPosition.x, worldPosition.y) + time * 0.9;\n vec2 xz = vec2(worldPosition.x, worldPosition.z) + time * 0.8;\n vec2 yz = vec2(worldPosition.y, worldPosition.z) + time * 0.9;\n\n float ix = clamp((abs(vNormal.x) - 0.4) * 2., 0., 1.);\n float iy = clamp((abs(vNormal.y) - 0.4) * 2., 0., 1.);\n\n vec4 noiseT = mix((mix(texture2D(texture1, xy * noiseLoop), texture2D(texture1, yz * noiseLoop), ix)), texture2D(texture1, xz * noiseLoop), iy);\n vec3 HeatPosition = vec3(0., 1.5, 0.0);\n float i1 = 1. - distance(HeatPosition, vec3(worldPosition.x + noiseT.x, worldPosition.y + noiseT.y, worldPosition.z + noiseT.z)) * 0.6;\n\n float i2;\n for(int i = 0; i < 2; i++) {\n i2 += clamp(1. - distance(poi[i].xyz, worldPosition.xyz) * 0.05 * heat / poi[i].w + noiseT.x, 0., 1.);\n };\n\n vec4 heatmap = texture2D(texture2, vec2(pow(clamp(i2, 0.01, 0.99), intensity + sin(1. * 2.) * 0.01), 0.5));\n gl_FragColor = heatmap;\n}\n`\n\nexport default frag"],"mappings":"AAAA,IAAMA,IAAI,GAAG,04CAsCZ;AAED,eAAeA,IAAI"}
@@ -0,0 +1,2 @@
1
+ declare const ver = "\nuniform vec2 uvScale;\nvarying vec2 vUv;\nvarying vec3 vNormal;\nvarying vec3 Position;\nvarying vec4 worldPosition;\n\nvoid main() {\n vUv = uvScale * uv;\n Position = position;\n vNormal = normalize(normal);\n worldPosition = modelMatrix * vec4(position, 1.0);\n vec4 mvPosition = modelViewMatrix * vec4(position, 1.0);\n gl_Position = projectionMatrix * mvPosition;\n}\n";
2
+ export default ver;
@@ -0,0 +1,15 @@
1
+ uniform vec2 uvScale;
2
+ varying vec2 vUv;
3
+ varying vec3 vNormal;
4
+ varying vec3 Position;
5
+ varying vec4 worldPosition;
6
+
7
+ void main() {
8
+ vUv = uvScale * uv;
9
+ Position = position;
10
+ vNormal = normalize(normal);
11
+ worldPosition = modelMatrix * vec4(position, 1.0);
12
+ vec4 mvPosition = modelViewMatrix * vec4(position, 1.0);
13
+ gl_Position = projectionMatrix * mvPosition;
14
+
15
+ }
@@ -0,0 +1,3 @@
1
+ var ver = /* glsl */"\nuniform vec2 uvScale;\nvarying vec2 vUv;\nvarying vec3 vNormal;\nvarying vec3 Position;\nvarying vec4 worldPosition;\n\nvoid main() {\n vUv = uvScale * uv;\n Position = position;\n vNormal = normalize(normal);\n worldPosition = modelMatrix * vec4(position, 1.0);\n vec4 mvPosition = modelViewMatrix * vec4(position, 1.0);\n gl_Position = projectionMatrix * mvPosition;\n}\n";
2
+ export default ver;
3
+ //# sourceMappingURL=ver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ver"],"sources":["../../../../../src/factory/unit/glsl/heat/ver.ts"],"sourcesContent":["const ver = /* glsl */ `\nuniform vec2 uvScale;\nvarying vec2 vUv;\nvarying vec3 vNormal;\nvarying vec3 Position;\nvarying vec4 worldPosition;\n\nvoid main() {\n vUv = uvScale * uv;\n Position = position;\n vNormal = normalize(normal);\n worldPosition = modelMatrix * vec4(position, 1.0);\n vec4 mvPosition = modelViewMatrix * vec4(position, 1.0);\n gl_Position = projectionMatrix * mvPosition;\n}\n`\n\nexport default ver"],"mappings":"AAAA,IAAMA,GAAG,GAAG,yYAeX;AAED,eAAeA,GAAG"}
@@ -4,5 +4,9 @@ declare class HandlerManage {
4
4
  constructor(app: Anov3D);
5
5
  clickPerson(params: any): void;
6
6
  clickBar(params: any): void;
7
+ clickCamera(params: any): void;
8
+ click(name: any): void;
9
+ setInspectTarget(): void;
10
+ continueInspect(): void;
7
11
  }
8
12
  export default HandlerManage;
@@ -14,25 +14,23 @@ var HandlerManage = /*#__PURE__*/function () {
14
14
  _createClass(HandlerManage, [{
15
15
  key: "clickPerson",
16
16
  value: function clickPerson(params) {
17
- // 根据名称动态获取Mesh对象
18
- var object = this.app.sceneControl.scene.getObjectByName(params.id);
19
-
20
- // 触发事件
21
- if (object) {
22
- console.log('Mesh对象已找到!');
23
- // 手动调用Mesh对象上的点击事件处理函数
24
- object.dispatchEvent({
25
- type: 'click'
26
- });
27
- } else {
28
- console.log('未找到Mesh对象!');
29
- }
17
+ this.click(params.id);
30
18
  }
31
19
  }, {
32
20
  key: "clickBar",
33
21
  value: function clickBar(params) {
22
+ this.click(params.title);
23
+ }
24
+ }, {
25
+ key: "clickCamera",
26
+ value: function clickCamera(params) {
27
+ this.click(params.name);
28
+ }
29
+ }, {
30
+ key: "click",
31
+ value: function click(name) {
34
32
  // 根据名称动态获取Mesh对象
35
- var object = this.app.sceneControl.scene.getObjectByName(params.title);
33
+ var object = this.app.sceneControl.scene.getObjectByName(name);
36
34
 
37
35
  // 触发事件
38
36
  if (object) {
@@ -45,6 +43,14 @@ var HandlerManage = /*#__PURE__*/function () {
45
43
  console.log('未找到Mesh对象!');
46
44
  }
47
45
  }
46
+ }, {
47
+ key: "setInspectTarget",
48
+ value: function setInspectTarget() {
49
+ console.log();
50
+ }
51
+ }, {
52
+ key: "continueInspect",
53
+ value: function continueInspect() {}
48
54
  }]);
49
55
  return HandlerManage;
50
56
  }();
@@ -1 +1 @@
1
- {"version":3,"names":["HandlerManage","app","params","object","sceneControl","scene","getObjectByName","id","console","log","dispatchEvent","type","title"],"sources":["../../../src/factory/unit/handle.ts"],"sourcesContent":["import { regionMap } from '../regionData'\nimport type Anov3D from '../../sdkEntry'\n\nclass HandlerManage {\n app: Anov3D\n constructor(app: Anov3D) {\n this.app = app\n }\n\n clickPerson(params: any) {\n // 根据名称动态获取Mesh对象\n const object = this.app.sceneControl.scene!.getObjectByName(params.id)\n\n // 触发事件\n if (object) {\n console.log('Mesh对象已找到!')\n // 手动调用Mesh对象上的点击事件处理函数\n object.dispatchEvent({ type: 'click' })\n }\n else {\n console.log('未找到Mesh对象!')\n }\n }\n\n clickBar(params: any) {\n // 根据名称动态获取Mesh对象\n const object = this.app.sceneControl.scene!.getObjectByName(params.title)\n\n // 触发事件\n if (object) {\n console.log('Mesh对象已找到!')\n // 手动调用Mesh对象上的点击事件处理函数\n object.dispatchEvent({ type: 'click' })\n }\n else {\n console.log('未找到Mesh对象!')\n }\n }\n}\n\nexport default HandlerManage\n"],"mappings":";;;;;;;IAGMA,aAAa;EAEjB,uBAAYC,GAAW,EAAE;IAAA;IAAA;IACvB,IAAI,CAACA,GAAG,GAAGA,GAAG;EAChB;EAAC;IAAA;IAAA,OAED,qBAAYC,MAAW,EAAE;MACvB;MACA,IAAMC,MAAM,GAAG,IAAI,CAACF,GAAG,CAACG,YAAY,CAACC,KAAK,CAAEC,eAAe,CAACJ,MAAM,CAACK,EAAE,CAAC;;MAEtE;MACA,IAAIJ,MAAM,EAAE;QACVK,OAAO,CAACC,GAAG,CAAC,YAAY,CAAC;QACzB;QACAN,MAAM,CAACO,aAAa,CAAC;UAAEC,IAAI,EAAE;QAAQ,CAAC,CAAC;MACzC,CAAC,MACI;QACHH,OAAO,CAACC,GAAG,CAAC,YAAY,CAAC;MAC3B;IACF;EAAC;IAAA;IAAA,OAED,kBAASP,MAAW,EAAE;MACpB;MACA,IAAMC,MAAM,GAAG,IAAI,CAACF,GAAG,CAACG,YAAY,CAACC,KAAK,CAAEC,eAAe,CAACJ,MAAM,CAACU,KAAK,CAAC;;MAEzE;MACA,IAAIT,MAAM,EAAE;QACVK,OAAO,CAACC,GAAG,CAAC,YAAY,CAAC;QACzB;QACAN,MAAM,CAACO,aAAa,CAAC;UAAEC,IAAI,EAAE;QAAQ,CAAC,CAAC;MACzC,CAAC,MACI;QACHH,OAAO,CAACC,GAAG,CAAC,YAAY,CAAC;MAC3B;IACF;EAAC;EAAA;AAAA;AAGH,eAAeT,aAAa"}
1
+ {"version":3,"names":["HandlerManage","app","params","click","id","title","name","object","sceneControl","scene","getObjectByName","console","log","dispatchEvent","type"],"sources":["../../../src/factory/unit/handle.ts"],"sourcesContent":["import { regionMap } from '../regionData'\nimport type Anov3D from '../../sdkEntry'\n\nclass HandlerManage {\n app: Anov3D\n constructor(app: Anov3D) {\n this.app = app\n }\n\n clickPerson(params: any) {\n this.click(params.id)\n }\n\n clickBar(params: any) {\n this.click(params.title)\n }\n\n clickCamera(params: any) {\n this.click(params.name)\n }\n\n click(name) {\n // 根据名称动态获取Mesh对象\n const object = this.app.sceneControl.scene!.getObjectByName(name)\n\n // 触发事件\n if (object) {\n console.log('Mesh对象已找到!')\n // 手动调用Mesh对象上的点击事件处理函数\n object.dispatchEvent({ type: 'click' })\n }\n else {\n console.log('未找到Mesh对象!')\n }\n }\n\n setInspectTarget() {\n console.log()\n }\n\n continueInspect() {}\n}\n\nexport default HandlerManage\n"],"mappings":";;;;;;;IAGMA,aAAa;EAEjB,uBAAYC,GAAW,EAAE;IAAA;IAAA;IACvB,IAAI,CAACA,GAAG,GAAGA,GAAG;EAChB;EAAC;IAAA;IAAA,OAED,qBAAYC,MAAW,EAAE;MACvB,IAAI,CAACC,KAAK,CAACD,MAAM,CAACE,EAAE,CAAC;IACvB;EAAC;IAAA;IAAA,OAED,kBAASF,MAAW,EAAE;MACpB,IAAI,CAACC,KAAK,CAACD,MAAM,CAACG,KAAK,CAAC;IAC1B;EAAC;IAAA;IAAA,OAED,qBAAYH,MAAW,EAAE;MACvB,IAAI,CAACC,KAAK,CAACD,MAAM,CAACI,IAAI,CAAC;IACzB;EAAC;IAAA;IAAA,OAED,eAAMA,IAAI,EAAE;MACV;MACA,IAAMC,MAAM,GAAG,IAAI,CAACN,GAAG,CAACO,YAAY,CAACC,KAAK,CAAEC,eAAe,CAACJ,IAAI,CAAC;;MAEjE;MACA,IAAIC,MAAM,EAAE;QACVI,OAAO,CAACC,GAAG,CAAC,YAAY,CAAC;QACzB;QACAL,MAAM,CAACM,aAAa,CAAC;UAAEC,IAAI,EAAE;QAAQ,CAAC,CAAC;MACzC,CAAC,MACI;QACHH,OAAO,CAACC,GAAG,CAAC,YAAY,CAAC;MAC3B;IACF;EAAC;IAAA;IAAA,OAED,4BAAmB;MACjBD,OAAO,CAACC,GAAG,EAAE;IACf;EAAC;IAAA;IAAA,OAED,2BAAkB,CAAC;EAAC;EAAA;AAAA;AAGtB,eAAeZ,aAAa"}
@@ -14,6 +14,8 @@ import CylinderManage from "./cylinder";
14
14
  import PoiManage from "./poi";
15
15
  import CircleManage from "./circle";
16
16
  import AreaBoundingBoxManage from "./areaBoundingBox";
17
+ import Inspection from "./inspection";
18
+ import CameraPoi from "./CameraPoi";
17
19
  var emitter = utils.emitter;
18
20
 
19
21
  // 临时优化
@@ -44,22 +46,34 @@ var showSmartInspection = function showSmartInspection() {
44
46
  var closeSmartInspection = function closeSmartInspection() {
45
47
  this.inspection.hide();
46
48
  };
49
+ var closeCameraPoiInspection = function closeCameraPoiInspection() {
50
+ var _this$cameraPoi;
51
+ (_this$cameraPoi = this.cameraPoi) === null || _this$cameraPoi === void 0 ? void 0 : _this$cameraPoi.remove();
52
+ };
53
+ var showCameraPoiInspection = function showCameraPoiInspection() {
54
+ var _this$cameraPoi2;
55
+ (_this$cameraPoi2 = this.cameraPoi) === null || _this$cameraPoi2 === void 0 ? void 0 : _this$cameraPoi2.generateObject();
56
+ };
47
57
  var toggleOverview = function toggleOverview() {
48
58
  showOverview.apply(this);
49
59
  closePeopleManagemen.apply(this);
50
60
  closeSmartInspection.apply(this);
61
+ closeCameraPoiInspection.apply(this);
51
62
  };
52
63
  var togglePeopleManagemen = function togglePeopleManagemen() {
53
64
  showPeopleManagemen.apply(this);
54
65
  closeOverview.apply(this);
55
66
  closeSmartInspection.apply(this);
67
+ closeCameraPoiInspection.apply(this);
56
68
  };
57
69
  var toggleSmartInspection = function toggleSmartInspection() {
58
70
  showSmartInspection.apply(this);
59
71
  closeOverview.apply(this);
60
72
  closePeopleManagemen.apply(this);
73
+ closeCameraPoiInspection.apply(this);
61
74
  };
62
75
  var toggleSecurityOperation = function toggleSecurityOperation() {
76
+ showCameraPoiInspection.apply(this);
63
77
  closeOverview.apply(this);
64
78
  closePeopleManagemen.apply(this);
65
79
  closeSmartInspection.apply(this);
@@ -93,11 +107,11 @@ export var toggleTag = (_toggleTag = {}, _defineProperty(_toggleTag, SceneTag.ov
93
107
  }), _defineProperty(_toggleTag, SceneTag['security-operation'], function () {
94
108
  this.tag = SceneTag['security-operation'];
95
109
  this.toggleSceneStyle(SceneStyle.real);
96
- this.cameraUtil.set({
97
- position: [350.99, 39.07, 194.30],
98
- target: [401.89, -52.54, 3.04],
99
- duration: 2
100
- });
110
+ // this.cameraUtil.set({
111
+ // position: [350.99, 39.07, 194.30],
112
+ // target: [401.89, -52.54, 3.04],
113
+ // duration: 2,
114
+ // })
101
115
  toggleSecurityOperation.apply(this);
102
116
  }), _toggleTag);
103
117
  var handleUnit = function handleUnit() {
@@ -140,12 +154,10 @@ var handleUnit = function handleUnit() {
140
154
  var areaBoundingBox = new AreaBoundingBoxManage();
141
155
  areaBoundingBox.generateBoundingBox();
142
156
  this.areaBoundingBox = areaBoundingBox;
143
-
144
- // const inspection = new Inspection(this)
145
- // this.inspection = inspection
146
-
147
- // const cameraPoi = new CameraPoi(this)
148
- // this.cameraPoi = cameraPoi
157
+ var inspection = new Inspection(this);
158
+ this.inspection = inspection;
159
+ var cameraPoi = new CameraPoi(this);
160
+ this.cameraPoi = cameraPoi;
149
161
 
150
162
  // some global events handle
151
163
  this.addEventListener('peoplemanagement-camera-out', function (args) {
@@ -155,8 +167,6 @@ var handleUnit = function handleUnit() {
155
167
  });
156
168
  _this.circle.remove();
157
169
  });
158
-
159
- //
160
170
  emitter.on('peoplemanagement-control-maxDistance', function () {
161
171
  sendToMessage(MessageType.Event, 'onCancel', EMessageStatus.Success, undefined, {});
162
172
  });
@@ -1 +1 @@
1
- {"version":3,"names":["utils","SceneStyle","SceneTag","MessageType","sendToMessage","EMessageStatus","WallManage","CylinderManage","PoiManage","CircleManage","AreaBoundingBoxManage","emitter","showOverview","poi","generatePoi","closeOverview","wall","wallMesh","forEach","mesh","visible","remove","showPeopleManagemen","cylinder","cylinderMesh","closePeopleManagemen","circle","showSmartInspection","inspection","show","closeSmartInspection","hide","toggleOverview","apply","togglePeopleManagemen","toggleSmartInspection","toggleSecurityOperation","toggleTag","overview","tag","toggleSceneStyle","real","tech","cameraUtil","set","position","target","duration","handleUnit","generateWall","generateCylinder","on","data","Event","Success","undefined","type","generateCircle","belongTo","areaBoundingBox","generateBoundingBox","addEventListener","args","item"],"sources":["../../../src/factory/unit/index.ts"],"sourcesContent":["import { utils } from '@anov/3d-core'\nimport { SceneStyle, SceneTag } from '../utils/constant'\nimport { MessageType, sendToMessage } from '../../utils/messageFn'\nimport { EMessageStatus } from '../../messageStatus'\nimport WallManage from './wall'\nimport CylinderManage from './cylinder'\nimport PoiManage from './poi'\nimport CircleManage from './circle'\nimport AreaBoundingBoxManage from './areaBoundingBox'\nimport Inspection from './inspection'\nimport CameraPoi from './CameraPoi'\n\nconst { emitter } = utils\n\n// 临时优化\n\nconst showOverview = function () {\n this.poi.generatePoi()\n}\n\nconst closeOverview = function () {\n this.wall.wallMesh.forEach((mesh) => {\n mesh.visible = false\n })\n\n this.poi.remove()\n}\n\nconst showPeopleManagemen = function () {\n this.cylinder.cylinderMesh.forEach((mesh) => {\n mesh.visible = true\n })\n}\n\nconst closePeopleManagemen = function () {\n this.cylinder.cylinderMesh.forEach((mesh) => {\n mesh.visible = false\n })\n\n this.circle.remove()\n}\n\nconst showSmartInspection = function () {\n this.inspection.show()\n}\n\nconst closeSmartInspection = function () {\n this.inspection.hide()\n}\n\nconst toggleOverview = function () {\n showOverview.apply(this)\n closePeopleManagemen.apply(this)\n closeSmartInspection.apply(this)\n}\n\nconst togglePeopleManagemen = function () {\n showPeopleManagemen.apply(this)\n closeOverview.apply(this)\n closeSmartInspection.apply(this)\n}\n\nconst toggleSmartInspection = function () {\n showSmartInspection.apply(this)\n closeOverview.apply(this)\n closePeopleManagemen.apply(this)\n}\n\nconst toggleSecurityOperation = function () {\n closeOverview.apply(this)\n closePeopleManagemen.apply(this)\n closeSmartInspection.apply(this)\n}\n\nexport const toggleTag = {\n [SceneTag.overview]() {\n this.tag = SceneTag.overview\n this.toggleSceneStyle(SceneStyle.real)\n // this.cameraUtil.set({\n // position: [0, 200, 400],\n // target: [0, 0, 0],\n // })\n\n toggleOverview.apply(this)\n },\n [SceneTag['people-management']]() {\n this.tag = SceneTag['people-management']\n this.toggleSceneStyle(SceneStyle.tech)\n // this.cameraUtil.set({\n // position: [150, 300, 400],\n // target: [0, 0, 0],\n // })\n\n togglePeopleManagemen.apply(this)\n },\n [SceneTag['smart-inspection']]() {\n this.tag = SceneTag['smart-inspection']\n this.toggleSceneStyle(SceneStyle.real)\n this.cameraUtil.set({\n position: [0, 200, 400],\n target: [0, 0, 0],\n })\n\n toggleSmartInspection.apply(this)\n },\n [SceneTag['security-operation']]() {\n this.tag = SceneTag['security-operation']\n this.toggleSceneStyle(SceneStyle.real)\n this.cameraUtil.set({\n position: [350.99, 39.07, 194.30],\n target: [401.89, -52.54, 3.04],\n duration: 2,\n })\n\n toggleSecurityOperation.apply(this)\n },\n}\n\nconst handleUnit = function () {\n // 围栏\n const wall = new WallManage(this, { visible: false })\n wall.generateWall()\n this.wall = wall\n\n // 圆柱\n const cylinder = new CylinderManage(this, {\n visible: false,\n })\n cylinder.generateCylinder()\n\n this.cylinder = cylinder\n\n // POI\n const poi = new PoiManage(this)\n poi.generatePoi()\n this.poi = poi\n\n // people\n const circle = new CircleManage(this)\n this.circle = circle\n\n emitter.on('peoplemanagement-camera-enter', (data: any) => {\n sendToMessage(MessageType.Event, 'onClick', EMessageStatus.Success, undefined, {\n type: 'Bar',\n ...data,\n })\n this.circle.generateCircle(data?.belongTo)\n })\n\n emitter.on('peoplemanagement-person-click', (data: any) => {\n sendToMessage(MessageType.Event, 'onClick', EMessageStatus.Success, undefined, {\n type: 'POI',\n ...data,\n })\n })\n\n // boundingBox\n const areaBoundingBox = new AreaBoundingBoxManage()\n areaBoundingBox.generateBoundingBox()\n this.areaBoundingBox = areaBoundingBox\n\n // const inspection = new Inspection(this)\n // this.inspection = inspection\n\n // const cameraPoi = new CameraPoi(this)\n // this.cameraPoi = cameraPoi\n\n // some global events handle\n this.addEventListener('peoplemanagement-camera-out', (args) => {\n if (this.tag !== SceneTag['people-management'])\n return\n cylinder.cylinderMesh.forEach((item) => {\n item.visible = true\n })\n this.circle.remove()\n })\n\n //\n emitter.on('peoplemanagement-control-maxDistance', () => {\n sendToMessage(MessageType.Event, 'onCancel', EMessageStatus.Success, undefined, { })\n })\n}\n\nexport default handleUnit\n"],"mappings":"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"}
1
+ {"version":3,"names":["utils","SceneStyle","SceneTag","MessageType","sendToMessage","EMessageStatus","WallManage","CylinderManage","PoiManage","CircleManage","AreaBoundingBoxManage","Inspection","CameraPoi","emitter","showOverview","poi","generatePoi","closeOverview","wall","wallMesh","forEach","mesh","visible","remove","showPeopleManagemen","cylinder","cylinderMesh","closePeopleManagemen","circle","showSmartInspection","inspection","show","closeSmartInspection","hide","closeCameraPoiInspection","cameraPoi","showCameraPoiInspection","generateObject","toggleOverview","apply","togglePeopleManagemen","toggleSmartInspection","toggleSecurityOperation","toggleTag","overview","tag","toggleSceneStyle","real","tech","cameraUtil","set","position","target","handleUnit","generateWall","generateCylinder","on","data","Event","Success","undefined","type","generateCircle","belongTo","areaBoundingBox","generateBoundingBox","addEventListener","args","item"],"sources":["../../../src/factory/unit/index.ts"],"sourcesContent":["import { utils } from '@anov/3d-core'\nimport { SceneStyle, SceneTag } from '../utils/constant'\n\nimport { MessageType, sendToMessage } from '../../utils/messageFn'\nimport { EMessageStatus } from '../../messageStatus'\nimport WallManage from './wall'\nimport CylinderManage from './cylinder'\nimport PoiManage from './poi'\nimport CircleManage from './circle'\nimport AreaBoundingBoxManage from './areaBoundingBox'\nimport Inspection from './inspection'\nimport CameraPoi from './CameraPoi'\n\nconst { emitter } = utils\n\n// 临时优化\n\nconst showOverview = function () {\n this.poi.generatePoi()\n}\n\nconst closeOverview = function () {\n this.wall.wallMesh.forEach((mesh) => {\n mesh.visible = false\n })\n\n this.poi.remove()\n}\n\nconst showPeopleManagemen = function () {\n this.cylinder.cylinderMesh.forEach((mesh) => {\n mesh.visible = true\n })\n}\n\nconst closePeopleManagemen = function () {\n this.cylinder.cylinderMesh.forEach((mesh) => {\n mesh.visible = false\n })\n\n this.circle.remove()\n}\n\nconst showSmartInspection = function () {\n this.inspection.show()\n}\n\nconst closeSmartInspection = function () {\n this.inspection.hide()\n}\n\nconst closeCameraPoiInspection = function () {\n this.cameraPoi?.remove()\n}\nconst showCameraPoiInspection = function () {\n this.cameraPoi?.generateObject()\n}\n\nconst toggleOverview = function () {\n showOverview.apply(this)\n closePeopleManagemen.apply(this)\n closeSmartInspection.apply(this)\n closeCameraPoiInspection.apply(this)\n}\n\nconst togglePeopleManagemen = function () {\n showPeopleManagemen.apply(this)\n closeOverview.apply(this)\n closeSmartInspection.apply(this)\n closeCameraPoiInspection.apply(this)\n}\n\nconst toggleSmartInspection = function () {\n showSmartInspection.apply(this)\n closeOverview.apply(this)\n closePeopleManagemen.apply(this)\n closeCameraPoiInspection.apply(this)\n}\n\nconst toggleSecurityOperation = function () {\n showCameraPoiInspection.apply(this)\n closeOverview.apply(this)\n closePeopleManagemen.apply(this)\n closeSmartInspection.apply(this)\n}\n\nexport const toggleTag = {\n [SceneTag.overview]() {\n this.tag = SceneTag.overview\n this.toggleSceneStyle(SceneStyle.real)\n // this.cameraUtil.set({\n // position: [0, 200, 400],\n // target: [0, 0, 0],\n // })\n\n toggleOverview.apply(this)\n },\n [SceneTag['people-management']]() {\n this.tag = SceneTag['people-management']\n this.toggleSceneStyle(SceneStyle.tech)\n // this.cameraUtil.set({\n // position: [150, 300, 400],\n // target: [0, 0, 0],\n // })\n\n togglePeopleManagemen.apply(this)\n },\n [SceneTag['smart-inspection']]() {\n this.tag = SceneTag['smart-inspection']\n this.toggleSceneStyle(SceneStyle.real)\n this.cameraUtil.set({\n position: [0, 200, 400],\n target: [0, 0, 0],\n })\n\n toggleSmartInspection.apply(this)\n },\n [SceneTag['security-operation']]() {\n this.tag = SceneTag['security-operation']\n this.toggleSceneStyle(SceneStyle.real)\n // this.cameraUtil.set({\n // position: [350.99, 39.07, 194.30],\n // target: [401.89, -52.54, 3.04],\n // duration: 2,\n // })\n toggleSecurityOperation.apply(this)\n },\n}\n\nconst handleUnit = function () {\n // 围栏\n const wall = new WallManage(this, { visible: false })\n wall.generateWall()\n this.wall = wall\n\n // 圆柱\n const cylinder = new CylinderManage(this, {\n visible: false,\n })\n cylinder.generateCylinder()\n\n this.cylinder = cylinder\n\n // POI\n const poi = new PoiManage(this)\n poi.generatePoi()\n this.poi = poi\n\n // people\n const circle = new CircleManage(this)\n this.circle = circle\n\n emitter.on('peoplemanagement-camera-enter', (data: any) => {\n sendToMessage(MessageType.Event, 'onClick', EMessageStatus.Success, undefined, {\n type: 'Bar',\n ...data,\n })\n this.circle.generateCircle(data?.belongTo)\n })\n\n emitter.on('peoplemanagement-person-click', (data: any) => {\n sendToMessage(MessageType.Event, 'onClick', EMessageStatus.Success, undefined, {\n type: 'POI',\n ...data,\n })\n })\n\n // boundingBox\n const areaBoundingBox = new AreaBoundingBoxManage()\n areaBoundingBox.generateBoundingBox()\n this.areaBoundingBox = areaBoundingBox\n\n const inspection = new Inspection(this)\n this.inspection = inspection\n\n const cameraPoi = new CameraPoi(this)\n this.cameraPoi = cameraPoi\n\n // some global events handle\n this.addEventListener('peoplemanagement-camera-out', (args) => {\n if (this.tag !== SceneTag['people-management'])\n return\n cylinder.cylinderMesh.forEach((item) => {\n item.visible = true\n })\n this.circle.remove()\n })\n\n emitter.on('peoplemanagement-control-maxDistance', () => {\n sendToMessage(MessageType.Event, 'onCancel', EMessageStatus.Success, undefined, { })\n })\n}\n\nexport default handleUnit\n"],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { LineCurve3, Vector3 } from '@anov/3d-core';
2
+ import { Css2DPoi } from '@anov/3d-ability';
3
+ declare class InspectionObject {
4
+ model: any;
5
+ private inspection;
6
+ private control;
7
+ private tempLine;
8
+ private isLock;
9
+ private isAnimation;
10
+ css2d: Css2DPoi;
11
+ constructor(inspection: any);
12
+ private loadModel;
13
+ startMove(curve: any): Promise<void>;
14
+ get getSportsProgress(): any;
15
+ private getTargetQuaternion;
16
+ private getTargetQuaternionV2;
17
+ private checkAnimation;
18
+ generateTempPath(currentPosition: Vector3, targetPosition: Vector3): LineCurve3;
19
+ private startRotate;
20
+ gotoTarget(targetPosition: Vector3, targetProgress: number): void;
21
+ setSpeed(speed: number): void;
22
+ stop(): void;
23
+ contineMove(): void;
24
+ dispose(): void;
25
+ }
26
+ export default InspectionObject;