@anov/3d 0.0.62 → 0.0.64

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.
@@ -16,7 +16,7 @@ declare type factory3dOption = {
16
16
  controls?: any;
17
17
  };
18
18
  export declare const loadingManager: LoadingManager;
19
- export declare const usePath = "./";
19
+ export declare const usePath: string;
20
20
  declare class Factory3D {
21
21
  position: Vector3;
22
22
  scene: SceneControl;
@@ -25,7 +25,7 @@ var rgbeLoader = new lib.RGBELoader(loadingManager);
25
25
  var emitter = utils.emitter;
26
26
  var resourcePath = './';
27
27
  var resourcePath2 = 'http://172.16.223.163:9000/anov-prod/anov-3d/factory/example/';
28
- export var usePath = resourcePath;
28
+ export var usePath = false ? resourcePath : resourcePath2;
29
29
  var _Texture = new TextureLoader().load("".concat(usePath, "demo03.jpg"));
30
30
  var _Texture2 = new TextureLoader().load("".concat(usePath, "demo04.jpg"));
31
31
  var _Texture3 = new TextureLoader().load("".concat(usePath, "test04.jpg"));
@@ -1 +1 @@
1
- {"version":3,"names":["AdditiveBlending","Color","EquirectangularReflectionMapping","InteractionManager","LoadingManager","Mesh","ModelLoader","PlaneGeometry","RepeatWrapping","SRGBColorSpace","ShaderChunk","ShaderMaterial","TextureLoader","Vector2","Vector3","Vector4","lib","use","utils","Camera","finirMaterialV1","handleUnit","toggleTag","globalEvents","SceneStyle","SceneTag","factoryGlobalObject","createRiseLayer","frag","vert","vertexShader","logdepthbuf_pars_vertex","logdepthbuf_vertex","fragmentShader","logdepthbuf_pars_fragment","logdepthbuf_fragment","loadingManager","load","rgbeLoader","RGBELoader","emitter","resourcePath","resourcePath2","usePath","_Texture","_Texture2","_Texture3","wrapS","wrapT","repeat","set","uniforms","value","_Texture_ST","_Color","r","g","b","_ColorS","_TextureMask","_TexturePlane","_MaskUV","_ColorMask","_ColorMaskS","_Speed","_OP","_Time","material","transparent","Factory3D","option","overview","real","Map","globalEventsAgent","setFactory","scene","Promise","resolve","cameraUtil","camera","controls","control","layers","loadGLTF","gltf","realTreeModel","add","interactionManager","renderer","domElement","storeManagement","useframe","update","loadModel","onLoad","toneMappingExposure","visible","style","realModl","call","group","traverse","child","type","name","geometry","plane","rotation","x","Math","PI","position","renderOrder","scale","text","blending","opacity","depthTest","map","offset","tech","techModel","texture1","texture2","uvScale","depthWrite","thermaLimaging","pipeline","realGroundModel","setPath","texture","mapping","colorSpace","boxSkeyTexture","environment","background","params","tag","apply","forEach","eventKey","on","args","eventHandleFn","get","fn","cutoutCamera","inspection","minCamera","mainCamera","eventName","handleFn","push"],"sources":["../../src/factory/3d.ts"],"sourcesContent":["import type { DataTexture, Group, OrbitControls, SceneControl } from '@anov/3d-core'\nimport { AdditiveBlending, BoxGeometry, Color, EquirectangularReflectionMapping, InteractionManager, LoadingManager, Mesh, MeshBasicMaterial, ModelLoader, PlaneGeometry, RepeatWrapping, SRGBColorSpace, ShaderChunk, ShaderMaterial, TextureLoader, Vector2, Vector3, Vector4, lib, sRGBEncoding, use, utils } from '@anov/3d-core'\nimport { Camera, createBloomSelectedTool, initPostEffects } from '@anov/3d-ability'\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 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'\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\nconst vertexShader = `\n${ShaderChunk.logdepthbuf_pars_vertex}\nbool isPerspectiveMatrix(mat4) {\n return true;\n }\n varying vec2 vUv;\n varying vec3 vPosition;\n\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n vec4 worldPosition1 = modelMatrix * vec4(position, 1.0);\n vPosition = worldPosition1.xyz;\n ${ShaderChunk.logdepthbuf_vertex}\n }\n`\n\n// Fragment shader\nconst fragmentShader = `\n ${ShaderChunk.logdepthbuf_pars_fragment} \n\n uniform sampler2D _Texture;\n uniform sampler2D _TexturePlane;\n //uniform vec4 _Texture_ST;\n uniform vec4 _Color;\n uniform float _ColorS;\n uniform sampler2D _TextureMask;\n uniform float _MaskUV;\n uniform vec4 _ColorMask;\n uniform float _ColorMaskS;\n //uniform vec4 _Speed;\n //uniform float _OP;\n uniform float _Time; \n varying vec2 vUv;\n varying vec3 vPosition;\n\n\n\n void main() {\n vec4 _ColorMask_ =vec4(0.,0.6,1.,1.);\n\n vec3 temp_cast_0 = vec3(0.2);\n vec4 o = vec4(temp_cast_0, 1.0);\n vec2 uv_Texture = vUv * 10.0;\n vec4 tex2DNode1 = texture2D(_Texture, uv_Texture);\n vec4 tex2DNode2 = texture2D(_TexturePlane, uv_Texture);\n vec2 temp_cast_1 = vec2(_MaskUV)* 3.0;\n vec2 uv_TexCoord7 = vUv * temp_cast_1;\n vec2 panner6 = (vec2(_Time,_Time)+ uv_TexCoord7);\n o.rgb = ((tex2DNode2*0.1)+(_Color * tex2DNode1.r * _ColorS) + (_ColorMask_ * (tex2DNode1.r * texture2D(_TextureMask, panner6).r) * _ColorMaskS*10.)).rgb;\n //o.a = _OP;\n gl_FragColor = o;\n gl_FragColor.a = 1.0;\n \n if(vPosition.x>-550.0 && vPosition.x<550.0 && vPosition.z>-300.0 && vPosition.z<270.0){\n gl_FragColor.a = 0.0;\n }else{\n gl_FragColor.a = .85;\n }\n\n ${ShaderChunk.logdepthbuf_fragment}\n }\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 = resourcePath\n\nconst _Texture = new TextureLoader().load(`${usePath}demo03.jpg`)\nconst _Texture2 = new TextureLoader().load(`${usePath}demo04.jpg`)\nconst _Texture3 = new TextureLoader().load(`${usePath}test04.jpg`)\n\n_Texture.wrapS = RepeatWrapping\n_Texture.wrapT = RepeatWrapping\n\n_Texture2.wrapS = RepeatWrapping\n_Texture2.wrapT = RepeatWrapping\n\n_Texture3.wrapS = RepeatWrapping\n_Texture3.wrapT = RepeatWrapping\n\n_Texture.repeat.set(5000, 5000)\n_Texture2.repeat.set(10, 10)\n_Texture3.repeat.set(5000, 5000)\n\nconst uniforms = {\n _Texture: { value: _Texture },\n _Texture_ST: { value: new Vector4() },\n _Color: { value: new Vector4(new Color('#096ddb').r, new Color('#096ddb').g, new Color('#096ddb').b, 0.5) },\n _ColorS: { value: 1 },\n _TextureMask: { value: _Texture2 },\n _TexturePlane: { value: _Texture3 },\n _MaskUV: { value: 1 },\n _ColorMask: { value: new Vector4(new Color('#fff').r, new Color('#fff').g, new Color('#fff').b, 1) },\n _ColorMaskS: { value: 1 },\n _Speed: { value: new Vector4(0.0, 0.2, 0, 0) },\n _OP: { value: 1.0 },\n _Time: { value: 1.0 },\n}\n\nconst material = new ShaderMaterial({\n uniforms,\n vertexShader,\n fragmentShader,\n transparent: true,\n // depthTest: false,\n})\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\n usePath = usePath\n\n private pipeline: Group\n private realModl: Group\n private techModel: Group\n private realGroundModel: Group\n private realTreeModel: Group\n private thermaLimaging: Group\n private eventHandleFn: Map<string, ((args?: any) => void)[]> = new Map()\n private boxSkeyTexture: DataTexture\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 return new Promise((resolve) => {\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}landScap3.glb`, false, true, './draco/', (gltf) => {\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 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 scene.renderer.toneMappingExposure = 0.4\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 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 // 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 depthTest: false,\n depthWrite: false,\n })\n\n child.layers.set(2)\n }\n })\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 // ground\n load.loadGLTF(`${this.usePath}landScap.glb`, false, true, './draco/', (gltf) => {\n this.scene.add(gltf.scene)\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 this.realGroundModel = gltf.scene as Group\n return gltf\n })\n rgbeLoader.setPath(`${this.usePath}`).load('demo.hdr', (texture) => {\n texture.mapping = EquirectangularReflectionMapping\n\n texture.colorSpace = SRGBColorSpace\n this.boxSkeyTexture = texture\n this.scene.scene.environment = texture\n this.scene.scene.background = new Color('#ccc')\n })\n }\n\n /**\n * toggle SceneStyle\n * @param params\n */\n toggleSceneStyle(params: SceneStyle) {\n if (this.style === params)\n return\n\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.realTreeModel.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.realModl.visible = true\n this.realGroundModel && (this.realGroundModel.visible = true)\n this.realTreeModel && (this.realTreeModel.visible = true)\n this.scene.scene.background = new Color('#ccc')\n this.scene.scene.environment = this.boxSkeyTexture\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() {\n if (this.scene.cutoutCamera === this.inspection.minCamera) {\n const cutoutCamera = this.inspection.minCamera\n this.scene.cutoutCamera = this.scene.camera\n this.scene.camera = cutoutCamera\n // initPostEffects(this.scene.scene, this.scene.renderer, cutoutCamera, {\n // type: 'main',\n // })\n }\n else {\n const mainCamera = this.scene.cutoutCamera\n const cutoutCamera = this.inspection.minCamera\n\n this.scene.camera = mainCamera\n this.scene.cutoutCamera = cutoutCamera\n\n // initPostEffects(this.scene.scene, this.scene.renderer, cutoutCamera, {\n // type: 'sub',\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","EquirectangularReflectionMapping","InteractionManager","LoadingManager","Mesh","ModelLoader","PlaneGeometry","RepeatWrapping","SRGBColorSpace","ShaderChunk","ShaderMaterial","TextureLoader","Vector2","Vector3","Vector4","lib","use","utils","Camera","finirMaterialV1","handleUnit","toggleTag","globalEvents","SceneStyle","SceneTag","factoryGlobalObject","createRiseLayer","frag","vert","vertexShader","logdepthbuf_pars_vertex","logdepthbuf_vertex","fragmentShader","logdepthbuf_pars_fragment","logdepthbuf_fragment","loadingManager","load","rgbeLoader","RGBELoader","emitter","resourcePath","resourcePath2","usePath","_Texture","_Texture2","_Texture3","wrapS","wrapT","repeat","set","uniforms","value","_Texture_ST","_Color","r","g","b","_ColorS","_TextureMask","_TexturePlane","_MaskUV","_ColorMask","_ColorMaskS","_Speed","_OP","_Time","material","transparent","Factory3D","option","overview","real","Map","globalEventsAgent","setFactory","scene","Promise","resolve","cameraUtil","camera","controls","control","layers","loadGLTF","gltf","realTreeModel","add","interactionManager","renderer","domElement","storeManagement","useframe","update","loadModel","onLoad","toneMappingExposure","visible","style","realModl","call","group","traverse","child","type","name","geometry","plane","rotation","x","Math","PI","position","renderOrder","scale","text","blending","opacity","depthTest","map","offset","tech","techModel","texture1","texture2","uvScale","depthWrite","thermaLimaging","pipeline","realGroundModel","setPath","texture","mapping","colorSpace","boxSkeyTexture","environment","background","params","tag","apply","forEach","eventKey","on","args","eventHandleFn","get","fn","cutoutCamera","inspection","minCamera","mainCamera","eventName","handleFn","push"],"sources":["../../src/factory/3d.ts"],"sourcesContent":["import type { DataTexture, Group, OrbitControls, SceneControl } from '@anov/3d-core'\nimport { AdditiveBlending, BoxGeometry, Color, EquirectangularReflectionMapping, InteractionManager, LoadingManager, Mesh, MeshBasicMaterial, ModelLoader, PlaneGeometry, RepeatWrapping, SRGBColorSpace, ShaderChunk, ShaderMaterial, TextureLoader, Vector2, Vector3, Vector4, lib, sRGBEncoding, use, utils } from '@anov/3d-core'\nimport { Camera, createBloomSelectedTool, initPostEffects } from '@anov/3d-ability'\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 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'\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\nconst vertexShader = `\n${ShaderChunk.logdepthbuf_pars_vertex}\nbool isPerspectiveMatrix(mat4) {\n return true;\n }\n varying vec2 vUv;\n varying vec3 vPosition;\n\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n vec4 worldPosition1 = modelMatrix * vec4(position, 1.0);\n vPosition = worldPosition1.xyz;\n ${ShaderChunk.logdepthbuf_vertex}\n }\n`\n\n// Fragment shader\nconst fragmentShader = `\n ${ShaderChunk.logdepthbuf_pars_fragment} \n\n uniform sampler2D _Texture;\n uniform sampler2D _TexturePlane;\n //uniform vec4 _Texture_ST;\n uniform vec4 _Color;\n uniform float _ColorS;\n uniform sampler2D _TextureMask;\n uniform float _MaskUV;\n uniform vec4 _ColorMask;\n uniform float _ColorMaskS;\n //uniform vec4 _Speed;\n //uniform float _OP;\n uniform float _Time; \n varying vec2 vUv;\n varying vec3 vPosition;\n\n\n\n void main() {\n vec4 _ColorMask_ =vec4(0.,0.6,1.,1.);\n\n vec3 temp_cast_0 = vec3(0.2);\n vec4 o = vec4(temp_cast_0, 1.0);\n vec2 uv_Texture = vUv * 10.0;\n vec4 tex2DNode1 = texture2D(_Texture, uv_Texture);\n vec4 tex2DNode2 = texture2D(_TexturePlane, uv_Texture);\n vec2 temp_cast_1 = vec2(_MaskUV)* 3.0;\n vec2 uv_TexCoord7 = vUv * temp_cast_1;\n vec2 panner6 = (vec2(_Time,_Time)+ uv_TexCoord7);\n o.rgb = ((tex2DNode2*0.1)+(_Color * tex2DNode1.r * _ColorS) + (_ColorMask_ * (tex2DNode1.r * texture2D(_TextureMask, panner6).r) * _ColorMaskS*10.)).rgb;\n //o.a = _OP;\n gl_FragColor = o;\n gl_FragColor.a = 1.0;\n \n if(vPosition.x>-550.0 && vPosition.x<550.0 && vPosition.z>-300.0 && vPosition.z<270.0){\n gl_FragColor.a = 0.0;\n }else{\n gl_FragColor.a = .85;\n }\n\n ${ShaderChunk.logdepthbuf_fragment}\n }\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\nconst _Texture = new TextureLoader().load(`${usePath}demo03.jpg`)\nconst _Texture2 = new TextureLoader().load(`${usePath}demo04.jpg`)\nconst _Texture3 = new TextureLoader().load(`${usePath}test04.jpg`)\n\n_Texture.wrapS = RepeatWrapping\n_Texture.wrapT = RepeatWrapping\n\n_Texture2.wrapS = RepeatWrapping\n_Texture2.wrapT = RepeatWrapping\n\n_Texture3.wrapS = RepeatWrapping\n_Texture3.wrapT = RepeatWrapping\n\n_Texture.repeat.set(5000, 5000)\n_Texture2.repeat.set(10, 10)\n_Texture3.repeat.set(5000, 5000)\n\nconst uniforms = {\n _Texture: { value: _Texture },\n _Texture_ST: { value: new Vector4() },\n _Color: { value: new Vector4(new Color('#096ddb').r, new Color('#096ddb').g, new Color('#096ddb').b, 0.5) },\n _ColorS: { value: 1 },\n _TextureMask: { value: _Texture2 },\n _TexturePlane: { value: _Texture3 },\n _MaskUV: { value: 1 },\n _ColorMask: { value: new Vector4(new Color('#fff').r, new Color('#fff').g, new Color('#fff').b, 1) },\n _ColorMaskS: { value: 1 },\n _Speed: { value: new Vector4(0.0, 0.2, 0, 0) },\n _OP: { value: 1.0 },\n _Time: { value: 1.0 },\n}\n\nconst material = new ShaderMaterial({\n uniforms,\n vertexShader,\n fragmentShader,\n transparent: true,\n // depthTest: false,\n})\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\n usePath = usePath\n\n private pipeline: Group\n private realModl: Group\n private techModel: Group\n private realGroundModel: Group\n private realTreeModel: Group\n private thermaLimaging: Group\n private eventHandleFn: Map<string, ((args?: any) => void)[]> = new Map()\n private boxSkeyTexture: DataTexture\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 return new Promise((resolve) => {\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}landScap3.glb`, false, true, './draco/', (gltf) => {\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 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 scene.renderer.toneMappingExposure = 0.4\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 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 // 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 depthTest: false,\n depthWrite: false,\n })\n\n child.layers.set(2)\n }\n })\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 // ground\n load.loadGLTF(`${this.usePath}landScap.glb`, false, true, './draco/', (gltf) => {\n this.scene.add(gltf.scene)\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 this.realGroundModel = gltf.scene as Group\n return gltf\n })\n rgbeLoader.setPath(`${this.usePath}`).load('demo.hdr', (texture) => {\n texture.mapping = EquirectangularReflectionMapping\n\n texture.colorSpace = SRGBColorSpace\n this.boxSkeyTexture = texture\n this.scene.scene.environment = texture\n this.scene.scene.background = new Color('#ccc')\n })\n }\n\n /**\n * toggle SceneStyle\n * @param params\n */\n toggleSceneStyle(params: SceneStyle) {\n if (this.style === params)\n return\n\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.realTreeModel.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.realModl.visible = true\n this.realGroundModel && (this.realGroundModel.visible = true)\n this.realTreeModel && (this.realTreeModel.visible = true)\n this.scene.scene.background = new Color('#ccc')\n this.scene.scene.environment = this.boxSkeyTexture\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() {\n if (this.scene.cutoutCamera === this.inspection.minCamera) {\n const cutoutCamera = this.inspection.minCamera\n this.scene.cutoutCamera = this.scene.camera\n this.scene.camera = cutoutCamera\n // initPostEffects(this.scene.scene, this.scene.renderer, cutoutCamera, {\n // type: 'main',\n // })\n }\n else {\n const mainCamera = this.scene.cutoutCamera\n const cutoutCamera = this.inspection.minCamera\n\n this.scene.camera = mainCamera\n this.scene.cutoutCamera = cutoutCamera\n\n // initPostEffects(this.scene.scene, this.scene.renderer, cutoutCamera, {\n // type: 'sub',\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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"}
@@ -15,7 +15,6 @@ declare class CylinderManage {
15
15
  getMesh(data: any): Mesh;
16
16
  private cameraListenerHandle;
17
17
  private cameraAddListener;
18
- debounce(func: any, delay?: number): () => void;
19
18
  private controlAddListener;
20
19
  private cameraRemoveListener;
21
20
  }
@@ -5,7 +5,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
5
5
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
6
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
7
7
  function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
8
- import { BoxGeometry, Color, Float32BufferAttribute, Group, Mesh, MeshBasicMaterial, Vector3, globalObjectManage, use, utils } from '@anov/3d-core';
8
+ import { BoxGeometry, Color, Group, Mesh, ShaderMaterial, Vector3, globalObjectManage, use, utils } from '@anov/3d-core';
9
9
  import createFontMesh from "../utils/fontMesh";
10
10
  import { SceneStyle } from "../utils/constant";
11
11
  import regionMap from "../regionData";
@@ -20,7 +20,8 @@ var cylinderData = [{
20
20
  area: regionMap.reform.area,
21
21
  color: new Color('#FED602').getHex(),
22
22
  points: regionMap.reform.poi.position,
23
- height: 80
23
+ height: 80,
24
+ areaLabel: '重整装置区'
24
25
  }, {
25
26
  label: '7人',
26
27
  id: '2',
@@ -29,7 +30,8 @@ var cylinderData = [{
29
30
  area: regionMap.reduction.area,
30
31
  color: new Color('#FED602').getHex(),
31
32
  points: regionMap.reduction.poi.position,
32
- height: 70
33
+ height: 70,
34
+ areaLabel: '常减压装置区'
33
35
  }, {
34
36
  label: '4人',
35
37
  id: '3',
@@ -38,7 +40,8 @@ var cylinderData = [{
38
40
  area: regionMap.crudeOil.area,
39
41
  color: new Color('#FED602').getHex(),
40
42
  points: regionMap.crudeOil.poi.position,
41
- height: 40
43
+ height: 40,
44
+ areaLabel: '原油罐区'
42
45
  }, {
43
46
  label: '10人',
44
47
  id: '4',
@@ -47,7 +50,8 @@ var cylinderData = [{
47
50
  area: regionMap.catalyticCracking.area,
48
51
  color: new Color('#FED602').getHex(),
49
52
  points: regionMap.catalyticCracking.poi.position,
50
- height: 100
53
+ height: 100,
54
+ areaLabel: '催化裂化装置区'
51
55
  }, {
52
56
  label: '3人',
53
57
  id: '5',
@@ -56,7 +60,8 @@ var cylinderData = [{
56
60
  area: regionMap.hydrocrackingUnit.area,
57
61
  color: new Color('#FED602').getHex(),
58
62
  points: regionMap.hydrocrackingUnit.poi.position,
59
- height: 30
63
+ height: 30,
64
+ areaLabel: '加氢裂化装置区'
60
65
  }, {
61
66
  label: '8人',
62
67
  id: '6',
@@ -65,7 +70,8 @@ var cylinderData = [{
65
70
  area: regionMap.cokingUnit.area,
66
71
  color: new Color('#FED602').getHex(),
67
72
  points: regionMap.cokingUnit.poi.position,
68
- height: 80
73
+ height: 80,
74
+ areaLabel: '焦化装置区'
69
75
  }, {
70
76
  label: '20人',
71
77
  id: '7',
@@ -74,7 +80,8 @@ var cylinderData = [{
74
80
  area: regionMap.administrative.area,
75
81
  color: new Color('#FED602').getHex(),
76
82
  points: regionMap.administrative.poi.position,
77
- height: 150
83
+ height: 150,
84
+ areaLabel: '办公区'
78
85
  }];
79
86
  var CylinderManage = /*#__PURE__*/function () {
80
87
  function CylinderManage(gobal, options) {
@@ -87,7 +94,6 @@ var CylinderManage = /*#__PURE__*/function () {
87
94
  _defineProperty(this, "currentoperate", cylinderData[0].belongTo);
88
95
  _defineProperty(this, "cameraListenerHandle", function () {
89
96
  var currentCameraPosition = _this.gobal.control.object.position;
90
- console.log('currentCameraPosition:', currentCameraPosition);
91
97
  var box = _this.gobal.areaBoundingBox.boundingBoxMap.get(_this.currentoperate);
92
98
  var iscollision = collisionDetection(box, currentCameraPosition);
93
99
  if (!iscollision) {
@@ -111,36 +117,6 @@ var CylinderManage = /*#__PURE__*/function () {
111
117
  var _this2 = this;
112
118
  cylinderData.forEach(function (item) {
113
119
  var _this2$option$visible, _this2$option;
114
- /* const geometry = new BoxGeometry(10, item.height, 10)
115
- const material = new ShaderMaterial({
116
- transparent: true,
117
- depthWrite: false,
118
- depthTest: false,
119
- uniforms: {
120
- uHeight: {
121
- value: item.height,
122
- },
123
- uColor: {
124
- value: new Color(item.color),
125
- },
126
- },
127
- vertexShader: `
128
- uniform float uHeight;
129
- varying float vOpacity;
130
- void main() {
131
- vOpacity = (position.y + uHeight/2.0) / uHeight;
132
- gl_Position = projectionMatrix * modelViewMatrix * vec4(position,1.0);
133
- }
134
- `,
135
- fragmentShader: `
136
- uniform vec3 uColor;
137
- varying float vOpacity;
138
- void main() {
139
- gl_FragColor = vec4(uColor,0.3+vOpacity/10.0*7.0);
140
- }
141
- `,
142
- })
143
- const cylinder = new Mesh(geometry, material) */
144
120
  var cylinder = _this2.getMesh(item);
145
121
  var group = new Group();
146
122
  group.name = item.title;
@@ -148,7 +124,7 @@ var CylinderManage = /*#__PURE__*/function () {
148
124
  cylinder.position.copy(new Vector3().fromArray([item.points[0], item.points[1] + item.height / 2, item.points[2]]));
149
125
  var interactionManager = utils.storeManagement.get('interactionManager');
150
126
  interactionManager.add(group);
151
- group.addEventListener('click', function () {
127
+ var handleClick = function handleClick() {
152
128
  if (_this2.gobal.style === SceneStyle.real || group.visible === false) return;
153
129
 
154
130
  // @ts-ignore
@@ -165,28 +141,33 @@ var CylinderManage = /*#__PURE__*/function () {
165
141
  _this2.currentoperate = item.belongTo;
166
142
  _this2.cameraAddListener();
167
143
  });
168
- // this.gobal.cameraUtil.focus({ target: item.area, pitch: 0 }).then(() => {
169
- // emitter.emit('peoplemanagement-camera-enter', item)
170
- // const currentGroup = this.cylinderMesh.get(item.belongTo) as Group
171
- // currentGroup.visible = false
144
+ };
172
145
 
173
- // this.currentoperate = item.belongTo
174
- // this.cameraAddListener()
175
- // })
146
+ // @ts-ignore
147
+ _this2.gobal.regionPlane.planeMesh.get(item.id).addEventListener('click', function () {
148
+ handleClick();
149
+ });
150
+ group.addEventListener('click', function () {
151
+ handleClick();
176
152
  });
177
-
178
153
  _this2.cylinderMesh.set(item.belongTo, group);
179
154
  group.add(cylinder);
180
155
  var font = createFontMesh(item.label, {
181
156
  position: new Vector3().fromArray([item.points[0], item.points[1] + item.height + 10, item.points[2]])
182
157
  });
183
- font.then(function (mesh) {
184
- mesh.geometry.center();
185
- group.add(mesh);
186
- use.useframe(function () {
187
- lookAtOnYAxis(mesh, globalObjectManage.camera.position);
158
+ var font2 = createFontMesh(item.areaLabel, {
159
+ position: new Vector3().fromArray([item.points[0], item.points[1] + item.height + 25, item.points[2]])
160
+ });
161
+ var fontPromiseAll = Promise.all([font, font2]);
162
+ fontPromiseAll.then(function (meshArr) {
163
+ meshArr.forEach(function (mesh) {
164
+ mesh.geometry.center();
165
+ group.add(mesh);
166
+ use.useframe(function () {
167
+ lookAtOnYAxis(mesh, globalObjectManage.camera.position);
168
+ });
169
+ _this2.scene.add(group);
188
170
  });
189
- _this2.scene.add(group);
190
171
  });
191
172
  });
192
173
  this.controlAddListener();
@@ -195,31 +176,18 @@ var CylinderManage = /*#__PURE__*/function () {
195
176
  key: "getMesh",
196
177
  value: function getMesh(data) {
197
178
  var width = 10;
198
- // 创建渐变材质
199
- var gradientMaterial = new MeshBasicMaterial({
200
- vertexColors: true,
201
- // 启用顶点颜色插值
202
- transparent: true
203
- // blending: AdditiveBlending,
204
- });
205
- // 创建渐变立方体的顶点颜色数组
206
179
  var geometry = new BoxGeometry(width, data.height, width);
207
- var position = geometry.attributes.position;
208
- var colors = [];
209
- for (var i = 0; i < position.count; i++) {
210
- var vertex = new Vector3();
211
- vertex.fromBufferAttribute(position, i);
212
- // 计算顶点的浅橘色到白色渐变值
213
- var gradientX = (vertex.x + width / 2) / width; // 从0到1的梯度
214
- var gradientY = (vertex.y + data.height / 2) / data.height; // 从0到1的梯度
215
- // 计算渐变色
216
- var color = new Color().setHex(0xD5A86F); // 初始颜色为浅橘色
217
- color.lerp(new Color(1, 1, 0.9), gradientX * gradientY); // 从浅橘色渐变到白色
218
- // 添加顶点颜色
219
- colors.push(color.r, color.g, color.b); // 添加渐变色
220
- }
221
-
222
- geometry.setAttribute('color', new Float32BufferAttribute(colors, 3));
180
+ var gradientMaterial = new ShaderMaterial({
181
+ transparent: true,
182
+ depthTest: false,
183
+ uniforms: {
184
+ intensity: {
185
+ value: 1.0
186
+ }
187
+ },
188
+ vertexShader: "\n varying vec2 vUv;\n varying vec3 vNormal;\n void main()\n {\n vUv = uv;\n vNormal =normalize( normal ) ;\n vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n gl_Position = projectionMatrix * mvPosition;\n }\n \n ",
189
+ fragmentShader: "\n \n varying vec3 vNormal;\n varying vec2 vUv;\n uniform float intensity;\n\n void main( void ) {\n \n float colX =clamp( vUv.y+0.3,0.,1.);\n\n if(vNormal.y >0.5)\n {\n colX=1.;\n }\n if(vNormal.y <-0.5)\n {\n colX=0.;\n }\n\n vec4 col = vec4 (1.,mix(0.2,0.8,colX),0.,1.);\n\n gl_FragColor=col*colX*intensity;\n }\n "
190
+ });
223
191
 
224
192
  // 创建渐变立方体
225
193
  var cylinder = new Mesh(geometry, gradientMaterial);
@@ -229,23 +197,7 @@ var CylinderManage = /*#__PURE__*/function () {
229
197
  }, {
230
198
  key: "cameraAddListener",
231
199
  value: function cameraAddListener() {
232
- this.gobal.control.addEventListener('change', this.debounce(this.cameraListenerHandle, 1000));
233
- }
234
- }, {
235
- key: "debounce",
236
- value: function debounce(func) {
237
- var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 300;
238
- var timerId;
239
- return function () {
240
- // eslint-disable-next-line @typescript-eslint/no-this-alias
241
- var context = this;
242
- // eslint-disable-next-line prefer-rest-params
243
- var args = arguments;
244
- clearTimeout(timerId);
245
- timerId = setTimeout(function () {
246
- func.apply(context, args);
247
- }, delay);
248
- };
200
+ this.gobal.control.addEventListener('change', this.cameraListenerHandle);
249
201
  }
250
202
  }, {
251
203
  key: "controlAddListener",
@@ -1 +1 @@
1
- {"version":3,"names":["BoxGeometry","Color","Float32BufferAttribute","Group","Mesh","MeshBasicMaterial","Vector3","globalObjectManage","use","utils","createFontMesh","SceneStyle","regionMap","collisionDetection","lookAtOnYAxis","emitter","cylinderData","label","id","title","reform","belongTo","area","color","getHex","points","poi","position","height","reduction","crudeOil","catalyticCracking","hydrocrackingUnit","cokingUnit","administrative","CylinderManage","gobal","options","Map","currentCameraPosition","control","object","console","log","box","areaBoundingBox","boundingBoxMap","get","currentoperate","iscollision","regionPlane","planeMesh","forEach","mesh","visible","emit","cameraRemoveListener","scene","option","item","cylinder","getMesh","group","name","copy","fromArray","interactionManager","storeManagement","add","addEventListener","style","real","cameraUtil","set","target","then","currentGroup","cylinderMesh","cameraAddListener","font","geometry","center","useframe","camera","controlAddListener","data","width","gradientMaterial","vertexColors","transparent","attributes","colors","i","count","vertex","fromBufferAttribute","gradientX","x","gradientY","y","setHex","lerp","push","r","g","b","setAttribute","rotateY","Math","PI","debounce","cameraListenerHandle","func","delay","timerId","context","args","arguments","clearTimeout","setTimeout","apply","maxDistance","controls","getDistance","removeEventListener"],"sources":["../../../src/factory/unit/cylinder.ts"],"sourcesContent":["import type { InteractionManager, Object3D, Scene } from '@anov/3d-core'\nimport { BoxGeometry, Color, Float32BufferAttribute, Group, Mesh, MeshBasicMaterial, ShaderMaterial, Vector3, globalObjectManage, use, utils } from '@anov/3d-core'\nimport createFontMesh from '../utils/fontMesh'\nimport type Factory3D from '../3d'\nimport { SceneStyle } from '../utils/constant'\nimport regionMap from '../regionData'\nimport { collisionDetection } from '../utils/areaBoundingBox'\n\nimport { lookAtOnYAxis } from '../utils'\n\nconst { emitter } = utils\n\nconst cylinderData = [\n {\n label: '8人',\n id: '1',\n title: regionMap.reform.title,\n belongTo: regionMap.reform.id,\n area: regionMap.reform.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.reform.poi.position,\n height: 80,\n },\n {\n label: '7人',\n id: '2',\n title: regionMap.reduction.title,\n belongTo: regionMap.reduction.id,\n area: regionMap.reduction.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.reduction.poi.position,\n height: 70,\n },\n {\n label: '4人',\n id: '3',\n title: regionMap.crudeOil.title,\n belongTo: regionMap.crudeOil.id,\n area: regionMap.crudeOil.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.crudeOil.poi.position,\n height: 40,\n },\n {\n label: '10人',\n id: '4',\n title: regionMap.catalyticCracking.title,\n belongTo: regionMap.catalyticCracking.id,\n area: regionMap.catalyticCracking.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.catalyticCracking.poi.position,\n height: 100,\n },\n {\n label: '3人',\n id: '5',\n title: regionMap.hydrocrackingUnit.title,\n belongTo: regionMap.hydrocrackingUnit.id,\n area: regionMap.hydrocrackingUnit.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.hydrocrackingUnit.poi.position,\n height: 30,\n },\n {\n label: '8人',\n id: '6',\n title: regionMap.cokingUnit.title,\n belongTo: regionMap.cokingUnit.id,\n area: regionMap.cokingUnit.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.cokingUnit.poi.position,\n height: 80,\n },\n {\n label: '20人',\n id: '7',\n title: regionMap.administrative.title,\n belongTo: regionMap.administrative.id,\n area: regionMap.administrative.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.administrative.poi.position,\n height: 150,\n },\n]\n\ntype CylinderManageOption = {\n visible?: boolean\n}\n\nclass CylinderManage {\n private scene: Scene\n readonly cylinderMesh: Map<string, Object3D> = new Map()\n private option: CylinderManageOption\n private gobal: Factory3D\n private currentoperate: string = cylinderData[0].belongTo\n\n constructor(gobal: Factory3D, options?: CylinderManageOption) {\n this.scene = gobal.scene.scene\n this.gobal = gobal\n this.option = options || {}\n }\n\n generateCylinder() {\n cylinderData.forEach((item) => {\n /* const geometry = new BoxGeometry(10, item.height, 10)\n const material = new ShaderMaterial({\n transparent: true,\n depthWrite: false,\n depthTest: false,\n uniforms: {\n uHeight: {\n value: item.height,\n },\n uColor: {\n value: new Color(item.color),\n },\n },\n vertexShader: `\n uniform float uHeight;\n varying float vOpacity;\n void main() {\n vOpacity = (position.y + uHeight/2.0) / uHeight;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position,1.0);\n }\n `,\n fragmentShader: `\n uniform vec3 uColor;\n varying float vOpacity;\n void main() {\n gl_FragColor = vec4(uColor,0.3+vOpacity/10.0*7.0);\n }\n `,\n })\n const cylinder = new Mesh(geometry, material) */\n const cylinder = this.getMesh(item)\n const group = new Group()\n group.name = item.title\n\n group.visible = this.option?.visible ?? true\n cylinder.position.copy(new Vector3().fromArray([item.points[0], item.points[1] + item.height / 2, item.points[2]]))\n\n const interactionManager = utils.storeManagement.get<InteractionManager>('interactionManager')\n interactionManager.add(group)\n\n group.addEventListener('click', () => {\n if (this.gobal.style === SceneStyle.real || group.visible === false)\n return\n\n // @ts-ignore\n this.gobal.regionPlane.planeMesh.forEach((mesh) => {\n mesh.visible = false\n })\n\n this.gobal.cameraUtil.set({\n position: [item.points[0], item.points[1] + item.height / 2 + 100, item.points[2] + 100],\n target: [item.points[0], item.points[1] + item.height / 2, item.points[2]],\n }).then(() => {\n emitter.emit('peoplemanagement-camera-enter', item)\n const currentGroup = this.cylinderMesh.get(item.belongTo) as Group\n currentGroup.visible = false\n\n this.currentoperate = item.belongTo\n this.cameraAddListener()\n })\n // this.gobal.cameraUtil.focus({ target: item.area, pitch: 0 }).then(() => {\n // emitter.emit('peoplemanagement-camera-enter', item)\n // const currentGroup = this.cylinderMesh.get(item.belongTo) as Group\n // currentGroup.visible = false\n\n // this.currentoperate = item.belongTo\n // this.cameraAddListener()\n // })\n })\n this.cylinderMesh.set(item.belongTo, group)\n group.add(cylinder)\n\n const font = createFontMesh(item.label, {\n position: new Vector3().fromArray([item.points[0], item.points[1] + item.height + 10, item.points[2]]),\n })\n\n font.then((mesh) => {\n mesh.geometry.center()\n\n group.add(mesh)\n\n use.useframe(() => {\n lookAtOnYAxis(mesh, globalObjectManage.camera.position)\n })\n this.scene.add(group)\n })\n })\n this.controlAddListener()\n }\n\n getMesh(data) {\n const width = 10\n // 创建渐变材质\n const gradientMaterial = new MeshBasicMaterial({\n vertexColors: true, // 启用顶点颜色插值\n transparent: true,\n // blending: AdditiveBlending,\n })\n // 创建渐变立方体的顶点颜色数组\n const geometry = new BoxGeometry(width, data.height, width)\n const position = geometry.attributes.position\n const colors = []\n for (let i = 0; i < position.count; i++) {\n const vertex = new Vector3()\n vertex.fromBufferAttribute(position, i)\n // 计算顶点的浅橘色到白色渐变值\n const gradientX = (vertex.x + width / 2) / width // 从0到1的梯度\n const gradientY = (vertex.y + data.height / 2) / data.height // 从0到1的梯度\n // 计算渐变色\n const color = new Color().setHex(0xD5A86F) // 初始颜色为浅橘色\n color.lerp(new Color(1, 1, 0.9), gradientX * gradientY) // 从浅橘色渐变到白色\n // 添加顶点颜色\n colors.push(color.r, color.g, color.b) // 添加渐变色\n }\n geometry.setAttribute('color', new Float32BufferAttribute(colors, 3))\n\n // 创建渐变立方体\n const cylinder = new Mesh(geometry, gradientMaterial)\n cylinder.rotateY(Math.PI / 2)\n return cylinder\n }\n\n private cameraListenerHandle = () => {\n const currentCameraPosition = this.gobal.control.object.position\n console.log('currentCameraPosition:', currentCameraPosition)\n const box = this.gobal.areaBoundingBox.boundingBoxMap.get(this.currentoperate)\n const iscollision = collisionDetection(box, currentCameraPosition)\n if (!iscollision) {\n // @ts-ignore\n this.gobal.regionPlane.planeMesh.forEach((mesh) => {\n mesh.visible = true\n })\n emitter.emit('peoplemanagement-camera-out', {\n belongTo: this.currentoperate,\n })\n\n this.cameraRemoveListener()\n }\n }\n\n private cameraAddListener() {\n this.gobal.control.addEventListener('change', this.debounce(this.cameraListenerHandle, 1000))\n }\n\n debounce(func, delay = 300) {\n let timerId\n return function () {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const context = this\n // eslint-disable-next-line prefer-rest-params\n const args = arguments\n clearTimeout(timerId)\n timerId = setTimeout(() => {\n func.apply(context, args)\n }, delay)\n }\n }\n\n private controlAddListener() {\n const maxDistance = this.gobal.option.controls.maxDistance\n maxDistance && this.gobal.control.addEventListener('change', () => {\n if (this.gobal.control.getDistance() >= maxDistance - 5)\n emitter.emit('peoplemanagement-control-maxDistance', null)\n })\n }\n\n private cameraRemoveListener() {\n this.gobal.control.removeEventListener('change', this.cameraListenerHandle)\n }\n}\n\nexport default CylinderManage"],"mappings":"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"}
1
+ {"version":3,"names":["BoxGeometry","Color","Group","Mesh","ShaderMaterial","Vector3","globalObjectManage","use","utils","createFontMesh","SceneStyle","regionMap","collisionDetection","lookAtOnYAxis","emitter","cylinderData","label","id","title","reform","belongTo","area","color","getHex","points","poi","position","height","areaLabel","reduction","crudeOil","catalyticCracking","hydrocrackingUnit","cokingUnit","administrative","CylinderManage","gobal","options","Map","currentCameraPosition","control","object","box","areaBoundingBox","boundingBoxMap","get","currentoperate","iscollision","regionPlane","planeMesh","forEach","mesh","visible","emit","cameraRemoveListener","scene","option","item","cylinder","getMesh","group","name","copy","fromArray","interactionManager","storeManagement","add","handleClick","style","real","cameraUtil","set","target","then","currentGroup","cylinderMesh","cameraAddListener","addEventListener","font","font2","fontPromiseAll","Promise","all","meshArr","geometry","center","useframe","camera","controlAddListener","data","width","gradientMaterial","transparent","depthTest","uniforms","intensity","value","vertexShader","fragmentShader","rotateY","Math","PI","cameraListenerHandle","maxDistance","controls","getDistance","removeEventListener"],"sources":["../../../src/factory/unit/cylinder.ts"],"sourcesContent":["import type { InteractionManager, Object3D, Scene } from '@anov/3d-core'\nimport { BoxGeometry, Color, Float32BufferAttribute, Group, Mesh, MeshBasicMaterial, ShaderMaterial, Vector3, globalObjectManage, use, utils } from '@anov/3d-core'\nimport createFontMesh from '../utils/fontMesh'\nimport type Factory3D from '../3d'\nimport { SceneStyle } from '../utils/constant'\nimport regionMap from '../regionData'\nimport { collisionDetection } from '../utils/areaBoundingBox'\n\nimport { lookAtOnYAxis } from '../utils'\n\nconst { emitter } = utils\n\nconst cylinderData = [\n {\n label: '8人',\n id: '1',\n title: regionMap.reform.title,\n belongTo: regionMap.reform.id,\n area: regionMap.reform.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.reform.poi.position,\n height: 80,\n areaLabel: '重整装置区',\n },\n {\n label: '7人',\n id: '2',\n title: regionMap.reduction.title,\n belongTo: regionMap.reduction.id,\n area: regionMap.reduction.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.reduction.poi.position,\n height: 70,\n areaLabel: '常减压装置区',\n },\n {\n label: '4人',\n id: '3',\n title: regionMap.crudeOil.title,\n belongTo: regionMap.crudeOil.id,\n area: regionMap.crudeOil.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.crudeOil.poi.position,\n height: 40,\n areaLabel: '原油罐区',\n },\n {\n label: '10人',\n id: '4',\n title: regionMap.catalyticCracking.title,\n belongTo: regionMap.catalyticCracking.id,\n area: regionMap.catalyticCracking.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.catalyticCracking.poi.position,\n height: 100,\n areaLabel: '催化裂化装置区',\n },\n {\n label: '3人',\n id: '5',\n title: regionMap.hydrocrackingUnit.title,\n belongTo: regionMap.hydrocrackingUnit.id,\n area: regionMap.hydrocrackingUnit.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.hydrocrackingUnit.poi.position,\n height: 30,\n areaLabel: '加氢裂化装置区',\n },\n {\n label: '8人',\n id: '6',\n title: regionMap.cokingUnit.title,\n belongTo: regionMap.cokingUnit.id,\n area: regionMap.cokingUnit.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.cokingUnit.poi.position,\n height: 80,\n areaLabel: '焦化装置区',\n },\n {\n label: '20人',\n id: '7',\n title: regionMap.administrative.title,\n belongTo: regionMap.administrative.id,\n area: regionMap.administrative.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.administrative.poi.position,\n height: 150,\n areaLabel: '办公区',\n },\n]\n\ntype CylinderManageOption = {\n visible?: boolean\n}\n\nclass CylinderManage {\n private scene: Scene\n readonly cylinderMesh: Map<string, Object3D> = new Map()\n private option: CylinderManageOption\n private gobal: Factory3D\n private currentoperate: string = cylinderData[0].belongTo\n\n constructor(gobal: Factory3D, options?: CylinderManageOption) {\n this.scene = gobal.scene.scene\n this.gobal = gobal\n this.option = options || {}\n }\n\n generateCylinder() {\n cylinderData.forEach((item) => {\n const cylinder = this.getMesh(item)\n const group = new Group()\n group.name = item.title\n\n group.visible = this.option?.visible ?? true\n cylinder.position.copy(new Vector3().fromArray([item.points[0], item.points[1] + item.height / 2, item.points[2]]))\n\n const interactionManager = utils.storeManagement.get<InteractionManager>('interactionManager')\n interactionManager.add(group)\n\n const handleClick = () => {\n if (this.gobal.style === SceneStyle.real || group.visible === false)\n return\n\n // @ts-ignore\n this.gobal.regionPlane.planeMesh.forEach((mesh) => {\n mesh.visible = false\n })\n\n this.gobal.cameraUtil.set({\n position: [item.points[0], item.points[1] + item.height / 2 + 100, item.points[2] + 100],\n target: [item.points[0], item.points[1] + item.height / 2, item.points[2]],\n }).then(() => {\n emitter.emit('peoplemanagement-camera-enter', item)\n const currentGroup = this.cylinderMesh.get(item.belongTo) as Group\n currentGroup.visible = false\n\n this.currentoperate = item.belongTo\n this.cameraAddListener()\n })\n }\n\n // @ts-ignore\n (this.gobal.regionPlane.planeMesh as Map<string, Object3D>).get(item.id).addEventListener('click', () => {\n handleClick()\n })\n\n group.addEventListener('click', () => {\n handleClick()\n })\n\n this.cylinderMesh.set(item.belongTo, group)\n group.add(cylinder)\n\n const font = createFontMesh(item.label, {\n position: new Vector3().fromArray([item.points[0], item.points[1] + item.height + 10, item.points[2]]),\n })\n\n const font2 = createFontMesh(item.areaLabel, {\n position: new Vector3().fromArray([item.points[0], item.points[1] + item.height + 25, item.points[2]]),\n })\n\n const fontPromiseAll = Promise.all([font, font2])\n\n fontPromiseAll.then((meshArr) => {\n meshArr.forEach(\n (mesh) => {\n mesh.geometry.center()\n group.add(mesh)\n\n use.useframe(() => {\n lookAtOnYAxis(mesh, globalObjectManage.camera.position)\n })\n this.scene.add(group)\n },\n )\n })\n })\n this.controlAddListener()\n }\n\n getMesh(data) {\n const width = 10\n\n const geometry = new BoxGeometry(width, data.height, width)\n\n const gradientMaterial = new ShaderMaterial({\n transparent: true,\n depthTest: false,\n uniforms: {\n intensity: { value: 1.0 },\n },\n vertexShader: `\n varying vec2 vUv;\n varying vec3 vNormal;\n void main()\n {\n vUv = uv;\n vNormal =normalize( normal ) ;\n vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n gl_Position = projectionMatrix * mvPosition;\n }\n \n `,\n fragmentShader: `\n \n varying vec3 vNormal;\n varying vec2 vUv;\n uniform float intensity;\n\n void main( void ) {\n \n float colX =clamp( vUv.y+0.3,0.,1.);\n\n if(vNormal.y >0.5)\n {\n colX=1.;\n }\n if(vNormal.y <-0.5)\n {\n colX=0.;\n }\n\n vec4 col = vec4 (1.,mix(0.2,0.8,colX),0.,1.);\n\n gl_FragColor=col*colX*intensity;\n }\n `,\n\n })\n\n // 创建渐变立方体\n const cylinder = new Mesh(geometry, gradientMaterial)\n cylinder.rotateY(Math.PI / 2)\n return cylinder\n }\n\n private cameraListenerHandle = () => {\n const currentCameraPosition = this.gobal.control.object.position\n const box = this.gobal.areaBoundingBox.boundingBoxMap.get(this.currentoperate)\n const iscollision = collisionDetection(box, currentCameraPosition)\n if (!iscollision) {\n // @ts-ignore\n this.gobal.regionPlane.planeMesh.forEach((mesh) => {\n mesh.visible = true\n })\n emitter.emit('peoplemanagement-camera-out', {\n belongTo: this.currentoperate,\n })\n\n this.cameraRemoveListener()\n }\n }\n\n private cameraAddListener() {\n this.gobal.control.addEventListener('change', this.cameraListenerHandle)\n }\n\n private controlAddListener() {\n const maxDistance = this.gobal.option.controls.maxDistance\n maxDistance && this.gobal.control.addEventListener('change', () => {\n if (this.gobal.control.getDistance() >= maxDistance - 5)\n emitter.emit('peoplemanagement-control-maxDistance', null)\n })\n }\n\n private cameraRemoveListener() {\n this.gobal.control.removeEventListener('change', this.cameraListenerHandle)\n }\n}\n\nexport default CylinderManage"],"mappings":"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"}
@@ -42,7 +42,7 @@ var DistrictLineManage = /*#__PURE__*/function () {
42
42
  });
43
43
  geometry = new TubeGeometry(groundLine.curve, 10000, 1, 2, false);
44
44
  material = new MeshBasicMaterial({
45
- color: '#f9ba41'
45
+ color: '#f2ca0c'
46
46
  });
47
47
  mesh = new Mesh(geometry, material);
48
48
  _this.scene.add(mesh);
@@ -1 +1 @@
1
- {"version":3,"names":["Mesh","MeshBasicMaterial","TubeGeometry","Vector3","RoundLineGeometry","regionMap","DistrictLineManage","gobal","Map","scene","isShow","Object","keys","forEach","key","region","groundLinePoints","area","map","v","groundLine","radius","close","geometry","curve","material","color","mesh","add","lineMesh","set","id","removeFromParent","remove","clear"],"sources":["../../../src/factory/unit/districtLine.ts"],"sourcesContent":["import { Mesh, MeshBasicMaterial, TubeGeometry, Vector3 } from '@anov/3d-core'\nimport type { Object3D, Scene } from '@anov/3d-core'\nimport { RoundLineGeometry } from '@anov/3d-ability'\nimport type Factory3D from '../3d'\nimport { regionMap } from '../regionData'\n\nclass DistrictLineManage {\n private gobal: Factory3D\n private scene: Scene\n readonly lineMesh: Map<string, Object3D> = new Map()\n\n isShow = false\n\n constructor(gobal: Factory3D) {\n this.gobal = gobal\n this.scene = gobal.scene.scene\n }\n\n generateLine() {\n this.isShow = true\n\n Object.keys(regionMap).forEach(async (key: string) => {\n const region = regionMap[key]\n const groundLinePoints = region.area.map(v => new Vector3(v[0], v[1] + 0.1, v[2]))\n\n const groundLine = new RoundLineGeometry(groundLinePoints, {\n radius: 5,\n close: true,\n })\n\n const geometry = new TubeGeometry(groundLine.curve, 10000, 1, 2, false)\n const material = new MeshBasicMaterial({ color: '#f9ba41' })\n const mesh = new Mesh(geometry, material)\n this.scene.add(mesh)\n this.lineMesh.set(region.id, mesh)\n })\n }\n\n remove() {\n this.isShow = false\n this.lineMesh.forEach((mesh) => {\n mesh.removeFromParent()\n mesh.remove()\n })\n this.lineMesh.clear()\n }\n}\n\nexport default DistrictLineManage"],"mappings":";+CACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AADA,SAASA,IAAI,EAAEC,iBAAiB,EAAEC,YAAY,EAAEC,OAAO,QAAQ,eAAe;AAE9E,SAASC,iBAAiB,QAAQ,kBAAkB;AAEpD,SAASC,SAAS;AAAuB,IAEnCC,kBAAkB;EAOtB,4BAAYC,KAAgB,EAAE;IAAA;IAAA;IAAA;IAAA,kCAJa,IAAIC,GAAG,EAAE;IAAA,gCAE3C,KAAK;IAGZ,IAAI,CAACD,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACE,KAAK,GAAGF,KAAK,CAACE,KAAK,CAACA,KAAK;EAChC;EAAC;IAAA;IAAA,OAED,wBAAe;MAAA;MACb,IAAI,CAACC,MAAM,GAAG,IAAI;MAElBC,MAAM,CAACC,IAAI,CAACP,SAAS,CAAC,CAACQ,OAAO;QAAA,sEAAC,iBAAOC,GAAW;UAAA;UAAA;YAAA;cAAA;gBACzCC,MAAM,GAAGV,SAAS,CAACS,GAAG,CAAC;gBACvBE,gBAAgB,GAAGD,MAAM,CAACE,IAAI,CAACC,GAAG,CAAC,UAAAC,CAAC;kBAAA,OAAI,IAAIhB,OAAO,CAACgB,CAAC,CAAC,CAAC,CAAC,EAAEA,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAEA,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAA,EAAC;gBAE5EC,UAAU,GAAG,IAAIhB,iBAAiB,CAACY,gBAAgB,EAAE;kBACzDK,MAAM,EAAE,CAAC;kBACTC,KAAK,EAAE;gBACT,CAAC,CAAC;gBAEIC,QAAQ,GAAG,IAAIrB,YAAY,CAACkB,UAAU,CAACI,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;gBACjEC,QAAQ,GAAG,IAAIxB,iBAAiB,CAAC;kBAAEyB,KAAK,EAAE;gBAAU,CAAC,CAAC;gBACtDC,IAAI,GAAG,IAAI3B,IAAI,CAACuB,QAAQ,EAAEE,QAAQ,CAAC;gBACzC,KAAI,CAAChB,KAAK,CAACmB,GAAG,CAACD,IAAI,CAAC;gBACpB,KAAI,CAACE,QAAQ,CAACC,GAAG,CAACf,MAAM,CAACgB,EAAE,EAAEJ,IAAI,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA,CACnC;QAAA;UAAA;QAAA;MAAA,IAAC;IACJ;EAAC;IAAA;IAAA,OAED,kBAAS;MACP,IAAI,CAACjB,MAAM,GAAG,KAAK;MACnB,IAAI,CAACmB,QAAQ,CAAChB,OAAO,CAAC,UAACc,IAAI,EAAK;QAC9BA,IAAI,CAACK,gBAAgB,EAAE;QACvBL,IAAI,CAACM,MAAM,EAAE;MACf,CAAC,CAAC;MACF,IAAI,CAACJ,QAAQ,CAACK,KAAK,EAAE;IACvB;EAAC;EAAA;AAAA;AAGH,eAAe5B,kBAAkB"}
1
+ {"version":3,"names":["Mesh","MeshBasicMaterial","TubeGeometry","Vector3","RoundLineGeometry","regionMap","DistrictLineManage","gobal","Map","scene","isShow","Object","keys","forEach","key","region","groundLinePoints","area","map","v","groundLine","radius","close","geometry","curve","material","color","mesh","add","lineMesh","set","id","removeFromParent","remove","clear"],"sources":["../../../src/factory/unit/districtLine.ts"],"sourcesContent":["import { Mesh, MeshBasicMaterial, TubeGeometry, Vector3 } from '@anov/3d-core'\nimport type { Object3D, Scene } from '@anov/3d-core'\nimport { RoundLineGeometry } from '@anov/3d-ability'\nimport type Factory3D from '../3d'\nimport { regionMap } from '../regionData'\n\nclass DistrictLineManage {\n private gobal: Factory3D\n private scene: Scene\n readonly lineMesh: Map<string, Object3D> = new Map()\n\n isShow = false\n\n constructor(gobal: Factory3D) {\n this.gobal = gobal\n this.scene = gobal.scene.scene\n }\n\n generateLine() {\n this.isShow = true\n\n Object.keys(regionMap).forEach(async (key: string) => {\n const region = regionMap[key]\n const groundLinePoints = region.area.map(v => new Vector3(v[0], v[1] + 0.1, v[2]))\n\n const groundLine = new RoundLineGeometry(groundLinePoints, {\n radius: 5,\n close: true,\n })\n\n const geometry = new TubeGeometry(groundLine.curve, 10000, 1, 2, false)\n const material = new MeshBasicMaterial({ color: '#f2ca0c' })\n const mesh = new Mesh(geometry, material)\n this.scene.add(mesh)\n this.lineMesh.set(region.id, mesh)\n })\n }\n\n remove() {\n this.isShow = false\n this.lineMesh.forEach((mesh) => {\n mesh.removeFromParent()\n mesh.remove()\n })\n this.lineMesh.clear()\n }\n}\n\nexport default DistrictLineManage"],"mappings":";+CACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AADA,SAASA,IAAI,EAAEC,iBAAiB,EAAEC,YAAY,EAAEC,OAAO,QAAQ,eAAe;AAE9E,SAASC,iBAAiB,QAAQ,kBAAkB;AAEpD,SAASC,SAAS;AAAuB,IAEnCC,kBAAkB;EAOtB,4BAAYC,KAAgB,EAAE;IAAA;IAAA;IAAA;IAAA,kCAJa,IAAIC,GAAG,EAAE;IAAA,gCAE3C,KAAK;IAGZ,IAAI,CAACD,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACE,KAAK,GAAGF,KAAK,CAACE,KAAK,CAACA,KAAK;EAChC;EAAC;IAAA;IAAA,OAED,wBAAe;MAAA;MACb,IAAI,CAACC,MAAM,GAAG,IAAI;MAElBC,MAAM,CAACC,IAAI,CAACP,SAAS,CAAC,CAACQ,OAAO;QAAA,sEAAC,iBAAOC,GAAW;UAAA;UAAA;YAAA;cAAA;gBACzCC,MAAM,GAAGV,SAAS,CAACS,GAAG,CAAC;gBACvBE,gBAAgB,GAAGD,MAAM,CAACE,IAAI,CAACC,GAAG,CAAC,UAAAC,CAAC;kBAAA,OAAI,IAAIhB,OAAO,CAACgB,CAAC,CAAC,CAAC,CAAC,EAAEA,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAEA,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAA,EAAC;gBAE5EC,UAAU,GAAG,IAAIhB,iBAAiB,CAACY,gBAAgB,EAAE;kBACzDK,MAAM,EAAE,CAAC;kBACTC,KAAK,EAAE;gBACT,CAAC,CAAC;gBAEIC,QAAQ,GAAG,IAAIrB,YAAY,CAACkB,UAAU,CAACI,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;gBACjEC,QAAQ,GAAG,IAAIxB,iBAAiB,CAAC;kBAAEyB,KAAK,EAAE;gBAAU,CAAC,CAAC;gBACtDC,IAAI,GAAG,IAAI3B,IAAI,CAACuB,QAAQ,EAAEE,QAAQ,CAAC;gBACzC,KAAI,CAAChB,KAAK,CAACmB,GAAG,CAACD,IAAI,CAAC;gBACpB,KAAI,CAACE,QAAQ,CAACC,GAAG,CAACf,MAAM,CAACgB,EAAE,EAAEJ,IAAI,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA,CACnC;QAAA;UAAA;QAAA;MAAA,IAAC;IACJ;EAAC;IAAA;IAAA,OAED,kBAAS;MACP,IAAI,CAACjB,MAAM,GAAG,KAAK;MACnB,IAAI,CAACmB,QAAQ,CAAChB,OAAO,CAAC,UAACc,IAAI,EAAK;QAC9BA,IAAI,CAACK,gBAAgB,EAAE;QACvBL,IAAI,CAACM,MAAM,EAAE;MACf,CAAC,CAAC;MACF,IAAI,CAACJ,QAAQ,CAACK,KAAK,EAAE;IACvB;EAAC;EAAA;AAAA;AAGH,eAAe5B,kBAAkB"}
@@ -86,7 +86,6 @@ var toggleSmartInspection = function toggleSmartInspection() {
86
86
  closePeopleManagemen.apply(this);
87
87
  closeCameraPoiInspection.apply(this);
88
88
  this.regionPlane.planeMesh.forEach(function (mesh) {
89
- console.log(mesh);
90
89
  mesh.visible = false;
91
90
  });
92
91
  };
@@ -120,21 +119,18 @@ export var toggleTag = (_toggleTag = {}, _defineProperty(_toggleTag, SceneTag.ov
120
119
  }), _toggleTag);
121
120
  var handleUnit = function handleUnit() {
122
121
  var _this = this;
123
- // 围栏
124
122
  var wall = new WallManage(this, {
125
123
  visible: false
126
124
  });
127
125
  wall.generateWall();
128
126
  this.wall = wall;
129
-
130
- // 圆柱
127
+ var regionPlane = new RegionPlane(this);
128
+ this.regionPlane = regionPlane;
131
129
  var cylinder = new CylinderManage(this, {
132
130
  visible: false
133
131
  });
134
132
  cylinder.generateCylinder();
135
133
  this.cylinder = cylinder;
136
- var regionPlane = new RegionPlane(this);
137
- this.regionPlane = regionPlane;
138
134
 
139
135
  // POI
140
136
  var poi = new PoiManage(this);
@@ -1 +1 @@
1
- {"version":3,"names":["utils","SceneStyle","SceneTag","MessageType","sendToMessage","EMessageStatus","WallManage","CylinderManage","PoiManage","CircleManage","AreaBoundingBoxManage","Inspection","CameraPoi","DistrictLineManage","RegionPlane","emitter","showOverview","poi","generatePoi","closeOverview","wall","wallMesh","forEach","mesh","visible","remove","showPeopleManagemen","cylinder","cylinderMesh","closePeopleManagemen","circle","showSmartInspection","inspection","show","closeSmartInspection","hide","closeCameraPoiInspection","cameraPoi","showCameraPoiInspection","generateObject","toggleOverview","districtLine","isShow","generateLine","scene","camera","layers","disable","apply","regionPlane","planeMesh","togglePeopleManagemen","enable","toggleSmartInspection","console","log","toggleSecurityOperation","toggleTag","overview","tag","toggleSceneStyle","real","tech","handleUnit","generateWall","generateCylinder","on","data","Event","Success","undefined","type","generateCircle","belongTo","areaBoundingBox","generateBoundingBox","addEventListener","args","item"],"sources":["../../../src/factory/unit/index.ts"],"sourcesContent":["import { Layers, utils } from '@anov/3d-core'\nimport { SceneStyle, SceneTag } from '../utils/constant'\n\nimport { MessageType, sendToMessage } from '../../utils/messageFn'\nimport { EMessageStatus } from '../../messageStatus'\nimport WallManage from './wall'\nimport CylinderManage from './cylinder'\nimport PoiManage from './poi'\nimport CircleManage from './circle'\nimport AreaBoundingBoxManage from './areaBoundingBox'\nimport Inspection from './inspection'\nimport CameraPoi from './CameraPoi'\nimport DistrictLineManage from './districtLine'\nimport RegionPlane from './region'\n\nconst { emitter } = utils\n\n// 临时优化\n\nconst showOverview = function () {\n this.poi.generatePoi()\n}\n\nconst closeOverview = function () {\n this.wall.wallMesh.forEach((mesh) => {\n mesh.visible = false\n })\n\n this.poi.remove()\n}\n\nconst showPeopleManagemen = function () {\n this.cylinder.cylinderMesh.forEach((mesh) => {\n mesh.visible = true\n })\n}\n\nconst closePeopleManagemen = function () {\n this.cylinder.cylinderMesh.forEach((mesh) => {\n mesh.visible = false\n })\n\n this.circle.remove()\n}\n\nconst showSmartInspection = function () {\n this.inspection.show()\n}\n\nconst closeSmartInspection = function () {\n this.inspection.hide()\n}\n\nconst closeCameraPoiInspection = function () {\n this.cameraPoi?.remove()\n}\nconst showCameraPoiInspection = function () {\n this.cameraPoi?.generateObject()\n}\n\nconst toggleOverview = function () {\n if (!this.districtLine.isShow)\n this.districtLine.generateLine()\n\n this.scene.camera.layers.disable(28)\n showOverview.apply(this)\n closePeopleManagemen.apply(this)\n closeSmartInspection.apply(this)\n closeCameraPoiInspection.apply(this)\n\n this.regionPlane.planeMesh.forEach((mesh) => {\n mesh.visible = true\n })\n}\n\nconst togglePeopleManagemen = function () {\n if (!this.districtLine.isShow)\n this.districtLine.generateLine()\n\n this.scene.camera.layers.enable(28)\n showPeopleManagemen.apply(this)\n closeOverview.apply(this)\n closeSmartInspection.apply(this)\n closeCameraPoiInspection.apply(this)\n\n this.regionPlane.planeMesh.forEach((mesh) => {\n mesh.visible = true\n })\n}\n\nconst toggleSmartInspection = function () {\n this.districtLine.remove()\n this.scene.camera.layers.disable(28)\n showSmartInspection.apply(this)\n closeOverview.apply(this)\n closePeopleManagemen.apply(this)\n closeCameraPoiInspection.apply(this)\n\n this.regionPlane.planeMesh.forEach((mesh) => {\n console.log(mesh)\n mesh.visible = false\n })\n}\n\nconst toggleSecurityOperation = function () {\n this.districtLine.remove()\n this.scene.camera.layers.disable(28)\n showCameraPoiInspection.apply(this)\n closeOverview.apply(this)\n closePeopleManagemen.apply(this)\n closeSmartInspection.apply(this)\n\n this.regionPlane.planeMesh.forEach((mesh) => {\n mesh.visible = false\n })\n}\n\nexport const toggleTag = {\n [SceneTag.overview]() {\n this.tag = SceneTag.overview\n this.toggleSceneStyle(SceneStyle.real)\n\n toggleOverview.apply(this)\n },\n [SceneTag['people-management']]() {\n this.tag = SceneTag['people-management']\n this.toggleSceneStyle(SceneStyle.tech)\n\n togglePeopleManagemen.apply(this)\n },\n [SceneTag['smart-inspection']]() {\n this.tag = SceneTag['smart-inspection']\n this.toggleSceneStyle(SceneStyle.real)\n\n toggleSmartInspection.apply(this)\n },\n [SceneTag['security-operation']]() {\n this.tag = SceneTag['security-operation']\n this.toggleSceneStyle(SceneStyle.real)\n\n toggleSecurityOperation.apply(this)\n },\n}\n\nconst handleUnit = function () {\n // 围栏\n const wall = new WallManage(this, { visible: false })\n wall.generateWall()\n this.wall = wall\n\n // 圆柱\n const cylinder = new CylinderManage(this, {\n visible: false,\n })\n cylinder.generateCylinder()\n\n this.cylinder = cylinder\n\n const regionPlane = new RegionPlane(this)\n this.regionPlane = regionPlane\n\n // POI\n const poi = new PoiManage(this)\n poi.generatePoi()\n this.poi = poi\n\n // people\n const circle = new CircleManage(this)\n this.circle = circle\n\n const districtLine = new DistrictLineManage(this)\n this.districtLine = districtLine\n\n this.districtLine.generateLine()\n\n emitter.on('peoplemanagement-camera-enter', (data: any) => {\n sendToMessage(MessageType.Event, 'onClick', EMessageStatus.Success, undefined, {\n type: 'Bar',\n ...data,\n })\n this.circle.generateCircle(data?.belongTo)\n })\n\n emitter.on('peoplemanagement-person-click', (data: any) => {\n sendToMessage(MessageType.Event, 'onClick', EMessageStatus.Success, undefined, {\n type: 'POI',\n ...data,\n })\n })\n\n // boundingBox\n const areaBoundingBox = new AreaBoundingBoxManage()\n areaBoundingBox.generateBoundingBox()\n this.areaBoundingBox = areaBoundingBox\n\n const inspection = new Inspection(this)\n this.inspection = inspection\n\n const cameraPoi = new CameraPoi(this)\n this.cameraPoi = cameraPoi\n\n // some global events handle\n this.addEventListener('peoplemanagement-camera-out', (args) => {\n if (this.tag !== SceneTag['people-management'])\n return\n cylinder.cylinderMesh.forEach((item) => {\n item.visible = true\n })\n this.circle.remove()\n })\n\n emitter.on('peoplemanagement-control-maxDistance', () => {\n sendToMessage(MessageType.Event, 'onCancel', EMessageStatus.Success, undefined, { })\n })\n}\n\nexport default handleUnit\n"],"mappings":";;;;;;;AAAA,SAAiBA,KAAK,QAAQ,eAAe;AAC7C,SAASC,UAAU,EAAEC,QAAQ;AAE7B,SAASC,WAAW,EAAEC,aAAa;AACnC,SAASC,cAAc;AACvB,OAAOC,UAAU;AACjB,OAAOC,cAAc;AACrB,OAAOC,SAAS;AAChB,OAAOC,YAAY;AACnB,OAAOC,qBAAqB;AAC5B,OAAOC,UAAU;AACjB,OAAOC,SAAS;AAChB,OAAOC,kBAAkB;AACzB,OAAOC,WAAW;AAElB,IAAQC,OAAO,GAAKf,KAAK,CAAjBe,OAAO;;AAEf;;AAEA,IAAMC,YAAY,GAAG,SAAfA,YAAY,GAAe;EAC/B,IAAI,CAACC,GAAG,CAACC,WAAW,EAAE;AACxB,CAAC;AAED,IAAMC,aAAa,GAAG,SAAhBA,aAAa,GAAe;EAChC,IAAI,CAACC,IAAI,CAACC,QAAQ,CAACC,OAAO,CAAC,UAACC,IAAI,EAAK;IACnCA,IAAI,CAACC,OAAO,GAAG,KAAK;EACtB,CAAC,CAAC;EAEF,IAAI,CAACP,GAAG,CAACQ,MAAM,EAAE;AACnB,CAAC;AAED,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmB,GAAe;EACtC,IAAI,CAACC,QAAQ,CAACC,YAAY,CAACN,OAAO,CAAC,UAACC,IAAI,EAAK;IAC3CA,IAAI,CAACC,OAAO,GAAG,IAAI;EACrB,CAAC,CAAC;AACJ,CAAC;AAED,IAAMK,oBAAoB,GAAG,SAAvBA,oBAAoB,GAAe;EACvC,IAAI,CAACF,QAAQ,CAACC,YAAY,CAACN,OAAO,CAAC,UAACC,IAAI,EAAK;IAC3CA,IAAI,CAACC,OAAO,GAAG,KAAK;EACtB,CAAC,CAAC;EAEF,IAAI,CAACM,MAAM,CAACL,MAAM,EAAE;AACtB,CAAC;AAED,IAAMM,mBAAmB,GAAG,SAAtBA,mBAAmB,GAAe;EACtC,IAAI,CAACC,UAAU,CAACC,IAAI,EAAE;AACxB,CAAC;AAED,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoB,GAAe;EACvC,IAAI,CAACF,UAAU,CAACG,IAAI,EAAE;AACxB,CAAC;AAED,IAAMC,wBAAwB,GAAG,SAA3BA,wBAAwB,GAAe;EAAA;EAC3C,uBAAI,CAACC,SAAS,oDAAd,gBAAgBZ,MAAM,EAAE;AAC1B,CAAC;AACD,IAAMa,uBAAuB,GAAG,SAA1BA,uBAAuB,GAAe;EAAA;EAC1C,wBAAI,CAACD,SAAS,qDAAd,iBAAgBE,cAAc,EAAE;AAClC,CAAC;AAED,IAAMC,cAAc,GAAG,SAAjBA,cAAc,GAAe;EACjC,IAAI,CAAC,IAAI,CAACC,YAAY,CAACC,MAAM,EAC3B,IAAI,CAACD,YAAY,CAACE,YAAY,EAAE;EAElC,IAAI,CAACC,KAAK,CAACC,MAAM,CAACC,MAAM,CAACC,OAAO,CAAC,EAAE,CAAC;EACpC/B,YAAY,CAACgC,KAAK,CAAC,IAAI,CAAC;EACxBnB,oBAAoB,CAACmB,KAAK,CAAC,IAAI,CAAC;EAChCd,oBAAoB,CAACc,KAAK,CAAC,IAAI,CAAC;EAChCZ,wBAAwB,CAACY,KAAK,CAAC,IAAI,CAAC;EAEpC,IAAI,CAACC,WAAW,CAACC,SAAS,CAAC5B,OAAO,CAAC,UAACC,IAAI,EAAK;IAC3CA,IAAI,CAACC,OAAO,GAAG,IAAI;EACrB,CAAC,CAAC;AACJ,CAAC;AAED,IAAM2B,qBAAqB,GAAG,SAAxBA,qBAAqB,GAAe;EACxC,IAAI,CAAC,IAAI,CAACV,YAAY,CAACC,MAAM,EAC3B,IAAI,CAACD,YAAY,CAACE,YAAY,EAAE;EAElC,IAAI,CAACC,KAAK,CAACC,MAAM,CAACC,MAAM,CAACM,MAAM,CAAC,EAAE,CAAC;EACnC1B,mBAAmB,CAACsB,KAAK,CAAC,IAAI,CAAC;EAC/B7B,aAAa,CAAC6B,KAAK,CAAC,IAAI,CAAC;EACzBd,oBAAoB,CAACc,KAAK,CAAC,IAAI,CAAC;EAChCZ,wBAAwB,CAACY,KAAK,CAAC,IAAI,CAAC;EAEpC,IAAI,CAACC,WAAW,CAACC,SAAS,CAAC5B,OAAO,CAAC,UAACC,IAAI,EAAK;IAC3CA,IAAI,CAACC,OAAO,GAAG,IAAI;EACrB,CAAC,CAAC;AACJ,CAAC;AAED,IAAM6B,qBAAqB,GAAG,SAAxBA,qBAAqB,GAAe;EACxC,IAAI,CAACZ,YAAY,CAAChB,MAAM,EAAE;EAC1B,IAAI,CAACmB,KAAK,CAACC,MAAM,CAACC,MAAM,CAACC,OAAO,CAAC,EAAE,CAAC;EACpChB,mBAAmB,CAACiB,KAAK,CAAC,IAAI,CAAC;EAC/B7B,aAAa,CAAC6B,KAAK,CAAC,IAAI,CAAC;EACzBnB,oBAAoB,CAACmB,KAAK,CAAC,IAAI,CAAC;EAChCZ,wBAAwB,CAACY,KAAK,CAAC,IAAI,CAAC;EAEpC,IAAI,CAACC,WAAW,CAACC,SAAS,CAAC5B,OAAO,CAAC,UAACC,IAAI,EAAK;IAC3C+B,OAAO,CAACC,GAAG,CAAChC,IAAI,CAAC;IACjBA,IAAI,CAACC,OAAO,GAAG,KAAK;EACtB,CAAC,CAAC;AACJ,CAAC;AAED,IAAMgC,uBAAuB,GAAG,SAA1BA,uBAAuB,GAAe;EAC1C,IAAI,CAACf,YAAY,CAAChB,MAAM,EAAE;EAC1B,IAAI,CAACmB,KAAK,CAACC,MAAM,CAACC,MAAM,CAACC,OAAO,CAAC,EAAE,CAAC;EACpCT,uBAAuB,CAACU,KAAK,CAAC,IAAI,CAAC;EACnC7B,aAAa,CAAC6B,KAAK,CAAC,IAAI,CAAC;EACzBnB,oBAAoB,CAACmB,KAAK,CAAC,IAAI,CAAC;EAChCd,oBAAoB,CAACc,KAAK,CAAC,IAAI,CAAC;EAEhC,IAAI,CAACC,WAAW,CAACC,SAAS,CAAC5B,OAAO,CAAC,UAACC,IAAI,EAAK;IAC3CA,IAAI,CAACC,OAAO,GAAG,KAAK;EACtB,CAAC,CAAC;AACJ,CAAC;AAED,OAAO,IAAMiC,SAAS,iDACnBvD,QAAQ,CAACwD,QAAQ,cAAI;EACpB,IAAI,CAACC,GAAG,GAAGzD,QAAQ,CAACwD,QAAQ;EAC5B,IAAI,CAACE,gBAAgB,CAAC3D,UAAU,CAAC4D,IAAI,CAAC;EAEtCrB,cAAc,CAACQ,KAAK,CAAC,IAAI,CAAC;AAC5B,CAAC,+BACA9C,QAAQ,CAAC,mBAAmB,CAAC,cAAI;EAChC,IAAI,CAACyD,GAAG,GAAGzD,QAAQ,CAAC,mBAAmB,CAAC;EACxC,IAAI,CAAC0D,gBAAgB,CAAC3D,UAAU,CAAC6D,IAAI,CAAC;EAEtCX,qBAAqB,CAACH,KAAK,CAAC,IAAI,CAAC;AACnC,CAAC,+BACA9C,QAAQ,CAAC,kBAAkB,CAAC,cAAI;EAC/B,IAAI,CAACyD,GAAG,GAAGzD,QAAQ,CAAC,kBAAkB,CAAC;EACvC,IAAI,CAAC0D,gBAAgB,CAAC3D,UAAU,CAAC4D,IAAI,CAAC;EAEtCR,qBAAqB,CAACL,KAAK,CAAC,IAAI,CAAC;AACnC,CAAC,+BACA9C,QAAQ,CAAC,oBAAoB,CAAC,cAAI;EACjC,IAAI,CAACyD,GAAG,GAAGzD,QAAQ,CAAC,oBAAoB,CAAC;EACzC,IAAI,CAAC0D,gBAAgB,CAAC3D,UAAU,CAAC4D,IAAI,CAAC;EAEtCL,uBAAuB,CAACR,KAAK,CAAC,IAAI,CAAC;AACrC,CAAC,cACF;AAED,IAAMe,UAAU,GAAG,SAAbA,UAAU,GAAe;EAAA;EAC7B;EACA,IAAM3C,IAAI,GAAG,IAAId,UAAU,CAAC,IAAI,EAAE;IAAEkB,OAAO,EAAE;EAAM,CAAC,CAAC;EACrDJ,IAAI,CAAC4C,YAAY,EAAE;EACnB,IAAI,CAAC5C,IAAI,GAAGA,IAAI;;EAEhB;EACA,IAAMO,QAAQ,GAAG,IAAIpB,cAAc,CAAC,IAAI,EAAE;IACxCiB,OAAO,EAAE;EACX,CAAC,CAAC;EACFG,QAAQ,CAACsC,gBAAgB,EAAE;EAE3B,IAAI,CAACtC,QAAQ,GAAGA,QAAQ;EAExB,IAAMsB,WAAW,GAAG,IAAInC,WAAW,CAAC,IAAI,CAAC;EACzC,IAAI,CAACmC,WAAW,GAAGA,WAAW;;EAE9B;EACA,IAAMhC,GAAG,GAAG,IAAIT,SAAS,CAAC,IAAI,CAAC;EAC/BS,GAAG,CAACC,WAAW,EAAE;EACjB,IAAI,CAACD,GAAG,GAAGA,GAAG;;EAEd;EACA,IAAMa,MAAM,GAAG,IAAIrB,YAAY,CAAC,IAAI,CAAC;EACrC,IAAI,CAACqB,MAAM,GAAGA,MAAM;EAEpB,IAAMW,YAAY,GAAG,IAAI5B,kBAAkB,CAAC,IAAI,CAAC;EACjD,IAAI,CAAC4B,YAAY,GAAGA,YAAY;EAEhC,IAAI,CAACA,YAAY,CAACE,YAAY,EAAE;EAEhC5B,OAAO,CAACmD,EAAE,CAAC,+BAA+B,EAAE,UAACC,IAAS,EAAK;IACzD/D,aAAa,CAACD,WAAW,CAACiE,KAAK,EAAE,SAAS,EAAE/D,cAAc,CAACgE,OAAO,EAAEC,SAAS;MAC3EC,IAAI,EAAE;IAAK,GACRJ,IAAI,EACP;IACF,KAAI,CAACrC,MAAM,CAAC0C,cAAc,CAACL,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEM,QAAQ,CAAC;EAC5C,CAAC,CAAC;EAEF1D,OAAO,CAACmD,EAAE,CAAC,+BAA+B,EAAE,UAACC,IAAS,EAAK;IACzD/D,aAAa,CAACD,WAAW,CAACiE,KAAK,EAAE,SAAS,EAAE/D,cAAc,CAACgE,OAAO,EAAEC,SAAS;MAC3EC,IAAI,EAAE;IAAK,GACRJ,IAAI,EACP;EACJ,CAAC,CAAC;;EAEF;EACA,IAAMO,eAAe,GAAG,IAAIhE,qBAAqB,EAAE;EACnDgE,eAAe,CAACC,mBAAmB,EAAE;EACrC,IAAI,CAACD,eAAe,GAAGA,eAAe;EAEtC,IAAM1C,UAAU,GAAG,IAAIrB,UAAU,CAAC,IAAI,CAAC;EACvC,IAAI,CAACqB,UAAU,GAAGA,UAAU;EAE5B,IAAMK,SAAS,GAAG,IAAIzB,SAAS,CAAC,IAAI,CAAC;EACrC,IAAI,CAACyB,SAAS,GAAGA,SAAS;;EAE1B;EACA,IAAI,CAACuC,gBAAgB,CAAC,6BAA6B,EAAE,UAACC,IAAI,EAAK;IAC7D,IAAI,KAAI,CAAClB,GAAG,KAAKzD,QAAQ,CAAC,mBAAmB,CAAC,EAC5C;IACFyB,QAAQ,CAACC,YAAY,CAACN,OAAO,CAAC,UAACwD,IAAI,EAAK;MACtCA,IAAI,CAACtD,OAAO,GAAG,IAAI;IACrB,CAAC,CAAC;IACF,KAAI,CAACM,MAAM,CAACL,MAAM,EAAE;EACtB,CAAC,CAAC;EAEFV,OAAO,CAACmD,EAAE,CAAC,sCAAsC,EAAE,YAAM;IACvD9D,aAAa,CAACD,WAAW,CAACiE,KAAK,EAAE,UAAU,EAAE/D,cAAc,CAACgE,OAAO,EAAEC,SAAS,EAAE,CAAE,CAAC,CAAC;EACtF,CAAC,CAAC;AACJ,CAAC;AAED,eAAeP,UAAU"}
1
+ {"version":3,"names":["utils","SceneStyle","SceneTag","MessageType","sendToMessage","EMessageStatus","WallManage","CylinderManage","PoiManage","CircleManage","AreaBoundingBoxManage","Inspection","CameraPoi","DistrictLineManage","RegionPlane","emitter","showOverview","poi","generatePoi","closeOverview","wall","wallMesh","forEach","mesh","visible","remove","showPeopleManagemen","cylinder","cylinderMesh","closePeopleManagemen","circle","showSmartInspection","inspection","show","closeSmartInspection","hide","closeCameraPoiInspection","cameraPoi","showCameraPoiInspection","generateObject","toggleOverview","districtLine","isShow","generateLine","scene","camera","layers","disable","apply","regionPlane","planeMesh","togglePeopleManagemen","enable","toggleSmartInspection","toggleSecurityOperation","toggleTag","overview","tag","toggleSceneStyle","real","tech","handleUnit","generateWall","generateCylinder","on","data","Event","Success","undefined","type","generateCircle","belongTo","areaBoundingBox","generateBoundingBox","addEventListener","args","item"],"sources":["../../../src/factory/unit/index.ts"],"sourcesContent":["import { Layers, utils } from '@anov/3d-core'\nimport { SceneStyle, SceneTag } from '../utils/constant'\n\nimport { MessageType, sendToMessage } from '../../utils/messageFn'\nimport { EMessageStatus } from '../../messageStatus'\nimport WallManage from './wall'\nimport CylinderManage from './cylinder'\nimport PoiManage from './poi'\nimport CircleManage from './circle'\nimport AreaBoundingBoxManage from './areaBoundingBox'\nimport Inspection from './inspection'\nimport CameraPoi from './CameraPoi'\nimport DistrictLineManage from './districtLine'\nimport RegionPlane from './region'\n\nconst { emitter } = utils\n\n// 临时优化\n\nconst showOverview = function () {\n this.poi.generatePoi()\n}\n\nconst closeOverview = function () {\n this.wall.wallMesh.forEach((mesh) => {\n mesh.visible = false\n })\n\n this.poi.remove()\n}\n\nconst showPeopleManagemen = function () {\n this.cylinder.cylinderMesh.forEach((mesh) => {\n mesh.visible = true\n })\n}\n\nconst closePeopleManagemen = function () {\n this.cylinder.cylinderMesh.forEach((mesh) => {\n mesh.visible = false\n })\n\n this.circle.remove()\n}\n\nconst showSmartInspection = function () {\n this.inspection.show()\n}\n\nconst closeSmartInspection = function () {\n this.inspection.hide()\n}\n\nconst closeCameraPoiInspection = function () {\n this.cameraPoi?.remove()\n}\nconst showCameraPoiInspection = function () {\n this.cameraPoi?.generateObject()\n}\n\nconst toggleOverview = function () {\n if (!this.districtLine.isShow)\n this.districtLine.generateLine()\n\n this.scene.camera.layers.disable(28)\n showOverview.apply(this)\n closePeopleManagemen.apply(this)\n closeSmartInspection.apply(this)\n closeCameraPoiInspection.apply(this)\n\n this.regionPlane.planeMesh.forEach((mesh) => {\n mesh.visible = true\n })\n}\n\nconst togglePeopleManagemen = function () {\n if (!this.districtLine.isShow)\n this.districtLine.generateLine()\n\n this.scene.camera.layers.enable(28)\n showPeopleManagemen.apply(this)\n closeOverview.apply(this)\n closeSmartInspection.apply(this)\n closeCameraPoiInspection.apply(this)\n\n this.regionPlane.planeMesh.forEach((mesh) => {\n mesh.visible = true\n })\n}\n\nconst toggleSmartInspection = function () {\n this.districtLine.remove()\n this.scene.camera.layers.disable(28)\n showSmartInspection.apply(this)\n closeOverview.apply(this)\n closePeopleManagemen.apply(this)\n closeCameraPoiInspection.apply(this)\n\n this.regionPlane.planeMesh.forEach((mesh) => {\n mesh.visible = false\n })\n}\n\nconst toggleSecurityOperation = function () {\n this.districtLine.remove()\n this.scene.camera.layers.disable(28)\n showCameraPoiInspection.apply(this)\n closeOverview.apply(this)\n closePeopleManagemen.apply(this)\n closeSmartInspection.apply(this)\n\n this.regionPlane.planeMesh.forEach((mesh) => {\n mesh.visible = false\n })\n}\n\nexport const toggleTag = {\n [SceneTag.overview]() {\n this.tag = SceneTag.overview\n this.toggleSceneStyle(SceneStyle.real)\n\n toggleOverview.apply(this)\n },\n [SceneTag['people-management']]() {\n this.tag = SceneTag['people-management']\n this.toggleSceneStyle(SceneStyle.tech)\n\n togglePeopleManagemen.apply(this)\n },\n [SceneTag['smart-inspection']]() {\n this.tag = SceneTag['smart-inspection']\n this.toggleSceneStyle(SceneStyle.real)\n\n toggleSmartInspection.apply(this)\n },\n [SceneTag['security-operation']]() {\n this.tag = SceneTag['security-operation']\n this.toggleSceneStyle(SceneStyle.real)\n\n toggleSecurityOperation.apply(this)\n },\n}\n\nconst handleUnit = function () {\n const wall = new WallManage(this, { visible: false })\n wall.generateWall()\n this.wall = wall\n\n const regionPlane = new RegionPlane(this)\n this.regionPlane = regionPlane\n\n const cylinder = new CylinderManage(this, {\n visible: false,\n })\n cylinder.generateCylinder()\n\n this.cylinder = cylinder\n\n // POI\n const poi = new PoiManage(this)\n poi.generatePoi()\n this.poi = poi\n\n // people\n const circle = new CircleManage(this)\n this.circle = circle\n\n const districtLine = new DistrictLineManage(this)\n this.districtLine = districtLine\n\n this.districtLine.generateLine()\n\n emitter.on('peoplemanagement-camera-enter', (data: any) => {\n sendToMessage(MessageType.Event, 'onClick', EMessageStatus.Success, undefined, {\n type: 'Bar',\n ...data,\n })\n this.circle.generateCircle(data?.belongTo)\n })\n\n emitter.on('peoplemanagement-person-click', (data: any) => {\n sendToMessage(MessageType.Event, 'onClick', EMessageStatus.Success, undefined, {\n type: 'POI',\n ...data,\n })\n })\n\n // boundingBox\n const areaBoundingBox = new AreaBoundingBoxManage()\n areaBoundingBox.generateBoundingBox()\n this.areaBoundingBox = areaBoundingBox\n\n const inspection = new Inspection(this)\n this.inspection = inspection\n\n const cameraPoi = new CameraPoi(this)\n this.cameraPoi = cameraPoi\n\n // some global events handle\n this.addEventListener('peoplemanagement-camera-out', (args) => {\n if (this.tag !== SceneTag['people-management'])\n return\n cylinder.cylinderMesh.forEach((item) => {\n item.visible = true\n })\n this.circle.remove()\n })\n\n emitter.on('peoplemanagement-control-maxDistance', () => {\n sendToMessage(MessageType.Event, 'onCancel', EMessageStatus.Success, undefined, { })\n })\n}\n\nexport default handleUnit\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { LineCurve3, Vector3 } from '@anov/3d-core';
2
- import { Css2DPoi } from '@anov/3d-ability';
2
+ import type { Css2DPoi } from '@anov/3d-ability';
3
3
  declare class InspectionObject {
4
4
  model: any;
5
5
  private inspection;
@@ -9,7 +9,7 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
9
9
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
10
10
  function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
11
11
  import { Clock, Color, EdgesGeometry, Group, LineBasicMaterial, LineCurve3, LineSegments, Matrix4, MeshBasicMaterial, ModelLoader, Quaternion, Vector3, use, utils } from '@anov/3d-core';
12
- import { Css2DPoi, SpritePoi } from '@anov/3d-ability';
12
+ import { SpritePoi } from '@anov/3d-ability';
13
13
  import { Tween } from '@tweenjs/tween.js';
14
14
  import { createFinirMaterial } from "../../utils/finirMaterial";
15
15
  import { usePath } from "../../3d";
@@ -49,7 +49,7 @@ var InspectionObject = /*#__PURE__*/function () {
49
49
  value: function () {
50
50
  var _loadModel = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
51
51
  var _this = this;
52
- var glb, div, img, span, poi, img2, css2d, fly1, fly2, fly3, fly4, group;
52
+ var glb, div, img, span, poi, img2, poi2, fly1, fly2, fly3, fly4, group;
53
53
  return _regeneratorRuntime().wrap(function _callee$(_context) {
54
54
  while (1) switch (_context.prev = _context.next) {
55
55
  case 0:
@@ -81,16 +81,19 @@ var InspectionObject = /*#__PURE__*/function () {
81
81
  });
82
82
  img2 = document.createElement('img');
83
83
  img2.src = "".concat(usePath, "aerialVehicle01.png");
84
- css2d = new Css2DPoi(img2);
85
- css2d.position.set(0, 0, 0);
86
- css2d.visible = false;
84
+ poi2 = new SpritePoi(img2, {
85
+ width: 200 * 2,
86
+ height: 80 * 2
87
+ });
87
88
  poi.scale.set(100, 40, 1);
89
+ poi2.scale.set(200, 80, 1);
88
90
  fly1 = glb.scene.getObjectByName('fly1');
89
91
  fly2 = glb.scene.getObjectByName('fly1_1');
90
92
  fly3 = glb.scene.getObjectByName('fly1_2');
91
93
  fly4 = glb.scene.getObjectByName('fly1_3');
92
94
  use.useframe(function () {
93
95
  poi.position.copy(glb.scene.position.clone().add(new Vector3(0, 10, 0)));
96
+ poi2.position.copy(glb.scene.position.clone().add(new Vector3(0, 10, 0)));
94
97
  fly1.rotation.z += 1.3;
95
98
  fly2.rotation.z += 1.3;
96
99
  fly3.rotation.z += 1.3;
@@ -112,11 +115,8 @@ var InspectionObject = /*#__PURE__*/function () {
112
115
  this.inspection.gobal.interactionManager.add(poi);
113
116
 
114
117
  // poi.addEventListener('click', () => {
115
- // css2d.visible = true
116
- // })
117
-
118
- // css2d.addEventListener('click', () => {
119
- // css2d.visible = false
118
+ // group.add(poi2)
119
+ // poi.visible = false
120
120
  // })
121
121
 
122
122
  glb.scene.scale.set(5, 5, 5);
@@ -124,8 +124,7 @@ var InspectionObject = /*#__PURE__*/function () {
124
124
  child.layers.enable(2);
125
125
  });
126
126
  this.inspection.gobal.scene.add(this.model);
127
- this.inspection.gobal.scene.add(css2d);
128
- case 46:
127
+ case 44:
129
128
  case "end":
130
129
  return _context.stop();
131
130
  }
@@ -1 +1 @@
1
- {"version":3,"names":["Clock","Color","EdgesGeometry","Group","LineBasicMaterial","LineCurve3","LineSegments","Matrix4","MeshBasicMaterial","ModelLoader","Quaternion","Vector3","use","utils","Css2DPoi","SpritePoi","Tween","createFinirMaterial","usePath","MessageType","sendToMessage","EMessageStatus","isCheck","targetProgresspoints","modelLoader","InspectionObject","inspection","targetQuaternion","mesh","cb","clock","quaternion","equals","animation","useframe","delta","getDelta","step","rotateTowards","loadGLTF","glb","div","document","createElement","style","position","img","src","span","innerText","top","left","transform","color","fontSize","fontWeight","appendChild","poi","width","height","img2","css2d","set","visible","scale","fly1","scene","getObjectByName","fly2","fly3","fly4","copy","clone","add","rotation","z","getSportsProgress","isLock","stop","checkAnimation","group","minCamera","y","rotateY","Math","PI","model","gobal","interactionManager","traverse","child","layers","enable","curve","loadModel","control","moveWithLine","groundCurve","groundMaterial","uniforms","u_time","value","Event","Success","undefined","percentage","getProgress","targetMesh","updateMatrixWorld","localForward","worldForward","applyQuaternion","normalize","target","direction","sub","setFromUnitVectors","dotProduct","dot","angleRadians","acos","angleDegrees","flipQuaternion","setFromAxisAngle","multiply","lastFromPositin","currentPositin","targetPosition","vTo","vFrom","Promise","resolve","emitter","on","data","progress","isAnimation","key","Object","keys","find","p","num","parseFloat","targetMeshId","lookAt","pipeline","realModl","contineMove","setTimeout","currentAnchor","anchorObject","get","name","material","rotationMatrix","startQuaternion","up","setFromRotationMatrix","forwardTween","t","to","onUpdate","obj","slerp","backwardTween","onComplete","finirMesh","Number","finirMaterialV2","type","lineSegments","geometry","subscription","then","start","off","currentPosition","targetProgress","startRotate","upCurve","x","upControl","loop","lookat","addEventListener","tempCurve","generateTempPath","tempControl","lastPosition","downCurve","downControl","rotationMatrix2","targetQuaternion2","targetPosition2","getPointAt","setProgress","contine","speed","setSpeed","emit"],"sources":["../../../../src/factory/unit/inspection/InspectionObject.ts"],"sourcesContent":["import type { Camera } from '@anov/3d-core'\nimport { BoxGeometry, Clock, Color, EdgesGeometry, Group, LineBasicMaterial, LineCurve3, LineSegments, Matrix4, Mesh, MeshBasicMaterial, ModelLoader, Quaternion, ShaderChunk, ShaderMaterial, TubeGeometry, Vector3, use, utils } from '@anov/3d-core'\nimport { Css2DPoi, 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 { invertMap } from '../handle'\nimport fragmentShader from '../glsl/highway/fragmentShader'\nimport vertexShader from '../glsl/highway/vertexShader'\nimport { isCheck, targetProgresspoints } from './lineData'\n\nconst modelLoader = new ModelLoader()\n\nclass InspectionObject {\n model\n private inspection\n private control\n private tempLine\n private isLock = false\n private isAnimation = false\n walkCurveMesh\n css2d: Css2DPoi\n\n constructor(inspection) {\n this.inspection = inspection\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 = '50%'\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 const css2d = new Css2DPoi(img2)\n\n css2d.position.set(0, 0, 0)\n css2d.visible = false\n\n poi.scale.set(100, 40, 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 use.useframe(() => {\n poi.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 }\n })\n\n const group = new Group()\n group.add(glb.scene)\n group.add(poi)\n group.add(this.inspection.minCamera)\n\n this.inspection.minCamera.position.copy(glb.scene.position)\n this.inspection.minCamera.position.z -= 5\n this.inspection.minCamera.position.y += 5\n this.inspection.minCamera.rotateY(Math.PI)\n\n this.model = group\n\n this.inspection.gobal.interactionManager.add(poi)\n\n // poi.addEventListener('click', () => {\n // css2d.visible = true\n // })\n\n // css2d.addEventListener('click', () => {\n // css2d.visible = false\n // })\n\n glb.scene.scale.set(5, 5, 5)\n glb.scene.traverse((child) => {\n child.layers.enable(2)\n })\n\n this.inspection.gobal.scene.add(this.model)\n this.inspection.gobal.scene.add(css2d)\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 use.useframe(() => {\n this.inspection.groundMaterial.uniforms.u_time.value = this.getSportsProgress - 0.01\n sendToMessage(MessageType.Event, 'onInspectProgress', EMessageStatus.Success, undefined, {\n percentage: this.getSportsProgress,\n })\n })\n }\n\n get getSportsProgress() {\n if (!this.control)\n return 0\n\n return this.control.getProgress()\n }\n\n private getTargetQuaternion(targetMesh: Group) {\n targetMesh.updateMatrixWorld(true)\n const localForward = new Vector3(0, 0, -1)\n const worldForward = localForward.applyQuaternion(targetMesh.quaternion.clone()).normalize()\n\n const target = targetMesh.position.clone()\n const direction = target.sub(this.model.position).normalize()\n\n const targetQuaternion = new Quaternion().setFromUnitVectors(worldForward, direction)\n\n const dotProduct = worldForward.dot(direction)\n const angleRadians = Math.acos(dotProduct)\n const angleDegrees = angleRadians * (180 / Math.PI)\n\n // todo: some problem\n if (angleDegrees < 60) {\n const flipQuaternion = new Quaternion()\n flipQuaternion.setFromAxisAngle(new Vector3(0, 1, 0), Math.PI)\n targetQuaternion.multiply(flipQuaternion)\n }\n }\n\n private getTargetQuaternionV2(lastFromPositin: Vector3, currentPositin: Vector3, targetPosition: Vector3) {\n const vTo = targetPosition.clone().sub(currentPositin).normalize()\n const vFrom = currentPositin.clone().sub(lastFromPositin).normalize()\n\n const targetQuaternion = new Quaternion().setFromUnitVectors(vFrom, vTo)\n\n const flipQuaternion = new Quaternion()\n flipQuaternion.setFromAxisAngle(new Vector3(0, 1, 0), Math.PI)\n targetQuaternion.multiply(flipQuaternion)\n\n return targetQuaternion\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\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\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 setTimeout(() => {\n const rotationMatrix = new Matrix4()\n\n const targetQuaternion = new Quaternion()\n const startQuaternion = this.model.quaternion.clone()\n\n rotationMatrix.lookAt(targetMesh.position, 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 })\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.04 || Number(key) === 0.68)\n (this.inspection.minCamera as Camera).layers.set(2)\n\n if (Number(key) === 0.15 || Number(key) === 0.24 || Number(key) === 0.40) {\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('yellow', 5.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: 'yellow' }))\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 if (Number(key) === 0.15 || Number(key) === 0.24) {\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.04 || Number(key) === 0.68)\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 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.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 gotoTarget(targetPosition: Vector3, targetProgress: number) {\n if (this.isAnimation)\n return\n\n this.isAnimation = true\n\n this.control.stop()\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 currentPosition = this.model.position\n const upCurve = new LineCurve3(currentPosition, new Vector3(currentPosition.x, currentPosition.y + 100, currentPosition.z))\n const upControl = utils.moveWithLine(this.model, upCurve, 10, { loop: false, lookat: targetPosition })\n\n upControl.addEventListener('end', () => {\n const tempCurve = this.generateTempPath(currentPosition, new Vector3(targetPosition.x, targetPosition.y + 100, targetPosition.z))\n const tempControl = utils.moveWithLine(this.model, tempCurve, 50, { loop: false, lookat: false })\n\n tempControl.addEventListener('end', () => {\n const lastPosition = this.model.position\n const downCurve = new LineCurve3(lastPosition, new Vector3(lastPosition.x, lastPosition.y - 100, lastPosition.z))\n const downControl = utils.moveWithLine(this.model, downCurve, 10, { loop: false, lookat: false })\n\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.isAnimation = false\n this.control.setProgress(targetProgress)\n this.control.contine()\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 this.control.contine()\n\n utils.emitter.emit('continue', true)\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":["Clock","Color","EdgesGeometry","Group","LineBasicMaterial","LineCurve3","LineSegments","Matrix4","MeshBasicMaterial","ModelLoader","Quaternion","Vector3","use","utils","SpritePoi","Tween","createFinirMaterial","usePath","MessageType","sendToMessage","EMessageStatus","isCheck","targetProgresspoints","modelLoader","InspectionObject","inspection","targetQuaternion","mesh","cb","clock","quaternion","equals","animation","useframe","delta","getDelta","step","rotateTowards","loadGLTF","glb","div","document","createElement","style","position","img","src","span","innerText","top","left","transform","color","fontSize","fontWeight","appendChild","poi","width","height","img2","poi2","scale","set","fly1","scene","getObjectByName","fly2","fly3","fly4","copy","clone","add","rotation","z","getSportsProgress","isLock","stop","checkAnimation","group","minCamera","y","rotateY","Math","PI","model","gobal","interactionManager","traverse","child","layers","enable","curve","loadModel","control","moveWithLine","groundCurve","groundMaterial","uniforms","u_time","value","Event","Success","undefined","percentage","getProgress","targetMesh","updateMatrixWorld","localForward","worldForward","applyQuaternion","normalize","target","direction","sub","setFromUnitVectors","dotProduct","dot","angleRadians","acos","angleDegrees","flipQuaternion","setFromAxisAngle","multiply","lastFromPositin","currentPositin","targetPosition","vTo","vFrom","Promise","resolve","emitter","on","data","progress","isAnimation","key","Object","keys","find","p","num","parseFloat","targetMeshId","lookAt","pipeline","realModl","contineMove","setTimeout","currentAnchor","anchorObject","get","name","material","rotationMatrix","startQuaternion","up","setFromRotationMatrix","forwardTween","t","to","onUpdate","obj","slerp","backwardTween","onComplete","finirMesh","Number","finirMaterialV2","type","lineSegments","geometry","visible","subscription","then","start","off","currentPosition","targetProgress","startRotate","upCurve","x","upControl","loop","lookat","addEventListener","tempCurve","generateTempPath","tempControl","lastPosition","downCurve","downControl","rotationMatrix2","targetQuaternion2","targetPosition2","getPointAt","setProgress","contine","speed","setSpeed","emit"],"sources":["../../../../src/factory/unit/inspection/InspectionObject.ts"],"sourcesContent":["import type { Camera } from '@anov/3d-core'\nimport { BoxGeometry, Clock, Color, EdgesGeometry, Group, LineBasicMaterial, LineCurve3, LineSegments, Matrix4, Mesh, MeshBasicMaterial, ModelLoader, Quaternion, ShaderChunk, ShaderMaterial, TubeGeometry, Vector3, 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 { invertMap } from '../handle'\nimport fragmentShader from '../glsl/highway/fragmentShader'\nimport vertexShader from '../glsl/highway/vertexShader'\nimport { isCheck, targetProgresspoints } from './lineData'\n\nconst modelLoader = new ModelLoader()\n\nclass InspectionObject {\n model\n private inspection\n private control\n private tempLine\n private isLock = false\n private isAnimation = false\n walkCurveMesh\n css2d: Css2DPoi\n\n constructor(inspection) {\n this.inspection = inspection\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 = '50%'\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: 200 * 2,\n height: 80 * 2,\n })\n\n poi.scale.set(100, 40, 1)\n poi2.scale.set(200, 80, 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 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 }\n })\n\n const group = new Group()\n group.add(glb.scene)\n group.add(poi)\n group.add(this.inspection.minCamera)\n\n this.inspection.minCamera.position.copy(glb.scene.position)\n this.inspection.minCamera.position.z -= 5\n this.inspection.minCamera.position.y += 5\n this.inspection.minCamera.rotateY(Math.PI)\n\n this.model = group\n\n this.inspection.gobal.interactionManager.add(poi)\n\n // poi.addEventListener('click', () => {\n // group.add(poi2)\n // poi.visible = false\n // })\n\n glb.scene.scale.set(5, 5, 5)\n glb.scene.traverse((child) => {\n child.layers.enable(2)\n })\n\n this.inspection.gobal.scene.add(this.model)\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 use.useframe(() => {\n this.inspection.groundMaterial.uniforms.u_time.value = this.getSportsProgress - 0.01\n sendToMessage(MessageType.Event, 'onInspectProgress', EMessageStatus.Success, undefined, {\n percentage: this.getSportsProgress,\n })\n })\n }\n\n get getSportsProgress() {\n if (!this.control)\n return 0\n\n return this.control.getProgress()\n }\n\n private getTargetQuaternion(targetMesh: Group) {\n targetMesh.updateMatrixWorld(true)\n const localForward = new Vector3(0, 0, -1)\n const worldForward = localForward.applyQuaternion(targetMesh.quaternion.clone()).normalize()\n\n const target = targetMesh.position.clone()\n const direction = target.sub(this.model.position).normalize()\n\n const targetQuaternion = new Quaternion().setFromUnitVectors(worldForward, direction)\n\n const dotProduct = worldForward.dot(direction)\n const angleRadians = Math.acos(dotProduct)\n const angleDegrees = angleRadians * (180 / Math.PI)\n\n // todo: some problem\n if (angleDegrees < 60) {\n const flipQuaternion = new Quaternion()\n flipQuaternion.setFromAxisAngle(new Vector3(0, 1, 0), Math.PI)\n targetQuaternion.multiply(flipQuaternion)\n }\n }\n\n private getTargetQuaternionV2(lastFromPositin: Vector3, currentPositin: Vector3, targetPosition: Vector3) {\n const vTo = targetPosition.clone().sub(currentPositin).normalize()\n const vFrom = currentPositin.clone().sub(lastFromPositin).normalize()\n\n const targetQuaternion = new Quaternion().setFromUnitVectors(vFrom, vTo)\n\n const flipQuaternion = new Quaternion()\n flipQuaternion.setFromAxisAngle(new Vector3(0, 1, 0), Math.PI)\n targetQuaternion.multiply(flipQuaternion)\n\n return targetQuaternion\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\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\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 setTimeout(() => {\n const rotationMatrix = new Matrix4()\n\n const targetQuaternion = new Quaternion()\n const startQuaternion = this.model.quaternion.clone()\n\n rotationMatrix.lookAt(targetMesh.position, 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 })\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.04 || Number(key) === 0.68)\n (this.inspection.minCamera as Camera).layers.set(2)\n\n if (Number(key) === 0.15 || Number(key) === 0.24 || Number(key) === 0.40) {\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('yellow', 5.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: 'yellow' }))\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 if (Number(key) === 0.15 || Number(key) === 0.24) {\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.04 || Number(key) === 0.68)\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 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.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 gotoTarget(targetPosition: Vector3, targetProgress: number) {\n if (this.isAnimation)\n return\n\n this.isAnimation = true\n\n this.control.stop()\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 currentPosition = this.model.position\n const upCurve = new LineCurve3(currentPosition, new Vector3(currentPosition.x, currentPosition.y + 100, currentPosition.z))\n const upControl = utils.moveWithLine(this.model, upCurve, 10, { loop: false, lookat: targetPosition })\n\n upControl.addEventListener('end', () => {\n const tempCurve = this.generateTempPath(currentPosition, new Vector3(targetPosition.x, targetPosition.y + 100, targetPosition.z))\n const tempControl = utils.moveWithLine(this.model, tempCurve, 50, { loop: false, lookat: false })\n\n tempControl.addEventListener('end', () => {\n const lastPosition = this.model.position\n const downCurve = new LineCurve3(lastPosition, new Vector3(lastPosition.x, lastPosition.y - 100, lastPosition.z))\n const downControl = utils.moveWithLine(this.model, downCurve, 10, { loop: false, lookat: false })\n\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.isAnimation = false\n this.control.setProgress(targetProgress)\n this.control.contine()\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 this.control.contine()\n\n utils.emitter.emit('continue', true)\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,SAAsBA,KAAK,EAAEC,KAAK,EAAEC,aAAa,EAAEC,KAAK,EAAEC,iBAAiB,EAAEC,UAAU,EAAEC,YAAY,EAAEC,OAAO,EAAQC,iBAAiB,EAAEC,WAAW,EAAEC,UAAU,EAA6CC,OAAO,EAAEC,GAAG,EAAEC,KAAK,QAAQ,eAAe;AAEvP,SAASC,SAAS,QAAiD,kBAAkB;AACrF,SAASC,KAAK,QAAQ,mBAAmB;AACzC,SAASC,mBAAmB;AAC5B,SAASC,OAAO;AAChB,SAASC,WAAW,EAAEC,aAAa;AACnC,SAASC,cAAc;AAIvB,SAASC,OAAO,EAAEC,oBAAoB;AAEtC,IAAMC,WAAW,GAAG,IAAId,WAAW,EAAE;AAAA,IAE/Be,gBAAgB;EAUpB,0BAAYC,UAAU,EAAE;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA,gCALP,KAAK;IAAA,qCACA,KAAK;IAAA;IAAA;IAAA,qCA2TL,UAACC,gBAA4B,EAAEC,IAAW,EAAEC,EAAc,EAAK;MACnF,IAAMC,KAAK,GAAG,IAAI7B,KAAK,EAAE;MAEzB,IAAI2B,IAAI,CAACG,UAAU,CAACC,MAAM,CAACL,gBAAgB,CAAC,EAC1C,OAAOE,EAAE,EAAE;MAEb,IAAMI,SAAS,GAAGpB,GAAG,CAACqB,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;IAxUC,IAAI,CAACH,UAAU,GAAGA,UAAU;EAC9B;EAAC;IAAA;IAAA;MAAA,4EAED;QAAA;QAAA;QAAA;UAAA;YAAA;cAAA;cAAA,OAC2BF,WAAW,CAACe,QAAQ,WAAIrB,OAAO,cAAW,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC;YAAA;cAAA;cAAA;YAAA;cAArFsB,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,aAAM7B,OAAO,wBAAqB;cAEnC8B,IAAI,GAAGN,QAAQ,CAACC,aAAa,CAAC,MAAM,CAAC;cAC3CK,IAAI,CAACC,SAAS,GAAG,OAAO;cACxBD,IAAI,CAACJ,KAAK,CAACC,QAAQ,GAAG,UAAU;cAChCG,IAAI,CAACJ,KAAK,CAACM,GAAG,GAAG,MAAM;cACvBF,IAAI,CAACJ,KAAK,CAACO,IAAI,GAAG,KAAK;cACvBH,IAAI,CAACJ,KAAK,CAACQ,SAAS,GAAG,kBAAkB;cAEzCJ,IAAI,CAACJ,KAAK,CAACS,KAAK,GAAG,OAAO;cAC1BL,IAAI,CAACJ,KAAK,CAACU,QAAQ,GAAG,MAAM;cAC5BN,IAAI,CAACJ,KAAK,CAACW,UAAU,GAAG,MAAM;cAE9Bd,GAAG,CAACe,WAAW,CAACV,GAAG,CAAC;cACpBL,GAAG,CAACe,WAAW,CAACR,IAAI,CAAC;cAEfS,GAAG,GAAG,IAAI1C,SAAS,CAAC0B,GAAG,EAAE;gBAC7BiB,KAAK,EAAE,GAAG,GAAG,CAAC;gBACdC,MAAM,EAAE,EAAE,GAAG;cACf,CAAC,CAAC;cAEIC,IAAI,GAAGlB,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;cAC1CiB,IAAI,CAACb,GAAG,aAAM7B,OAAO,wBAAqB;cAEpC2C,IAAI,GAAG,IAAI9C,SAAS,CAAC6C,IAAI,EAAE;gBAC/BF,KAAK,EAAE,GAAG,GAAG,CAAC;gBACdC,MAAM,EAAE,EAAE,GAAG;cACf,CAAC,CAAC;cAEFF,GAAG,CAACK,KAAK,CAACC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;cACzBF,IAAI,CAACC,KAAK,CAACC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;cAEpBC,IAAI,GAAGxB,GAAG,CAACyB,KAAK,CAACC,eAAe,CAAC,MAAM,CAAC;cACxCC,IAAI,GAAG3B,GAAG,CAACyB,KAAK,CAACC,eAAe,CAAC,QAAQ,CAAC;cAC1CE,IAAI,GAAG5B,GAAG,CAACyB,KAAK,CAACC,eAAe,CAAC,QAAQ,CAAC;cAC1CG,IAAI,GAAG7B,GAAG,CAACyB,KAAK,CAACC,eAAe,CAAC,QAAQ,CAAC;cAEhDrD,GAAG,CAACqB,QAAQ,CAAC,YAAM;gBACjBuB,GAAG,CAACZ,QAAQ,CAACyB,IAAI,CAAC9B,GAAG,CAACyB,KAAK,CAACpB,QAAQ,CAAC0B,KAAK,EAAE,CAACC,GAAG,CAAC,IAAI5D,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;gBACxEiD,IAAI,CAAChB,QAAQ,CAACyB,IAAI,CAAC9B,GAAG,CAACyB,KAAK,CAACpB,QAAQ,CAAC0B,KAAK,EAAE,CAACC,GAAG,CAAC,IAAI5D,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;gBAEzEoD,IAAI,CAACS,QAAQ,CAACC,CAAC,IAAI,GAAG;gBACtBP,IAAI,CAACM,QAAQ,CAACC,CAAC,IAAI,GAAG;gBACtBN,IAAI,CAACK,QAAQ,CAACC,CAAC,IAAI,GAAG;gBACtBL,IAAI,CAACI,QAAQ,CAACC,CAAC,IAAI,GAAG;gBAEtB,IAAIpD,OAAO,CAAC,KAAI,CAACqD,iBAAiB,CAAC,IAC9B,CAAC,KAAI,CAACC,MAAM,EAAE;kBACjB,KAAI,CAACC,IAAI,EAAE;kBACX,KAAI,CAACC,cAAc,CAAC,KAAI,CAACH,iBAAiB,CAAC;gBAC7C;cACF,CAAC,CAAC;cAEII,KAAK,GAAG,IAAI3E,KAAK,EAAE;cACzB2E,KAAK,CAACP,GAAG,CAAChC,GAAG,CAACyB,KAAK,CAAC;cACpBc,KAAK,CAACP,GAAG,CAACf,GAAG,CAAC;cACdsB,KAAK,CAACP,GAAG,CAAC,IAAI,CAAC9C,UAAU,CAACsD,SAAS,CAAC;cAEpC,IAAI,CAACtD,UAAU,CAACsD,SAAS,CAACnC,QAAQ,CAACyB,IAAI,CAAC9B,GAAG,CAACyB,KAAK,CAACpB,QAAQ,CAAC;cAC3D,IAAI,CAACnB,UAAU,CAACsD,SAAS,CAACnC,QAAQ,CAAC6B,CAAC,IAAI,CAAC;cACzC,IAAI,CAAChD,UAAU,CAACsD,SAAS,CAACnC,QAAQ,CAACoC,CAAC,IAAI,CAAC;cACzC,IAAI,CAACvD,UAAU,CAACsD,SAAS,CAACE,OAAO,CAACC,IAAI,CAACC,EAAE,CAAC;cAE1C,IAAI,CAACC,KAAK,GAAGN,KAAK;cAElB,IAAI,CAACrD,UAAU,CAAC4D,KAAK,CAACC,kBAAkB,CAACf,GAAG,CAACf,GAAG,CAAC;;cAEjD;cACA;cACA;cACA;;cAEAjB,GAAG,CAACyB,KAAK,CAACH,KAAK,CAACC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;cAC5BvB,GAAG,CAACyB,KAAK,CAACuB,QAAQ,CAAC,UAACC,KAAK,EAAK;gBAC5BA,KAAK,CAACC,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC;cACxB,CAAC,CAAC;cAEF,IAAI,CAACjE,UAAU,CAAC4D,KAAK,CAACrB,KAAK,CAACO,GAAG,CAAC,IAAI,CAACa,KAAK,CAAC;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA,CAC5C;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,4EAED,kBAAgBO,KAAK;QAAA;QAAA;UAAA;YAAA;cAAA,IACd,IAAI,CAACP,KAAK;gBAAA;gBAAA;cAAA;cAAA;cAAA,OACP,IAAI,CAACQ,SAAS,EAAE;YAAA;cAExB,IAAI,CAACC,OAAO,GAAGhF,KAAK,CAACiF,YAAY,CAAC,IAAI,CAACV,KAAK,EAAEO,KAAK,EAAE,EAAE,EAAE;gBACvDI,WAAW,EAAE,IAAI,CAACtE,UAAU,CAACsE;cAC/B,CAAC,CAAC;cAEFnF,GAAG,CAACqB,QAAQ,CAAC,YAAM;gBACjB,MAAI,CAACR,UAAU,CAACuE,cAAc,CAACC,QAAQ,CAACC,MAAM,CAACC,KAAK,GAAG,MAAI,CAACzB,iBAAiB,GAAG,IAAI;gBACpFvD,aAAa,CAACD,WAAW,CAACkF,KAAK,EAAE,mBAAmB,EAAEhF,cAAc,CAACiF,OAAO,EAAEC,SAAS,EAAE;kBACvFC,UAAU,EAAE,MAAI,CAAC7B;gBACnB,CAAC,CAAC;cACJ,CAAC,CAAC;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA,CACH;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA,KAED,eAAwB;MACtB,IAAI,CAAC,IAAI,CAACmB,OAAO,EACf,OAAO,CAAC;MAEV,OAAO,IAAI,CAACA,OAAO,CAACW,WAAW,EAAE;IACnC;EAAC;IAAA;IAAA,OAED,6BAA4BC,UAAiB,EAAE;MAC7CA,UAAU,CAACC,iBAAiB,CAAC,IAAI,CAAC;MAClC,IAAMC,YAAY,GAAG,IAAIhG,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;MAC1C,IAAMiG,YAAY,GAAGD,YAAY,CAACE,eAAe,CAACJ,UAAU,CAAC3E,UAAU,CAACwC,KAAK,EAAE,CAAC,CAACwC,SAAS,EAAE;MAE5F,IAAMC,MAAM,GAAGN,UAAU,CAAC7D,QAAQ,CAAC0B,KAAK,EAAE;MAC1C,IAAM0C,SAAS,GAAGD,MAAM,CAACE,GAAG,CAAC,IAAI,CAAC7B,KAAK,CAACxC,QAAQ,CAAC,CAACkE,SAAS,EAAE;MAE7D,IAAMpF,gBAAgB,GAAG,IAAIhB,UAAU,EAAE,CAACwG,kBAAkB,CAACN,YAAY,EAAEI,SAAS,CAAC;MAErF,IAAMG,UAAU,GAAGP,YAAY,CAACQ,GAAG,CAACJ,SAAS,CAAC;MAC9C,IAAMK,YAAY,GAAGnC,IAAI,CAACoC,IAAI,CAACH,UAAU,CAAC;MAC1C,IAAMI,YAAY,GAAGF,YAAY,IAAI,GAAG,GAAGnC,IAAI,CAACC,EAAE,CAAC;;MAEnD;MACA,IAAIoC,YAAY,GAAG,EAAE,EAAE;QACrB,IAAMC,cAAc,GAAG,IAAI9G,UAAU,EAAE;QACvC8G,cAAc,CAACC,gBAAgB,CAAC,IAAI9G,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAEuE,IAAI,CAACC,EAAE,CAAC;QAC9DzD,gBAAgB,CAACgG,QAAQ,CAACF,cAAc,CAAC;MAC3C;IACF;EAAC;IAAA;IAAA,OAED,+BAA8BG,eAAwB,EAAEC,cAAuB,EAAEC,cAAuB,EAAE;MACxG,IAAMC,GAAG,GAAGD,cAAc,CAACvD,KAAK,EAAE,CAAC2C,GAAG,CAACW,cAAc,CAAC,CAACd,SAAS,EAAE;MAClE,IAAMiB,KAAK,GAAGH,cAAc,CAACtD,KAAK,EAAE,CAAC2C,GAAG,CAACU,eAAe,CAAC,CAACb,SAAS,EAAE;MAErE,IAAMpF,gBAAgB,GAAG,IAAIhB,UAAU,EAAE,CAACwG,kBAAkB,CAACa,KAAK,EAAED,GAAG,CAAC;MAExE,IAAMN,cAAc,GAAG,IAAI9G,UAAU,EAAE;MACvC8G,cAAc,CAACC,gBAAgB,CAAC,IAAI9G,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAEuE,IAAI,CAACC,EAAE,CAAC;MAC9DzD,gBAAgB,CAACgG,QAAQ,CAACF,cAAc,CAAC;MAEzC,OAAO9F,gBAAgB;IACzB;EAAC;IAAA;IAAA,OAED,wBAAe;MACb,OAAO,IAAIsG,OAAO,CAAC,UAACC,OAAO,EAAK;QAC9BpH,KAAK,CAACqH,OAAO,CAACC,EAAE,CAAC,UAAU,EAAE,UAACC,IAAI,EAAK;UACrCH,OAAO,CAACG,IAAI,CAAC;QACf,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ;EAAC;IAAA;IAAA,OAED,wBAAuBC,QAAgB,EAAE;MAAA;MACvC,IAAI,CAAC1D,MAAM,GAAG,IAAI;MAClB,IAAI,CAAC2D,WAAW,GAAG,IAAI;MAEvB,IAAMC,GAAG,GAAGC,MAAM,CAACC,IAAI,CAACnH,oBAAoB,CAAC,CAACoH,IAAI,CAAC,UAACC,CAAC,EAAK;QACxD,IAAMC,GAAG,GAAGC,UAAU,CAACF,CAAC,CAAC;QACzB,IAAIN,QAAQ,IAAIO,GAAG,IAAIP,QAAQ,GAAGO,GAAG,GAAG,IAAI,EAC1C,OAAO,IAAI;MACf,CAAC,CAAC;MAEF,IAAME,YAAY,GAAGxH,oBAAoB,CAACiH,GAAG,CAAC,CAACQ,MAAM;MAErD,IAAItC,UAAwB,GAAG,IAAI;MAEnC,IAAIqC,YAAY,KAAK,sBAAsB,EACzCrC,UAAU,GAAG,IAAI,CAAChF,UAAU,CAAC4D,KAAK,CAAC2D,QAAQ,CAAC/E,eAAe,CAAC6E,YAAY,CAAU,MAGlFrC,UAAU,GAAG,IAAI,CAAChF,UAAU,CAAC4D,KAAK,CAAC4D,QAAQ,CAAChF,eAAe,CAAC6E,YAAY,CAAU;MAEpF,IAAI,CAACrC,UAAU,EAAE;QACf,IAAI,CAACyC,WAAW,EAAE;QAClB,IAAI,CAACZ,WAAW,GAAG,KAAK;QACxBa,UAAU,CAAC,YAAM;UACf,MAAI,CAACxE,MAAM,GAAG,KAAK;QACrB,CAAC,EAAE,GAAG,CAAC;QACP;MACF;MAEA,IAAMyE,aAAa,GAAG,IAAI,CAAC3H,UAAU,CAAC4H,YAAY,CAACC,GAAG,CAAChI,oBAAoB,CAACiH,GAAG,CAAC,CAACgB,IAAI,CAAC;MAEtFH,aAAa,CAAC7D,QAAQ,CAAC,UAACC,KAAK,EAAK;QAChC,IAAIA,KAAK,CAAC+D,IAAI,KAAK,UAAU,EAC3B/D,KAAK,CAACgE,QAAQ,GAAG,IAAIhJ,iBAAiB,CAAC;UAAE4C,KAAK,EAAE,IAAInD,KAAK,CAAC,QAAQ;QAAE,CAAC,CAAC,MAEtEuF,KAAK,CAACgE,QAAQ,GAAG,IAAIhJ,iBAAiB,CAAC;UAAE4C,KAAK,EAAE,IAAInD,KAAK,CAAC,SAAS;QAAE,CAAC,CAAC;MAC3E,CAAC,CAAC;MAEFkJ,UAAU,CAAC,YAAM;QACf,IAAMM,cAAc,GAAG,IAAIlJ,OAAO,EAAE;QAEpC,IAAMmB,gBAAgB,GAAG,IAAIhB,UAAU,EAAE;QACzC,IAAMgJ,eAAe,GAAG,MAAI,CAACtE,KAAK,CAACtD,UAAU,CAACwC,KAAK,EAAE;QAErDmF,cAAc,CAACV,MAAM,CAACtC,UAAU,CAAC7D,QAAQ,EAAE,MAAI,CAACwC,KAAK,CAACxC,QAAQ,EAAE,MAAI,CAACwC,KAAK,CAACuE,EAAE,CAAC;QAC9EjI,gBAAgB,CAACkI,qBAAqB,CAACH,cAAc,CAAC;QAEtD,IAAMI,YAAY,GAAG,IAAI9I,KAAK,CAAC;UAAE+I,CAAC,EAAE;QAAE,CAAC,CAAC,CACrCC,EAAE,CAAC;UAAED,CAAC,EAAE;QAAE,CAAC,EAAE,IAAI,CAAC,CAClBE,QAAQ,CAAC,UAACC,GAAG,EAAK;UACjB,MAAI,CAAC7E,KAAK,CAACtD,UAAU,CAACuC,IAAI,CAACqF,eAAe,CAAC,CAACQ,KAAK,CAACxI,gBAAgB,EAAEuI,GAAG,CAACH,CAAC,CAAC;QAC5E,CAAC,CAAC;QAEJ,IAAMK,aAAa,GAAG,IAAIpJ,KAAK,CAAC;UAAE+I,CAAC,EAAE;QAAE,CAAC,CAAC,CACtCC,EAAE,CAAC;UAAED,CAAC,EAAE;QAAE,CAAC,EAAE,IAAI,CAAC,CAClBE,QAAQ,CAAC,UAACC,GAAG,EAAK;UACjB,MAAI,CAAC7E,KAAK,CAACtD,UAAU,CAACuC,IAAI,CAACqF,eAAe,CAAC,CAACQ,KAAK,CAACxI,gBAAgB,EAAEuI,GAAG,CAACH,CAAC,CAAC;QAC5E,CAAC,CAAC;QAEJD,YAAY,CAACO,UAAU,CAAC,YAAM;UAC5B,IAAIC,SAAuB,GAAG,IAAI;UAElClJ,aAAa,CAACD,WAAW,CAACkF,KAAK,EAAE,eAAe,EAAEhF,cAAc,CAACiF,OAAO,EAAEC,SAAS,EAAE;YACnFS,MAAM,EAAEzF,oBAAoB,CAACiH,GAAG,CAAC,CAACgB;UACpC,CAAC,CAAC;UAEF,IAAIe,MAAM,CAAC/B,GAAG,CAAC,KAAK,IAAI,IAAI+B,MAAM,CAAC/B,GAAG,CAAC,KAAK,IAAI,EAC7C,MAAI,CAAC9G,UAAU,CAACsD,SAAS,CAAYU,MAAM,CAAC3B,GAAG,CAAC,CAAC,CAAC;UAErD,IAAIwG,MAAM,CAAC/B,GAAG,CAAC,KAAK,IAAI,IAAI+B,MAAM,CAAC/B,GAAG,CAAC,KAAK,IAAI,IAAI+B,MAAM,CAAC/B,GAAG,CAAC,KAAK,IAAI,EAAE;YACvE,MAAI,CAAC9G,UAAU,CAACsD,SAAS,CAAYU,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC;YACtD;YACA,IAAI,CAACe,UAAU,CAAC4D,SAAS,EAAE;cACzBA,SAAS,GAAG5D,UAAU,CAACnC,KAAK,EAAkB;cAE9C,IAAMiG,eAAe,GAAGvJ,mBAAmB,CAAC,QAAQ,EAAE,GAAG,CAAC;cAE1DqJ,SAAS,CAAC9E,QAAQ,CAAC,UAACC,KAAK,EAAK;gBAC5BA,KAAK,CAACC,MAAM,CAAC3B,GAAG,CAAC,CAAC,CAAC;gBAEnB,IAAI0B,KAAK,CAACgF,IAAI,KAAK,MAAM,EAAE;kBACzB;kBACAhF,KAAK,CAACgE,QAAQ,GAAGe,eAAe;;kBAEhC;kBACA,IAAME,YAAY,GAAG,IAAInK,YAAY,CAAC,IAAIJ,aAAa,CAACsF,KAAK,CAACkF,QAAQ,CAAQ,EAAE,IAAItK,iBAAiB,CAAC;oBAAEgD,KAAK,EAAE;kBAAS,CAAC,CAAC,CAAC;kBAE3HqH,YAAY,CAAChF,MAAM,CAAC3B,GAAG,CAAC,CAAC,CAAC;kBAC1BuG,SAAS,CAAC9F,GAAG,CAACkG,YAAY,CAAC;gBAC7B;cACF,CAAC,CAAC;;cAEF;cACAhE,UAAU,CAAC4D,SAAS,GAAGA,SAAS;cAEhC,MAAI,CAAC5I,UAAU,CAAC4D,KAAK,CAACrB,KAAK,CAACO,GAAG,CAAC8F,SAAS,CAAC;YAC5C,CAAC,MACI;cACH;cACAA,SAAS,GAAG5D,UAAU,CAAC4D,SAAS;cAEhCA,SAAS,CAACM,OAAO,GAAG,IAAI;YAC1B;UACF;UAEA,IAAIL,MAAM,CAAC/B,GAAG,CAAC,KAAK,IAAI,IAAI+B,MAAM,CAAC/B,GAAG,CAAC,KAAK,IAAI,EAAE;YAChD,MAAI,CAACqC,YAAY,EAAE,CAACC,IAAI,CAAC,UAACzC,IAAI,EAAK;cACjC,IAAIA,IAAI,EAAE;gBACRiC,SAAS,CAACM,OAAO,GAAG,KAAK;gBACzBR,aAAa,CAACW,KAAK,EAAE;gBAErBjK,KAAK,CAACqH,OAAO,CAAC6C,GAAG,CAAC,UAAU,CAAC;cAC/B;YACF,CAAC,CAAC;UACJ,CAAC,MACI;YACH5B,UAAU,CAAC,YAAM;cACf,IAAImB,MAAM,CAAC/B,GAAG,CAAC,KAAK,IAAI,IAAI+B,MAAM,CAAC/B,GAAG,CAAC,KAAK,IAAI,EAC7C,MAAI,CAAC9G,UAAU,CAACsD,SAAS,CAAYU,MAAM,CAAC3B,GAAG,CAAC,CAAC,CAAC;cAErD,IAAIwG,MAAM,CAAC/B,GAAG,CAAC,KAAK,IAAI,EACtB8B,SAAS,CAACM,OAAO,GAAG,KAAK;cAE3BR,aAAa,CAACW,KAAK,EAAE;YACvB,CAAC,EAAE,IAAI,CAAC;UACV;QACF,CAAC,CAAC;QAEF3B,UAAU,CAAC,YAAM;UACfU,YAAY,CAACiB,KAAK,EAAE;QACtB,CAAC,EAAE,IAAI,CAAC;QAERX,aAAa,CAACC,UAAU,CAAC,YAAM;UAC7B,MAAI,CAAC9B,WAAW,GAAG,KAAK;UACxB,MAAI,CAACY,WAAW,EAAE;UAElBE,aAAa,CAAC7D,QAAQ,CAAC,UAACC,KAAK,EAAK;YAChC,IAAIA,KAAK,CAAC+D,IAAI,KAAK,UAAU,EAC3B/D,KAAK,CAACgE,QAAQ,GAAG,IAAIhJ,iBAAiB,CAAC;cAAE4C,KAAK,EAAE,IAAInD,KAAK,CAAC,SAAS;YAAE,CAAC,CAAC,MAEvEuF,KAAK,CAACgE,QAAQ,GAAG,IAAIhJ,iBAAiB,CAAC;cAAE4C,KAAK,EAAE,IAAInD,KAAK,CAAC,MAAM;YAAE,CAAC,CAAC;UACxE,CAAC,CAAC;UAEFkJ,UAAU,CAAC,YAAM;YACf,MAAI,CAACxE,MAAM,GAAG,KAAK;UACrB,CAAC,EAAE,GAAG,CAAC;QACT,CAAC,CAAC;MACJ,CAAC,EAAE,IAAI,CAAC;IACV;EAAC;IAAA;IAAA,OAED,0BAAiBqG,eAAwB,EAAEnD,cAAuB,EAAE;MAClE,OAAO,IAAIxH,UAAU,CAAC2K,eAAe,EAAEnD,cAAc,CAAC;IACxD;EAAC;IAAA;IAAA,OAsBD,oBAAWA,cAAuB,EAAEoD,cAAsB,EAAE;MAAA;MAC1D,IAAI,IAAI,CAAC3C,WAAW,EAClB;MAEF,IAAI,CAACA,WAAW,GAAG,IAAI;MAEvB,IAAI,CAACzC,OAAO,CAACjB,IAAI,EAAE;MAEnB,IAAM6E,cAAc,GAAG,IAAIlJ,OAAO,EAAE;MACpC,IAAMmB,gBAAgB,GAAG,IAAIhB,UAAU,EAAE;MAEzC+I,cAAc,CAACV,MAAM,CAAClB,cAAc,EAAE,IAAI,CAACzC,KAAK,CAACxC,QAAQ,EAAE,IAAI,CAACwC,KAAK,CAACuE,EAAE,CAAC;MACzEjI,gBAAgB,CAACkI,qBAAqB,CAACH,cAAc,CAAC;MAEtD,IAAI,CAACyB,WAAW,CAACxJ,gBAAgB,EAAE,IAAI,CAAC0D,KAAK,EAC3C,YAAM;QACJ,IAAM4F,eAAe,GAAG,MAAI,CAAC5F,KAAK,CAACxC,QAAQ;QAC3C,IAAMuI,OAAO,GAAG,IAAI9K,UAAU,CAAC2K,eAAe,EAAE,IAAIrK,OAAO,CAACqK,eAAe,CAACI,CAAC,EAAEJ,eAAe,CAAChG,CAAC,GAAG,GAAG,EAAEgG,eAAe,CAACvG,CAAC,CAAC,CAAC;QAC3H,IAAM4G,SAAS,GAAGxK,KAAK,CAACiF,YAAY,CAAC,MAAI,CAACV,KAAK,EAAE+F,OAAO,EAAE,EAAE,EAAE;UAAEG,IAAI,EAAE,KAAK;UAAEC,MAAM,EAAE1D;QAAe,CAAC,CAAC;QAEtGwD,SAAS,CAACG,gBAAgB,CAAC,KAAK,EAAE,YAAM;UACtC,IAAMC,SAAS,GAAG,MAAI,CAACC,gBAAgB,CAACV,eAAe,EAAE,IAAIrK,OAAO,CAACkH,cAAc,CAACuD,CAAC,EAAEvD,cAAc,CAAC7C,CAAC,GAAG,GAAG,EAAE6C,cAAc,CAACpD,CAAC,CAAC,CAAC;UACjI,IAAMkH,WAAW,GAAG9K,KAAK,CAACiF,YAAY,CAAC,MAAI,CAACV,KAAK,EAAEqG,SAAS,EAAE,EAAE,EAAE;YAAEH,IAAI,EAAE,KAAK;YAAEC,MAAM,EAAE;UAAM,CAAC,CAAC;UAEjGI,WAAW,CAACH,gBAAgB,CAAC,KAAK,EAAE,YAAM;YACxC,IAAMI,YAAY,GAAG,MAAI,CAACxG,KAAK,CAACxC,QAAQ;YACxC,IAAMiJ,SAAS,GAAG,IAAIxL,UAAU,CAACuL,YAAY,EAAE,IAAIjL,OAAO,CAACiL,YAAY,CAACR,CAAC,EAAEQ,YAAY,CAAC5G,CAAC,GAAG,GAAG,EAAE4G,YAAY,CAACnH,CAAC,CAAC,CAAC;YACjH,IAAMqH,WAAW,GAAGjL,KAAK,CAACiF,YAAY,CAAC,MAAI,CAACV,KAAK,EAAEyG,SAAS,EAAE,EAAE,EAAE;cAAEP,IAAI,EAAE,KAAK;cAAEC,MAAM,EAAE;YAAM,CAAC,CAAC;YAEjGO,WAAW,CAACN,gBAAgB,CAAC,KAAK,EAAE,YAAM;cACxC,IAAMO,eAAe,GAAG,IAAIxL,OAAO,EAAE;cACrC,IAAMyL,iBAAiB,GAAG,IAAItL,UAAU,EAAE;cAE1C,IAAMuL,eAAe,GAAG,MAAI,CAACxK,UAAU,CAACkE,KAAK,CAACuG,UAAU,CAAC,CAACjB,cAAc,GAAG,IAAI,IAAI,CAAC,CAAC;cAErFc,eAAe,CAAChD,MAAM,CAACkD,eAAe,EAAE,MAAI,CAAC7G,KAAK,CAACxC,QAAQ,EAAE,MAAI,CAACwC,KAAK,CAACuE,EAAE,CAAC;cAC3EqC,iBAAiB,CAACpC,qBAAqB,CAACmC,eAAe,CAAC;cAExD,MAAI,CAACb,WAAW,CAACc,iBAAiB,EAAE,MAAI,CAAC5G,KAAK,EAAE,YAAM;gBACpD+D,UAAU,CAAC,YAAM;kBACf,MAAI,CAACb,WAAW,GAAG,KAAK;kBACxB,MAAI,CAACzC,OAAO,CAACsG,WAAW,CAAClB,cAAc,CAAC;kBACxC,MAAI,CAACpF,OAAO,CAACuG,OAAO,EAAE;gBACxB,CAAC,EAAE,GAAG,CAAC;cACT,CAAC,CAAC;YACJ,CAAC,CAAC;UACJ,CAAC,CAAC;QACJ,CAAC,CAAC;MACJ,CAAC,CAAC;IACN;EAAC;IAAA;IAAA,OAED,kBAASC,KAAa,EAAE;MACtB,IAAI,IAAI,CAACxG,OAAO,EACd,IAAI,CAACA,OAAO,CAACyG,QAAQ,CAACD,KAAK,CAAC;IAChC;EAAC;IAAA;IAAA,OAED,gBAAO;MACL,IAAI,IAAI,CAACxG,OAAO,EACd,IAAI,CAACA,OAAO,CAACjB,IAAI,EAAE;IACvB;EAAC;IAAA;IAAA,OAED,uBAAc;MACZ,IAAI,IAAI,CAACiB,OAAO,EACd,IAAI,CAACA,OAAO,CAACuG,OAAO,EAAE;MAExBvL,KAAK,CAACqH,OAAO,CAACqE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC;IACtC;;IAEA;AACF;AACA;EAFE;IAAA;IAAA,OAGA,mBAAU,CAAE;EAAC;EAAA;AAAA;AAGf,eAAe/K,gBAAgB"}
@@ -12,6 +12,19 @@ import vertexShader from "../glsl/highway/vertexShader";
12
12
  import { flyLinePoints, groundLinePoints, targetProgresspoints } from "./lineData";
13
13
  import InspectionObject from "./InspectionObject";
14
14
  var storeManagement = utils.storeManagement;
15
+ var viewInfoPro = {
16
+ width: 502,
17
+ height: 256,
18
+ top: 110,
19
+ left: 40
20
+ };
21
+ var viewInfoDev = {
22
+ width: 300,
23
+ height: 200,
24
+ top: 50,
25
+ left: 0
26
+ };
27
+ var viewInfo = false ? viewInfoDev : viewInfoPro;
15
28
  var Inspection = /*#__PURE__*/function () {
16
29
  function Inspection(gobal) {
17
30
  var _app$envServer$scaleR,
@@ -45,14 +58,25 @@ var Inspection = /*#__PURE__*/function () {
45
58
  top = _storeManagement$get$.top;
46
59
  var viewElement = document.createElement('div');
47
60
  viewElement.style.position = 'absolute';
48
- viewElement.style.width = "".concat(502 * scale, "px");
49
- viewElement.style.height = "".concat(256 * scale, "px");
61
+ viewElement.style.width = "".concat(viewInfo.width * scale, "px");
62
+ viewElement.style.height = "".concat(viewInfo.height * scale, "px");
50
63
  viewElement.style.cursor = 'pointer';
51
- viewElement.style.top = "".concat(110 * scale + top, "px");
52
- viewElement.style.left = "".concat((left + 40) * scale, "px");
64
+ viewElement.style.top = "".concat(viewInfo.top * scale + top, "px");
65
+ viewElement.style.left = "".concat(viewInfo.left * scale + left, "px");
53
66
  viewElement.addEventListener('click', function () {
54
67
  _this.gobal.toggleView();
55
68
  });
69
+ window.onresize = function () {
70
+ var _app$envServer$scaleR2, _window2, _window2$app, _window2$app$envServe;
71
+ var scale = (_app$envServer$scaleR2 = (_window2 = window) === null || _window2 === void 0 ? void 0 : (_window2$app = _window2.app) === null || _window2$app === void 0 ? void 0 : (_window2$app$envServe = _window2$app.envServer) === null || _window2$app$envServe === void 0 ? void 0 : _window2$app$envServe.scaleRatio) !== null && _app$envServer$scaleR2 !== void 0 ? _app$envServer$scaleR2 : 1;
72
+ var _storeManagement$get$2 = storeManagement.get('container').querySelector('canvas').getBoundingClientRect(),
73
+ left = _storeManagement$get$2.left,
74
+ top = _storeManagement$get$2.top;
75
+ viewElement.style.width = "".concat(viewInfo.width * scale, "px");
76
+ viewElement.style.height = "".concat(viewInfo.height * scale, "px");
77
+ viewElement.style.top = "".concat(viewInfo.top * scale + top, "px");
78
+ viewElement.style.left = "".concat(viewInfo.left * scale + left, "px");
79
+ };
56
80
  this.viewElement = viewElement;
57
81
  }
58
82
 
@@ -148,12 +172,11 @@ var Inspection = /*#__PURE__*/function () {
148
172
  minCamera = new PerspectiveCamera(60, window.innerWidth / window.innerHeight, 0.1, 1000);
149
173
  }
150
174
  this.gobal.scene.cutoutCamera = minCamera;
151
- var scale = 1;
152
175
  this.gobal.scene.cutoutArea = {
153
- x: 40 * scale,
154
- y: 110 * scale,
155
- width: 502 * scale,
156
- height: 256 * scale
176
+ x: viewInfo.left,
177
+ y: viewInfo.top,
178
+ width: viewInfo.width,
179
+ height: viewInfo.height
157
180
  };
158
181
  this.gobal.scene.add(minCamera);
159
182
  this.minCamera = minCamera;
@@ -1 +1 @@
1
- {"version":3,"names":["Color","CylinderGeometry","Group","Mesh","MeshBasicMaterial","PerspectiveCamera","ShaderMaterial","TubeGeometry","use","utils","RoundLineGeometry","initPostEffects","fragmentShader","vertexShader","flyLinePoints","groundLinePoints","targetProgresspoints","InspectionObject","storeManagement","Inspection","gobal","Map","generateInspectionPath","makeGroundRoad","setInspectionCamera","inspectionObject","startInspection","curve","hide","scale","window","app","envServer","scaleRatio","get","querySelector","getBoundingClientRect","left","top","viewElement","document","createElement","style","position","width","height","cursor","addEventListener","toggleView","flyLine","radius","close","groundLine","tube","groundMaterial","transparent","uniforms","u_time","value","alpha","centerColor","sideColor","otherColor","mesh2","groundGroup","add","y","groundCurve","line","scene","anchorMesh","anchorGroup","Object","keys","forEach","key","demoPoints","getPointAt","Number","singleAnchorGroup","cylinder","color","cylinder1","name","set","x","z","anchorObject","minCamera","innerWidth","innerHeight","cutoutCamera","cutoutArea","layers","getLength","startMove","targetProgress","targetPosition","gotoTarget","isHide","body","appendChild","cutout","visible","model","contains","removeChild","camera","renderer","type","cutMain","check","useframe"],"sources":["../../../../src/factory/unit/inspection/index.ts"],"sourcesContent":["import type { Object3D, Vector3 } from '@anov/3d-core'\nimport { Color, CylinderGeometry, Group, Mesh, MeshBasicMaterial, MirroredRepeatWrapping, PerspectiveCamera, PlaneGeometry, RepeatWrapping, ShaderChunk, ShaderMaterial, TextureLoader, TubeGeometry, lib, use, utils } from '@anov/3d-core'\nimport { RoundLineGeometry, addColorifyPass, createBloomSelectedTool, createHighSelectedTool, initPostEffects } from '@anov/3d-ability'\nimport type Factory3D from '../../3d'\nimport { usePath } from '../../3d'\nimport fragmentShader from '../glsl/highway/fragmentShader'\nimport vertexShader from '../glsl/highway/vertexShader'\nimport { flyLinePoints, groundLinePoints, targetProgresspoints } from './lineData'\nimport InspectionObject from './InspectionObject'\n\nconst { storeManagement } = utils\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 anchorGroup: Group\n minCamera: PerspectiveCamera\n InspectionPathObject: Object3D\n groundMaterial\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\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 = `${502 * scale}px`\n viewElement.style.height = `${256 * scale}px`\n viewElement.style.cursor = 'pointer'\n viewElement.style.top = `${(110) * scale + top}px`\n viewElement.style.left = `${(left + 40) * scale}px`\n\n viewElement.addEventListener('click', () => {\n this.gobal.toggleView()\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 /**\n * make ground road\n */\n private makeGroundRoad() {\n const groundLine = new RoundLineGeometry(groundLinePoints, {\n radius: 20,\n close: true,\n })\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(0xFFFFFF),\n },\n sideColor: {\n value: new Color('#F75332'),\n },\n otherColor: {\n value: new Color('#D23F22'),\n },\n },\n vertexShader,\n fragmentShader,\n })\n const mesh2 = new Mesh(tube, groundMaterial)\n\n const groundGroup = new Group()\n\n groundGroup.add(mesh2)\n groundGroup.position.y = 3\n\n this.groundCurve = groundLine.curve\n this.line = groundGroup\n this.gobal.scene.add(groundGroup)\n this.groundMaterial = groundMaterial\n\n this.anchorMesh()\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 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 const scale = 1\n\n this.gobal.scene.cutoutArea = { x: 40 * scale, y: 110 * scale, width: 502 * scale, height: 256 * scale }\n this.gobal.scene.add(minCamera)\n\n this.minCamera = minCamera\n\n this.minCamera.layers.set(0)\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 initPostEffects(this.gobal.scene.scene, this.gobal.scene.renderer, this.gobal.scene.cutoutCamera, {\n type: 'sub',\n })\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","PerspectiveCamera","ShaderMaterial","TubeGeometry","use","utils","RoundLineGeometry","initPostEffects","fragmentShader","vertexShader","flyLinePoints","groundLinePoints","targetProgresspoints","InspectionObject","storeManagement","viewInfoPro","width","height","top","left","viewInfoDev","viewInfo","Inspection","gobal","Map","generateInspectionPath","makeGroundRoad","setInspectionCamera","inspectionObject","startInspection","curve","hide","scale","window","app","envServer","scaleRatio","get","querySelector","getBoundingClientRect","viewElement","document","createElement","style","position","cursor","addEventListener","toggleView","onresize","flyLine","radius","close","groundLine","tube","groundMaterial","transparent","uniforms","u_time","value","alpha","centerColor","sideColor","otherColor","mesh2","groundGroup","add","y","groundCurve","line","scene","anchorMesh","anchorGroup","Object","keys","forEach","key","demoPoints","getPointAt","Number","singleAnchorGroup","cylinder","color","cylinder1","name","set","x","z","anchorObject","minCamera","innerWidth","innerHeight","cutoutCamera","cutoutArea","layers","getLength","startMove","targetProgress","targetPosition","gotoTarget","isHide","body","appendChild","cutout","visible","model","contains","removeChild","camera","renderer","type","cutMain","check","useframe"],"sources":["../../../../src/factory/unit/inspection/index.ts"],"sourcesContent":["import type { Object3D, Vector3 } from '@anov/3d-core'\nimport { Color, CylinderGeometry, Group, Mesh, MeshBasicMaterial, MirroredRepeatWrapping, PerspectiveCamera, PlaneGeometry, RepeatWrapping, ShaderChunk, ShaderMaterial, TextureLoader, TubeGeometry, lib, use, utils } from '@anov/3d-core'\nimport { RoundLineGeometry, addColorifyPass, createBloomSelectedTool, createHighSelectedTool, initPostEffects } from '@anov/3d-ability'\nimport type Factory3D from '../../3d'\nimport { usePath } from '../../3d'\nimport fragmentShader from '../glsl/highway/fragmentShader'\nimport vertexShader from '../glsl/highway/vertexShader'\nimport { flyLinePoints, groundLinePoints, targetProgresspoints } from './lineData'\nimport InspectionObject from './InspectionObject'\n\nconst { storeManagement } = utils\n\nconst viewInfoPro = {\n width: 502,\n height: 256,\n top: 110,\n left: 40,\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 anchorGroup: Group\n minCamera: PerspectiveCamera\n InspectionPathObject: Object3D\n groundMaterial\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\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 window.onresize = () => {\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 }\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 /**\n * make ground road\n */\n private makeGroundRoad() {\n const groundLine = new RoundLineGeometry(groundLinePoints, {\n radius: 20,\n close: true,\n })\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(0xFFFFFF),\n },\n sideColor: {\n value: new Color('#F75332'),\n },\n otherColor: {\n value: new Color('#D23F22'),\n },\n },\n vertexShader,\n fragmentShader,\n })\n const mesh2 = new Mesh(tube, groundMaterial)\n\n const groundGroup = new Group()\n\n groundGroup.add(mesh2)\n groundGroup.position.y = 3\n\n this.groundCurve = groundLine.curve\n this.line = groundGroup\n this.gobal.scene.add(groundGroup)\n this.groundMaterial = groundMaterial\n\n this.anchorMesh()\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 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\n this.minCamera.layers.set(0)\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 initPostEffects(this.gobal.scene.scene, this.gobal.scene.renderer, this.gobal.scene.cutoutCamera, {\n type: 'sub',\n })\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.62",
3
+ "version": "0.0.64",
4
4
  "description": "",
5
5
  "author": "",
6
6
  "license": "MIT",
@@ -21,8 +21,8 @@
21
21
  "anov-heat-map": "^0.0.1",
22
22
  "localforage": "^1.10.0",
23
23
  "uuid": "^9.0.1",
24
- "@anov/3d-core": "^0.0.12",
25
- "@anov/3d-ability": "^0.0.13"
24
+ "@anov/3d-ability": "^0.0.13",
25
+ "@anov/3d-core": "^0.0.12"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@types/uuid": "^9.0.7"