@anov/3d 0.0.128 → 0.0.129

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.
@@ -374,6 +374,16 @@ var Factory3D = /*#__PURE__*/function () {
374
374
  // group.add(poi01)
375
375
  // group.add(poi02)
376
376
 
377
+ var img3 = document.createElement('img');
378
+ img3.src = "".concat(usePath, "demo.png");
379
+ var poi03 = new SpritePoi(img3, {
380
+ width: 100 * 2,
381
+ height: 40 * 2
382
+ });
383
+ poi03.layers.set(2);
384
+ group.add(poi03);
385
+ poi03.scale.set(80, 40, 1);
386
+ poi03.position.set(-290.869, 2, -127.770);
377
387
  _this2.scene.add(group);
378
388
  _this2.thermaLimaging = group;
379
389
  return gltf;
@@ -1 +1 @@
1
- {"version":3,"names":["AdditiveBlending","Color","InteractionManager","LoadingManager","Mesh","MeshBasicMaterial","MeshLambertMaterial","ModelLoader","PlaneGeometry","RepeatWrapping","ShaderMaterial","TextureLoader","Vector2","Vector3","lib","use","utils","Camera","SpritePoi","MessageType","sendToMessage","EMessageStatus","finirMaterialV1","handleUnit","toggleTag","globalEvents","SceneStyle","SceneTag","factoryGlobalObject","createRiseLayer","targetProgresspoints","material","uniforms","frag","vert","loadingManager","load","rgbeLoader","RGBELoader","emitter","resourcePath","resourcePath2","usePath","Factory3D","option","overview","real","Map","globalEventsAgent","setFactory","scene","loadCSS","url","callback","xhr","XMLHttpRequest","open","onreadystatechange","readyState","status","blob","Blob","responseText","type","blobURL","URL","createObjectURL","link","document","createElement","rel","href","crossOrigin","head","appendChild","console","log","error","statusText","onerror","err","send","Promise","resolve","cameraUtil","camera","controls","control","layers","set","loadGLTF","gltf","realGroundModel","mesh","traverse","child","enable","castShadow","receiveShadow","name","treesMesh","push","grasslandMesh","massifMesh","add","realTreeModel","interactionManager","renderer","domElement","storeManagement","useframe","update","loadModel","onLoad","toneMappingExposure","visible","style","realModl","call","group","_Time","value","geometry","plane","rotation","x","Math","PI","position","renderOrder","scale","text","wrapS","wrapT","repeat","blending","transparent","opacity","depthTest","map","offset","tech","techModel","color","white","whiteModel","targerMeshName","Object","values","v","lookAt","vertexShader","fragmentShader","texture1","texture2","uvScale","includes","window","app","envServer","scaleRatio","div","img","src","span","innerText","top","left","transform","fontSize","fontWeight","span2","poi01","width","height","div2","img2","span3","span4","poi02","thermaLimaging","pipeline","params","background","tag","apply","forEach","eventKey","on","args","eventHandleFn","get","fn","viewType","cutoutCamera","inspection","minCamera","mapCamera","mainCamera","emit","Event","Success","undefined","fov","updateProjectionMatrix","eventName","handleFn"],"sources":["../../src/factory/3d.ts"],"sourcesContent":["import type { DataTexture, Group, Material, Object3D, OrbitControls, SceneControl } from '@anov/3d-core'\nimport { AdditiveBlending, BoxGeometry, Color, EquirectangularReflectionMapping, InteractionManager, LoadingManager, Mesh, MeshBasicMaterial, MeshLambertMaterial, ModelLoader, PlaneGeometry, RepeatWrapping, SRGBColorSpace, ShaderChunk, ShaderMaterial, Sprite, SpriteMaterial, TextureLoader, Vector2, Vector3, Vector4, lib, sRGBEncoding, use, utils } from '@anov/3d-core'\nimport { Camera, SpritePoi, createBloomSelectedTool, initPostEffects } from '@anov/3d-ability'\nimport { MessageType, sendToMessage } from '../utils/messageFn'\nimport { EMessageStatus } from '../messageStatus'\nimport { finirMaterialV1 } from './utils/finirMaterial'\nimport handleUnit, { toggleTag } from './unit'\nimport type WallManage from './unit/wall'\nimport type LineManage from './unit/line'\nimport type CylinderManage from './unit/cylinder'\nimport type PoiManage from './unit/poi'\nimport type CircleManage from './unit/circle'\nimport type DistrictLineManage from './unit/districtLine'\nimport type AreaBoundingBoxManage from './unit/areaBoundingBox'\nimport type Inspection from './unit/inspection'\nimport { globalEvents } from './globalData'\nimport { SceneStyle, SceneTag } from './utils/constant'\nimport switchMaterial from './utils/switchMaterial'\nimport factoryGlobalObject from './globalControl'\nimport { debounce } from './utils'\nimport createRiseLayer from './unit/layer/rise'\nimport { targetProgresspoints } from './unit/inspection/lineData'\nimport { material, uniforms } from './utils/ground'\n\nimport frag from './unit/glsl/heat/frag'\nimport vert from './unit/glsl/heat/ver'\n\ntype factory3dOption = {\n model: string\n environment: string\n decoderPath?: string\n controls?: any\n}\n\nexport const loadingManager = new LoadingManager()\nconst load = new ModelLoader(loadingManager)\nconst rgbeLoader = new lib.RGBELoader(loadingManager)\nconst { emitter } = utils\n\nconst resourcePath = './'\nconst resourcePath2 = 'http://172.16.223.163:9000/anov-prod/anov-3d/factory/example/'\n\nexport const usePath = process.env.ENV === 'dev' ? resourcePath : resourcePath2\n\nclass Factory3D {\n position: Vector3 = new Vector3(0, 0, 0)\n scene: SceneControl\n control: OrbitControls\n cameraUtil: Camera\n\n public loadingManager = loadingManager\n public tag = SceneTag.overview\n public style: SceneStyle = SceneStyle.real\n private option: factory3dOption\n wall: WallManage\n line: LineManage\n cylinder: CylinderManage\n poi: PoiManage\n circle: CircleManage\n areaBoundingBox: AreaBoundingBoxManage\n inspection: Inspection\n districtLine: DistrictLineManage\n\n usePath = usePath\n\n private pipeline: Group\n private realModl: Group\n private techModel: Group\n private whiteModel: Group\n private realGroundModel: Group\n private thermaLimaging: Group\n private eventHandleFn: Map<string, ((args?: any) => void)[]> = new Map()\n private boxSkeyTexture: DataTexture\n private treesMesh: Array<Mesh> = []\n private grasslandMesh: Array<Mesh> = []\n private massifMesh: Array<Mesh> = []\n\n private isLoad = false\n\n mainCamera: any\n\n interactionManager: InteractionManager\n\n constructor(option: factory3dOption) {\n this.option = option\n this.globalEventsAgent()\n factoryGlobalObject.setFactory(this)\n }\n\n /**\n * render factory 3d scene\n */\n renderScene(scene: SceneControl) {\n const loadCSS = (url, callback) => {\n const xhr = new XMLHttpRequest()\n xhr.open('GET', url, true)\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status >= 200 && xhr.status < 300) {\n const blob = new Blob([xhr.responseText], { type: 'text/css' })\n const blobURL = URL.createObjectURL(blob)\n\n const link = document.createElement('link')\n link.rel = 'stylesheet'\n link.href = blobURL\n link.crossOrigin = 'anonymous'\n document.head.appendChild(link)\n\n if (typeof callback === 'function')\n callback()\n\n console.log(`CSS 加载成功: ${url}`)\n }\n else {\n console.error(`Failed to load CSS: ${url}`, xhr.statusText)\n }\n }\n }\n xhr.onerror = function (err) {\n console.error(`Failed to load CSS: ${url}`, err)\n }\n xhr.send()\n }\n\n return new Promise((resolve) => {\n loadCSS(`${resourcePath2}result.css`, () => {\n this.scene = scene\n\n this.cameraUtil = new Camera(scene.camera!, scene.controls!, scene)\n this.control = scene.controls!\n scene.camera.layers.set(0)\n\n load.loadGLTF(`${this.usePath}landScap2.glb`, false, true, './draco/', (gltf) => {\n this.realGroundModel = (gltf.scene) as Group\n\n // this.interactionManager.add(gltf.scene)\n\n // gltf.scene.addEventListener('click', (value) => {\n // console.log(value.point)\n // this.position = value.point\n // })\n\n let mesh, material\n gltf.scene.traverse((child) => {\n child.layers.enable(5)\n\n if (child.type === 'Mesh') {\n child.castShadow = true\n child.receiveShadow = true\n\n mesh = child as Mesh\n material = mesh.material as Material\n // 记录树、草地、山体的Mesh对象,用于四季效果\n if (material.name === 'sss-1-2.001' || material.name === 'sss-1')\n this.treesMesh.push(mesh)\n else if (material.name === 'Material #32')\n this.grasslandMesh.push(mesh)\n else if (material.name === 'Material #33')\n this.massifMesh.push(mesh)\n }\n })\n scene.add(this.realGroundModel)\n\n return gltf\n })\n\n load.loadGLTF(`${this.usePath}landScap3.glb`, false, true, './draco/', (gltf) => {\n // @ts-ignore\n this.realTreeModel = (gltf.scene) as Group\n\n // this.interactionManager.add(gltf.scene)\n\n // gltf.scene.addEventListener('click', (value) => {\n // console.log(value.point)\n // this.position = value.point\n // })\n\n gltf.scene.traverse((child) => {\n child.layers.enable(5)\n\n if (child.type === 'Mesh') {\n child.castShadow = true\n child.receiveShadow = true\n }\n })\n\n // scene.add(this.realTreeModel)\n\n return gltf\n })\n\n const interactionManager = new InteractionManager(\n this.scene.renderer,\n this.scene.camera,\n this.scene.renderer.domElement, // Modified By LM this.scene.cssRenderer.cssRenderer.domElement,\n )\n\n this.interactionManager = interactionManager\n\n utils.storeManagement.set('interactionManager', interactionManager)\n\n use.useframe(() => {\n interactionManager.update()\n })\n\n this.loadModel()\n\n loadingManager.onLoad = () => {\n resolve('success')\n }\n\n // initPostEffects(scene.scene, scene.renderer, scene.camera, { type: 'main' })\n\n scene.renderer.toneMappingExposure = 0.4\n })\n })\n }\n\n private loadModel() {\n // real model\n load.loadGLTF(`${this.usePath}222.glb`, false, true, './draco/', (gltf) => {\n this.scene.add(gltf.scene)\n\n gltf.scene.visible = SceneStyle.real === this.style\n\n this.realModl = gltf.scene as Group\n\n // this.interactionManager.add(gltf.scene)\n\n // gltf.scene.addEventListener('click', (value) => {\n // console.log(value.point)\n // this.position = value.point\n // })\n\n gltf.scene.traverse((child) => {\n child.layers.enable(5)\n\n if (child.type === 'Mesh') {\n child.castShadow = true\n child.receiveShadow = true\n }\n })\n\n handleUnit.call(this)\n\n return gltf\n })\n\n // tech model\n load.loadGLTF(`${this.usePath}2222.glb`, false, true, './draco/', (gltf) => {\n const group = gltf.scene\n\n use.useframe(() => {\n if (uniforms._Time.value > 0.5)\n uniforms._Time.value = 0\n\n uniforms._Time.value += 0.0008\n })\n\n group.traverse((child) => {\n // @ts-ignore\n if (child.type === 'Mesh') {\n if (child.name === '柱体') {\n // @ts-ignore\n child.visible = false\n const geometry = new PlaneGeometry(3000, 2000)\n const plane = new Mesh(geometry, material)\n plane.rotation.x = -Math.PI / 2\n\n plane.position.set(0, -1.5, 0)\n plane.renderOrder = -1\n\n group.add(plane)\n }\n\n else {\n // @ts-ignore\n child.material = finirMaterialV1\n }\n }\n })\n\n load.loadGLTF(`${this.usePath}plane.glb`, false, true, './draco/', (gltf) => {\n gltf.scene.scale.set(0.5, 0.5, 0.5)\n\n const text = new TextureLoader().load(`${this.usePath}roll.png`)\n\n text.wrapS = RepeatWrapping\n text.wrapT = RepeatWrapping\n\n text.repeat.set(1, 1)\n\n gltf.scene.traverse((child) => {\n if (child.type === 'Mesh') {\n // @ts-ignore\n child.material.blending = AdditiveBlending\n // @ts-ignore\n child.material.transparent = true\n // @ts-ignore\n child.material.opacity = 1\n // @ts-ignore\n child.material.depthTest = true\n\n // @ts-ignore\n child.material.map = text\n }\n })\n\n use.useframe(() => {\n text.offset.x += 0.01\n })\n\n group.add(gltf.scene)\n\n return gltf\n })\n\n createRiseLayer()\n\n this.scene.add(group)\n\n group.visible = SceneStyle.tech === this.style\n this.techModel = group as Group\n\n return gltf\n })\n\n // white model\n load.loadGLTF(`${this.usePath}2222.glb`, false, true, './draco/', (gltf) => {\n gltf.scene.traverse((child) => {\n if (child.name === '柱体')\n (child as Mesh).material = new MeshBasicMaterial({ color: new Color('#fff') })\n else if (child.type === 'Mesh')\n (child as Mesh).material = new MeshLambertMaterial({ color: new Color('#aaa') })\n })\n\n this.scene.add(gltf.scene)\n\n gltf.scene.visible = SceneStyle.white === this.style\n this.whiteModel = gltf.scene as Group\n return gltf\n })\n\n const targerMeshName = Object.values(targetProgresspoints).map(v => v.lookAt)\n\n // thermaLimaging model\n load.loadGLTF(`${this.usePath}2222.glb`, false, true, './draco/', (gltf) => {\n const group = gltf.scene\n group.traverse((child) => {\n if (child.type === 'Mesh') {\n // @ts-ignore\n child.material = new ShaderMaterial({\n vertexShader: vert,\n fragmentShader: frag,\n uniforms: {\n texture1: { value: new TextureLoader(this.loadingManager).load(`${this.usePath}test01.jpg`) },\n texture2: { value: new TextureLoader(this.loadingManager).load(`${this.usePath}test02.jpg`) },\n uvScale: { value: new Vector2(1, 1) },\n },\n })\n\n child.layers.set(2)\n\n if (targerMeshName.includes(child.name))\n // @ts-ignore\n child.material.depthTest = false\n }\n })\n\n const scale = (window as any)?.app?.envServer?.scaleRatio ?? 1\n\n const div = document.createElement('div')\n div.style.position = 'relative'\n\n const img = document.createElement('img')\n img.src = `${usePath}poi01.png`\n\n const span = document.createElement('span')\n span.innerText = '125.7°C'\n span.style.position = 'absolute'\n span.style.top = `${19.5 * scale}px`\n span.style.left = '40%'\n span.style.transform = 'translateX(-30%)'\n\n span.style.color = '#e47762'\n span.style.fontSize = '12px'\n span.style.fontWeight = 'bold'\n\n const span2 = document.createElement('span')\n span2.innerText = '点位2'\n span2.style.position = 'absolute'\n span2.style.top = `${19.5 * scale}px`\n span2.style.left = '10%'\n span2.style.transform = 'translateX(-30%)'\n\n span2.style.color = '#e47762'\n span2.style.fontSize = `${12 * scale}px`\n span2.style.fontWeight = 'bold'\n\n div.appendChild(img)\n div.appendChild(span)\n div.appendChild(span2)\n\n const poi01 = new SpritePoi(div, {\n width: 100 * 2,\n height: 40 * 2,\n })\n\n poi01.scale.set(40, 18, 1)\n\n poi01.layers.set(2)\n poi01.position.set(-312.869, -5, -127.770)\n\n const div2 = document.createElement('div')\n div2.style.position = 'relative'\n\n const img2 = document.createElement('img')\n img2.src = `${usePath}poi02.png`\n\n const span3 = document.createElement('span')\n span3.innerText = '125.7°C'\n span3.style.position = 'absolute'\n span3.style.top = `${5 * scale}px`\n span3.style.left = '60%'\n span3.style.transform = 'translateX(30%)'\n\n span3.style.color = '#fdd85e'\n span3.style.fontSize = `${12 * scale}px`\n span3.style.fontWeight = 'bold'\n\n const span4 = document.createElement('span')\n span4.innerText = '点位1'\n span4.style.position = 'absolute'\n span4.style.top = `${5 * scale}px`\n span4.style.left = '34%'\n span4.style.transform = 'translateX(30%)'\n\n span4.style.color = '#fdd85e'\n span4.style.fontSize = `${12 * scale}px`\n span4.style.fontWeight = 'bold'\n\n div2.appendChild(img2)\n div2.appendChild(span3)\n div2.appendChild(span4)\n\n const poi02 = new SpritePoi(div2, {\n width: 100 * 2,\n height: 40 * 2,\n })\n\n poi02.scale.set(50, 22, 1)\n\n poi02.layers.set(2)\n poi02.position.set(-240.869, 15, -127.770)\n\n // group.add(poi01)\n // group.add(poi02)\n\n this.scene.add(group)\n\n this.thermaLimaging = group as Group\n\n return gltf\n })\n\n load.loadGLTF(`${this.usePath}guandao.glb`, false, true, './draco/', (gltf) => {\n this.scene.add(gltf.scene)\n\n this.pipeline = gltf.scene as Group\n return gltf\n })\n }\n\n /**\n * toggle SceneStyle\n * @param params\n */\n toggleSceneStyle(params: SceneStyle) {\n if (this.style === params)\n return\n this.style = params\n\n if (this.style === SceneStyle.tech) {\n this.pipeline.visible = false\n this.techModel.visible = true\n this.realModl.visible = false\n this.whiteModel.visible = false\n this.scene.scene.background = null\n this.realGroundModel && (this.realGroundModel.visible = false)\n\n this.scene.renderer.toneMappingExposure = 0.6\n }\n\n if (params === SceneStyle.real) {\n this.pipeline.visible = true\n this.techModel.visible = false\n this.whiteModel.visible = false\n this.realModl.visible = true\n this.realGroundModel && (this.realGroundModel.visible = true)\n this.scene.scene.background = new Color('#ccc')\n this.scene.renderer.toneMappingExposure = 0.4\n }\n\n if (params === SceneStyle.white) {\n this.pipeline.visible = false\n this.techModel.visible = false\n this.realModl.visible = false\n this.whiteModel.visible = true\n this.scene.scene.background = null\n this.realGroundModel && (this.realGroundModel.visible = false)\n\n this.scene.renderer.toneMappingExposure = 0.4\n }\n }\n\n public toggleTag(tag: SceneTag) {\n if (this.tag === tag)\n return\n toggleTag[tag].apply(this, [this])\n }\n\n private globalEventsAgent() {\n globalEvents.forEach((eventKey) => {\n emitter.on(eventKey, (args) => {\n this.eventHandleFn.get(eventKey)?.forEach((fn) => {\n fn(args)\n })\n })\n })\n }\n\n /**\n * toggle view\n */\n toggleView(viewType?: string) {\n if (this.tag !== SceneTag['smart-inspection'])\n return\n\n if (viewType) {\n if (viewType === 'Drone') {\n if (this.scene.cutoutCamera === this.inspection.minCamera) {\n const cutoutCamera = this.inspection.minCamera\n\n this.scene.cutoutCamera = this.inspection.mapCamera\n this.mainCamera = this.scene.camera\n this.scene.camera = cutoutCamera\n\n utils.emitter.emit('play')\n utils.emitter.emit('toggleView', 'Drone')\n\n sendToMessage(MessageType.Event, 'onViewTypeChange', EMessageStatus.Success, undefined, {\n viewType: 'Drone',\n })\n }\n }\n\n if (viewType === 'Global') {\n if (this.scene.cutoutCamera !== this.inspection.minCamera) {\n const mainCamera = this.mainCamera\n const cutoutCamera = this.inspection.minCamera\n\n this.scene.camera = mainCamera\n this.scene.cutoutCamera = cutoutCamera\n\n utils.emitter.emit('stop')\n utils.emitter.emit('toggleView', 'Global')\n\n this.inspection.minCamera.fov = 60\n this.inspection.minCamera.updateProjectionMatrix()\n\n sendToMessage(MessageType.Event, 'onViewTypeChange', EMessageStatus.Success, undefined, {\n viewType: 'Global',\n })\n }\n }\n }\n else {\n // toggle to min camera\n if (this.scene.cutoutCamera === this.inspection.minCamera) {\n const cutoutCamera = this.inspection.minCamera\n\n this.scene.cutoutCamera = this.inspection.mapCamera\n\n this.mainCamera = this.scene.camera\n this.scene.camera = cutoutCamera\n\n utils.emitter.emit('play')\n utils.emitter.emit('toggleView', 'Drone')\n\n sendToMessage(MessageType.Event, 'onViewTypeChange', EMessageStatus.Success, undefined, {\n viewType: 'Drone',\n })\n }\n else {\n // toggle to main camera\n const mainCamera = this.mainCamera\n const cutoutCamera = this.inspection.minCamera\n\n this.scene.camera = mainCamera\n this.scene.cutoutCamera = cutoutCamera\n\n utils.emitter.emit('stop')\n utils.emitter.emit('toggleView', 'Global')\n\n this.inspection.minCamera.fov = 60\n this.inspection.minCamera.updateProjectionMatrix()\n\n sendToMessage(MessageType.Event, 'onViewTypeChange', EMessageStatus.Success, undefined, {\n viewType: 'Global',\n })\n }\n }\n }\n\n addEventListener(eventName: string, handleFn: (args?: any) => void) {\n if (this.eventHandleFn.get(eventName))\n this.eventHandleFn.get(eventName).push(handleFn)\n\n else\n this.eventHandleFn.set(eventName, [handleFn])\n }\n}\n\nexport default Factory3D"],"mappings":"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"}
1
+ {"version":3,"names":["AdditiveBlending","Color","InteractionManager","LoadingManager","Mesh","MeshBasicMaterial","MeshLambertMaterial","ModelLoader","PlaneGeometry","RepeatWrapping","ShaderMaterial","TextureLoader","Vector2","Vector3","lib","use","utils","Camera","SpritePoi","MessageType","sendToMessage","EMessageStatus","finirMaterialV1","handleUnit","toggleTag","globalEvents","SceneStyle","SceneTag","factoryGlobalObject","createRiseLayer","targetProgresspoints","material","uniforms","frag","vert","loadingManager","load","rgbeLoader","RGBELoader","emitter","resourcePath","resourcePath2","usePath","Factory3D","option","overview","real","Map","globalEventsAgent","setFactory","scene","loadCSS","url","callback","xhr","XMLHttpRequest","open","onreadystatechange","readyState","status","blob","Blob","responseText","type","blobURL","URL","createObjectURL","link","document","createElement","rel","href","crossOrigin","head","appendChild","console","log","error","statusText","onerror","err","send","Promise","resolve","cameraUtil","camera","controls","control","layers","set","loadGLTF","gltf","realGroundModel","mesh","traverse","child","enable","castShadow","receiveShadow","name","treesMesh","push","grasslandMesh","massifMesh","add","realTreeModel","interactionManager","renderer","domElement","storeManagement","useframe","update","loadModel","onLoad","toneMappingExposure","visible","style","realModl","call","group","_Time","value","geometry","plane","rotation","x","Math","PI","position","renderOrder","scale","text","wrapS","wrapT","repeat","blending","transparent","opacity","depthTest","map","offset","tech","techModel","color","white","whiteModel","targerMeshName","Object","values","v","lookAt","vertexShader","fragmentShader","texture1","texture2","uvScale","includes","window","app","envServer","scaleRatio","div","img","src","span","innerText","top","left","transform","fontSize","fontWeight","span2","poi01","width","height","div2","img2","span3","span4","poi02","img3","poi03","thermaLimaging","pipeline","params","background","tag","apply","forEach","eventKey","on","args","eventHandleFn","get","fn","viewType","cutoutCamera","inspection","minCamera","mapCamera","mainCamera","emit","Event","Success","undefined","fov","updateProjectionMatrix","eventName","handleFn"],"sources":["../../src/factory/3d.ts"],"sourcesContent":["import type { DataTexture, Group, Material, Object3D, OrbitControls, SceneControl } from '@anov/3d-core'\nimport { AdditiveBlending, BoxGeometry, Color, EquirectangularReflectionMapping, InteractionManager, LoadingManager, Mesh, MeshBasicMaterial, MeshLambertMaterial, ModelLoader, PlaneGeometry, RepeatWrapping, SRGBColorSpace, ShaderChunk, ShaderMaterial, Sprite, SpriteMaterial, TextureLoader, Vector2, Vector3, Vector4, lib, sRGBEncoding, use, utils } from '@anov/3d-core'\nimport { Camera, SpritePoi, createBloomSelectedTool, initPostEffects } from '@anov/3d-ability'\nimport { MessageType, sendToMessage } from '../utils/messageFn'\nimport { EMessageStatus } from '../messageStatus'\nimport { finirMaterialV1 } from './utils/finirMaterial'\nimport handleUnit, { toggleTag } from './unit'\nimport type WallManage from './unit/wall'\nimport type LineManage from './unit/line'\nimport type CylinderManage from './unit/cylinder'\nimport type PoiManage from './unit/poi'\nimport type CircleManage from './unit/circle'\nimport type DistrictLineManage from './unit/districtLine'\nimport type AreaBoundingBoxManage from './unit/areaBoundingBox'\nimport type Inspection from './unit/inspection'\nimport { globalEvents } from './globalData'\nimport { SceneStyle, SceneTag } from './utils/constant'\nimport switchMaterial from './utils/switchMaterial'\nimport factoryGlobalObject from './globalControl'\nimport { debounce } from './utils'\nimport createRiseLayer from './unit/layer/rise'\nimport { targetProgresspoints } from './unit/inspection/lineData'\nimport { material, uniforms } from './utils/ground'\n\nimport frag from './unit/glsl/heat/frag'\nimport vert from './unit/glsl/heat/ver'\n\ntype factory3dOption = {\n model: string\n environment: string\n decoderPath?: string\n controls?: any\n}\n\nexport const loadingManager = new LoadingManager()\nconst load = new ModelLoader(loadingManager)\nconst rgbeLoader = new lib.RGBELoader(loadingManager)\nconst { emitter } = utils\n\nconst resourcePath = './'\nconst resourcePath2 = 'http://172.16.223.163:9000/anov-prod/anov-3d/factory/example/'\n\nexport const usePath = process.env.ENV === 'dev' ? resourcePath : resourcePath2\n\nclass Factory3D {\n position: Vector3 = new Vector3(0, 0, 0)\n scene: SceneControl\n control: OrbitControls\n cameraUtil: Camera\n\n public loadingManager = loadingManager\n public tag = SceneTag.overview\n public style: SceneStyle = SceneStyle.real\n private option: factory3dOption\n wall: WallManage\n line: LineManage\n cylinder: CylinderManage\n poi: PoiManage\n circle: CircleManage\n areaBoundingBox: AreaBoundingBoxManage\n inspection: Inspection\n districtLine: DistrictLineManage\n\n usePath = usePath\n\n private pipeline: Group\n private realModl: Group\n private techModel: Group\n private whiteModel: Group\n private realGroundModel: Group\n private thermaLimaging: Group\n private eventHandleFn: Map<string, ((args?: any) => void)[]> = new Map()\n private boxSkeyTexture: DataTexture\n private treesMesh: Array<Mesh> = []\n private grasslandMesh: Array<Mesh> = []\n private massifMesh: Array<Mesh> = []\n\n private isLoad = false\n\n mainCamera: any\n\n interactionManager: InteractionManager\n\n constructor(option: factory3dOption) {\n this.option = option\n this.globalEventsAgent()\n factoryGlobalObject.setFactory(this)\n }\n\n /**\n * render factory 3d scene\n */\n renderScene(scene: SceneControl) {\n const loadCSS = (url, callback) => {\n const xhr = new XMLHttpRequest()\n xhr.open('GET', url, true)\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status >= 200 && xhr.status < 300) {\n const blob = new Blob([xhr.responseText], { type: 'text/css' })\n const blobURL = URL.createObjectURL(blob)\n\n const link = document.createElement('link')\n link.rel = 'stylesheet'\n link.href = blobURL\n link.crossOrigin = 'anonymous'\n document.head.appendChild(link)\n\n if (typeof callback === 'function')\n callback()\n\n console.log(`CSS 加载成功: ${url}`)\n }\n else {\n console.error(`Failed to load CSS: ${url}`, xhr.statusText)\n }\n }\n }\n xhr.onerror = function (err) {\n console.error(`Failed to load CSS: ${url}`, err)\n }\n xhr.send()\n }\n\n return new Promise((resolve) => {\n loadCSS(`${resourcePath2}result.css`, () => {\n this.scene = scene\n\n this.cameraUtil = new Camera(scene.camera!, scene.controls!, scene)\n this.control = scene.controls!\n scene.camera.layers.set(0)\n\n load.loadGLTF(`${this.usePath}landScap2.glb`, false, true, './draco/', (gltf) => {\n this.realGroundModel = (gltf.scene) as Group\n\n // this.interactionManager.add(gltf.scene)\n\n // gltf.scene.addEventListener('click', (value) => {\n // console.log(value.point)\n // this.position = value.point\n // })\n\n let mesh, material\n gltf.scene.traverse((child) => {\n child.layers.enable(5)\n\n if (child.type === 'Mesh') {\n child.castShadow = true\n child.receiveShadow = true\n\n mesh = child as Mesh\n material = mesh.material as Material\n // 记录树、草地、山体的Mesh对象,用于四季效果\n if (material.name === 'sss-1-2.001' || material.name === 'sss-1')\n this.treesMesh.push(mesh)\n else if (material.name === 'Material #32')\n this.grasslandMesh.push(mesh)\n else if (material.name === 'Material #33')\n this.massifMesh.push(mesh)\n }\n })\n scene.add(this.realGroundModel)\n\n return gltf\n })\n\n load.loadGLTF(`${this.usePath}landScap3.glb`, false, true, './draco/', (gltf) => {\n // @ts-ignore\n this.realTreeModel = (gltf.scene) as Group\n\n // this.interactionManager.add(gltf.scene)\n\n // gltf.scene.addEventListener('click', (value) => {\n // console.log(value.point)\n // this.position = value.point\n // })\n\n gltf.scene.traverse((child) => {\n child.layers.enable(5)\n\n if (child.type === 'Mesh') {\n child.castShadow = true\n child.receiveShadow = true\n }\n })\n\n // scene.add(this.realTreeModel)\n\n return gltf\n })\n\n const interactionManager = new InteractionManager(\n this.scene.renderer,\n this.scene.camera,\n this.scene.renderer.domElement, // Modified By LM this.scene.cssRenderer.cssRenderer.domElement,\n )\n\n this.interactionManager = interactionManager\n\n utils.storeManagement.set('interactionManager', interactionManager)\n\n use.useframe(() => {\n interactionManager.update()\n })\n\n this.loadModel()\n\n loadingManager.onLoad = () => {\n resolve('success')\n }\n\n // initPostEffects(scene.scene, scene.renderer, scene.camera, { type: 'main' })\n\n scene.renderer.toneMappingExposure = 0.4\n })\n })\n }\n\n private loadModel() {\n // real model\n load.loadGLTF(`${this.usePath}222.glb`, false, true, './draco/', (gltf) => {\n this.scene.add(gltf.scene)\n\n gltf.scene.visible = SceneStyle.real === this.style\n\n this.realModl = gltf.scene as Group\n\n // this.interactionManager.add(gltf.scene)\n\n // gltf.scene.addEventListener('click', (value) => {\n // console.log(value.point)\n // this.position = value.point\n // })\n\n gltf.scene.traverse((child) => {\n child.layers.enable(5)\n\n if (child.type === 'Mesh') {\n child.castShadow = true\n child.receiveShadow = true\n }\n })\n\n handleUnit.call(this)\n\n return gltf\n })\n\n // tech model\n load.loadGLTF(`${this.usePath}2222.glb`, false, true, './draco/', (gltf) => {\n const group = gltf.scene\n\n use.useframe(() => {\n if (uniforms._Time.value > 0.5)\n uniforms._Time.value = 0\n\n uniforms._Time.value += 0.0008\n })\n\n group.traverse((child) => {\n // @ts-ignore\n if (child.type === 'Mesh') {\n if (child.name === '柱体') {\n // @ts-ignore\n child.visible = false\n const geometry = new PlaneGeometry(3000, 2000)\n const plane = new Mesh(geometry, material)\n plane.rotation.x = -Math.PI / 2\n\n plane.position.set(0, -1.5, 0)\n plane.renderOrder = -1\n\n group.add(plane)\n }\n\n else {\n // @ts-ignore\n child.material = finirMaterialV1\n }\n }\n })\n\n load.loadGLTF(`${this.usePath}plane.glb`, false, true, './draco/', (gltf) => {\n gltf.scene.scale.set(0.5, 0.5, 0.5)\n\n const text = new TextureLoader().load(`${this.usePath}roll.png`)\n\n text.wrapS = RepeatWrapping\n text.wrapT = RepeatWrapping\n\n text.repeat.set(1, 1)\n\n gltf.scene.traverse((child) => {\n if (child.type === 'Mesh') {\n // @ts-ignore\n child.material.blending = AdditiveBlending\n // @ts-ignore\n child.material.transparent = true\n // @ts-ignore\n child.material.opacity = 1\n // @ts-ignore\n child.material.depthTest = true\n\n // @ts-ignore\n child.material.map = text\n }\n })\n\n use.useframe(() => {\n text.offset.x += 0.01\n })\n\n group.add(gltf.scene)\n\n return gltf\n })\n\n createRiseLayer()\n\n this.scene.add(group)\n\n group.visible = SceneStyle.tech === this.style\n this.techModel = group as Group\n\n return gltf\n })\n\n // white model\n load.loadGLTF(`${this.usePath}2222.glb`, false, true, './draco/', (gltf) => {\n gltf.scene.traverse((child) => {\n if (child.name === '柱体')\n (child as Mesh).material = new MeshBasicMaterial({ color: new Color('#fff') })\n else if (child.type === 'Mesh')\n (child as Mesh).material = new MeshLambertMaterial({ color: new Color('#aaa') })\n })\n\n this.scene.add(gltf.scene)\n\n gltf.scene.visible = SceneStyle.white === this.style\n this.whiteModel = gltf.scene as Group\n return gltf\n })\n\n const targerMeshName = Object.values(targetProgresspoints).map(v => v.lookAt)\n\n // thermaLimaging model\n load.loadGLTF(`${this.usePath}2222.glb`, false, true, './draco/', (gltf) => {\n const group = gltf.scene\n group.traverse((child) => {\n if (child.type === 'Mesh') {\n // @ts-ignore\n child.material = new ShaderMaterial({\n vertexShader: vert,\n fragmentShader: frag,\n uniforms: {\n texture1: { value: new TextureLoader(this.loadingManager).load(`${this.usePath}test01.jpg`) },\n texture2: { value: new TextureLoader(this.loadingManager).load(`${this.usePath}test02.jpg`) },\n uvScale: { value: new Vector2(1, 1) },\n },\n })\n\n child.layers.set(2)\n\n if (targerMeshName.includes(child.name))\n // @ts-ignore\n child.material.depthTest = false\n }\n })\n\n const scale = (window as any)?.app?.envServer?.scaleRatio ?? 1\n\n const div = document.createElement('div')\n div.style.position = 'relative'\n\n const img = document.createElement('img')\n img.src = `${usePath}poi01.png`\n\n const span = document.createElement('span')\n span.innerText = '125.7°C'\n span.style.position = 'absolute'\n span.style.top = `${19.5 * scale}px`\n span.style.left = '40%'\n span.style.transform = 'translateX(-30%)'\n\n span.style.color = '#e47762'\n span.style.fontSize = '12px'\n span.style.fontWeight = 'bold'\n\n const span2 = document.createElement('span')\n span2.innerText = '点位2'\n span2.style.position = 'absolute'\n span2.style.top = `${19.5 * scale}px`\n span2.style.left = '10%'\n span2.style.transform = 'translateX(-30%)'\n\n span2.style.color = '#e47762'\n span2.style.fontSize = `${12 * scale}px`\n span2.style.fontWeight = 'bold'\n\n div.appendChild(img)\n div.appendChild(span)\n div.appendChild(span2)\n\n const poi01 = new SpritePoi(div, {\n width: 100 * 2,\n height: 40 * 2,\n })\n\n poi01.scale.set(40, 18, 1)\n\n poi01.layers.set(2)\n poi01.position.set(-312.869, -5, -127.770)\n\n const div2 = document.createElement('div')\n div2.style.position = 'relative'\n\n const img2 = document.createElement('img')\n img2.src = `${usePath}poi02.png`\n\n const span3 = document.createElement('span')\n span3.innerText = '125.7°C'\n span3.style.position = 'absolute'\n span3.style.top = `${5 * scale}px`\n span3.style.left = '60%'\n span3.style.transform = 'translateX(30%)'\n\n span3.style.color = '#fdd85e'\n span3.style.fontSize = `${12 * scale}px`\n span3.style.fontWeight = 'bold'\n\n const span4 = document.createElement('span')\n span4.innerText = '点位1'\n span4.style.position = 'absolute'\n span4.style.top = `${5 * scale}px`\n span4.style.left = '34%'\n span4.style.transform = 'translateX(30%)'\n\n span4.style.color = '#fdd85e'\n span4.style.fontSize = `${12 * scale}px`\n span4.style.fontWeight = 'bold'\n\n div2.appendChild(img2)\n div2.appendChild(span3)\n div2.appendChild(span4)\n\n const poi02 = new SpritePoi(div2, {\n width: 100 * 2,\n height: 40 * 2,\n })\n\n poi02.scale.set(50, 22, 1)\n\n poi02.layers.set(2)\n poi02.position.set(-240.869, 15, -127.770)\n\n // group.add(poi01)\n // group.add(poi02)\n\n const img3 = document.createElement('img')\n img3.src = `${usePath}demo.png`\n\n const poi03 = new SpritePoi(img3, {\n width: 100 * 2,\n height: 40 * 2,\n })\n\n poi03.layers.set(2)\n group.add(poi03)\n poi03.scale.set(80, 40, 1)\n poi03.position.set(-290.869, 2, -127.770)\n\n this.scene.add(group)\n\n this.thermaLimaging = group as Group\n\n return gltf\n })\n\n load.loadGLTF(`${this.usePath}guandao.glb`, false, true, './draco/', (gltf) => {\n this.scene.add(gltf.scene)\n\n this.pipeline = gltf.scene as Group\n return gltf\n })\n }\n\n /**\n * toggle SceneStyle\n * @param params\n */\n toggleSceneStyle(params: SceneStyle) {\n if (this.style === params)\n return\n this.style = params\n\n if (this.style === SceneStyle.tech) {\n this.pipeline.visible = false\n this.techModel.visible = true\n this.realModl.visible = false\n this.whiteModel.visible = false\n this.scene.scene.background = null\n this.realGroundModel && (this.realGroundModel.visible = false)\n\n this.scene.renderer.toneMappingExposure = 0.6\n }\n\n if (params === SceneStyle.real) {\n this.pipeline.visible = true\n this.techModel.visible = false\n this.whiteModel.visible = false\n this.realModl.visible = true\n this.realGroundModel && (this.realGroundModel.visible = true)\n this.scene.scene.background = new Color('#ccc')\n this.scene.renderer.toneMappingExposure = 0.4\n }\n\n if (params === SceneStyle.white) {\n this.pipeline.visible = false\n this.techModel.visible = false\n this.realModl.visible = false\n this.whiteModel.visible = true\n this.scene.scene.background = null\n this.realGroundModel && (this.realGroundModel.visible = false)\n\n this.scene.renderer.toneMappingExposure = 0.4\n }\n }\n\n public toggleTag(tag: SceneTag) {\n if (this.tag === tag)\n return\n toggleTag[tag].apply(this, [this])\n }\n\n private globalEventsAgent() {\n globalEvents.forEach((eventKey) => {\n emitter.on(eventKey, (args) => {\n this.eventHandleFn.get(eventKey)?.forEach((fn) => {\n fn(args)\n })\n })\n })\n }\n\n /**\n * toggle view\n */\n toggleView(viewType?: string) {\n if (this.tag !== SceneTag['smart-inspection'])\n return\n\n if (viewType) {\n if (viewType === 'Drone') {\n if (this.scene.cutoutCamera === this.inspection.minCamera) {\n const cutoutCamera = this.inspection.minCamera\n\n this.scene.cutoutCamera = this.inspection.mapCamera\n this.mainCamera = this.scene.camera\n this.scene.camera = cutoutCamera\n\n utils.emitter.emit('play')\n utils.emitter.emit('toggleView', 'Drone')\n\n sendToMessage(MessageType.Event, 'onViewTypeChange', EMessageStatus.Success, undefined, {\n viewType: 'Drone',\n })\n }\n }\n\n if (viewType === 'Global') {\n if (this.scene.cutoutCamera !== this.inspection.minCamera) {\n const mainCamera = this.mainCamera\n const cutoutCamera = this.inspection.minCamera\n\n this.scene.camera = mainCamera\n this.scene.cutoutCamera = cutoutCamera\n\n utils.emitter.emit('stop')\n utils.emitter.emit('toggleView', 'Global')\n\n this.inspection.minCamera.fov = 60\n this.inspection.minCamera.updateProjectionMatrix()\n\n sendToMessage(MessageType.Event, 'onViewTypeChange', EMessageStatus.Success, undefined, {\n viewType: 'Global',\n })\n }\n }\n }\n else {\n // toggle to min camera\n if (this.scene.cutoutCamera === this.inspection.minCamera) {\n const cutoutCamera = this.inspection.minCamera\n\n this.scene.cutoutCamera = this.inspection.mapCamera\n\n this.mainCamera = this.scene.camera\n this.scene.camera = cutoutCamera\n\n utils.emitter.emit('play')\n utils.emitter.emit('toggleView', 'Drone')\n\n sendToMessage(MessageType.Event, 'onViewTypeChange', EMessageStatus.Success, undefined, {\n viewType: 'Drone',\n })\n }\n else {\n // toggle to main camera\n const mainCamera = this.mainCamera\n const cutoutCamera = this.inspection.minCamera\n\n this.scene.camera = mainCamera\n this.scene.cutoutCamera = cutoutCamera\n\n utils.emitter.emit('stop')\n utils.emitter.emit('toggleView', 'Global')\n\n this.inspection.minCamera.fov = 60\n this.inspection.minCamera.updateProjectionMatrix()\n\n sendToMessage(MessageType.Event, 'onViewTypeChange', EMessageStatus.Success, undefined, {\n viewType: 'Global',\n })\n }\n }\n }\n\n addEventListener(eventName: string, handleFn: (args?: any) => void) {\n if (this.eventHandleFn.get(eventName))\n this.eventHandleFn.get(eventName).push(handleFn)\n\n else\n this.eventHandleFn.set(eventName, [handleFn])\n }\n}\n\nexport default Factory3D"],"mappings":"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"}
@@ -93,21 +93,32 @@ var CircleManage = /*#__PURE__*/function () {
93
93
  }
94
94
  _this2.clickPoi = null;
95
95
  var dom = document.createElement('div');
96
+ var image = document.createElement('img');
97
+ image.src = "".concat(usePath, "people.png");
98
+ image.style.width = '30px';
99
+ image.style.height = '30px';
100
+ image.style.position = 'absolute';
101
+ image.style.top = '5px';
102
+ dom.appendChild(image);
96
103
  Object.assign(dom.style, {
97
104
  fontSize: '24px',
98
105
  backgroundImage: "url(".concat(usePath, "\u4EBA\u5458\u6807\u7B7E.png)"),
99
106
  backgroundSize: '100% 100%',
100
107
  backgroundRepeat: 'no-repeat',
101
108
  display: 'flex',
102
- justifyContent: 'center',
109
+ justifyContent: 'space-between',
103
110
  alignItems: 'center',
104
111
  color: '#fff',
105
112
  pointerEvents: 'auto',
106
113
  height: '50px',
107
114
  width: '200px',
108
- padding: '0 0 12px 15px'
115
+ padding: '0 0 12px 15px',
116
+ position: 'relative'
109
117
  });
110
- dom.innerText = data.name;
118
+ var span = document.createElement('span');
119
+ span.innerText = data.name;
120
+ span.style.paddingLeft = '60px';
121
+ dom.appendChild(span);
111
122
  _this2.peoplePoi = new SpritePoi(dom, {
112
123
  animation: {
113
124
  type: EAnimationType.fadeIn,
@@ -1 +1 @@
1
- {"version":3,"names":["Vector3","use","utils","EAnimationType","SpritePoi","regionMap","usePath","emitter","CircleManage","gobal","Map","Set","scene","interactionManager","storeManagement","get","belongTo","remove","dom","document","createElement","style","width","height","imgs","img","data","getData","forEach","people","cloneNode","src","Math","floor","random","mesh","scale","name","id","position","fromArray","add","bindEvent","circleMesh","set","removeFromParent","clear","peoplePoi","clickPoi","poiRemoveEventListener","eventListener","fn","visible","poi","showPeoplePoi","eventName","Object","assign","fontSize","backgroundImage","backgroundSize","backgroundRepeat","display","justifyContent","alignItems","color","pointerEvents","padding","innerText","animation","type","fadeIn","duration","copy","clone","updateScale","useScene","orbitControls","addEventListener","removeEventListener","unClick","getCameraPosition","cameraUtil","toArray","target","then","emit","hoverMesh","ratio","minDistance","maxDistance","camera","distance","distanceTo","clampedDistance","max","min","scaleValue","x","y","targetPosition","cameraPosition","direction","subVectors","normalize","multiplyScalar","regionKey","keys","find","key"],"sources":["../../../src/factory/unit/circle.ts"],"sourcesContent":["import { Vector3, use, utils } from '@anov/3d-core'\nimport type { InteractionManager, Mesh, Object3D, Scene } from '@anov/3d-core'\nimport { EAnimationType, SpritePoi } from '@anov/3d-ability'\nimport type Factory3D from '../3d'\nimport { regionMap } from '../regionData'\n\nimport { usePath } from '../3d'\n\nconst { emitter } = utils\n\nclass CircleManage {\n private gobal: Factory3D\n private scene: Scene\n readonly circleMesh: Map<string, Object3D> = new Map()\n private interactionManager\n private peoplePoi!: SpritePoi | null\n private clickPoi: Object3D | null\n eventListener: Set<Function> = new Set()\n poiRemoveEventListener: Function\n\n constructor(gobal: Factory3D) {\n this.gobal = gobal\n this.scene = gobal.scene.scene\n this.interactionManager = utils.storeManagement.get<InteractionManager>('interactionManager')\n }\n\n generateCircle(belongTo: string) {\n this.remove()\n // const geometry = new SphereGeometry(2, 32, 16)\n // const material = new MeshPhysicalMaterial({ color: 0xFED602, metalness: 0.1, roughness: 0.5 })\n // const circle = new Mesh(geometry, material)\n const dom = document.createElement('img')\n dom.style.width = '50px'\n dom.style.height = '87px'\n const imgs = ['左', '中', '右']\n let img\n const data = this.getData(belongTo)\n data.forEach((people) => {\n img = dom.cloneNode() as HTMLImageElement\n img.src = `${usePath}p2/${imgs[Math.floor(Math.random() * 3)]}.png`\n const mesh = new SpritePoi(img, {\n scale: [10, 16, 1],\n })\n mesh.name = people.id\n mesh.position.fromArray(people.position)\n this.scene.add(mesh)\n this.bindEvent(mesh, people)\n this.circleMesh.set(people.id, mesh)\n })\n }\n\n remove() {\n this.circleMesh.forEach((mesh) => {\n mesh.removeFromParent()\n mesh.remove()\n })\n this.circleMesh.clear()\n this.peoplePoi && this.peoplePoi.removeFromParent()\n this.peoplePoi = this.clickPoi = null\n if (this.poiRemoveEventListener)\n this.poiRemoveEventListener()\n\n this.eventListener && this.eventListener.forEach((fn) => {\n fn()\n })\n }\n\n setVisible(visible = true) {\n // 控制CYCLE的隐藏、显示\n this.circleMesh.forEach((poi) => {\n poi.visible = visible\n })\n }\n\n private bindEvent(mesh: SpritePoi, data) {\n this.interactionManager.add(mesh)\n\n const showPeoplePoi = (data: any, eventName = 'hover') => {\n if (this.peoplePoi) {\n if (this.peoplePoi.name !== data.id) {\n this.peoplePoi.removeFromParent()\n }\n else {\n if (eventName === 'click')\n this.clickPoi = this.peoplePoi\n return\n }\n }\n this.clickPoi = null\n\n const dom = document.createElement('div')\n 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: 'center',\n alignItems: 'center',\n color: '#fff',\n pointerEvents: 'auto',\n height: '50px',\n width: '200px',\n padding: '0 0 12px 15px',\n })\n dom.innerText = data.name\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":";;;;;;;AAAA,SAASA,OAAO,EAAEC,GAAG,EAAEC,KAAK,QAAQ,eAAe;AAEnD,SAASC,cAAc,EAAEC,SAAS,QAAQ,kBAAkB;AAE5D,SAASC,SAAS;AAElB,SAASC,OAAO;AAEhB,IAAQC,OAAO,GAAKL,KAAK,CAAjBK,OAAO;AAAU,IAEnBC,YAAY;EAUhB,sBAAYC,KAAgB,EAAE;IAAA;IAAA;IAAA;IAAA,oCAPe,IAAIC,GAAG,EAAE;IAAA;IAAA;IAAA;IAAA,uCAIvB,IAAIC,GAAG,EAAE;IAAA;IAItC,IAAI,CAACF,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACG,KAAK,GAAGH,KAAK,CAACG,KAAK,CAACA,KAAK;IAC9B,IAAI,CAACC,kBAAkB,GAAGX,KAAK,CAACY,eAAe,CAACC,GAAG,CAAqB,oBAAoB,CAAC;EAC/F;EAAC;IAAA;IAAA,OAED,wBAAeC,QAAgB,EAAE;MAAA;MAC/B,IAAI,CAACC,MAAM,EAAE;MACb;MACA;MACA;MACA,IAAMC,GAAG,GAAGC,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;MACzCF,GAAG,CAACG,KAAK,CAACC,KAAK,GAAG,MAAM;MACxBJ,GAAG,CAACG,KAAK,CAACE,MAAM,GAAG,MAAM;MACzB,IAAMC,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;MAC5B,IAAIC,GAAG;MACP,IAAMC,IAAI,GAAG,IAAI,CAACC,OAAO,CAACX,QAAQ,CAAC;MACnCU,IAAI,CAACE,OAAO,CAAC,UAACC,MAAM,EAAK;QACvBJ,GAAG,GAAGP,GAAG,CAACY,SAAS,EAAsB;QACzCL,GAAG,CAACM,GAAG,aAAMzB,OAAO,gBAAMkB,IAAI,CAACQ,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,SAAM;QACnE,IAAMC,IAAI,GAAG,IAAI/B,SAAS,CAACqB,GAAG,EAAE;UAC9BW,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;QACnB,CAAC,CAAC;QACFD,IAAI,CAACE,IAAI,GAAGR,MAAM,CAACS,EAAE;QACrBH,IAAI,CAACI,QAAQ,CAACC,SAAS,CAACX,MAAM,CAACU,QAAQ,CAAC;QACxC,KAAI,CAAC3B,KAAK,CAAC6B,GAAG,CAACN,IAAI,CAAC;QACpB,KAAI,CAACO,SAAS,CAACP,IAAI,EAAEN,MAAM,CAAC;QAC5B,KAAI,CAACc,UAAU,CAACC,GAAG,CAACf,MAAM,CAACS,EAAE,EAAEH,IAAI,CAAC;MACtC,CAAC,CAAC;IACJ;EAAC;IAAA;IAAA,OAED,kBAAS;MACP,IAAI,CAACQ,UAAU,CAACf,OAAO,CAAC,UAACO,IAAI,EAAK;QAChCA,IAAI,CAACU,gBAAgB,EAAE;QACvBV,IAAI,CAAClB,MAAM,EAAE;MACf,CAAC,CAAC;MACF,IAAI,CAAC0B,UAAU,CAACG,KAAK,EAAE;MACvB,IAAI,CAACC,SAAS,IAAI,IAAI,CAACA,SAAS,CAACF,gBAAgB,EAAE;MACnD,IAAI,CAACE,SAAS,GAAG,IAAI,CAACC,QAAQ,GAAG,IAAI;MACrC,IAAI,IAAI,CAACC,sBAAsB,EAC7B,IAAI,CAACA,sBAAsB,EAAE;MAE/B,IAAI,CAACC,aAAa,IAAI,IAAI,CAACA,aAAa,CAACtB,OAAO,CAAC,UAACuB,EAAE,EAAK;QACvDA,EAAE,EAAE;MACN,CAAC,CAAC;IACJ;EAAC;IAAA;IAAA,OAED,sBAA2B;MAAA,IAAhBC,OAAO,uEAAG,IAAI;MACvB;MACA,IAAI,CAACT,UAAU,CAACf,OAAO,CAAC,UAACyB,GAAG,EAAK;QAC/BA,GAAG,CAACD,OAAO,GAAGA,OAAO;MACvB,CAAC,CAAC;IACJ;EAAC;IAAA;IAAA,OAED,mBAAkBjB,IAAe,EAAET,IAAI,EAAE;MAAA;MACvC,IAAI,CAACb,kBAAkB,CAAC4B,GAAG,CAACN,IAAI,CAAC;MAEjC,IAAMmB,aAAa,GAAG,SAAhBA,aAAa,CAAI5B,IAAS,EAA0B;QAAA,IAAxB6B,SAAS,uEAAG,OAAO;QACnD,IAAI,MAAI,CAACR,SAAS,EAAE;UAClB,IAAI,MAAI,CAACA,SAAS,CAACV,IAAI,KAAKX,IAAI,CAACY,EAAE,EAAE;YACnC,MAAI,CAACS,SAAS,CAACF,gBAAgB,EAAE;UACnC,CAAC,MACI;YACH,IAAIU,SAAS,KAAK,OAAO,EACvB,MAAI,CAACP,QAAQ,GAAG,MAAI,CAACD,SAAS;YAChC;UACF;QACF;QACA,MAAI,CAACC,QAAQ,GAAG,IAAI;QAEpB,IAAM9B,GAAG,GAAGC,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;QACzCoC,MAAM,CAACC,MAAM,CAACvC,GAAG,CAACG,KAAK,EAAE;UACvBqC,QAAQ,EAAE,MAAM;UAChBC,eAAe,gBAASrD,OAAO,kCAAW;UAC1CsD,cAAc,EAAE,WAAW;UAC3BC,gBAAgB,EAAE,WAAW;UAC7BC,OAAO,EAAE,MAAM;UACfC,cAAc,EAAE,QAAQ;UACxBC,UAAU,EAAE,QAAQ;UACpBC,KAAK,EAAE,MAAM;UACbC,aAAa,EAAE,MAAM;UACrB3C,MAAM,EAAE,MAAM;UACdD,KAAK,EAAE,OAAO;UACd6C,OAAO,EAAE;QACX,CAAC,CAAC;QACFjD,GAAG,CAACkD,SAAS,GAAG1C,IAAI,CAACW,IAAI;QAEzB,MAAI,CAACU,SAAS,GAAG,IAAI3C,SAAS,CAACc,GAAG,EAAE;UAClCmD,SAAS,EAAE;YACTC,IAAI,EAAEnE,cAAc,CAACoE,MAAM;YAC3BC,QAAQ,EAAE;UACZ;QACF,CAAC,CAAC;QACF,MAAI,CAACzB,SAAS,CAACV,IAAI,GAAGX,IAAI,CAACY,EAAE;QAC7B,MAAI,CAACS,SAAS,CAACR,QAAQ,CAACkC,IAAI,CAACtC,IAAI,CAACI,QAAQ,CAACmC,KAAK,EAAE,CAACjC,GAAG,CAAC,IAAIzC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9E,MAAI,CAAC2E,WAAW,CAAC,MAAI,CAAC5B,SAAS,EAAE,GAAG,CAAC;QACrC,MAAI,CAACnC,KAAK,CAAC6B,GAAG,CAAC,MAAI,CAACM,SAAS,CAAC;QAE9B,oBAA0B9C,GAAG,CAAC2E,QAAQ,EAAE;UAAhCC,aAAa,iBAAbA,aAAa;QACrB,IAAI,MAAI,CAAC5B,sBAAsB,EAC7B,MAAI,CAACA,sBAAsB,EAAE;QAC/B,IAAME,EAAE,GAAG,SAALA,EAAE;UAAA,OAAS,MAAI,CAACwB,WAAW,CAAC,MAAI,CAAC5B,SAAS,CAAC;QAAA;QACjD8B,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEC,gBAAgB,CAAC,QAAQ,EAAE3B,EAAE,CAAC;QAC7C,MAAI,CAACF,sBAAsB,GAAG;UAAA,OAAM4B,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEE,mBAAmB,CAAC,QAAQ,EAAE5B,EAAE,CAAC;QAAA;MACtF,CAAC;MAED,IAAM6B,OAAO,GAAG7C,IAAI,CAAC2C,gBAAgB,CAAC,OAAO,EAAE,YAAM;QACnD,IAAMvC,QAAQ,GAAG,MAAI,CAAC0C,iBAAiB,CAAC,IAAIjF,OAAO,EAAE,CAACwC,SAAS,CAACd,IAAI,CAACa,QAAQ,CAAC,CAACE,GAAG,CAAC,IAAIzC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;QAChH,MAAI,CAACS,KAAK,CAACyE,UAAU,CAACtC,GAAG,CAAC;UACxBL,QAAQ,EAAEA,QAAQ,CAAC4C,OAAO,EAAE;UAC5BC,MAAM,EAAE,CAAC1D,IAAI,CAACa,QAAQ,CAAC,CAAC,CAAC,EAAEb,IAAI,CAACa,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,EAAEb,IAAI,CAACa,QAAQ,CAAC,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC8C,IAAI,CAAC,YAAM,CAAC,CAAC,CAAC;QACjB9E,OAAO,CAAC+E,IAAI,CAAC,+BAA+B,EAAE5D,IAAI,CAAC;QACnD4B,aAAa,CAAC5B,IAAI,EAAE,OAAO,CAAC;MAC9B,CAAC,CAAC;MACF,IAAI,CAACwB,aAAa,CAACT,GAAG,CAACuC,OAAO,CAAC;MAE/B,IAAIO,SAAoB;MACxBpD,IAAI,CAAC2C,gBAAgB,CAAC,WAAW,EAAE,YAAM;QACvCxB,aAAa,CAAC5B,IAAI,CAAC;QAEnB,IAAMD,GAAG,GAAGN,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;QACzCK,GAAG,CAACM,GAAG,aAAMzB,OAAO,iCAAU;QAE9BiF,SAAS,GAAG,IAAInF,SAAS,CAACqB,GAAG,EAAE;UAC7BW,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;QACnB,CAAC,CAAC;QACFmD,SAAS,CAAChD,QAAQ,CAACC,SAAS,CAACd,IAAI,CAACa,QAAQ,CAAC;QAE3C,MAAI,CAAC3B,KAAK,CAAC6B,GAAG,CAAC8C,SAAS,CAAC;MAC3B,CAAC,CAAC;MAEFpD,IAAI,CAAC2C,gBAAgB,CAAC,UAAU,EAAE,YAAM;QAAA;QACtC,IAAIS,SAAS,EACXA,SAAS,CAAC1C,gBAAgB,EAAE;QAE9B,IAAI,MAAI,CAACE,SAAS,IAAI,MAAI,CAACA,SAAS,CAACV,IAAI,yBAAK,MAAI,CAACW,QAAQ,oDAAb,gBAAeX,IAAI,GAAE;UACjE,MAAI,CAACU,SAAS,CAACF,gBAAgB,EAAE;UACjC,MAAI,CAACE,SAAS,GAAG,IAAI;QACvB;MACF,CAAC,CAAC;IACJ;;IAEA;IACA;IACA;EAAA;IAAA;IAAA,OACA,qBAAYM,GAAc,EAAa;MAAA;MAAA,IAAXmC,KAAK,uEAAG,CAAC;MACnC,IAAI,CAACnC,GAAG,EACN;MACF;MACA,IAAMoC,WAAW,GAAG,GAAG;MACvB,IAAMC,WAAW,GAAG,OAAO;MAC3B,qBAAmBzF,GAAG,CAAC2E,QAAQ,EAAE;QAAzBe,MAAM,kBAANA,MAAM;;MAEd;MACA,IAAMC,QAAQ,GAAG,qBAAAD,MAAM,CAACpD,QAAQ,qDAAf,iBAAiBsD,UAAU,CAACxC,GAAG,CAACd,QAAQ,CAAC,KAAI,GAAG;MAEjE,IAAMuD,eAAe,GAAG9D,IAAI,CAAC+D,GAAG,CAACN,WAAW,EAAEzD,IAAI,CAACgE,GAAG,CAACN,WAAW,EAAEE,QAAQ,CAAC,CAAC;MAE9E,IAAMK,UAAU,GAAGH,eAAe,GAAG,IAAI;MACzC,IAAI,CAACN,KAAK,IAAInC,GAAG,CAACjB,KAAK,EACrBoD,KAAK,GAAGnC,GAAG,CAACjB,KAAK,CAAC8D,CAAC,GAAG7C,GAAG,CAACjB,KAAK,CAAC+D,CAAC;;MAEnC;MACA9C,GAAG,CAACjB,KAAK,CAACqC,IAAI,CAAC,IAAIzE,OAAO,CAACiG,UAAU,GAAGT,KAAK,EAAES,UAAU,EAAE,CAAC,CAAC,CAAC;IAChE;EAAC;IAAA;IAAA,OAED,2BAA0BG,cAAc,EAAER,QAAQ,EAAE;MAClD;MACA,IAAMS,cAAc,GAAG,IAAIrG,OAAO,EAAE;MACpC,IAAMsG,SAAS,GAAG,IAAItG,OAAO,EAAE,EAAC;;MAEhC,qBAAmBC,GAAG,CAAC2E,QAAQ,EAAE;QAAzBe,MAAM,kBAANA,MAAM;MACd;MACAW,SAAS,CAACC,UAAU,CAACZ,MAAM,CAACpD,QAAQ,EAAE6D,cAAc,CAAC,CAACI,SAAS,EAAE;;MAEjE;MACAH,cAAc,CAAC5B,IAAI,CAAC2B,cAAc,CAAC,CAAC3D,GAAG,CAAC6D,SAAS,CAACG,cAAc,CAACb,QAAQ,CAAC,CAAC;MAC3E,OAAOS,cAAc;IACvB;EAAC;IAAA;IAAA,OAED,iBAAgBrF,QAAQ,EAAE;MACxB,IAAM0F,SAAS,GAAGlD,MAAM,CAACmD,IAAI,CAACtG,SAAS,CAAC,CAACuG,IAAI,CAAC,UAACC,GAAQ,EAAK;QAC1D,OAAOxG,SAAS,CAACwG,GAAG,CAAC,CAACvE,EAAE,KAAKtB,QAAQ;MACvC,CAAC,CAAC;MAEF,OAAOX,SAAS,CAACqG,SAAS,CAAC,IAAIrG,SAAS,CAACqG,SAAS,CAAC,CAAC7E,MAAM;IAC5D;EAAC;EAAA;AAAA;AAGH,eAAerB,YAAY"}
1
+ {"version":3,"names":["Vector3","use","utils","EAnimationType","SpritePoi","regionMap","usePath","emitter","CircleManage","gobal","Map","Set","scene","interactionManager","storeManagement","get","belongTo","remove","dom","document","createElement","style","width","height","imgs","img","data","getData","forEach","people","cloneNode","src","Math","floor","random","mesh","scale","name","id","position","fromArray","add","bindEvent","circleMesh","set","removeFromParent","clear","peoplePoi","clickPoi","poiRemoveEventListener","eventListener","fn","visible","poi","showPeoplePoi","eventName","image","top","appendChild","Object","assign","fontSize","backgroundImage","backgroundSize","backgroundRepeat","display","justifyContent","alignItems","color","pointerEvents","padding","span","innerText","paddingLeft","animation","type","fadeIn","duration","copy","clone","updateScale","useScene","orbitControls","addEventListener","removeEventListener","unClick","getCameraPosition","cameraUtil","toArray","target","then","emit","hoverMesh","ratio","minDistance","maxDistance","camera","distance","distanceTo","clampedDistance","max","min","scaleValue","x","y","targetPosition","cameraPosition","direction","subVectors","normalize","multiplyScalar","regionKey","keys","find","key"],"sources":["../../../src/factory/unit/circle.ts"],"sourcesContent":["import { Vector3, use, utils } from '@anov/3d-core'\nimport type { InteractionManager, Mesh, Object3D, Scene } from '@anov/3d-core'\nimport { EAnimationType, SpritePoi } from '@anov/3d-ability'\nimport type Factory3D from '../3d'\nimport { regionMap } from '../regionData'\n\nimport { usePath } from '../3d'\n\nconst { emitter } = utils\n\nclass CircleManage {\n private gobal: Factory3D\n private scene: Scene\n readonly circleMesh: Map<string, Object3D> = new Map()\n private interactionManager\n private peoplePoi!: SpritePoi | null\n private clickPoi: Object3D | null\n eventListener: Set<Function> = new Set()\n poiRemoveEventListener: Function\n\n constructor(gobal: Factory3D) {\n this.gobal = gobal\n this.scene = gobal.scene.scene\n this.interactionManager = utils.storeManagement.get<InteractionManager>('interactionManager')\n }\n\n generateCircle(belongTo: string) {\n this.remove()\n // const geometry = new SphereGeometry(2, 32, 16)\n // const material = new MeshPhysicalMaterial({ color: 0xFED602, metalness: 0.1, roughness: 0.5 })\n // const circle = new Mesh(geometry, material)\n const dom = document.createElement('img')\n dom.style.width = '50px'\n dom.style.height = '87px'\n const imgs = ['左', '中', '右']\n let img\n const data = this.getData(belongTo)\n data.forEach((people) => {\n img = dom.cloneNode() as HTMLImageElement\n img.src = `${usePath}p2/${imgs[Math.floor(Math.random() * 3)]}.png`\n const mesh = new SpritePoi(img, {\n scale: [10, 16, 1],\n })\n mesh.name = people.id\n mesh.position.fromArray(people.position)\n this.scene.add(mesh)\n this.bindEvent(mesh, people)\n this.circleMesh.set(people.id, mesh)\n })\n }\n\n remove() {\n this.circleMesh.forEach((mesh) => {\n mesh.removeFromParent()\n mesh.remove()\n })\n this.circleMesh.clear()\n this.peoplePoi && this.peoplePoi.removeFromParent()\n this.peoplePoi = this.clickPoi = null\n if (this.poiRemoveEventListener)\n this.poiRemoveEventListener()\n\n this.eventListener && this.eventListener.forEach((fn) => {\n fn()\n })\n }\n\n setVisible(visible = true) {\n // 控制CYCLE的隐藏、显示\n this.circleMesh.forEach((poi) => {\n poi.visible = visible\n })\n }\n\n private bindEvent(mesh: SpritePoi, data) {\n this.interactionManager.add(mesh)\n\n const showPeoplePoi = (data: any, eventName = 'hover') => {\n if (this.peoplePoi) {\n if (this.peoplePoi.name !== data.id) {\n this.peoplePoi.removeFromParent()\n }\n else {\n if (eventName === 'click')\n this.clickPoi = this.peoplePoi\n return\n }\n }\n this.clickPoi = null\n\n const dom = document.createElement('div')\n const image = document.createElement('img')\n\n image.src = `${usePath}people.png`\n image.style.width = '30px'\n image.style.height = '30px'\n image.style.position = 'absolute'\n image.style.top = '5px'\n\n dom.appendChild(image)\n\n Object.assign(dom.style, {\n fontSize: '24px',\n backgroundImage: `url(${usePath}人员标签.png)`,\n backgroundSize: '100% 100%',\n backgroundRepeat: 'no-repeat',\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n color: '#fff',\n pointerEvents: 'auto',\n height: '50px',\n width: '200px',\n padding: '0 0 12px 15px',\n position: 'relative',\n })\n\n const span = document.createElement('span')\n span.innerText = data.name\n span.style.paddingLeft = '60px'\n dom.appendChild(span)\n\n this.peoplePoi = new SpritePoi(dom, {\n animation: {\n type: EAnimationType.fadeIn,\n duration: 0.2,\n },\n })\n this.peoplePoi.name = data.id\n this.peoplePoi.position.copy(mesh.position.clone().add(new Vector3(0, 16, 0)))\n this.updateScale(this.peoplePoi, 3.2)\n this.scene.add(this.peoplePoi)\n\n const { orbitControls } = use.useScene()\n if (this.poiRemoveEventListener)\n this.poiRemoveEventListener()\n const fn = () => this.updateScale(this.peoplePoi)\n orbitControls?.addEventListener('change', fn)\n this.poiRemoveEventListener = () => orbitControls?.removeEventListener('change', fn)\n }\n\n const unClick = mesh.addEventListener('click', () => {\n const position = this.getCameraPosition(new Vector3().fromArray(data.position).add(new Vector3(0, 10, 0)), 43.5)\n this.gobal.cameraUtil.set({\n position: position.toArray(),\n target: [data.position[0], data.position[1] + 10, data.position[2]],\n }).then(() => {})\n emitter.emit('peoplemanagement-person-click', data)\n showPeoplePoi(data, 'click')\n })\n this.eventListener.add(unClick)\n\n let hoverMesh: SpritePoi\n mesh.addEventListener('mouseover', () => {\n showPeoplePoi(data)\n\n const img = document.createElement('img')\n img.src = `${usePath}人员高亮.png`\n\n hoverMesh = new SpritePoi(img, {\n scale: [10, 16, 1],\n })\n hoverMesh.position.fromArray(data.position)\n\n this.scene.add(hoverMesh)\n })\n\n mesh.addEventListener('mouseout', () => {\n if (hoverMesh)\n hoverMesh.removeFromParent()\n\n if (this.peoplePoi && this.peoplePoi.name !== this.clickPoi?.name) {\n this.peoplePoi.removeFromParent()\n this.peoplePoi = null\n }\n })\n }\n\n /// <summary>\n /// 按照距离缩放,距离越远,缩放越大\n /// </summary>\n updateScale(poi: SpritePoi, ratio = 0) {\n if (!poi)\n return\n // 距离限制范围的值,用于计算缩放比例\n const minDistance = 0.1\n const maxDistance = 1000000\n const { camera } = use.useScene()\n\n // 计算相机和物体之间的距离\n const distance = camera.position?.distanceTo(poi.position) || 0.1\n\n const clampedDistance = Math.max(minDistance, Math.min(maxDistance, distance))\n\n const scaleValue = clampedDistance * 0.03\n if (!ratio && poi.scale)\n ratio = poi.scale.x / poi.scale.y\n\n // 按照缩放系数和距离进行缩放,缩放系数应该约定好一个固定值\n poi.scale.copy(new Vector3(scaleValue * ratio, scaleValue, 1))\n }\n\n private getCameraPosition(targetPosition, distance) {\n // 计算相机的位置\n const cameraPosition = new Vector3()\n const direction = new Vector3() // 目标对象指向相机的方向\n\n const { camera } = use.useScene()\n // 计算相机朝向目标对象的方向\n direction.subVectors(camera.position, targetPosition).normalize()\n\n // 将相机沿着目标对象方向移动以保持距离\n cameraPosition.copy(targetPosition).add(direction.multiplyScalar(distance))\n return cameraPosition\n }\n\n private getData(belongTo) {\n const regionKey = Object.keys(regionMap).find((key: any) => {\n return regionMap[key].id === belongTo\n })\n\n return regionMap[regionKey] && regionMap[regionKey].people\n }\n}\n\nexport default CircleManage"],"mappings":"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"}
@@ -84,6 +84,7 @@ var InspectionObject = /*#__PURE__*/function () {
84
84
  img.src = "".concat(usePath, "aerialVehicle02.png");
85
85
  span = document.createElement('span');
86
86
  span.innerText = '巡检无人机';
87
+ span.style.fontFamily = 'YouSheBiaoTiHei3D';
87
88
  span.style.position = 'absolute';
88
89
  span.style.top = '10px';
89
90
  span.style.left = '45%';
@@ -165,7 +166,7 @@ var InspectionObject = /*#__PURE__*/function () {
165
166
  this.inspection.gobal.scene.add(this.model);
166
167
  this.loadPosAudio();
167
168
  this.breathinglamp(this.model);
168
- case 59:
169
+ case 60:
169
170
  case "end":
170
171
  return _context.stop();
171
172
  }
@@ -342,7 +343,7 @@ var InspectionObject = /*#__PURE__*/function () {
342
343
  var numberKey = Number(key);
343
344
 
344
345
  // @ts-ignore
345
- _this5.getSportsProgress > numberKey && mapAnchor.material.uniforms.uColor.value.set(1, 0, 0, 0.8);
346
+ _this5.getSportsProgress > numberKey && mapAnchor.material.uniforms.uColor.value.set(1, 1, 0, 0.8);
346
347
 
347
348
  // @ts-ignore
348
349
  _this5.getSportsProgress < numberKey && mapAnchor.material.uniforms.uColor.value.set(1, 1, 1, 1);
@@ -1 +1 @@
1
- {"version":3,"names":["AudioListener","AudioLoader","Clock","Color","EdgesGeometry","Euler","Group","LineBasicMaterial","LineCurve3","LineSegments","MathUtils","Matrix4","Mesh","MeshBasicMaterial","MirroredRepeatWrapping","ModelLoader","PlaneGeometry","PositionalAudio","Quaternion","RepeatWrapping","TextureLoader","Vector3","use","utils","SpritePoi","Tween","createFinirMaterial","usePath","MessageType","sendToMessage","EMessageStatus","SceneTag","isCheck","targetProgresspoints","TubeGeometryV2","modelLoader","InspectionObject","inspection","verticalSpeed","horizontalSpeed","height","targetQuaternion","mesh","cb","clock","quaternion","equals","animation","useframe","delta","getDelta","step","rotateTowards","temp","load","wrapS","wrapT","repeat","set","rotation","Math","PI","loadGLTF","glb","div","document","createElement","style","position","img","src","span","innerText","top","left","transform","color","fontSize","fontWeight","appendChild","poi","width","img2","poi2","scale","fly1","scene","getObjectByName","fly2","fly3","fly4","planeGeometry","planeMaterial","map","transparent","plyMap","x","copy","layers","group","name","add","minCamera","clone","z","getSportsProgress","isLock","stop","checkAnimation","compassInfo","y","rotateY","initialMinCameraQuaternion","model","gobal","interactionManager","visible","addEventListener","traverse","child","enable","loadPosAudio","breathinglamp","target","startColor","endColor","breathingSpeed","elapsedTime","getElapsedTime","t","sin","currentColor","lerp","material","handleMouseMove","listener","posAudio","audioLoader","audioBuffer","setBuffer","setVolume","setRefDistance","setLoop","emitter","on","isStartUp","play","removeEventListener","curve","loadModel","control","moveWithLine","groundCurve","getPointAt","setTimeout","sendCompassInfo","groundMaterial","uniforms","u_time","value","mapMaterial","mapAnchorObject","forEach","mapAnchor","uColor","Event","Success","undefined","percentage","setInterval","updateMatrixWorld","worldQuaternion","getWorldQuaternion","worldEuler","setFromQuaternion","rotationY","rotationYInDegrees","round","radToDeg","rotate","abs","degree","distance","getLength","getProgress","Promise","resolve","data","progress","isAnimation","defaultFirstPerspectiveControls","enabled","key","Object","keys","find","p","num","parseFloat","targetMeshId","lookAt","targetMesh","pipeline","realModl","contineMove","currentAnchor","anchorObject","get","currentMapAnchor","numberKey","Number","rotationMatrix","startQuaternion","startCameraQuaternion","targetMeshPosition","up","setFromRotationMatrix","forwardTween","to","onUpdate","obj","slerp","backwardTween","onComplete","finirMesh","finirMaterialV2","type","lineSegments","geometry","subscription","then","start","off","currentPosition","targetPosition","tube","tempPathMesh","depthTest","tempDemo","offset","tag","dispose","removeFromParent","upCurve","upControl","loop","lookat","contine","targetProgress","startRotate","tempPathMeshtargetPosition","generateTempPathMesh","generateTempPath","tempCurve","tempControl","lastPosition","downCurve","downControl","rotationMatrix2","targetQuaternion2","targetPosition2","cleanTempPathMesh","setProgress","speed","setSpeed","Error","contineCount","takeOffAnimation","emit","camera"],"sources":["../../../../src/factory/unit/inspection/InspectionObject.ts"],"sourcesContent":["import type { Camera, Curve, Object3D } from '@anov/3d-core'\nimport { AudioListener, AudioLoader, BoxGeometry, Clock, Color, EdgesGeometry, Euler, Group, LineBasicMaterial, LineCurve3, LineSegments, MathUtils, Matrix4, Mesh, MeshBasicMaterial, MeshStandardMaterial, MirroredRepeatWrapping, ModelLoader, PlaneGeometry, PointLight, PositionalAudio, Quaternion, RepeatWrapping, ShaderChunk, ShaderMaterial, Sprite, SpriteMaterial, TextureLoader, TubeGeometry, Vector3, Vector4, use, utils } from '@anov/3d-core'\nimport type { Css2DPoi } from '@anov/3d-ability'\nimport { SpritePoi, addColorifyPass, createHighSelectedTool } from '@anov/3d-ability'\nimport { Tween } from '@tweenjs/tween.js'\nimport { createFinirMaterial } from '../../utils/finirMaterial'\nimport { usePath } from '../../3d'\nimport { MessageType, sendToMessage } from '../../../utils/messageFn'\nimport { EMessageStatus } from '../../../messageStatus'\nimport { SceneTag } from '../../utils/constant'\nimport { isCheck, targetProgresspoints } from './lineData'\nimport TubeGeometryV2 from './tubeGeometry'\n\nconst modelLoader = new ModelLoader()\n\nclass InspectionObject {\n model\n private inspection\n private control\n private isLock = false\n private isAnimation = false\n walkCurveMesh\n tempPathMesh\n css2d: Css2DPoi\n temp\n tempDemo\n isStartUp = false\n initialMinCameraQuaternion\n contineCount = 0\n\n compassInfo = {\n verticalSpeed: 0,\n horizontalSpeed: 10,\n height: 0,\n }\n\n constructor(inspection) {\n this.inspection = inspection\n\n const temp = new TextureLoader().load(`${usePath}test07.png`)\n temp.wrapS = RepeatWrapping\n temp.wrapT = MirroredRepeatWrapping\n temp.repeat.set(1, 2)\n temp.rotation = Math.PI\n\n this.temp = temp\n }\n\n private async loadModel() {\n const glb = await (await modelLoader.loadGLTF(`${usePath}car.glb`, false, true, './draco/'))\n\n const div = document.createElement('div')\n div.style.position = 'relative'\n\n const img = document.createElement('img')\n img.src = `${usePath}aerialVehicle02.png`\n\n const span = document.createElement('span')\n span.innerText = '巡检无人机'\n span.style.position = 'absolute'\n span.style.top = '10px'\n span.style.left = '45%'\n span.style.transform = 'translateX(-30%)'\n\n span.style.color = 'white'\n span.style.fontSize = '20px'\n span.style.fontWeight = 'bold'\n\n div.appendChild(img)\n div.appendChild(span)\n\n const poi = new SpritePoi(div, {\n width: 100 * 2,\n height: 40 * 2,\n })\n\n const img2 = document.createElement('img')\n img2.src = `${usePath}aerialVehicle01.png`\n\n const poi2 = new SpritePoi(img2, {\n width: 400 * 2,\n height: 160 * 2,\n })\n\n poi.scale.set(80, 30, 1)\n poi2.scale.set(400, 160, 1)\n\n const fly1 = glb.scene.getObjectByName('fly1')\n const fly2 = glb.scene.getObjectByName('fly1_1')\n const fly3 = glb.scene.getObjectByName('fly1_2')\n const fly4 = glb.scene.getObjectByName('fly1_3')\n\n const planeGeometry = new PlaneGeometry(50, 50)\n const planeMaterial = new MeshBasicMaterial({ map: new TextureLoader().load(`${usePath}fly.png`), transparent: true })\n const plyMap = new Mesh(planeGeometry, planeMaterial)\n\n plyMap.rotation.x = -Math.PI / 2\n plyMap.position.copy(glb.scene.position)\n plyMap.layers.set(5)\n\n const group = new Group()\n glb.scene.name = 'ply'\n group.add(glb.scene)\n group.add(poi)\n group.add(plyMap)\n group.add(this.inspection.minCamera)\n\n use.useframe(() => {\n poi.position.copy(glb.scene.position.clone().add(new Vector3(0, 10, 0)))\n poi2.position.copy(glb.scene.position.clone().add(new Vector3(0, 10, 0)))\n\n fly1.rotation.z += 1.3\n fly2.rotation.z += 1.3\n fly3.rotation.z += 1.3\n fly4.rotation.z += 1.3\n\n if (isCheck(this.getSportsProgress)\n && !this.isLock) {\n this.stop()\n this.checkAnimation(this.getSportsProgress)\n this.compassInfo.horizontalSpeed = 0\n this.compassInfo.verticalSpeed = 0\n }\n })\n\n this.inspection.minCamera.position.copy(glb.scene.position)\n this.inspection.minCamera.position.z -= 18\n this.inspection.minCamera.position.y += 4\n this.inspection.minCamera.rotateY(Math.PI)\n this.initialMinCameraQuaternion = this.inspection.minCamera.quaternion.clone()\n\n this.model = group\n\n this.inspection.gobal.interactionManager.add(poi)\n this.inspection.gobal.interactionManager.add(poi2)\n\n poi2.visible = false\n\n poi.addEventListener('click', () => {\n group.add(poi2)\n poi2.visible = true\n poi.visible = false\n })\n\n poi2.addEventListener('click', () => {\n group.add(poi2)\n poi.visible = true\n poi2.visible = false\n })\n\n glb.scene.scale.set(5, 5, 5)\n glb.scene.traverse((child) => {\n // child.layers.enable(2)\n child.layers.enable(5)\n })\n\n this.inspection.gobal.scene.add(this.model)\n\n this.loadPosAudio()\n this.breathinglamp(this.model)\n }\n\n private breathinglamp(model: Group) {\n const target = model.getObjectByName('网格004_5')\n\n const startColor = new Color('#999')\n const endColor = new Color('#2df3ee')\n\n const clock = new Clock()\n const breathingSpeed = 1\n\n use.useframe(() => {\n const elapsedTime = clock.getElapsedTime()\n const t = (Math.sin(elapsedTime * Math.PI * breathingSpeed) + 1) / 2\n const currentColor = startColor.clone().lerp(endColor, t)\n\n // @ts-ignore\n target.material.color.set(currentColor)\n })\n }\n\n private loadPosAudio() {\n const handleMouseMove = () => {\n const listener = new AudioListener()\n this.inspection.minCamera.add(listener)\n\n const posAudio = new PositionalAudio(listener)\n this.model.add(posAudio)\n\n const audioLoader = new AudioLoader()\n\n audioLoader.load(`${usePath}demo.mp3`, (audioBuffer) => {\n posAudio.setBuffer(audioBuffer)\n posAudio.setVolume(0.8)\n posAudio.setRefDistance(200)\n posAudio.setLoop(true)\n })\n\n utils.emitter.on('play', () => {\n this.isStartUp && posAudio.play()\n })\n\n utils.emitter.on('stop', () => {\n posAudio.stop()\n })\n\n document.removeEventListener('mousemove', handleMouseMove)\n }\n\n document.addEventListener('mousemove', handleMouseMove)\n }\n\n async startMove(curve) {\n if (!this.model)\n await this.loadModel()\n\n this.control = utils.moveWithLine(this.model, curve, 10, {\n groundCurve: this.inspection.groundCurve,\n })\n\n this.model.position.copy(curve.getPointAt(0))\n\n setTimeout(() => {\n this.stop();\n ((this.model) as Object3D).position.y = (this.model.position.y - 20)\n }, 20)\n\n this.sendCompassInfo()\n\n use.useframe(() => {\n this.inspection.groundMaterial.uniforms.u_time.value = this.getSportsProgress - 0.01\n this.inspection.mapMaterial.uniforms.u_time.value = this.getSportsProgress - 0.01\n\n if (this.getSportsProgress > 0 && this.getSportsProgress < 0.01) {\n this.inspection.mapAnchorObject.forEach((mapAnchor) => {\n mapAnchor.material.uniforms.uColor.value.set(1, 1, 1, 1)\n })\n }\n\n sendToMessage(MessageType.Event, 'onInspectProgress', EMessageStatus.Success, undefined, {\n percentage: this.getSportsProgress * 1000,\n })\n })\n }\n\n /**\n * send compass info\n * not use useframe, because useframe will be lose some frame\n */\n private sendCompassInfo() {\n setInterval(() => {\n const mesh = this.model\n mesh.updateMatrixWorld(true)\n\n const worldQuaternion = new Quaternion()\n mesh.getWorldQuaternion(worldQuaternion)\n\n const worldEuler = new Euler().setFromQuaternion(worldQuaternion, 'YXZ')\n const rotationY = worldEuler.y\n const rotationYInDegrees = Math.round(MathUtils.radToDeg(rotationY))\n\n sendToMessage(MessageType.Event, 'onCompassInfo', EMessageStatus.Success, undefined, {\n rotate: rotationYInDegrees >= 0 ? 180 - rotationYInDegrees : -180 + Math.abs(rotationYInDegrees),\n degree: rotationYInDegrees >= 0 ? 180 - rotationYInDegrees : -180 + Math.abs(rotationYInDegrees) + 360,\n distance: this.getSportsProgress * this.inspection.curve.getLength(),\n verticalSpeed: this.compassInfo.verticalSpeed,\n horizontalSpeed: this.compassInfo.horizontalSpeed * 3.6,\n height: (this.model as Object3D).position.y,\n })\n }, 100)\n }\n\n get getSportsProgress() {\n if (!this.control)\n return 0\n\n return this.control.getProgress()\n }\n\n subscription() {\n return new Promise((resolve) => {\n utils.emitter.on('continue', (data) => {\n resolve(data)\n })\n })\n }\n\n private checkAnimation(progress: number) {\n this.isLock = true\n this.isAnimation = true\n this.inspection.defaultFirstPerspectiveControls.enabled = false\n\n const key = Object.keys(targetProgresspoints).find((p) => {\n const num = parseFloat(p)\n if (progress >= num && progress < num + 0.01)\n return true\n })\n\n const targetMeshId = targetProgresspoints[key].lookAt\n\n let targetMesh: Group | null = null\n\n if (targetMeshId === 'GY_GD_guandaofamen_5')\n targetMesh = this.inspection.gobal.pipeline.getObjectByName(targetMeshId) as Group\n\n else\n targetMesh = this.inspection.gobal.realModl.getObjectByName(targetMeshId) as Group\n\n if (!targetMesh) {\n this.contineMove()\n this.isAnimation = false\n setTimeout(() => {\n this.isLock = false\n }, 500)\n return\n }\n\n const currentAnchor = this.inspection.anchorObject.get(targetProgresspoints[key].name)\n const currentMapAnchor = this.inspection.mapAnchorObject\n\n currentAnchor.traverse((child) => {\n if (child.name === 'cylinder')\n child.material = new MeshBasicMaterial({ color: new Color('yellow') })\n else\n child.material = new MeshBasicMaterial({ color: new Color('#facb2b') })\n });\n\n (currentMapAnchor as Map<string, Mesh>).forEach((mapAnchor, key) => {\n const numberKey = Number(key)\n\n // @ts-ignore\n this.getSportsProgress > numberKey && mapAnchor.material.uniforms.uColor.value.set(1, 0, 0, 0.8)\n\n // @ts-ignore\n this.getSportsProgress < numberKey && mapAnchor.material.uniforms.uColor.value.set(1, 1, 1, 1)\n })\n\n setTimeout(() => {\n const rotationMatrix = new Matrix4()\n const targetQuaternion = new Quaternion()\n const startQuaternion = this.model.quaternion.clone()\n const startCameraQuaternion = this.inspection.minCamera.quaternion.clone()\n\n const targetMeshPosition = targetMesh.position.clone()\n targetMeshPosition.y = targetMeshPosition.y + ((Number(key) === 0.048 || Number(key) === 0.682 || Number(key) === 0.400) ? 20 : 0)\n\n rotationMatrix.lookAt(targetMeshPosition, this.model.position, this.model.up)\n targetQuaternion.setFromRotationMatrix(rotationMatrix)\n\n const forwardTween = new Tween({ t: 0 })\n .to({ t: 1 }, 2000)\n .onUpdate((obj) => {\n this.model.quaternion.copy(startQuaternion).slerp(targetQuaternion, obj.t)\n this.inspection.minCamera.quaternion.copy(startCameraQuaternion).slerp(this.initialMinCameraQuaternion, obj.t)\n })\n\n const backwardTween = new Tween({ t: 1 })\n .to({ t: 0 }, 2000)\n .onUpdate((obj) => {\n this.model.quaternion.copy(startQuaternion).slerp(targetQuaternion, obj.t)\n })\n\n forwardTween.onComplete(() => {\n let finirMesh: Group | null = null\n\n sendToMessage(MessageType.Event, 'onReachTarget', EMessageStatus.Success, undefined, {\n target: targetProgresspoints[key].name,\n })\n\n if (Number(key) === 0.048 || Number(key) === 0.682 || Number(key) === 0.400)\n (this.inspection.minCamera as Camera).layers.set(2)\n\n if (Number(key) === 0.155 || Number(key) === 0.247) {\n (this.inspection.minCamera as Camera).layers.enable(3)\n // @ts-ignore\n if (!targetMesh.finirMesh) {\n finirMesh = targetMesh.clone() as any as Group\n\n const finirMaterialV2 = createFinirMaterial('#08A6E3', 4.3)\n\n finirMesh.traverse((child) => {\n child.layers.set(3)\n\n if (child.type === 'Mesh') {\n // @ts-ignore\n child.material = finirMaterialV2\n\n // @ts-ignore\n const lineSegments = new LineSegments(new EdgesGeometry(child.geometry as any), new LineBasicMaterial({ color: '#08A6E3' }))\n\n lineSegments.layers.set(3)\n finirMesh.add(lineSegments)\n }\n })\n\n // @ts-ignore\n targetMesh.finirMesh = finirMesh\n\n this.inspection.gobal.scene.add(finirMesh)\n }\n else {\n // @ts-ignore\n finirMesh = targetMesh.finirMesh\n\n finirMesh.visible = true\n }\n }\n\n // 异常点\n if (Number(key) === 0.155 || Number(key) === 0.247) {\n this.subscription().then((data) => {\n if (data) {\n finirMesh.visible = false\n backwardTween.start()\n\n utils.emitter.off('continue')\n }\n })\n }\n else {\n setTimeout(() => {\n if (Number(key) === 0.048 || Number(key) === 0.682 || Number(key) === 0.400)\n (this.inspection.minCamera as Camera).layers.set(0)\n\n // if (Number(key) === 0.40)\n // finirMesh.visible = false\n\n backwardTween.start()\n }, 6000)\n }\n })\n\n setTimeout(() => {\n forwardTween.start()\n }, 1000)\n\n backwardTween.onComplete(() => {\n this.isAnimation = false\n this.contineMove()\n\n this.compassInfo.verticalSpeed = 0\n this.compassInfo.horizontalSpeed = 10\n\n currentAnchor.traverse((child) => {\n if (child.name === 'cylinder')\n child.material = new MeshBasicMaterial({ color: new Color('#cdccca') })\n else\n child.material = new MeshBasicMaterial({ color: new Color('#fff') })\n })\n\n setTimeout(() => {\n this.inspection.defaultFirstPerspectiveControls.enabled = true\n this.isLock = false\n }, 500)\n })\n }, 1000)\n }\n\n generateTempPath(currentPosition: Vector3, targetPosition: Vector3) {\n return new LineCurve3(currentPosition, targetPosition)\n }\n\n private startRotate = (targetQuaternion: Quaternion, mesh: Group, cb: () => void) => {\n const clock = new Clock()\n\n if (mesh.quaternion.equals(targetQuaternion))\n return cb()\n\n const animation = use.useframe(() => {\n const delta = clock.getDelta()\n if (!mesh.quaternion.equals(targetQuaternion)) {\n const step = 1 * delta\n mesh.quaternion.rotateTowards(targetQuaternion, step)\n }\n else {\n animation()\n cb()\n }\n },\n )\n }\n\n private generateTempPathMesh(curve: Curve<Vector3>) {\n // @ts-ignore\n const tube = new TubeGeometryV2(curve, 100, 5, 2, false)\n const tempPathMesh = new Mesh(tube, new MeshBasicMaterial({ map: this.temp, transparent: true, depthTest: true }))\n\n this.inspection.gobal.scene.add(tempPathMesh)\n this.tempPathMesh = tempPathMesh\n\n tempPathMesh.layers.enable(5)\n\n this.temp.repeat.set(curve.getLength() / 500, 2)\n this.tempDemo = use.useframe(() => {\n this.temp.offset.x -= -0.0009\n\n if (this.inspection.gobal.tag === SceneTag['smart-inspection'])\n this.tempPathMesh.visible = true\n else\n this.tempPathMesh.visible = false\n })\n }\n\n private cleanTempPathMesh() {\n if (this.tempPathMesh) {\n this.tempDemo()\n this.tempPathMesh.geometry.dispose()\n this.tempPathMesh.material.dispose();\n (this.tempPathMesh as Mesh).removeFromParent()\n }\n }\n\n private takeOffAnimation() {\n const currentPosition = this.model.position\n const upCurve = new LineCurve3(currentPosition, new Vector3(currentPosition.x, currentPosition.y + 20, currentPosition.z))\n const upControl = utils.moveWithLine(this.model, upCurve, 10, { loop: false, lookat: false })\n\n this.compassInfo.horizontalSpeed = 0\n this.compassInfo.verticalSpeed = 10\n\n upControl.addEventListener('end', () => {\n this.control.contine()\n this.compassInfo.verticalSpeed = 0\n this.compassInfo.horizontalSpeed = 10\n })\n }\n\n gotoTarget(targetPosition: Vector3, targetProgress: number) {\n if (this.isAnimation)\n return\n\n this.isAnimation = true\n\n this.control.stop()\n\n this.compassInfo.verticalSpeed = 0\n this.compassInfo.horizontalSpeed = 0\n\n const rotationMatrix = new Matrix4()\n const targetQuaternion = new Quaternion()\n\n rotationMatrix.lookAt(targetPosition, this.model.position, this.model.up)\n targetQuaternion.setFromRotationMatrix(rotationMatrix)\n\n this.startRotate(targetQuaternion, this.model,\n () => {\n const tempPathMeshtargetPosition = new Vector3(targetPosition.x, 1.1, targetPosition.z)\n this.generateTempPathMesh(this.generateTempPath(new Vector3(this.model.position.x, 1.1, this.model.position.z), tempPathMeshtargetPosition))\n\n const currentPosition = this.model.position\n const upCurve = new LineCurve3(currentPosition, new Vector3(currentPosition.x, currentPosition.y + 50, currentPosition.z))\n const upControl = utils.moveWithLine(this.model, upCurve, 10, { loop: false, lookat: targetPosition })\n\n this.compassInfo.verticalSpeed = 10\n this.compassInfo.horizontalSpeed = 0\n\n // up end\n upControl.addEventListener('end', () => {\n const tempCurve = this.generateTempPath(currentPosition, new Vector3(targetPosition.x, targetPosition.y + 50, targetPosition.z))\n const tempControl = utils.moveWithLine(this.model, tempCurve, 60, { loop: false, lookat: false })\n\n this.compassInfo.verticalSpeed = 0\n this.compassInfo.horizontalSpeed = 60\n\n // temp end\n tempControl.addEventListener('end', () => {\n const lastPosition = this.model.position\n const downCurve = new LineCurve3(lastPosition, new Vector3(lastPosition.x, lastPosition.y - 50, lastPosition.z))\n const downControl = utils.moveWithLine(this.model, downCurve, 10, { loop: false, lookat: false })\n\n this.compassInfo.verticalSpeed = 10\n this.compassInfo.horizontalSpeed = 0\n\n // down end\n downControl.addEventListener('end', () => {\n const rotationMatrix2 = new Matrix4()\n const targetQuaternion2 = new Quaternion()\n\n const targetPosition2 = this.inspection.curve.getPointAt((targetProgress + 0.01) % 1)\n\n rotationMatrix2.lookAt(targetPosition2, this.model.position, this.model.up)\n targetQuaternion2.setFromRotationMatrix(rotationMatrix2)\n\n this.startRotate(targetQuaternion2, this.model, () => {\n setTimeout(() => {\n this.cleanTempPathMesh()\n this.isAnimation = false\n this.control.setProgress(targetProgress)\n this.control.contine()\n\n this.compassInfo.verticalSpeed = 0\n this.compassInfo.horizontalSpeed = 10\n }, 500)\n })\n })\n })\n })\n })\n }\n\n setSpeed(speed: number) {\n if (this.control)\n this.control.setSpeed(speed)\n }\n\n stop() {\n if (this.control)\n this.control.stop()\n }\n\n contineMove() {\n if (!this.control)\n throw new Error('control not init')\n\n if (this.contineCount === 0)\n this.takeOffAnimation()\n\n else\n this.control.contine()\n\n this.contineCount++\n\n this.isStartUp = true\n\n utils.emitter.emit('continue', true)\n\n if (this.inspection.minCamera === this.inspection.gobal.scene.camera)\n utils.emitter.emit('play')\n }\n\n /**\n * todo: now temporarily not implemented\n */\n dispose() { }\n}\n\nexport default InspectionObject"],"mappings":"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"}
1
+ {"version":3,"names":["AudioListener","AudioLoader","Clock","Color","EdgesGeometry","Euler","Group","LineBasicMaterial","LineCurve3","LineSegments","MathUtils","Matrix4","Mesh","MeshBasicMaterial","MirroredRepeatWrapping","ModelLoader","PlaneGeometry","PositionalAudio","Quaternion","RepeatWrapping","TextureLoader","Vector3","use","utils","SpritePoi","Tween","createFinirMaterial","usePath","MessageType","sendToMessage","EMessageStatus","SceneTag","isCheck","targetProgresspoints","TubeGeometryV2","modelLoader","InspectionObject","inspection","verticalSpeed","horizontalSpeed","height","targetQuaternion","mesh","cb","clock","quaternion","equals","animation","useframe","delta","getDelta","step","rotateTowards","temp","load","wrapS","wrapT","repeat","set","rotation","Math","PI","loadGLTF","glb","div","document","createElement","style","position","img","src","span","innerText","fontFamily","top","left","transform","color","fontSize","fontWeight","appendChild","poi","width","img2","poi2","scale","fly1","scene","getObjectByName","fly2","fly3","fly4","planeGeometry","planeMaterial","map","transparent","plyMap","x","copy","layers","group","name","add","minCamera","clone","z","getSportsProgress","isLock","stop","checkAnimation","compassInfo","y","rotateY","initialMinCameraQuaternion","model","gobal","interactionManager","visible","addEventListener","traverse","child","enable","loadPosAudio","breathinglamp","target","startColor","endColor","breathingSpeed","elapsedTime","getElapsedTime","t","sin","currentColor","lerp","material","handleMouseMove","listener","posAudio","audioLoader","audioBuffer","setBuffer","setVolume","setRefDistance","setLoop","emitter","on","isStartUp","play","removeEventListener","curve","loadModel","control","moveWithLine","groundCurve","getPointAt","setTimeout","sendCompassInfo","groundMaterial","uniforms","u_time","value","mapMaterial","mapAnchorObject","forEach","mapAnchor","uColor","Event","Success","undefined","percentage","setInterval","updateMatrixWorld","worldQuaternion","getWorldQuaternion","worldEuler","setFromQuaternion","rotationY","rotationYInDegrees","round","radToDeg","rotate","abs","degree","distance","getLength","getProgress","Promise","resolve","data","progress","isAnimation","defaultFirstPerspectiveControls","enabled","key","Object","keys","find","p","num","parseFloat","targetMeshId","lookAt","targetMesh","pipeline","realModl","contineMove","currentAnchor","anchorObject","get","currentMapAnchor","numberKey","Number","rotationMatrix","startQuaternion","startCameraQuaternion","targetMeshPosition","up","setFromRotationMatrix","forwardTween","to","onUpdate","obj","slerp","backwardTween","onComplete","finirMesh","finirMaterialV2","type","lineSegments","geometry","subscription","then","start","off","currentPosition","targetPosition","tube","tempPathMesh","depthTest","tempDemo","offset","tag","dispose","removeFromParent","upCurve","upControl","loop","lookat","contine","targetProgress","startRotate","tempPathMeshtargetPosition","generateTempPathMesh","generateTempPath","tempCurve","tempControl","lastPosition","downCurve","downControl","rotationMatrix2","targetQuaternion2","targetPosition2","cleanTempPathMesh","setProgress","speed","setSpeed","Error","contineCount","takeOffAnimation","emit","camera"],"sources":["../../../../src/factory/unit/inspection/InspectionObject.ts"],"sourcesContent":["import type { Camera, Curve, Object3D } from '@anov/3d-core'\nimport { AudioListener, AudioLoader, BoxGeometry, Clock, Color, EdgesGeometry, Euler, Group, LineBasicMaterial, LineCurve3, LineSegments, MathUtils, Matrix4, Mesh, MeshBasicMaterial, MeshStandardMaterial, MirroredRepeatWrapping, ModelLoader, PlaneGeometry, PointLight, PositionalAudio, Quaternion, RepeatWrapping, ShaderChunk, ShaderMaterial, Sprite, SpriteMaterial, TextureLoader, TubeGeometry, Vector3, Vector4, use, utils } from '@anov/3d-core'\nimport type { Css2DPoi } from '@anov/3d-ability'\nimport { SpritePoi, addColorifyPass, createHighSelectedTool } from '@anov/3d-ability'\nimport { Tween } from '@tweenjs/tween.js'\nimport { createFinirMaterial } from '../../utils/finirMaterial'\nimport { usePath } from '../../3d'\nimport { MessageType, sendToMessage } from '../../../utils/messageFn'\nimport { EMessageStatus } from '../../../messageStatus'\nimport { SceneTag } from '../../utils/constant'\nimport { isCheck, targetProgresspoints } from './lineData'\nimport TubeGeometryV2 from './tubeGeometry'\n\nconst modelLoader = new ModelLoader()\n\nclass InspectionObject {\n model\n private inspection\n private control\n private isLock = false\n private isAnimation = false\n walkCurveMesh\n tempPathMesh\n css2d: Css2DPoi\n temp\n tempDemo\n isStartUp = false\n initialMinCameraQuaternion\n contineCount = 0\n\n compassInfo = {\n verticalSpeed: 0,\n horizontalSpeed: 10,\n height: 0,\n }\n\n constructor(inspection) {\n this.inspection = inspection\n\n const temp = new TextureLoader().load(`${usePath}test07.png`)\n temp.wrapS = RepeatWrapping\n temp.wrapT = MirroredRepeatWrapping\n temp.repeat.set(1, 2)\n temp.rotation = Math.PI\n\n this.temp = temp\n }\n\n private async loadModel() {\n const glb = await (await modelLoader.loadGLTF(`${usePath}car.glb`, false, true, './draco/'))\n\n const div = document.createElement('div')\n div.style.position = 'relative'\n\n const img = document.createElement('img')\n img.src = `${usePath}aerialVehicle02.png`\n\n const span = document.createElement('span')\n span.innerText = '巡检无人机'\n span.style.fontFamily = 'YouSheBiaoTiHei3D'\n span.style.position = 'absolute'\n span.style.top = '10px'\n span.style.left = '45%'\n span.style.transform = 'translateX(-30%)'\n\n span.style.color = 'white'\n span.style.fontSize = '20px'\n span.style.fontWeight = 'bold'\n\n div.appendChild(img)\n div.appendChild(span)\n\n const poi = new SpritePoi(div, {\n width: 100 * 2,\n height: 40 * 2,\n })\n\n const img2 = document.createElement('img')\n img2.src = `${usePath}aerialVehicle01.png`\n\n const poi2 = new SpritePoi(img2, {\n width: 400 * 2,\n height: 160 * 2,\n })\n\n poi.scale.set(80, 30, 1)\n poi2.scale.set(400, 160, 1)\n\n const fly1 = glb.scene.getObjectByName('fly1')\n const fly2 = glb.scene.getObjectByName('fly1_1')\n const fly3 = glb.scene.getObjectByName('fly1_2')\n const fly4 = glb.scene.getObjectByName('fly1_3')\n\n const planeGeometry = new PlaneGeometry(50, 50)\n const planeMaterial = new MeshBasicMaterial({ map: new TextureLoader().load(`${usePath}fly.png`), transparent: true })\n const plyMap = new Mesh(planeGeometry, planeMaterial)\n\n plyMap.rotation.x = -Math.PI / 2\n plyMap.position.copy(glb.scene.position)\n plyMap.layers.set(5)\n\n const group = new Group()\n glb.scene.name = 'ply'\n group.add(glb.scene)\n group.add(poi)\n group.add(plyMap)\n group.add(this.inspection.minCamera)\n\n use.useframe(() => {\n poi.position.copy(glb.scene.position.clone().add(new Vector3(0, 10, 0)))\n poi2.position.copy(glb.scene.position.clone().add(new Vector3(0, 10, 0)))\n\n fly1.rotation.z += 1.3\n fly2.rotation.z += 1.3\n fly3.rotation.z += 1.3\n fly4.rotation.z += 1.3\n\n if (isCheck(this.getSportsProgress)\n && !this.isLock) {\n this.stop()\n this.checkAnimation(this.getSportsProgress)\n this.compassInfo.horizontalSpeed = 0\n this.compassInfo.verticalSpeed = 0\n }\n })\n\n this.inspection.minCamera.position.copy(glb.scene.position)\n this.inspection.minCamera.position.z -= 18\n this.inspection.minCamera.position.y += 4\n this.inspection.minCamera.rotateY(Math.PI)\n this.initialMinCameraQuaternion = this.inspection.minCamera.quaternion.clone()\n\n this.model = group\n\n this.inspection.gobal.interactionManager.add(poi)\n this.inspection.gobal.interactionManager.add(poi2)\n\n poi2.visible = false\n\n poi.addEventListener('click', () => {\n group.add(poi2)\n poi2.visible = true\n poi.visible = false\n })\n\n poi2.addEventListener('click', () => {\n group.add(poi2)\n poi.visible = true\n poi2.visible = false\n })\n\n glb.scene.scale.set(5, 5, 5)\n glb.scene.traverse((child) => {\n // child.layers.enable(2)\n child.layers.enable(5)\n })\n\n this.inspection.gobal.scene.add(this.model)\n\n this.loadPosAudio()\n this.breathinglamp(this.model)\n }\n\n private breathinglamp(model: Group) {\n const target = model.getObjectByName('网格004_5')\n\n const startColor = new Color('#999')\n const endColor = new Color('#2df3ee')\n\n const clock = new Clock()\n const breathingSpeed = 1\n\n use.useframe(() => {\n const elapsedTime = clock.getElapsedTime()\n const t = (Math.sin(elapsedTime * Math.PI * breathingSpeed) + 1) / 2\n const currentColor = startColor.clone().lerp(endColor, t)\n\n // @ts-ignore\n target.material.color.set(currentColor)\n })\n }\n\n private loadPosAudio() {\n const handleMouseMove = () => {\n const listener = new AudioListener()\n this.inspection.minCamera.add(listener)\n\n const posAudio = new PositionalAudio(listener)\n this.model.add(posAudio)\n\n const audioLoader = new AudioLoader()\n\n audioLoader.load(`${usePath}demo.mp3`, (audioBuffer) => {\n posAudio.setBuffer(audioBuffer)\n posAudio.setVolume(0.8)\n posAudio.setRefDistance(200)\n posAudio.setLoop(true)\n })\n\n utils.emitter.on('play', () => {\n this.isStartUp && posAudio.play()\n })\n\n utils.emitter.on('stop', () => {\n posAudio.stop()\n })\n\n document.removeEventListener('mousemove', handleMouseMove)\n }\n\n document.addEventListener('mousemove', handleMouseMove)\n }\n\n async startMove(curve) {\n if (!this.model)\n await this.loadModel()\n\n this.control = utils.moveWithLine(this.model, curve, 10, {\n groundCurve: this.inspection.groundCurve,\n })\n\n this.model.position.copy(curve.getPointAt(0))\n\n setTimeout(() => {\n this.stop();\n ((this.model) as Object3D).position.y = (this.model.position.y - 20)\n }, 20)\n\n this.sendCompassInfo()\n\n use.useframe(() => {\n this.inspection.groundMaterial.uniforms.u_time.value = this.getSportsProgress - 0.01\n this.inspection.mapMaterial.uniforms.u_time.value = this.getSportsProgress - 0.01\n\n if (this.getSportsProgress > 0 && this.getSportsProgress < 0.01) {\n this.inspection.mapAnchorObject.forEach((mapAnchor) => {\n mapAnchor.material.uniforms.uColor.value.set(1, 1, 1, 1)\n })\n }\n\n sendToMessage(MessageType.Event, 'onInspectProgress', EMessageStatus.Success, undefined, {\n percentage: this.getSportsProgress * 1000,\n })\n })\n }\n\n /**\n * send compass info\n * not use useframe, because useframe will be lose some frame\n */\n private sendCompassInfo() {\n setInterval(() => {\n const mesh = this.model\n mesh.updateMatrixWorld(true)\n\n const worldQuaternion = new Quaternion()\n mesh.getWorldQuaternion(worldQuaternion)\n\n const worldEuler = new Euler().setFromQuaternion(worldQuaternion, 'YXZ')\n const rotationY = worldEuler.y\n const rotationYInDegrees = Math.round(MathUtils.radToDeg(rotationY))\n\n sendToMessage(MessageType.Event, 'onCompassInfo', EMessageStatus.Success, undefined, {\n rotate: rotationYInDegrees >= 0 ? 180 - rotationYInDegrees : -180 + Math.abs(rotationYInDegrees),\n degree: rotationYInDegrees >= 0 ? 180 - rotationYInDegrees : -180 + Math.abs(rotationYInDegrees) + 360,\n distance: this.getSportsProgress * this.inspection.curve.getLength(),\n verticalSpeed: this.compassInfo.verticalSpeed,\n horizontalSpeed: this.compassInfo.horizontalSpeed * 3.6,\n height: (this.model as Object3D).position.y,\n })\n }, 100)\n }\n\n get getSportsProgress() {\n if (!this.control)\n return 0\n\n return this.control.getProgress()\n }\n\n subscription() {\n return new Promise((resolve) => {\n utils.emitter.on('continue', (data) => {\n resolve(data)\n })\n })\n }\n\n private checkAnimation(progress: number) {\n this.isLock = true\n this.isAnimation = true\n this.inspection.defaultFirstPerspectiveControls.enabled = false\n\n const key = Object.keys(targetProgresspoints).find((p) => {\n const num = parseFloat(p)\n if (progress >= num && progress < num + 0.01)\n return true\n })\n\n const targetMeshId = targetProgresspoints[key].lookAt\n\n let targetMesh: Group | null = null\n\n if (targetMeshId === 'GY_GD_guandaofamen_5')\n targetMesh = this.inspection.gobal.pipeline.getObjectByName(targetMeshId) as Group\n\n else\n targetMesh = this.inspection.gobal.realModl.getObjectByName(targetMeshId) as Group\n\n if (!targetMesh) {\n this.contineMove()\n this.isAnimation = false\n setTimeout(() => {\n this.isLock = false\n }, 500)\n return\n }\n\n const currentAnchor = this.inspection.anchorObject.get(targetProgresspoints[key].name)\n const currentMapAnchor = this.inspection.mapAnchorObject\n\n currentAnchor.traverse((child) => {\n if (child.name === 'cylinder')\n child.material = new MeshBasicMaterial({ color: new Color('yellow') })\n else\n child.material = new MeshBasicMaterial({ color: new Color('#facb2b') })\n });\n\n (currentMapAnchor as Map<string, Mesh>).forEach((mapAnchor, key) => {\n const numberKey = Number(key)\n\n // @ts-ignore\n this.getSportsProgress > numberKey && mapAnchor.material.uniforms.uColor.value.set(1, 1, 0, 0.8)\n\n // @ts-ignore\n this.getSportsProgress < numberKey && mapAnchor.material.uniforms.uColor.value.set(1, 1, 1, 1)\n })\n\n setTimeout(() => {\n const rotationMatrix = new Matrix4()\n const targetQuaternion = new Quaternion()\n const startQuaternion = this.model.quaternion.clone()\n const startCameraQuaternion = this.inspection.minCamera.quaternion.clone()\n\n const targetMeshPosition = targetMesh.position.clone()\n targetMeshPosition.y = targetMeshPosition.y + ((Number(key) === 0.048 || Number(key) === 0.682 || Number(key) === 0.400) ? 20 : 0)\n\n rotationMatrix.lookAt(targetMeshPosition, this.model.position, this.model.up)\n targetQuaternion.setFromRotationMatrix(rotationMatrix)\n\n const forwardTween = new Tween({ t: 0 })\n .to({ t: 1 }, 2000)\n .onUpdate((obj) => {\n this.model.quaternion.copy(startQuaternion).slerp(targetQuaternion, obj.t)\n this.inspection.minCamera.quaternion.copy(startCameraQuaternion).slerp(this.initialMinCameraQuaternion, obj.t)\n })\n\n const backwardTween = new Tween({ t: 1 })\n .to({ t: 0 }, 2000)\n .onUpdate((obj) => {\n this.model.quaternion.copy(startQuaternion).slerp(targetQuaternion, obj.t)\n })\n\n forwardTween.onComplete(() => {\n let finirMesh: Group | null = null\n\n sendToMessage(MessageType.Event, 'onReachTarget', EMessageStatus.Success, undefined, {\n target: targetProgresspoints[key].name,\n })\n\n if (Number(key) === 0.048 || Number(key) === 0.682 || Number(key) === 0.400)\n (this.inspection.minCamera as Camera).layers.set(2)\n\n if (Number(key) === 0.155 || Number(key) === 0.247) {\n (this.inspection.minCamera as Camera).layers.enable(3)\n // @ts-ignore\n if (!targetMesh.finirMesh) {\n finirMesh = targetMesh.clone() as any as Group\n\n const finirMaterialV2 = createFinirMaterial('#08A6E3', 4.3)\n\n finirMesh.traverse((child) => {\n child.layers.set(3)\n\n if (child.type === 'Mesh') {\n // @ts-ignore\n child.material = finirMaterialV2\n\n // @ts-ignore\n const lineSegments = new LineSegments(new EdgesGeometry(child.geometry as any), new LineBasicMaterial({ color: '#08A6E3' }))\n\n lineSegments.layers.set(3)\n finirMesh.add(lineSegments)\n }\n })\n\n // @ts-ignore\n targetMesh.finirMesh = finirMesh\n\n this.inspection.gobal.scene.add(finirMesh)\n }\n else {\n // @ts-ignore\n finirMesh = targetMesh.finirMesh\n\n finirMesh.visible = true\n }\n }\n\n // 异常点\n if (Number(key) === 0.155 || Number(key) === 0.247) {\n this.subscription().then((data) => {\n if (data) {\n finirMesh.visible = false\n backwardTween.start()\n\n utils.emitter.off('continue')\n }\n })\n }\n else {\n setTimeout(() => {\n if (Number(key) === 0.048 || Number(key) === 0.682 || Number(key) === 0.400)\n (this.inspection.minCamera as Camera).layers.set(0)\n\n // if (Number(key) === 0.40)\n // finirMesh.visible = false\n\n backwardTween.start()\n }, 6000)\n }\n })\n\n setTimeout(() => {\n forwardTween.start()\n }, 1000)\n\n backwardTween.onComplete(() => {\n this.isAnimation = false\n this.contineMove()\n\n this.compassInfo.verticalSpeed = 0\n this.compassInfo.horizontalSpeed = 10\n\n currentAnchor.traverse((child) => {\n if (child.name === 'cylinder')\n child.material = new MeshBasicMaterial({ color: new Color('#cdccca') })\n else\n child.material = new MeshBasicMaterial({ color: new Color('#fff') })\n })\n\n setTimeout(() => {\n this.inspection.defaultFirstPerspectiveControls.enabled = true\n this.isLock = false\n }, 500)\n })\n }, 1000)\n }\n\n generateTempPath(currentPosition: Vector3, targetPosition: Vector3) {\n return new LineCurve3(currentPosition, targetPosition)\n }\n\n private startRotate = (targetQuaternion: Quaternion, mesh: Group, cb: () => void) => {\n const clock = new Clock()\n\n if (mesh.quaternion.equals(targetQuaternion))\n return cb()\n\n const animation = use.useframe(() => {\n const delta = clock.getDelta()\n if (!mesh.quaternion.equals(targetQuaternion)) {\n const step = 1 * delta\n mesh.quaternion.rotateTowards(targetQuaternion, step)\n }\n else {\n animation()\n cb()\n }\n },\n )\n }\n\n private generateTempPathMesh(curve: Curve<Vector3>) {\n // @ts-ignore\n const tube = new TubeGeometryV2(curve, 100, 5, 2, false)\n const tempPathMesh = new Mesh(tube, new MeshBasicMaterial({ map: this.temp, transparent: true, depthTest: true }))\n\n this.inspection.gobal.scene.add(tempPathMesh)\n this.tempPathMesh = tempPathMesh\n\n tempPathMesh.layers.enable(5)\n\n this.temp.repeat.set(curve.getLength() / 500, 2)\n this.tempDemo = use.useframe(() => {\n this.temp.offset.x -= -0.0009\n\n if (this.inspection.gobal.tag === SceneTag['smart-inspection'])\n this.tempPathMesh.visible = true\n else\n this.tempPathMesh.visible = false\n })\n }\n\n private cleanTempPathMesh() {\n if (this.tempPathMesh) {\n this.tempDemo()\n this.tempPathMesh.geometry.dispose()\n this.tempPathMesh.material.dispose();\n (this.tempPathMesh as Mesh).removeFromParent()\n }\n }\n\n private takeOffAnimation() {\n const currentPosition = this.model.position\n const upCurve = new LineCurve3(currentPosition, new Vector3(currentPosition.x, currentPosition.y + 20, currentPosition.z))\n const upControl = utils.moveWithLine(this.model, upCurve, 10, { loop: false, lookat: false })\n\n this.compassInfo.horizontalSpeed = 0\n this.compassInfo.verticalSpeed = 10\n\n upControl.addEventListener('end', () => {\n this.control.contine()\n this.compassInfo.verticalSpeed = 0\n this.compassInfo.horizontalSpeed = 10\n })\n }\n\n gotoTarget(targetPosition: Vector3, targetProgress: number) {\n if (this.isAnimation)\n return\n\n this.isAnimation = true\n\n this.control.stop()\n\n this.compassInfo.verticalSpeed = 0\n this.compassInfo.horizontalSpeed = 0\n\n const rotationMatrix = new Matrix4()\n const targetQuaternion = new Quaternion()\n\n rotationMatrix.lookAt(targetPosition, this.model.position, this.model.up)\n targetQuaternion.setFromRotationMatrix(rotationMatrix)\n\n this.startRotate(targetQuaternion, this.model,\n () => {\n const tempPathMeshtargetPosition = new Vector3(targetPosition.x, 1.1, targetPosition.z)\n this.generateTempPathMesh(this.generateTempPath(new Vector3(this.model.position.x, 1.1, this.model.position.z), tempPathMeshtargetPosition))\n\n const currentPosition = this.model.position\n const upCurve = new LineCurve3(currentPosition, new Vector3(currentPosition.x, currentPosition.y + 50, currentPosition.z))\n const upControl = utils.moveWithLine(this.model, upCurve, 10, { loop: false, lookat: targetPosition })\n\n this.compassInfo.verticalSpeed = 10\n this.compassInfo.horizontalSpeed = 0\n\n // up end\n upControl.addEventListener('end', () => {\n const tempCurve = this.generateTempPath(currentPosition, new Vector3(targetPosition.x, targetPosition.y + 50, targetPosition.z))\n const tempControl = utils.moveWithLine(this.model, tempCurve, 60, { loop: false, lookat: false })\n\n this.compassInfo.verticalSpeed = 0\n this.compassInfo.horizontalSpeed = 60\n\n // temp end\n tempControl.addEventListener('end', () => {\n const lastPosition = this.model.position\n const downCurve = new LineCurve3(lastPosition, new Vector3(lastPosition.x, lastPosition.y - 50, lastPosition.z))\n const downControl = utils.moveWithLine(this.model, downCurve, 10, { loop: false, lookat: false })\n\n this.compassInfo.verticalSpeed = 10\n this.compassInfo.horizontalSpeed = 0\n\n // down end\n downControl.addEventListener('end', () => {\n const rotationMatrix2 = new Matrix4()\n const targetQuaternion2 = new Quaternion()\n\n const targetPosition2 = this.inspection.curve.getPointAt((targetProgress + 0.01) % 1)\n\n rotationMatrix2.lookAt(targetPosition2, this.model.position, this.model.up)\n targetQuaternion2.setFromRotationMatrix(rotationMatrix2)\n\n this.startRotate(targetQuaternion2, this.model, () => {\n setTimeout(() => {\n this.cleanTempPathMesh()\n this.isAnimation = false\n this.control.setProgress(targetProgress)\n this.control.contine()\n\n this.compassInfo.verticalSpeed = 0\n this.compassInfo.horizontalSpeed = 10\n }, 500)\n })\n })\n })\n })\n })\n }\n\n setSpeed(speed: number) {\n if (this.control)\n this.control.setSpeed(speed)\n }\n\n stop() {\n if (this.control)\n this.control.stop()\n }\n\n contineMove() {\n if (!this.control)\n throw new Error('control not init')\n\n if (this.contineCount === 0)\n this.takeOffAnimation()\n\n else\n this.control.contine()\n\n this.contineCount++\n\n this.isStartUp = true\n\n utils.emitter.emit('continue', true)\n\n if (this.inspection.minCamera === this.inspection.gobal.scene.camera)\n utils.emitter.emit('play')\n }\n\n /**\n * todo: now temporarily not implemented\n */\n dispose() { }\n}\n\nexport default InspectionObject"],"mappings":";+CACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAASA,aAAa,EAAEC,WAAW,EAAeC,KAAK,EAAEC,KAAK,EAAEC,aAAa,EAAEC,KAAK,EAAEC,KAAK,EAAEC,iBAAiB,EAAEC,UAAU,EAAEC,YAAY,EAAEC,SAAS,EAAEC,OAAO,EAAEC,IAAI,EAAEC,iBAAiB,EAAwBC,sBAAsB,EAAEC,WAAW,EAAEC,aAAa,EAAcC,eAAe,EAAEC,UAAU,EAAEC,cAAc,EAAuDC,aAAa,EAAgBC,OAAO,EAAWC,GAAG,EAAEC,KAAK,QAAQ,eAAe;AAE/b,SAASC,SAAS,QAAiD,kBAAkB;AACrF,SAASC,KAAK,QAAQ,mBAAmB;AACzC,SAASC,mBAAmB;AAC5B,SAASC,OAAO;AAChB,SAASC,WAAW,EAAEC,aAAa;AACnC,SAASC,cAAc;AACvB,SAASC,QAAQ;AACjB,SAASC,OAAO,EAAEC,oBAAoB;AACtC,OAAOC,cAAc;AAErB,IAAMC,WAAW,GAAG,IAAIpB,WAAW,EAAE;AAAA,IAE/BqB,gBAAgB;EAqBpB,0BAAYC,UAAU,EAAE;IAAA;IAAA;IAAA;IAAA;IAAA,gCAjBP,KAAK;IAAA,qCACA,KAAK;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA,mCAMf,KAAK;IAAA;IAAA,sCAEF,CAAC;IAAA,qCAEF;MACZC,aAAa,EAAE,CAAC;MAChBC,eAAe,EAAE,EAAE;MACnBC,MAAM,EAAE;IACV,CAAC;IAAA,qCA6aqB,UAACC,gBAA4B,EAAEC,IAAW,EAAEC,EAAc,EAAK;MACnF,IAAMC,KAAK,GAAG,IAAI1C,KAAK,EAAE;MAEzB,IAAIwC,IAAI,CAACG,UAAU,CAACC,MAAM,CAACL,gBAAgB,CAAC,EAC1C,OAAOE,EAAE,EAAE;MAEb,IAAMI,SAAS,GAAGzB,GAAG,CAAC0B,QAAQ,CAAC,YAAM;QACnC,IAAMC,KAAK,GAAGL,KAAK,CAACM,QAAQ,EAAE;QAC9B,IAAI,CAACR,IAAI,CAACG,UAAU,CAACC,MAAM,CAACL,gBAAgB,CAAC,EAAE;UAC7C,IAAMU,IAAI,GAAG,CAAC,GAAGF,KAAK;UACtBP,IAAI,CAACG,UAAU,CAACO,aAAa,CAACX,gBAAgB,EAAEU,IAAI,CAAC;QACvD,CAAC,MACI;UACHJ,SAAS,EAAE;UACXJ,EAAE,EAAE;QACN;MACF,CAAC,CACA;IACH,CAAC;IA5bC,IAAI,CAACN,UAAU,GAAGA,UAAU;IAE5B,IAAMgB,IAAI,GAAG,IAAIjC,aAAa,EAAE,CAACkC,IAAI,WAAI3B,OAAO,gBAAa;IAC7D0B,IAAI,CAACE,KAAK,GAAGpC,cAAc;IAC3BkC,IAAI,CAACG,KAAK,GAAG1C,sBAAsB;IACnCuC,IAAI,CAACI,MAAM,CAACC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACrBL,IAAI,CAACM,QAAQ,GAAGC,IAAI,CAACC,EAAE;IAEvB,IAAI,CAACR,IAAI,GAAGA,IAAI;EAClB;EAAC;IAAA;IAAA;MAAA,4EAED;QAAA;QAAA;QAAA;UAAA;YAAA;cAAA;cAAA,OAC2BlB,WAAW,CAAC2B,QAAQ,WAAInC,OAAO,cAAW,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC;YAAA;cAAA;cAAA;YAAA;cAArFoC,GAAG;cAEHC,GAAG,GAAGC,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;cACzCF,GAAG,CAACG,KAAK,CAACC,QAAQ,GAAG,UAAU;cAEzBC,GAAG,GAAGJ,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;cACzCG,GAAG,CAACC,GAAG,aAAM3C,OAAO,wBAAqB;cAEnC4C,IAAI,GAAGN,QAAQ,CAACC,aAAa,CAAC,MAAM,CAAC;cAC3CK,IAAI,CAACC,SAAS,GAAG,OAAO;cACxBD,IAAI,CAACJ,KAAK,CAACM,UAAU,GAAG,mBAAmB;cAC3CF,IAAI,CAACJ,KAAK,CAACC,QAAQ,GAAG,UAAU;cAChCG,IAAI,CAACJ,KAAK,CAACO,GAAG,GAAG,MAAM;cACvBH,IAAI,CAACJ,KAAK,CAACQ,IAAI,GAAG,KAAK;cACvBJ,IAAI,CAACJ,KAAK,CAACS,SAAS,GAAG,kBAAkB;cAEzCL,IAAI,CAACJ,KAAK,CAACU,KAAK,GAAG,OAAO;cAC1BN,IAAI,CAACJ,KAAK,CAACW,QAAQ,GAAG,MAAM;cAC5BP,IAAI,CAACJ,KAAK,CAACY,UAAU,GAAG,MAAM;cAE9Bf,GAAG,CAACgB,WAAW,CAACX,GAAG,CAAC;cACpBL,GAAG,CAACgB,WAAW,CAACT,IAAI,CAAC;cAEfU,GAAG,GAAG,IAAIzD,SAAS,CAACwC,GAAG,EAAE;gBAC7BkB,KAAK,EAAE,GAAG,GAAG,CAAC;gBACd1C,MAAM,EAAE,EAAE,GAAG;cACf,CAAC,CAAC;cAEI2C,IAAI,GAAGlB,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;cAC1CiB,IAAI,CAACb,GAAG,aAAM3C,OAAO,wBAAqB;cAEpCyD,IAAI,GAAG,IAAI5D,SAAS,CAAC2D,IAAI,EAAE;gBAC/BD,KAAK,EAAE,GAAG,GAAG,CAAC;gBACd1C,MAAM,EAAE,GAAG,GAAG;cAChB,CAAC,CAAC;cAEFyC,GAAG,CAACI,KAAK,CAAC3B,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;cACxB0B,IAAI,CAACC,KAAK,CAAC3B,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;cAErB4B,IAAI,GAAGvB,GAAG,CAACwB,KAAK,CAACC,eAAe,CAAC,MAAM,CAAC;cACxCC,IAAI,GAAG1B,GAAG,CAACwB,KAAK,CAACC,eAAe,CAAC,QAAQ,CAAC;cAC1CE,IAAI,GAAG3B,GAAG,CAACwB,KAAK,CAACC,eAAe,CAAC,QAAQ,CAAC;cAC1CG,IAAI,GAAG5B,GAAG,CAACwB,KAAK,CAACC,eAAe,CAAC,QAAQ,CAAC;cAE1CI,aAAa,GAAG,IAAI5E,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC;cACzC6E,aAAa,GAAG,IAAIhF,iBAAiB,CAAC;gBAAEiF,GAAG,EAAE,IAAI1E,aAAa,EAAE,CAACkC,IAAI,WAAI3B,OAAO,aAAU;gBAAEoE,WAAW,EAAE;cAAK,CAAC,CAAC;cAChHC,MAAM,GAAG,IAAIpF,IAAI,CAACgF,aAAa,EAAEC,aAAa,CAAC;cAErDG,MAAM,CAACrC,QAAQ,CAACsC,CAAC,GAAG,CAACrC,IAAI,CAACC,EAAE,GAAG,CAAC;cAChCmC,MAAM,CAAC5B,QAAQ,CAAC8B,IAAI,CAACnC,GAAG,CAACwB,KAAK,CAACnB,QAAQ,CAAC;cACxC4B,MAAM,CAACG,MAAM,CAACzC,GAAG,CAAC,CAAC,CAAC;cAEd0C,KAAK,GAAG,IAAI9F,KAAK,EAAE;cACzByD,GAAG,CAACwB,KAAK,CAACc,IAAI,GAAG,KAAK;cACtBD,KAAK,CAACE,GAAG,CAACvC,GAAG,CAACwB,KAAK,CAAC;cACpBa,KAAK,CAACE,GAAG,CAACrB,GAAG,CAAC;cACdmB,KAAK,CAACE,GAAG,CAACN,MAAM,CAAC;cACjBI,KAAK,CAACE,GAAG,CAAC,IAAI,CAACjE,UAAU,CAACkE,SAAS,CAAC;cAEpCjF,GAAG,CAAC0B,QAAQ,CAAC,YAAM;gBACjBiC,GAAG,CAACb,QAAQ,CAAC8B,IAAI,CAACnC,GAAG,CAACwB,KAAK,CAACnB,QAAQ,CAACoC,KAAK,EAAE,CAACF,GAAG,CAAC,IAAIjF,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;gBACxE+D,IAAI,CAAChB,QAAQ,CAAC8B,IAAI,CAACnC,GAAG,CAACwB,KAAK,CAACnB,QAAQ,CAACoC,KAAK,EAAE,CAACF,GAAG,CAAC,IAAIjF,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;gBAEzEiE,IAAI,CAAC3B,QAAQ,CAAC8C,CAAC,IAAI,GAAG;gBACtBhB,IAAI,CAAC9B,QAAQ,CAAC8C,CAAC,IAAI,GAAG;gBACtBf,IAAI,CAAC/B,QAAQ,CAAC8C,CAAC,IAAI,GAAG;gBACtBd,IAAI,CAAChC,QAAQ,CAAC8C,CAAC,IAAI,GAAG;gBAEtB,IAAIzE,OAAO,CAAC,KAAI,CAAC0E,iBAAiB,CAAC,IAC9B,CAAC,KAAI,CAACC,MAAM,EAAE;kBACjB,KAAI,CAACC,IAAI,EAAE;kBACX,KAAI,CAACC,cAAc,CAAC,KAAI,CAACH,iBAAiB,CAAC;kBAC3C,KAAI,CAACI,WAAW,CAACvE,eAAe,GAAG,CAAC;kBACpC,KAAI,CAACuE,WAAW,CAACxE,aAAa,GAAG,CAAC;gBACpC;cACF,CAAC,CAAC;cAEF,IAAI,CAACD,UAAU,CAACkE,SAAS,CAACnC,QAAQ,CAAC8B,IAAI,CAACnC,GAAG,CAACwB,KAAK,CAACnB,QAAQ,CAAC;cAC3D,IAAI,CAAC/B,UAAU,CAACkE,SAAS,CAACnC,QAAQ,CAACqC,CAAC,IAAI,EAAE;cAC1C,IAAI,CAACpE,UAAU,CAACkE,SAAS,CAACnC,QAAQ,CAAC2C,CAAC,IAAI,CAAC;cACzC,IAAI,CAAC1E,UAAU,CAACkE,SAAS,CAACS,OAAO,CAACpD,IAAI,CAACC,EAAE,CAAC;cAC1C,IAAI,CAACoD,0BAA0B,GAAG,IAAI,CAAC5E,UAAU,CAACkE,SAAS,CAAC1D,UAAU,CAAC2D,KAAK,EAAE;cAE9E,IAAI,CAACU,KAAK,GAAGd,KAAK;cAElB,IAAI,CAAC/D,UAAU,CAAC8E,KAAK,CAACC,kBAAkB,CAACd,GAAG,CAACrB,GAAG,CAAC;cACjD,IAAI,CAAC5C,UAAU,CAAC8E,KAAK,CAACC,kBAAkB,CAACd,GAAG,CAAClB,IAAI,CAAC;cAElDA,IAAI,CAACiC,OAAO,GAAG,KAAK;cAEpBpC,GAAG,CAACqC,gBAAgB,CAAC,OAAO,EAAE,YAAM;gBAClClB,KAAK,CAACE,GAAG,CAAClB,IAAI,CAAC;gBACfA,IAAI,CAACiC,OAAO,GAAG,IAAI;gBACnBpC,GAAG,CAACoC,OAAO,GAAG,KAAK;cACrB,CAAC,CAAC;cAEFjC,IAAI,CAACkC,gBAAgB,CAAC,OAAO,EAAE,YAAM;gBACnClB,KAAK,CAACE,GAAG,CAAClB,IAAI,CAAC;gBACfH,GAAG,CAACoC,OAAO,GAAG,IAAI;gBAClBjC,IAAI,CAACiC,OAAO,GAAG,KAAK;cACtB,CAAC,CAAC;cAEFtD,GAAG,CAACwB,KAAK,CAACF,KAAK,CAAC3B,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;cAC5BK,GAAG,CAACwB,KAAK,CAACgC,QAAQ,CAAC,UAACC,KAAK,EAAK;gBAC5B;gBACAA,KAAK,CAACrB,MAAM,CAACsB,MAAM,CAAC,CAAC,CAAC;cACxB,CAAC,CAAC;cAEF,IAAI,CAACpF,UAAU,CAAC8E,KAAK,CAAC5B,KAAK,CAACe,GAAG,CAAC,IAAI,CAACY,KAAK,CAAC;cAE3C,IAAI,CAACQ,YAAY,EAAE;cACnB,IAAI,CAACC,aAAa,CAAC,IAAI,CAACT,KAAK,CAAC;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA,CAC/B;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA,OAED,uBAAsBA,KAAY,EAAE;MAClC,IAAMU,MAAM,GAAGV,KAAK,CAAC1B,eAAe,CAAC,SAAS,CAAC;MAE/C,IAAMqC,UAAU,GAAG,IAAI1H,KAAK,CAAC,MAAM,CAAC;MACpC,IAAM2H,QAAQ,GAAG,IAAI3H,KAAK,CAAC,SAAS,CAAC;MAErC,IAAMyC,KAAK,GAAG,IAAI1C,KAAK,EAAE;MACzB,IAAM6H,cAAc,GAAG,CAAC;MAExBzG,GAAG,CAAC0B,QAAQ,CAAC,YAAM;QACjB,IAAMgF,WAAW,GAAGpF,KAAK,CAACqF,cAAc,EAAE;QAC1C,IAAMC,CAAC,GAAG,CAACtE,IAAI,CAACuE,GAAG,CAACH,WAAW,GAAGpE,IAAI,CAACC,EAAE,GAAGkE,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;QACpE,IAAMK,YAAY,GAAGP,UAAU,CAACrB,KAAK,EAAE,CAAC6B,IAAI,CAACP,QAAQ,EAAEI,CAAC,CAAC;;QAEzD;QACAN,MAAM,CAACU,QAAQ,CAACzD,KAAK,CAACnB,GAAG,CAAC0E,YAAY,CAAC;MACzC,CAAC,CAAC;IACJ;EAAC;IAAA;IAAA,OAED,wBAAuB;MAAA;MACrB,IAAMG,eAAe,GAAG,SAAlBA,eAAe,GAAS;QAC5B,IAAMC,QAAQ,GAAG,IAAIxI,aAAa,EAAE;QACpC,MAAI,CAACqC,UAAU,CAACkE,SAAS,CAACD,GAAG,CAACkC,QAAQ,CAAC;QAEvC,IAAMC,QAAQ,GAAG,IAAIxH,eAAe,CAACuH,QAAQ,CAAC;QAC9C,MAAI,CAACtB,KAAK,CAACZ,GAAG,CAACmC,QAAQ,CAAC;QAExB,IAAMC,WAAW,GAAG,IAAIzI,WAAW,EAAE;QAErCyI,WAAW,CAACpF,IAAI,WAAI3B,OAAO,eAAY,UAACgH,WAAW,EAAK;UACtDF,QAAQ,CAACG,SAAS,CAACD,WAAW,CAAC;UAC/BF,QAAQ,CAACI,SAAS,CAAC,GAAG,CAAC;UACvBJ,QAAQ,CAACK,cAAc,CAAC,GAAG,CAAC;UAC5BL,QAAQ,CAACM,OAAO,CAAC,IAAI,CAAC;QACxB,CAAC,CAAC;QAEFxH,KAAK,CAACyH,OAAO,CAACC,EAAE,CAAC,MAAM,EAAE,YAAM;UAC7B,MAAI,CAACC,SAAS,IAAIT,QAAQ,CAACU,IAAI,EAAE;QACnC,CAAC,CAAC;QAEF5H,KAAK,CAACyH,OAAO,CAACC,EAAE,CAAC,MAAM,EAAE,YAAM;UAC7BR,QAAQ,CAAC7B,IAAI,EAAE;QACjB,CAAC,CAAC;QAEF3C,QAAQ,CAACmF,mBAAmB,CAAC,WAAW,EAAEb,eAAe,CAAC;MAC5D,CAAC;MAEDtE,QAAQ,CAACqD,gBAAgB,CAAC,WAAW,EAAEiB,eAAe,CAAC;IACzD;EAAC;IAAA;IAAA;MAAA,4EAED,kBAAgBc,KAAK;QAAA;QAAA;UAAA;YAAA;cAAA,IACd,IAAI,CAACnC,KAAK;gBAAA;gBAAA;cAAA;cAAA;cAAA,OACP,IAAI,CAACoC,SAAS,EAAE;YAAA;cAExB,IAAI,CAACC,OAAO,GAAGhI,KAAK,CAACiI,YAAY,CAAC,IAAI,CAACtC,KAAK,EAAEmC,KAAK,EAAE,EAAE,EAAE;gBACvDI,WAAW,EAAE,IAAI,CAACpH,UAAU,CAACoH;cAC/B,CAAC,CAAC;cAEF,IAAI,CAACvC,KAAK,CAAC9C,QAAQ,CAAC8B,IAAI,CAACmD,KAAK,CAACK,UAAU,CAAC,CAAC,CAAC,CAAC;cAE7CC,UAAU,CAAC,YAAM;gBACf,MAAI,CAAC/C,IAAI,EAAE;gBACT,MAAI,CAACM,KAAK,CAAe9C,QAAQ,CAAC2C,CAAC,GAAI,MAAI,CAACG,KAAK,CAAC9C,QAAQ,CAAC2C,CAAC,GAAG,EAAG;cACtE,CAAC,EAAE,EAAE,CAAC;cAEN,IAAI,CAAC6C,eAAe,EAAE;cAEtBtI,GAAG,CAAC0B,QAAQ,CAAC,YAAM;gBACjB,MAAI,CAACX,UAAU,CAACwH,cAAc,CAACC,QAAQ,CAACC,MAAM,CAACC,KAAK,GAAG,MAAI,CAACtD,iBAAiB,GAAG,IAAI;gBACpF,MAAI,CAACrE,UAAU,CAAC4H,WAAW,CAACH,QAAQ,CAACC,MAAM,CAACC,KAAK,GAAG,MAAI,CAACtD,iBAAiB,GAAG,IAAI;gBAEjF,IAAI,MAAI,CAACA,iBAAiB,GAAG,CAAC,IAAI,MAAI,CAACA,iBAAiB,GAAG,IAAI,EAAE;kBAC/D,MAAI,CAACrE,UAAU,CAAC6H,eAAe,CAACC,OAAO,CAAC,UAACC,SAAS,EAAK;oBACrDA,SAAS,CAAC9B,QAAQ,CAACwB,QAAQ,CAACO,MAAM,CAACL,KAAK,CAACtG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;kBAC1D,CAAC,CAAC;gBACJ;gBAEA7B,aAAa,CAACD,WAAW,CAAC0I,KAAK,EAAE,mBAAmB,EAAExI,cAAc,CAACyI,OAAO,EAAEC,SAAS,EAAE;kBACvFC,UAAU,EAAE,MAAI,CAAC/D,iBAAiB,GAAG;gBACvC,CAAC,CAAC;cACJ,CAAC,CAAC;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA,CACH;MAAA;QAAA;MAAA;MAAA;IAAA;IAED;AACF;AACA;AACA;EAHE;IAAA;IAAA,OAIA,2BAA0B;MAAA;MACxBgE,WAAW,CAAC,YAAM;QAChB,IAAMhI,IAAI,GAAG,MAAI,CAACwE,KAAK;QACvBxE,IAAI,CAACiI,iBAAiB,CAAC,IAAI,CAAC;QAE5B,IAAMC,eAAe,GAAG,IAAI1J,UAAU,EAAE;QACxCwB,IAAI,CAACmI,kBAAkB,CAACD,eAAe,CAAC;QAExC,IAAME,UAAU,GAAG,IAAIzK,KAAK,EAAE,CAAC0K,iBAAiB,CAACH,eAAe,EAAE,KAAK,CAAC;QACxE,IAAMI,SAAS,GAAGF,UAAU,CAAC/D,CAAC;QAC9B,IAAMkE,kBAAkB,GAAGrH,IAAI,CAACsH,KAAK,CAACxK,SAAS,CAACyK,QAAQ,CAACH,SAAS,CAAC,CAAC;QAEpEnJ,aAAa,CAACD,WAAW,CAAC0I,KAAK,EAAE,eAAe,EAAExI,cAAc,CAACyI,OAAO,EAAEC,SAAS,EAAE;UACnFY,MAAM,EAAEH,kBAAkB,IAAI,CAAC,GAAG,GAAG,GAAGA,kBAAkB,GAAG,CAAC,GAAG,GAAGrH,IAAI,CAACyH,GAAG,CAACJ,kBAAkB,CAAC;UAChGK,MAAM,EAAEL,kBAAkB,IAAI,CAAC,GAAG,GAAG,GAAGA,kBAAkB,GAAG,CAAC,GAAG,GAAGrH,IAAI,CAACyH,GAAG,CAACJ,kBAAkB,CAAC,GAAG,GAAG;UACtGM,QAAQ,EAAE,MAAI,CAAC7E,iBAAiB,GAAG,MAAI,CAACrE,UAAU,CAACgH,KAAK,CAACmC,SAAS,EAAE;UACpElJ,aAAa,EAAE,MAAI,CAACwE,WAAW,CAACxE,aAAa;UAC7CC,eAAe,EAAE,MAAI,CAACuE,WAAW,CAACvE,eAAe,GAAG,GAAG;UACvDC,MAAM,EAAG,MAAI,CAAC0E,KAAK,CAAc9C,QAAQ,CAAC2C;QAC5C,CAAC,CAAC;MACJ,CAAC,EAAE,GAAG,CAAC;IACT;EAAC;IAAA;IAAA,KAED,eAAwB;MACtB,IAAI,CAAC,IAAI,CAACwC,OAAO,EACf,OAAO,CAAC;MAEV,OAAO,IAAI,CAACA,OAAO,CAACkC,WAAW,EAAE;IACnC;EAAC;IAAA;IAAA,OAED,wBAAe;MACb,OAAO,IAAIC,OAAO,CAAC,UAACC,OAAO,EAAK;QAC9BpK,KAAK,CAACyH,OAAO,CAACC,EAAE,CAAC,UAAU,EAAE,UAAC2C,IAAI,EAAK;UACrCD,OAAO,CAACC,IAAI,CAAC;QACf,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ;EAAC;IAAA;IAAA,OAED,wBAAuBC,QAAgB,EAAE;MAAA;MACvC,IAAI,CAAClF,MAAM,GAAG,IAAI;MAClB,IAAI,CAACmF,WAAW,GAAG,IAAI;MACvB,IAAI,CAACzJ,UAAU,CAAC0J,+BAA+B,CAACC,OAAO,GAAG,KAAK;MAE/D,IAAMC,GAAG,GAAGC,MAAM,CAACC,IAAI,CAAClK,oBAAoB,CAAC,CAACmK,IAAI,CAAC,UAACC,CAAC,EAAK;QACxD,IAAMC,GAAG,GAAGC,UAAU,CAACF,CAAC,CAAC;QACzB,IAAIR,QAAQ,IAAIS,GAAG,IAAIT,QAAQ,GAAGS,GAAG,GAAG,IAAI,EAC1C,OAAO,IAAI;MACf,CAAC,CAAC;MAEF,IAAME,YAAY,GAAGvK,oBAAoB,CAACgK,GAAG,CAAC,CAACQ,MAAM;MAErD,IAAIC,UAAwB,GAAG,IAAI;MAEnC,IAAIF,YAAY,KAAK,sBAAsB,EACzCE,UAAU,GAAG,IAAI,CAACrK,UAAU,CAAC8E,KAAK,CAACwF,QAAQ,CAACnH,eAAe,CAACgH,YAAY,CAAU,MAGlFE,UAAU,GAAG,IAAI,CAACrK,UAAU,CAAC8E,KAAK,CAACyF,QAAQ,CAACpH,eAAe,CAACgH,YAAY,CAAU;MAEpF,IAAI,CAACE,UAAU,EAAE;QACf,IAAI,CAACG,WAAW,EAAE;QAClB,IAAI,CAACf,WAAW,GAAG,KAAK;QACxBnC,UAAU,CAAC,YAAM;UACf,MAAI,CAAChD,MAAM,GAAG,KAAK;QACrB,CAAC,EAAE,GAAG,CAAC;QACP;MACF;MAEA,IAAMmG,aAAa,GAAG,IAAI,CAACzK,UAAU,CAAC0K,YAAY,CAACC,GAAG,CAAC/K,oBAAoB,CAACgK,GAAG,CAAC,CAAC5F,IAAI,CAAC;MACtF,IAAM4G,gBAAgB,GAAG,IAAI,CAAC5K,UAAU,CAAC6H,eAAe;MAExD4C,aAAa,CAACvF,QAAQ,CAAC,UAACC,KAAK,EAAK;QAChC,IAAIA,KAAK,CAACnB,IAAI,KAAK,UAAU,EAC3BmB,KAAK,CAACc,QAAQ,GAAG,IAAIzH,iBAAiB,CAAC;UAAEgE,KAAK,EAAE,IAAI1E,KAAK,CAAC,QAAQ;QAAE,CAAC,CAAC,MAEtEqH,KAAK,CAACc,QAAQ,GAAG,IAAIzH,iBAAiB,CAAC;UAAEgE,KAAK,EAAE,IAAI1E,KAAK,CAAC,SAAS;QAAE,CAAC,CAAC;MAC3E,CAAC,CAAC;MAED8M,gBAAgB,CAAuB9C,OAAO,CAAC,UAACC,SAAS,EAAE6B,GAAG,EAAK;QAClE,IAAMiB,SAAS,GAAGC,MAAM,CAAClB,GAAG,CAAC;;QAE7B;QACA,MAAI,CAACvF,iBAAiB,GAAGwG,SAAS,IAAI9C,SAAS,CAAC9B,QAAQ,CAACwB,QAAQ,CAACO,MAAM,CAACL,KAAK,CAACtG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;;QAEhG;QACA,MAAI,CAACgD,iBAAiB,GAAGwG,SAAS,IAAI9C,SAAS,CAAC9B,QAAQ,CAACwB,QAAQ,CAACO,MAAM,CAACL,KAAK,CAACtG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;MAChG,CAAC,CAAC;MAEFiG,UAAU,CAAC,YAAM;QACf,IAAMyD,cAAc,GAAG,IAAIzM,OAAO,EAAE;QACpC,IAAM8B,gBAAgB,GAAG,IAAIvB,UAAU,EAAE;QACzC,IAAMmM,eAAe,GAAG,MAAI,CAACnG,KAAK,CAACrE,UAAU,CAAC2D,KAAK,EAAE;QACrD,IAAM8G,qBAAqB,GAAG,MAAI,CAACjL,UAAU,CAACkE,SAAS,CAAC1D,UAAU,CAAC2D,KAAK,EAAE;QAE1E,IAAM+G,kBAAkB,GAAGb,UAAU,CAACtI,QAAQ,CAACoC,KAAK,EAAE;QACtD+G,kBAAkB,CAACxG,CAAC,GAAGwG,kBAAkB,CAACxG,CAAC,IAAKoG,MAAM,CAAClB,GAAG,CAAC,KAAK,KAAK,IAAIkB,MAAM,CAAClB,GAAG,CAAC,KAAK,KAAK,IAAIkB,MAAM,CAAClB,GAAG,CAAC,KAAK,KAAK,GAAI,EAAE,GAAG,CAAC,CAAC;QAElImB,cAAc,CAACX,MAAM,CAACc,kBAAkB,EAAE,MAAI,CAACrG,KAAK,CAAC9C,QAAQ,EAAE,MAAI,CAAC8C,KAAK,CAACsG,EAAE,CAAC;QAC7E/K,gBAAgB,CAACgL,qBAAqB,CAACL,cAAc,CAAC;QAEtD,IAAMM,YAAY,GAAG,IAAIjM,KAAK,CAAC;UAAEyG,CAAC,EAAE;QAAE,CAAC,CAAC,CACrCyF,EAAE,CAAC;UAAEzF,CAAC,EAAE;QAAE,CAAC,EAAE,IAAI,CAAC,CAClB0F,QAAQ,CAAC,UAACC,GAAG,EAAK;UACjB,MAAI,CAAC3G,KAAK,CAACrE,UAAU,CAACqD,IAAI,CAACmH,eAAe,CAAC,CAACS,KAAK,CAACrL,gBAAgB,EAAEoL,GAAG,CAAC3F,CAAC,CAAC;UAC1E,MAAI,CAAC7F,UAAU,CAACkE,SAAS,CAAC1D,UAAU,CAACqD,IAAI,CAACoH,qBAAqB,CAAC,CAACQ,KAAK,CAAC,MAAI,CAAC7G,0BAA0B,EAAE4G,GAAG,CAAC3F,CAAC,CAAC;QAChH,CAAC,CAAC;QAEJ,IAAM6F,aAAa,GAAG,IAAItM,KAAK,CAAC;UAAEyG,CAAC,EAAE;QAAE,CAAC,CAAC,CACtCyF,EAAE,CAAC;UAAEzF,CAAC,EAAE;QAAE,CAAC,EAAE,IAAI,CAAC,CAClB0F,QAAQ,CAAC,UAACC,GAAG,EAAK;UACjB,MAAI,CAAC3G,KAAK,CAACrE,UAAU,CAACqD,IAAI,CAACmH,eAAe,CAAC,CAACS,KAAK,CAACrL,gBAAgB,EAAEoL,GAAG,CAAC3F,CAAC,CAAC;QAC5E,CAAC,CAAC;QAEJwF,YAAY,CAACM,UAAU,CAAC,YAAM;UAC5B,IAAIC,SAAuB,GAAG,IAAI;UAElCpM,aAAa,CAACD,WAAW,CAAC0I,KAAK,EAAE,eAAe,EAAExI,cAAc,CAACyI,OAAO,EAAEC,SAAS,EAAE;YACnF5C,MAAM,EAAE3F,oBAAoB,CAACgK,GAAG,CAAC,CAAC5F;UACpC,CAAC,CAAC;UAEF,IAAI8G,MAAM,CAAClB,GAAG,CAAC,KAAK,KAAK,IAAIkB,MAAM,CAAClB,GAAG,CAAC,KAAK,KAAK,IAAIkB,MAAM,CAAClB,GAAG,CAAC,KAAK,KAAK,EACxE,MAAI,CAAC5J,UAAU,CAACkE,SAAS,CAAYJ,MAAM,CAACzC,GAAG,CAAC,CAAC,CAAC;UAErD,IAAIyJ,MAAM,CAAClB,GAAG,CAAC,KAAK,KAAK,IAAIkB,MAAM,CAAClB,GAAG,CAAC,KAAK,KAAK,EAAE;YACjD,MAAI,CAAC5J,UAAU,CAACkE,SAAS,CAAYJ,MAAM,CAACsB,MAAM,CAAC,CAAC,CAAC;YACtD;YACA,IAAI,CAACiF,UAAU,CAACuB,SAAS,EAAE;cACzBA,SAAS,GAAGvB,UAAU,CAAClG,KAAK,EAAkB;cAE9C,IAAM0H,eAAe,GAAGxM,mBAAmB,CAAC,SAAS,EAAE,GAAG,CAAC;cAE3DuM,SAAS,CAAC1G,QAAQ,CAAC,UAACC,KAAK,EAAK;gBAC5BA,KAAK,CAACrB,MAAM,CAACzC,GAAG,CAAC,CAAC,CAAC;gBAEnB,IAAI8D,KAAK,CAAC2G,IAAI,KAAK,MAAM,EAAE;kBACzB;kBACA3G,KAAK,CAACc,QAAQ,GAAG4F,eAAe;;kBAEhC;kBACA,IAAME,YAAY,GAAG,IAAI3N,YAAY,CAAC,IAAIL,aAAa,CAACoH,KAAK,CAAC6G,QAAQ,CAAQ,EAAE,IAAI9N,iBAAiB,CAAC;oBAAEsE,KAAK,EAAE;kBAAU,CAAC,CAAC,CAAC;kBAE5HuJ,YAAY,CAACjI,MAAM,CAACzC,GAAG,CAAC,CAAC,CAAC;kBAC1BuK,SAAS,CAAC3H,GAAG,CAAC8H,YAAY,CAAC;gBAC7B;cACF,CAAC,CAAC;;cAEF;cACA1B,UAAU,CAACuB,SAAS,GAAGA,SAAS;cAEhC,MAAI,CAAC5L,UAAU,CAAC8E,KAAK,CAAC5B,KAAK,CAACe,GAAG,CAAC2H,SAAS,CAAC;YAC5C,CAAC,MACI;cACH;cACAA,SAAS,GAAGvB,UAAU,CAACuB,SAAS;cAEhCA,SAAS,CAAC5G,OAAO,GAAG,IAAI;YAC1B;UACF;;UAEA;UACA,IAAI8F,MAAM,CAAClB,GAAG,CAAC,KAAK,KAAK,IAAIkB,MAAM,CAAClB,GAAG,CAAC,KAAK,KAAK,EAAE;YAClD,MAAI,CAACqC,YAAY,EAAE,CAACC,IAAI,CAAC,UAAC3C,IAAI,EAAK;cACjC,IAAIA,IAAI,EAAE;gBACRqC,SAAS,CAAC5G,OAAO,GAAG,KAAK;gBACzB0G,aAAa,CAACS,KAAK,EAAE;gBAErBjN,KAAK,CAACyH,OAAO,CAACyF,GAAG,CAAC,UAAU,CAAC;cAC/B;YACF,CAAC,CAAC;UACJ,CAAC,MACI;YACH9E,UAAU,CAAC,YAAM;cACf,IAAIwD,MAAM,CAAClB,GAAG,CAAC,KAAK,KAAK,IAAIkB,MAAM,CAAClB,GAAG,CAAC,KAAK,KAAK,IAAIkB,MAAM,CAAClB,GAAG,CAAC,KAAK,KAAK,EACxE,MAAI,CAAC5J,UAAU,CAACkE,SAAS,CAAYJ,MAAM,CAACzC,GAAG,CAAC,CAAC,CAAC;;cAErD;cACA;;cAEAqK,aAAa,CAACS,KAAK,EAAE;YACvB,CAAC,EAAE,IAAI,CAAC;UACV;QACF,CAAC,CAAC;QAEF7E,UAAU,CAAC,YAAM;UACf+D,YAAY,CAACc,KAAK,EAAE;QACtB,CAAC,EAAE,IAAI,CAAC;QAERT,aAAa,CAACC,UAAU,CAAC,YAAM;UAC7B,MAAI,CAAClC,WAAW,GAAG,KAAK;UACxB,MAAI,CAACe,WAAW,EAAE;UAElB,MAAI,CAAC/F,WAAW,CAACxE,aAAa,GAAG,CAAC;UAClC,MAAI,CAACwE,WAAW,CAACvE,eAAe,GAAG,EAAE;UAErCuK,aAAa,CAACvF,QAAQ,CAAC,UAACC,KAAK,EAAK;YAChC,IAAIA,KAAK,CAACnB,IAAI,KAAK,UAAU,EAC3BmB,KAAK,CAACc,QAAQ,GAAG,IAAIzH,iBAAiB,CAAC;cAAEgE,KAAK,EAAE,IAAI1E,KAAK,CAAC,SAAS;YAAE,CAAC,CAAC,MAEvEqH,KAAK,CAACc,QAAQ,GAAG,IAAIzH,iBAAiB,CAAC;cAAEgE,KAAK,EAAE,IAAI1E,KAAK,CAAC,MAAM;YAAE,CAAC,CAAC;UACxE,CAAC,CAAC;UAEFwJ,UAAU,CAAC,YAAM;YACf,MAAI,CAACtH,UAAU,CAAC0J,+BAA+B,CAACC,OAAO,GAAG,IAAI;YAC9D,MAAI,CAACrF,MAAM,GAAG,KAAK;UACrB,CAAC,EAAE,GAAG,CAAC;QACT,CAAC,CAAC;MACJ,CAAC,EAAE,IAAI,CAAC;IACV;EAAC;IAAA;IAAA,OAED,0BAAiB+H,eAAwB,EAAEC,cAAuB,EAAE;MAClE,OAAO,IAAInO,UAAU,CAACkO,eAAe,EAAEC,cAAc,CAAC;IACxD;EAAC;IAAA;IAAA,OAsBD,8BAA6BtF,KAAqB,EAAE;MAAA;MAClD;MACA,IAAMuF,IAAI,GAAG,IAAI1M,cAAc,CAACmH,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;MACxD,IAAMwF,YAAY,GAAG,IAAIjO,IAAI,CAACgO,IAAI,EAAE,IAAI/N,iBAAiB,CAAC;QAAEiF,GAAG,EAAE,IAAI,CAACzC,IAAI;QAAE0C,WAAW,EAAE,IAAI;QAAE+I,SAAS,EAAE;MAAK,CAAC,CAAC,CAAC;MAElH,IAAI,CAACzM,UAAU,CAAC8E,KAAK,CAAC5B,KAAK,CAACe,GAAG,CAACuI,YAAY,CAAC;MAC7C,IAAI,CAACA,YAAY,GAAGA,YAAY;MAEhCA,YAAY,CAAC1I,MAAM,CAACsB,MAAM,CAAC,CAAC,CAAC;MAE7B,IAAI,CAACpE,IAAI,CAACI,MAAM,CAACC,GAAG,CAAC2F,KAAK,CAACmC,SAAS,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;MAChD,IAAI,CAACuD,QAAQ,GAAGzN,GAAG,CAAC0B,QAAQ,CAAC,YAAM;QACjC,MAAI,CAACK,IAAI,CAAC2L,MAAM,CAAC/I,CAAC,IAAI,CAAC,MAAM;QAE7B,IAAI,MAAI,CAAC5D,UAAU,CAAC8E,KAAK,CAAC8H,GAAG,KAAKlN,QAAQ,CAAC,kBAAkB,CAAC,EAC5D,MAAI,CAAC8M,YAAY,CAACxH,OAAO,GAAG,IAAI,MAEhC,MAAI,CAACwH,YAAY,CAACxH,OAAO,GAAG,KAAK;MACrC,CAAC,CAAC;IACJ;EAAC;IAAA;IAAA,OAED,6BAA4B;MAC1B,IAAI,IAAI,CAACwH,YAAY,EAAE;QACrB,IAAI,CAACE,QAAQ,EAAE;QACf,IAAI,CAACF,YAAY,CAACR,QAAQ,CAACa,OAAO,EAAE;QACpC,IAAI,CAACL,YAAY,CAACvG,QAAQ,CAAC4G,OAAO,EAAE;QACnC,IAAI,CAACL,YAAY,CAAUM,gBAAgB,EAAE;MAChD;IACF;EAAC;IAAA;IAAA,OAED,4BAA2B;MAAA;MACzB,IAAMT,eAAe,GAAG,IAAI,CAACxH,KAAK,CAAC9C,QAAQ;MAC3C,IAAMgL,OAAO,GAAG,IAAI5O,UAAU,CAACkO,eAAe,EAAE,IAAIrN,OAAO,CAACqN,eAAe,CAACzI,CAAC,EAAEyI,eAAe,CAAC3H,CAAC,GAAG,EAAE,EAAE2H,eAAe,CAACjI,CAAC,CAAC,CAAC;MAC1H,IAAM4I,SAAS,GAAG9N,KAAK,CAACiI,YAAY,CAAC,IAAI,CAACtC,KAAK,EAAEkI,OAAO,EAAE,EAAE,EAAE;QAAEE,IAAI,EAAE,KAAK;QAAEC,MAAM,EAAE;MAAM,CAAC,CAAC;MAE7F,IAAI,CAACzI,WAAW,CAACvE,eAAe,GAAG,CAAC;MACpC,IAAI,CAACuE,WAAW,CAACxE,aAAa,GAAG,EAAE;MAEnC+M,SAAS,CAAC/H,gBAAgB,CAAC,KAAK,EAAE,YAAM;QACtC,MAAI,CAACiC,OAAO,CAACiG,OAAO,EAAE;QACtB,MAAI,CAAC1I,WAAW,CAACxE,aAAa,GAAG,CAAC;QAClC,MAAI,CAACwE,WAAW,CAACvE,eAAe,GAAG,EAAE;MACvC,CAAC,CAAC;IACJ;EAAC;IAAA;IAAA,OAED,oBAAWoM,cAAuB,EAAEc,cAAsB,EAAE;MAAA;MAC1D,IAAI,IAAI,CAAC3D,WAAW,EAClB;MAEF,IAAI,CAACA,WAAW,GAAG,IAAI;MAEvB,IAAI,CAACvC,OAAO,CAAC3C,IAAI,EAAE;MAEnB,IAAI,CAACE,WAAW,CAACxE,aAAa,GAAG,CAAC;MAClC,IAAI,CAACwE,WAAW,CAACvE,eAAe,GAAG,CAAC;MAEpC,IAAM6K,cAAc,GAAG,IAAIzM,OAAO,EAAE;MACpC,IAAM8B,gBAAgB,GAAG,IAAIvB,UAAU,EAAE;MAEzCkM,cAAc,CAACX,MAAM,CAACkC,cAAc,EAAE,IAAI,CAACzH,KAAK,CAAC9C,QAAQ,EAAE,IAAI,CAAC8C,KAAK,CAACsG,EAAE,CAAC;MACzE/K,gBAAgB,CAACgL,qBAAqB,CAACL,cAAc,CAAC;MAEtD,IAAI,CAACsC,WAAW,CAACjN,gBAAgB,EAAE,IAAI,CAACyE,KAAK,EAC3C,YAAM;QACJ,IAAMyI,0BAA0B,GAAG,IAAItO,OAAO,CAACsN,cAAc,CAAC1I,CAAC,EAAE,GAAG,EAAE0I,cAAc,CAAClI,CAAC,CAAC;QACvF,MAAI,CAACmJ,oBAAoB,CAAC,MAAI,CAACC,gBAAgB,CAAC,IAAIxO,OAAO,CAAC,MAAI,CAAC6F,KAAK,CAAC9C,QAAQ,CAAC6B,CAAC,EAAE,GAAG,EAAE,MAAI,CAACiB,KAAK,CAAC9C,QAAQ,CAACqC,CAAC,CAAC,EAAEkJ,0BAA0B,CAAC,CAAC;QAE5I,IAAMjB,eAAe,GAAG,MAAI,CAACxH,KAAK,CAAC9C,QAAQ;QAC3C,IAAMgL,OAAO,GAAG,IAAI5O,UAAU,CAACkO,eAAe,EAAE,IAAIrN,OAAO,CAACqN,eAAe,CAACzI,CAAC,EAAEyI,eAAe,CAAC3H,CAAC,GAAG,EAAE,EAAE2H,eAAe,CAACjI,CAAC,CAAC,CAAC;QAC1H,IAAM4I,SAAS,GAAG9N,KAAK,CAACiI,YAAY,CAAC,MAAI,CAACtC,KAAK,EAAEkI,OAAO,EAAE,EAAE,EAAE;UAAEE,IAAI,EAAE,KAAK;UAAEC,MAAM,EAAEZ;QAAe,CAAC,CAAC;QAEtG,MAAI,CAAC7H,WAAW,CAACxE,aAAa,GAAG,EAAE;QACnC,MAAI,CAACwE,WAAW,CAACvE,eAAe,GAAG,CAAC;;QAEpC;QACA8M,SAAS,CAAC/H,gBAAgB,CAAC,KAAK,EAAE,YAAM;UACtC,IAAMwI,SAAS,GAAG,MAAI,CAACD,gBAAgB,CAACnB,eAAe,EAAE,IAAIrN,OAAO,CAACsN,cAAc,CAAC1I,CAAC,EAAE0I,cAAc,CAAC5H,CAAC,GAAG,EAAE,EAAE4H,cAAc,CAAClI,CAAC,CAAC,CAAC;UAChI,IAAMsJ,WAAW,GAAGxO,KAAK,CAACiI,YAAY,CAAC,MAAI,CAACtC,KAAK,EAAE4I,SAAS,EAAE,EAAE,EAAE;YAAER,IAAI,EAAE,KAAK;YAAEC,MAAM,EAAE;UAAM,CAAC,CAAC;UAEjG,MAAI,CAACzI,WAAW,CAACxE,aAAa,GAAG,CAAC;UAClC,MAAI,CAACwE,WAAW,CAACvE,eAAe,GAAG,EAAE;;UAErC;UACAwN,WAAW,CAACzI,gBAAgB,CAAC,KAAK,EAAE,YAAM;YACxC,IAAM0I,YAAY,GAAG,MAAI,CAAC9I,KAAK,CAAC9C,QAAQ;YACxC,IAAM6L,SAAS,GAAG,IAAIzP,UAAU,CAACwP,YAAY,EAAE,IAAI3O,OAAO,CAAC2O,YAAY,CAAC/J,CAAC,EAAE+J,YAAY,CAACjJ,CAAC,GAAG,EAAE,EAAEiJ,YAAY,CAACvJ,CAAC,CAAC,CAAC;YAChH,IAAMyJ,WAAW,GAAG3O,KAAK,CAACiI,YAAY,CAAC,MAAI,CAACtC,KAAK,EAAE+I,SAAS,EAAE,EAAE,EAAE;cAAEX,IAAI,EAAE,KAAK;cAAEC,MAAM,EAAE;YAAM,CAAC,CAAC;YAEjG,MAAI,CAACzI,WAAW,CAACxE,aAAa,GAAG,EAAE;YACnC,MAAI,CAACwE,WAAW,CAACvE,eAAe,GAAG,CAAC;;YAEpC;YACA2N,WAAW,CAAC5I,gBAAgB,CAAC,KAAK,EAAE,YAAM;cACxC,IAAM6I,eAAe,GAAG,IAAIxP,OAAO,EAAE;cACrC,IAAMyP,iBAAiB,GAAG,IAAIlP,UAAU,EAAE;cAE1C,IAAMmP,eAAe,GAAG,MAAI,CAAChO,UAAU,CAACgH,KAAK,CAACK,UAAU,CAAC,CAAC+F,cAAc,GAAG,IAAI,IAAI,CAAC,CAAC;cAErFU,eAAe,CAAC1D,MAAM,CAAC4D,eAAe,EAAE,MAAI,CAACnJ,KAAK,CAAC9C,QAAQ,EAAE,MAAI,CAAC8C,KAAK,CAACsG,EAAE,CAAC;cAC3E4C,iBAAiB,CAAC3C,qBAAqB,CAAC0C,eAAe,CAAC;cAExD,MAAI,CAACT,WAAW,CAACU,iBAAiB,EAAE,MAAI,CAAClJ,KAAK,EAAE,YAAM;gBACpDyC,UAAU,CAAC,YAAM;kBACf,MAAI,CAAC2G,iBAAiB,EAAE;kBACxB,MAAI,CAACxE,WAAW,GAAG,KAAK;kBACxB,MAAI,CAACvC,OAAO,CAACgH,WAAW,CAACd,cAAc,CAAC;kBACxC,MAAI,CAAClG,OAAO,CAACiG,OAAO,EAAE;kBAEtB,MAAI,CAAC1I,WAAW,CAACxE,aAAa,GAAG,CAAC;kBAClC,MAAI,CAACwE,WAAW,CAACvE,eAAe,GAAG,EAAE;gBACvC,CAAC,EAAE,GAAG,CAAC;cACT,CAAC,CAAC;YACJ,CAAC,CAAC;UACJ,CAAC,CAAC;QACJ,CAAC,CAAC;MACJ,CAAC,CAAC;IACN;EAAC;IAAA;IAAA,OAED,kBAASiO,KAAa,EAAE;MACtB,IAAI,IAAI,CAACjH,OAAO,EACd,IAAI,CAACA,OAAO,CAACkH,QAAQ,CAACD,KAAK,CAAC;IAChC;EAAC;IAAA;IAAA,OAED,gBAAO;MACL,IAAI,IAAI,CAACjH,OAAO,EACd,IAAI,CAACA,OAAO,CAAC3C,IAAI,EAAE;IACvB;EAAC;IAAA;IAAA,OAED,uBAAc;MACZ,IAAI,CAAC,IAAI,CAAC2C,OAAO,EACf,MAAM,IAAImH,KAAK,CAAC,kBAAkB,CAAC;MAErC,IAAI,IAAI,CAACC,YAAY,KAAK,CAAC,EACzB,IAAI,CAACC,gBAAgB,EAAE,MAGvB,IAAI,CAACrH,OAAO,CAACiG,OAAO,EAAE;MAExB,IAAI,CAACmB,YAAY,EAAE;MAEnB,IAAI,CAACzH,SAAS,GAAG,IAAI;MAErB3H,KAAK,CAACyH,OAAO,CAAC6H,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC;MAEpC,IAAI,IAAI,CAACxO,UAAU,CAACkE,SAAS,KAAK,IAAI,CAAClE,UAAU,CAAC8E,KAAK,CAAC5B,KAAK,CAACuL,MAAM,EAClEvP,KAAK,CAACyH,OAAO,CAAC6H,IAAI,CAAC,MAAM,CAAC;IAC9B;;IAEA;AACF;AACA;EAFE;IAAA;IAAA,OAGA,mBAAU,CAAE;EAAC;EAAA;AAAA;AAGf,eAAezO,gBAAgB"}
@@ -214,7 +214,7 @@ var Inspection = /*#__PURE__*/function () {
214
214
  value: 0
215
215
  },
216
216
  u_color: {
217
- value: new Color('#dc8c42')
217
+ value: new Color('#f3b360')
218
218
  },
219
219
  u_active_color: {
220
220
  value: new Color('#ffea71')
@@ -1 +1 @@
1
- {"version":3,"names":["Color","CylinderGeometry","Group","Mesh","MeshBasicMaterial","OrthographicCamera","PerspectiveCamera","ShaderMaterial","TubeGeometry","Vector4","use","utils","RoundLineGeometry","fragmentShader","vertexShader","fragmentShader2","observe","flyLinePoints","groundLinePoints","targetProgresspoints","InspectionObject","DefaultFirstPerspectiveControls","storeManagement","viewInfoPro","width","height","top","left","viewInfoDev","viewInfo","Inspection","gobal","Map","generateInspectionPath","makeGroundRoad","setInspectionCamera","inspectionObject","startInspection","curve","hide","createViewElement","onHandleToggleView","scale","window","app","envServer","scaleRatio","get","querySelector","getBoundingClientRect","viewElement","document","createElement","style","position","cursor","addEventListener","toggleView","handleObserve","setTimeout","flyLine","radius","close","defaultFirstPerspectiveControls","minCamera","scene","renderer","domElement","enabled","emitter","on","type","params","target","highlight","currentAnchor","anchorObject","traverse","child","name","material","color","groundLine","tube","groundMaterial","transparent","uniforms","u_time","value","alpha","centerColor","sideColor","otherColor","activeColor","activeSideColor","mesh2","mapMaterial","depthTest","depthWrite","u_color","u_active_color","mesh3","layers","set","groundGroup","add","y","groundCurve","line","anchorMesh","setMapViewAnchorPoint","anchorGroup","Object","keys","forEach","key","demoPoints","getPointAt","Number","singleAnchorGroup","cylinder","cylinder1","x","z","k","s","camera","lookAt","mapCamera","mapViewAnchorPoint","uColor","mapAnchorObject","innerWidth","innerHeight","cutoutCamera","cutoutArea","setMapView","getLength","startMove","targetProgress","targetPosition","gotoTarget","isHide","body","appendChild","cutout","visible","model","contains","removeChild","cutMain","check","useframe"],"sources":["../../../../src/factory/unit/inspection/index.ts"],"sourcesContent":["import type { Object3D } from '@anov/3d-core'\nimport { Color, CylinderGeometry, Group, Mesh, MeshBasicMaterial, NormalBlending, OrthographicCamera, PerspectiveCamera, ShaderMaterial, TubeGeometry, Vector4, use, utils } from '@anov/3d-core'\nimport { RoundLineGeometry } from '@anov/3d-ability'\nimport type Factory3D from '../../3d'\nimport fragmentShader from '../glsl/highway/fragmentShader'\nimport vertexShader from '../glsl/highway/vertexShader'\nimport fragmentShader2 from '../glsl/highway/fragmentShader2'\nimport { observe } from '../../utils/observe'\nimport { flyLinePoints, groundLinePoints, targetProgresspoints } from './lineData'\nimport InspectionObject from './InspectionObject'\nimport DefaultFirstPerspectiveControls from './defaultFirstPerspectiveControls'\n\nconst { storeManagement } = utils\n\nconst viewInfoPro = {\n width: 430,\n height: 210,\n top: 170,\n left: 90,\n}\n\nconst viewInfoDev = {\n width: 300,\n height: 200,\n top: 50,\n left: 0,\n}\n\nconst viewInfo = process.env.ENV === 'dev' ? viewInfoDev : viewInfoPro\n\nclass Inspection {\n gobal: Factory3D\n inspectionObject\n curve\n groundCurve\n line: Group\n viewElement: HTMLDivElement\n isHide = true\n anchorObject: Map<string, Group> = new Map()\n mapAnchorObject: Map<string, Mesh> = new Map()\n anchorGroup: Group\n mapAnchorGroup: Group\n minCamera: PerspectiveCamera\n InspectionPathObject: Object3D\n groundMaterial\n mapMaterial: any\n map\n mapCamera\n defaultFirstPerspectiveControls\n\n constructor(gobal: Factory3D) {\n this.gobal = gobal\n this.generateInspectionPath()\n this.makeGroundRoad()\n this.setInspectionCamera()\n\n this.inspectionObject = new InspectionObject(this)\n\n this.startInspection(this.curve)\n this.hide()\n this.createViewElement()\n this.onHandleToggleView()\n }\n\n /**\n * create view element, use to switch view [like a button]\n */\n private createViewElement() {\n const scale = (window as any)?.app?.envServer?.scaleRatio ?? 1\n const { left, top } = storeManagement.get<HTMLElement>('container').querySelector('canvas').getBoundingClientRect()\n\n const viewElement = document.createElement('div')\n viewElement.style.position = 'absolute'\n viewElement.style.width = `${viewInfo.width * scale}px`\n viewElement.style.height = `${viewInfo.height * scale}px`\n viewElement.style.cursor = 'pointer'\n viewElement.style.top = `${(viewInfo.top) * scale + top}px`\n viewElement.style.left = `${(viewInfo.left) * scale + left}px`\n\n viewElement.addEventListener('click', () => {\n this.gobal.toggleView()\n })\n\n const handleObserve = () => {\n setTimeout(() => {\n const scale = (window as any)?.app?.envServer?.scaleRatio ?? 1\n const { left, top } = storeManagement.get<HTMLElement>('container').querySelector('canvas').getBoundingClientRect()\n\n viewElement.style.width = `${viewInfo.width * scale}px`\n viewElement.style.height = `${viewInfo.height * scale}px`\n viewElement.style.top = `${(viewInfo.top) * scale + top}px`\n viewElement.style.left = `${(viewInfo.left) * scale + left}px`\n }, 500)\n }\n\n document.querySelector('.cml-panel-container') && observe(document.querySelector('.cml-panel-container'), () => {\n handleObserve()\n })\n\n this.viewElement = viewElement\n }\n\n /**\n * generate inspection path\n * @param linePosition\n */\n private generateInspectionPath() {\n const flyLine = new RoundLineGeometry(flyLinePoints, {\n radius: 20,\n close: true,\n })\n\n this.curve = flyLine.curve\n }\n\n private onHandleToggleView() {\n const defaultFirstPerspectiveControls = new DefaultFirstPerspectiveControls(\n this.minCamera,\n this.gobal.scene.renderer.domElement,\n )\n\n this.defaultFirstPerspectiveControls = defaultFirstPerspectiveControls\n\n defaultFirstPerspectiveControls.enabled = false\n\n utils.emitter.on('toggleView', (type: 'Drone' | 'Global') => {\n if (type === 'Drone')\n defaultFirstPerspectiveControls.enabled = true\n\n else\n defaultFirstPerspectiveControls.enabled = false\n })\n }\n\n setSelectedAnchorObject(params: { target: string; highlight: boolean }) {\n const { target, highlight } = params\n const currentAnchor = this.anchorObject.get(target) as any\n\n if (!currentAnchor)\n return\n\n if (highlight) {\n currentAnchor.traverse((child) => {\n if (child.name === 'cylinder')\n child.material = new MeshBasicMaterial({ color: new Color('yellow') })\n else\n child.material = new MeshBasicMaterial({ color: new Color('#facb2b') })\n })\n }\n else {\n currentAnchor.traverse((child) => {\n if (child.name === 'cylinder')\n child.material = new MeshBasicMaterial({ color: new Color('#cdccca') })\n else\n child.material = new MeshBasicMaterial({ color: new Color('#fff') })\n })\n }\n }\n\n /**\n * make ground road\n */\n private makeGroundRoad() {\n const groundLine = new RoundLineGeometry(groundLinePoints, {\n radius: 20,\n close: true,\n })\n\n // const demo = []\n // for (let i = 0; i < 1000; i++) {\n // demo.push({\n // x: groundLine.curve.getPointAt(i / 1000).x,\n // y: groundLine.curve.getPointAt(i / 1000).y,\n // z: groundLine.curve.getPointAt(i / 1000).z,\n // })\n // }\n\n // console.log(JSON.stringify(demo, null, 2))\n\n const tube = new TubeGeometry(groundLine.curve, 10000, 4, 2, false)\n const groundMaterial = new ShaderMaterial({\n transparent: true,\n uniforms: {\n u_time: {\n value: 0,\n },\n alpha: {\n value: 0.6,\n },\n centerColor: {\n value: new Color('#f3b360'),\n },\n sideColor: {\n value: new Color('yellow'),\n },\n otherColor: {\n value: new Color('#f3b360'),\n },\n activeColor: {\n value: new Color('#ffea71'),\n },\n activeSideColor: {\n value: new Color('#feffe0'),\n },\n },\n vertexShader,\n fragmentShader,\n })\n const mesh2 = new Mesh(tube, groundMaterial)\n\n const mapMaterial = new ShaderMaterial({\n transparent: true,\n depthTest: true,\n depthWrite: false,\n uniforms: {\n u_time: {\n value: 0,\n },\n u_color: {\n value: new Color('#dc8c42'),\n },\n u_active_color: {\n value: new Color('#ffea71'),\n },\n },\n vertexShader,\n fragmentShader: fragmentShader2,\n })\n\n const mesh3 = new Mesh(tube, mapMaterial)\n\n mesh3.layers.set(5)\n\n const groundGroup = new Group()\n\n groundGroup.add(mesh3)\n groundGroup.add(mesh2)\n groundGroup.position.y = 3\n\n this.groundCurve = groundLine.curve\n\n this.line = groundGroup\n this.gobal.scene.add(groundGroup)\n\n this.groundMaterial = groundMaterial\n this.mapMaterial = mapMaterial\n\n this.anchorMesh()\n this.setMapViewAnchorPoint()\n }\n\n private anchorMesh() {\n const anchorGroup = new Group()\n\n Object.keys(targetProgresspoints).forEach((key) => {\n const demoPoints = this.groundCurve.getPointAt(Number(key))\n const singleAnchorGroup = new Group()\n\n const cylinder = new Mesh(new CylinderGeometry(10, 10, 2, 64), new MeshBasicMaterial({ color: new Color('#cdccca') }))\n const cylinder1 = new Mesh(new CylinderGeometry(5, 5, 1, 64), new MeshBasicMaterial({ color: new Color('#fff') }))\n cylinder1.position.y = 2\n\n cylinder.name = 'cylinder'\n cylinder1.name = 'cylinder1'\n\n singleAnchorGroup.add(cylinder, cylinder1)\n singleAnchorGroup.position.set(demoPoints.x, demoPoints.y + 5, demoPoints.z)\n\n this.anchorObject.set(targetProgresspoints[key].name, singleAnchorGroup)\n anchorGroup.add(singleAnchorGroup)\n })\n this.anchorGroup = anchorGroup\n this.gobal.scene.add(anchorGroup)\n }\n\n private setMapView() {\n const width = 1470\n const height = 800\n const k = width / height\n const s = 273\n\n const camera = new OrthographicCamera(-s * k + 5, s * k, s - 35, -s + 40, 1, 1000)\n\n camera.position.set(0, 400, 0)\n camera.lookAt(0, 0, 0)\n\n camera.layers.set(5)\n\n this.gobal.scene.add(camera)\n\n this.mapCamera = camera\n }\n\n private setMapViewAnchorPoint() {\n const anchorGroup = new Group()\n\n Object.keys(targetProgresspoints).forEach((key) => {\n const demoPoints = this.groundCurve.getPointAt(Number(key))\n const mapViewAnchorPoint = new Mesh(new CylinderGeometry(20, 20, 2, 64),\n new ShaderMaterial({\n uniforms: {\n uColor: {\n value: new Vector4(1, 1, 1, 1),\n },\n },\n vertexShader: /* glsl */ `\n varying vec2 vUv;\n void main(){\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }\n `,\n fragmentShader: /* glsl */ `\n uniform vec4 uColor;\n varying vec2 vUv;\n void main(){\n vec2 center = vec2(0.47, 0.47);\n float radius = 0.4;\n float border = 0.05;\n float dist = distance(vUv, center);\n\n if (dist < radius - border) {\n gl_FragColor = uColor;\n } else if (dist < radius + border) {\n gl_FragColor = vec4(0.6, 0.6, 0.6, 1.0); \n } else {\n gl_FragColor = vec4(.7, .7, .7, 1.0); \n }\n }\n `,\n depthTest: true,\n depthWrite: false,\n transparent: true,\n }))\n\n mapViewAnchorPoint.layers.set(5)\n mapViewAnchorPoint.position.set(demoPoints.x, demoPoints.y + 30, demoPoints.z)\n mapViewAnchorPoint.scale.set(1.3, 1, 1)\n\n anchorGroup.add(mapViewAnchorPoint)\n this.mapAnchorObject.set(key, mapViewAnchorPoint)\n })\n\n this.gobal.scene.add(anchorGroup)\n }\n\n private setInspectionCamera() {\n let minCamera\n\n if (this.minCamera) {\n minCamera = this.minCamera\n }\n else {\n minCamera = new PerspectiveCamera(60,\n window.innerWidth / window.innerHeight\n , 0.1, 1000)\n }\n\n this.gobal.scene.cutoutCamera = minCamera\n\n this.gobal.scene.cutoutArea = { x: viewInfo.left, y: viewInfo.top, width: viewInfo.width, height: viewInfo.height }\n this.gobal.scene.add(minCamera)\n\n this.minCamera = minCamera\n this.minCamera.layers.set(0)\n\n this.setMapView()\n }\n\n get getPathLength() {\n return this.curve.getLength()\n }\n\n startInspection(line) {\n this.setInspectionCamera()\n this.inspectionObject.startMove(line)\n }\n\n goToInspectionTarget(targetProgress: number) {\n const targetPosition = this.curve.getPointAt(targetProgress)\n this.inspectionObject.gotoTarget(targetPosition, targetProgress)\n }\n\n show() {\n this.isHide = false\n\n document.body.appendChild(this.viewElement)\n this.gobal.scene.cutout = true\n this.anchorGroup.visible = true\n this.line.visible = true\n this.inspectionObject.model && (this.inspectionObject.model.visible = true)\n }\n\n hide() {\n this.isHide = true\n\n if (this.viewElement && document.body.contains(this.viewElement))\n document.body.removeChild(this.viewElement)\n\n if (this.gobal.scene.camera === this.minCamera) {\n this.gobal.scene.camera = this.gobal.scene.cutoutCamera\n this.gobal.scene.cutoutCamera = this.minCamera\n }\n\n this.gobal.scene.cutout = false\n this.gobal.scene.cutMain(this.gobal.scene.renderer)\n this.line.visible = false\n this.anchorGroup.visible = false\n\n // this.addeHighSelected([])\n const check = use.useframe(() => {\n if (this.inspectionObject.model) {\n this.inspectionObject.model.visible = false\n check()\n }\n })\n }\n}\n\nexport default Inspection"],"mappings":"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"}
1
+ {"version":3,"names":["Color","CylinderGeometry","Group","Mesh","MeshBasicMaterial","OrthographicCamera","PerspectiveCamera","ShaderMaterial","TubeGeometry","Vector4","use","utils","RoundLineGeometry","fragmentShader","vertexShader","fragmentShader2","observe","flyLinePoints","groundLinePoints","targetProgresspoints","InspectionObject","DefaultFirstPerspectiveControls","storeManagement","viewInfoPro","width","height","top","left","viewInfoDev","viewInfo","Inspection","gobal","Map","generateInspectionPath","makeGroundRoad","setInspectionCamera","inspectionObject","startInspection","curve","hide","createViewElement","onHandleToggleView","scale","window","app","envServer","scaleRatio","get","querySelector","getBoundingClientRect","viewElement","document","createElement","style","position","cursor","addEventListener","toggleView","handleObserve","setTimeout","flyLine","radius","close","defaultFirstPerspectiveControls","minCamera","scene","renderer","domElement","enabled","emitter","on","type","params","target","highlight","currentAnchor","anchorObject","traverse","child","name","material","color","groundLine","tube","groundMaterial","transparent","uniforms","u_time","value","alpha","centerColor","sideColor","otherColor","activeColor","activeSideColor","mesh2","mapMaterial","depthTest","depthWrite","u_color","u_active_color","mesh3","layers","set","groundGroup","add","y","groundCurve","line","anchorMesh","setMapViewAnchorPoint","anchorGroup","Object","keys","forEach","key","demoPoints","getPointAt","Number","singleAnchorGroup","cylinder","cylinder1","x","z","k","s","camera","lookAt","mapCamera","mapViewAnchorPoint","uColor","mapAnchorObject","innerWidth","innerHeight","cutoutCamera","cutoutArea","setMapView","getLength","startMove","targetProgress","targetPosition","gotoTarget","isHide","body","appendChild","cutout","visible","model","contains","removeChild","cutMain","check","useframe"],"sources":["../../../../src/factory/unit/inspection/index.ts"],"sourcesContent":["import type { Object3D } from '@anov/3d-core'\nimport { Color, CylinderGeometry, Group, Mesh, MeshBasicMaterial, NormalBlending, OrthographicCamera, PerspectiveCamera, ShaderMaterial, TubeGeometry, Vector4, use, utils } from '@anov/3d-core'\nimport { RoundLineGeometry } from '@anov/3d-ability'\nimport type Factory3D from '../../3d'\nimport fragmentShader from '../glsl/highway/fragmentShader'\nimport vertexShader from '../glsl/highway/vertexShader'\nimport fragmentShader2 from '../glsl/highway/fragmentShader2'\nimport { observe } from '../../utils/observe'\nimport { flyLinePoints, groundLinePoints, targetProgresspoints } from './lineData'\nimport InspectionObject from './InspectionObject'\nimport DefaultFirstPerspectiveControls from './defaultFirstPerspectiveControls'\n\nconst { storeManagement } = utils\n\nconst viewInfoPro = {\n width: 430,\n height: 210,\n top: 170,\n left: 90,\n}\n\nconst viewInfoDev = {\n width: 300,\n height: 200,\n top: 50,\n left: 0,\n}\n\nconst viewInfo = process.env.ENV === 'dev' ? viewInfoDev : viewInfoPro\n\nclass Inspection {\n gobal: Factory3D\n inspectionObject\n curve\n groundCurve\n line: Group\n viewElement: HTMLDivElement\n isHide = true\n anchorObject: Map<string, Group> = new Map()\n mapAnchorObject: Map<string, Mesh> = new Map()\n anchorGroup: Group\n mapAnchorGroup: Group\n minCamera: PerspectiveCamera\n InspectionPathObject: Object3D\n groundMaterial\n mapMaterial: any\n map\n mapCamera\n defaultFirstPerspectiveControls\n\n constructor(gobal: Factory3D) {\n this.gobal = gobal\n this.generateInspectionPath()\n this.makeGroundRoad()\n this.setInspectionCamera()\n\n this.inspectionObject = new InspectionObject(this)\n\n this.startInspection(this.curve)\n this.hide()\n this.createViewElement()\n this.onHandleToggleView()\n }\n\n /**\n * create view element, use to switch view [like a button]\n */\n private createViewElement() {\n const scale = (window as any)?.app?.envServer?.scaleRatio ?? 1\n const { left, top } = storeManagement.get<HTMLElement>('container').querySelector('canvas').getBoundingClientRect()\n\n const viewElement = document.createElement('div')\n viewElement.style.position = 'absolute'\n viewElement.style.width = `${viewInfo.width * scale}px`\n viewElement.style.height = `${viewInfo.height * scale}px`\n viewElement.style.cursor = 'pointer'\n viewElement.style.top = `${(viewInfo.top) * scale + top}px`\n viewElement.style.left = `${(viewInfo.left) * scale + left}px`\n\n viewElement.addEventListener('click', () => {\n this.gobal.toggleView()\n })\n\n const handleObserve = () => {\n setTimeout(() => {\n const scale = (window as any)?.app?.envServer?.scaleRatio ?? 1\n const { left, top } = storeManagement.get<HTMLElement>('container').querySelector('canvas').getBoundingClientRect()\n\n viewElement.style.width = `${viewInfo.width * scale}px`\n viewElement.style.height = `${viewInfo.height * scale}px`\n viewElement.style.top = `${(viewInfo.top) * scale + top}px`\n viewElement.style.left = `${(viewInfo.left) * scale + left}px`\n }, 500)\n }\n\n document.querySelector('.cml-panel-container') && observe(document.querySelector('.cml-panel-container'), () => {\n handleObserve()\n })\n\n this.viewElement = viewElement\n }\n\n /**\n * generate inspection path\n * @param linePosition\n */\n private generateInspectionPath() {\n const flyLine = new RoundLineGeometry(flyLinePoints, {\n radius: 20,\n close: true,\n })\n\n this.curve = flyLine.curve\n }\n\n private onHandleToggleView() {\n const defaultFirstPerspectiveControls = new DefaultFirstPerspectiveControls(\n this.minCamera,\n this.gobal.scene.renderer.domElement,\n )\n\n this.defaultFirstPerspectiveControls = defaultFirstPerspectiveControls\n\n defaultFirstPerspectiveControls.enabled = false\n\n utils.emitter.on('toggleView', (type: 'Drone' | 'Global') => {\n if (type === 'Drone')\n defaultFirstPerspectiveControls.enabled = true\n\n else\n defaultFirstPerspectiveControls.enabled = false\n })\n }\n\n setSelectedAnchorObject(params: { target: string; highlight: boolean }) {\n const { target, highlight } = params\n const currentAnchor = this.anchorObject.get(target) as any\n\n if (!currentAnchor)\n return\n\n if (highlight) {\n currentAnchor.traverse((child) => {\n if (child.name === 'cylinder')\n child.material = new MeshBasicMaterial({ color: new Color('yellow') })\n else\n child.material = new MeshBasicMaterial({ color: new Color('#facb2b') })\n })\n }\n else {\n currentAnchor.traverse((child) => {\n if (child.name === 'cylinder')\n child.material = new MeshBasicMaterial({ color: new Color('#cdccca') })\n else\n child.material = new MeshBasicMaterial({ color: new Color('#fff') })\n })\n }\n }\n\n /**\n * make ground road\n */\n private makeGroundRoad() {\n const groundLine = new RoundLineGeometry(groundLinePoints, {\n radius: 20,\n close: true,\n })\n\n // const demo = []\n // for (let i = 0; i < 1000; i++) {\n // demo.push({\n // x: groundLine.curve.getPointAt(i / 1000).x,\n // y: groundLine.curve.getPointAt(i / 1000).y,\n // z: groundLine.curve.getPointAt(i / 1000).z,\n // })\n // }\n\n // console.log(JSON.stringify(demo, null, 2))\n\n const tube = new TubeGeometry(groundLine.curve, 10000, 4, 2, false)\n const groundMaterial = new ShaderMaterial({\n transparent: true,\n uniforms: {\n u_time: {\n value: 0,\n },\n alpha: {\n value: 0.6,\n },\n centerColor: {\n value: new Color('#f3b360'),\n },\n sideColor: {\n value: new Color('yellow'),\n },\n otherColor: {\n value: new Color('#f3b360'),\n },\n activeColor: {\n value: new Color('#ffea71'),\n },\n activeSideColor: {\n value: new Color('#feffe0'),\n },\n },\n vertexShader,\n fragmentShader,\n })\n const mesh2 = new Mesh(tube, groundMaterial)\n\n const mapMaterial = new ShaderMaterial({\n transparent: true,\n depthTest: true,\n depthWrite: false,\n uniforms: {\n u_time: {\n value: 0,\n },\n u_color: {\n value: new Color('#f3b360'),\n },\n u_active_color: {\n value: new Color('#ffea71'),\n },\n },\n vertexShader,\n fragmentShader: fragmentShader2,\n })\n\n const mesh3 = new Mesh(tube, mapMaterial)\n\n mesh3.layers.set(5)\n\n const groundGroup = new Group()\n\n groundGroup.add(mesh3)\n groundGroup.add(mesh2)\n groundGroup.position.y = 3\n\n this.groundCurve = groundLine.curve\n\n this.line = groundGroup\n this.gobal.scene.add(groundGroup)\n\n this.groundMaterial = groundMaterial\n this.mapMaterial = mapMaterial\n\n this.anchorMesh()\n this.setMapViewAnchorPoint()\n }\n\n private anchorMesh() {\n const anchorGroup = new Group()\n\n Object.keys(targetProgresspoints).forEach((key) => {\n const demoPoints = this.groundCurve.getPointAt(Number(key))\n const singleAnchorGroup = new Group()\n\n const cylinder = new Mesh(new CylinderGeometry(10, 10, 2, 64), new MeshBasicMaterial({ color: new Color('#cdccca') }))\n const cylinder1 = new Mesh(new CylinderGeometry(5, 5, 1, 64), new MeshBasicMaterial({ color: new Color('#fff') }))\n cylinder1.position.y = 2\n\n cylinder.name = 'cylinder'\n cylinder1.name = 'cylinder1'\n\n singleAnchorGroup.add(cylinder, cylinder1)\n singleAnchorGroup.position.set(demoPoints.x, demoPoints.y + 5, demoPoints.z)\n\n this.anchorObject.set(targetProgresspoints[key].name, singleAnchorGroup)\n anchorGroup.add(singleAnchorGroup)\n })\n this.anchorGroup = anchorGroup\n this.gobal.scene.add(anchorGroup)\n }\n\n private setMapView() {\n const width = 1470\n const height = 800\n const k = width / height\n const s = 273\n\n const camera = new OrthographicCamera(-s * k + 5, s * k, s - 35, -s + 40, 1, 1000)\n\n camera.position.set(0, 400, 0)\n camera.lookAt(0, 0, 0)\n\n camera.layers.set(5)\n\n this.gobal.scene.add(camera)\n\n this.mapCamera = camera\n }\n\n private setMapViewAnchorPoint() {\n const anchorGroup = new Group()\n\n Object.keys(targetProgresspoints).forEach((key) => {\n const demoPoints = this.groundCurve.getPointAt(Number(key))\n const mapViewAnchorPoint = new Mesh(new CylinderGeometry(20, 20, 2, 64),\n new ShaderMaterial({\n uniforms: {\n uColor: {\n value: new Vector4(1, 1, 1, 1),\n },\n },\n vertexShader: /* glsl */ `\n varying vec2 vUv;\n void main(){\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }\n `,\n fragmentShader: /* glsl */ `\n uniform vec4 uColor;\n varying vec2 vUv;\n void main(){\n vec2 center = vec2(0.47, 0.47);\n float radius = 0.4;\n float border = 0.05;\n float dist = distance(vUv, center);\n\n if (dist < radius - border) {\n gl_FragColor = uColor;\n } else if (dist < radius + border) {\n gl_FragColor = vec4(0.6, 0.6, 0.6, 1.0); \n } else {\n gl_FragColor = vec4(.7, .7, .7, 1.0); \n }\n }\n `,\n depthTest: true,\n depthWrite: false,\n transparent: true,\n }))\n\n mapViewAnchorPoint.layers.set(5)\n mapViewAnchorPoint.position.set(demoPoints.x, demoPoints.y + 30, demoPoints.z)\n mapViewAnchorPoint.scale.set(1.3, 1, 1)\n\n anchorGroup.add(mapViewAnchorPoint)\n this.mapAnchorObject.set(key, mapViewAnchorPoint)\n })\n\n this.gobal.scene.add(anchorGroup)\n }\n\n private setInspectionCamera() {\n let minCamera\n\n if (this.minCamera) {\n minCamera = this.minCamera\n }\n else {\n minCamera = new PerspectiveCamera(60,\n window.innerWidth / window.innerHeight\n , 0.1, 1000)\n }\n\n this.gobal.scene.cutoutCamera = minCamera\n\n this.gobal.scene.cutoutArea = { x: viewInfo.left, y: viewInfo.top, width: viewInfo.width, height: viewInfo.height }\n this.gobal.scene.add(minCamera)\n\n this.minCamera = minCamera\n this.minCamera.layers.set(0)\n\n this.setMapView()\n }\n\n get getPathLength() {\n return this.curve.getLength()\n }\n\n startInspection(line) {\n this.setInspectionCamera()\n this.inspectionObject.startMove(line)\n }\n\n goToInspectionTarget(targetProgress: number) {\n const targetPosition = this.curve.getPointAt(targetProgress)\n this.inspectionObject.gotoTarget(targetPosition, targetProgress)\n }\n\n show() {\n this.isHide = false\n\n document.body.appendChild(this.viewElement)\n this.gobal.scene.cutout = true\n this.anchorGroup.visible = true\n this.line.visible = true\n this.inspectionObject.model && (this.inspectionObject.model.visible = true)\n }\n\n hide() {\n this.isHide = true\n\n if (this.viewElement && document.body.contains(this.viewElement))\n document.body.removeChild(this.viewElement)\n\n if (this.gobal.scene.camera === this.minCamera) {\n this.gobal.scene.camera = this.gobal.scene.cutoutCamera\n this.gobal.scene.cutoutCamera = this.minCamera\n }\n\n this.gobal.scene.cutout = false\n this.gobal.scene.cutMain(this.gobal.scene.renderer)\n this.line.visible = false\n this.anchorGroup.visible = false\n\n // this.addeHighSelected([])\n const check = use.useframe(() => {\n if (this.inspectionObject.model) {\n this.inspectionObject.model.visible = false\n check()\n }\n })\n }\n}\n\nexport default Inspection"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anov/3d",
3
- "version": "0.0.128",
3
+ "version": "0.0.129",
4
4
  "description": "",
5
5
  "author": "",
6
6
  "license": "MIT",
@@ -22,8 +22,8 @@
22
22
  "localforage": "^1.10.0",
23
23
  "resize-observer-polyfill": "^1.5.1",
24
24
  "uuid": "^9.0.1",
25
- "@anov/3d-ability": "^0.0.21",
26
- "@anov/3d-core": "^0.0.22"
25
+ "@anov/3d-core": "^0.0.22",
26
+ "@anov/3d-ability": "^0.0.21"
27
27
  },
28
28
  "devDependencies": {
29
29
  "@types/uuid": "^9.0.7"