@anov/3d 0.0.91 → 0.0.93
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/factory/3d.js +14 -11
- package/dist/factory/3d.js.map +1 -1
- package/dist/factory/unit/cylinder.js +40 -10
- package/dist/factory/unit/cylinder.js.map +1 -1
- package/dist/factory/unit/districtLine.d.ts +2 -0
- package/dist/factory/unit/districtLine.js +13 -0
- package/dist/factory/unit/districtLine.js.map +1 -1
- package/dist/factory/unit/handle.js +7 -0
- package/dist/factory/unit/handle.js.map +1 -1
- package/dist/factory/unit/index.js +7 -0
- package/dist/factory/unit/index.js.map +1 -1
- package/dist/factory/unit/inspection/index.js +2 -2
- package/dist/factory/unit/inspection/index.js.map +1 -1
- package/dist/factory/unit/slice.d.ts +12 -0
- package/dist/factory/unit/slice.js +122 -0
- package/dist/factory/unit/slice.js.map +1 -0
- package/dist/module/environment/index.d.ts +3 -1
- package/dist/module/environment/index.js +8 -7
- package/dist/module/environment/index.js.map +1 -1
- package/dist/module/environment/time/index.d.ts +1 -3
- package/dist/module/environment/time/index.js +10 -11
- package/dist/module/environment/time/index.js.map +1 -1
- package/dist/module/scene/index.d.ts +5 -2
- package/dist/module/scene/index.js +10 -1
- package/dist/module/scene/index.js.map +1 -1
- package/dist/sdkEntry.js +5 -6
- package/dist/sdkEntry.js.map +1 -1
- package/package.json +2 -2
- package/dist/factory/unit/point.d.ts +0 -10
- package/dist/factory/unit/point.js +0 -72
- package/dist/factory/unit/point.js.map +0 -1
package/dist/factory/3d.js
CHANGED
|
@@ -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 { AdditiveBlending, Color,
|
|
8
|
+
import { AdditiveBlending, Color, InteractionManager, LoadingManager, Mesh, ModelLoader, PlaneGeometry, RepeatWrapping, ShaderChunk, ShaderMaterial, TextureLoader, Vector2, Vector3, Vector4, lib, use, utils } from '@anov/3d-core';
|
|
9
9
|
import { Camera } from '@anov/3d-ability';
|
|
10
10
|
import { finirMaterialV1 } from "./utils/finirMaterial";
|
|
11
11
|
import handleUnit, { toggleTag as _toggleTag } from "./unit";
|
|
@@ -16,10 +16,10 @@ import createRiseLayer from "./unit/layer/rise";
|
|
|
16
16
|
import { targetProgresspoints } from "./unit/inspection/lineData";
|
|
17
17
|
import frag from "./unit/glsl/heat/frag";
|
|
18
18
|
import vert from "./unit/glsl/heat/ver";
|
|
19
|
-
var vertexShader = "\n".concat(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 ").concat(ShaderChunk.logdepthbuf_vertex, "\n }\n");
|
|
19
|
+
var vertexShader = /* glsl */"\n".concat(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 ").concat(ShaderChunk.logdepthbuf_vertex, "\n }\n");
|
|
20
20
|
|
|
21
21
|
// Fragment shader
|
|
22
|
-
var fragmentShader = "\n ".concat(ShaderChunk.logdepthbuf_pars_fragment, " \n\n
|
|
22
|
+
var fragmentShader = /* glsl */"\n ".concat(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 ").concat(ShaderChunk.logdepthbuf_fragment, "\n }\n");
|
|
23
23
|
export var loadingManager = new LoadingManager();
|
|
24
24
|
var load = new ModelLoader(loadingManager);
|
|
25
25
|
var rgbeLoader = new lib.RGBELoader(loadingManager);
|
|
@@ -142,6 +142,10 @@ var Factory3D = /*#__PURE__*/function () {
|
|
|
142
142
|
|
|
143
143
|
gltf.scene.traverse(function (child) {
|
|
144
144
|
child.layers.enable(5);
|
|
145
|
+
if (child.type === 'Mesh') {
|
|
146
|
+
child.castShadow = true;
|
|
147
|
+
child.receiveShadow = true;
|
|
148
|
+
}
|
|
145
149
|
});
|
|
146
150
|
scene.add(_this.realTreeModel);
|
|
147
151
|
return gltf;
|
|
@@ -158,6 +162,9 @@ var Factory3D = /*#__PURE__*/function () {
|
|
|
158
162
|
loadingManager.onLoad = function () {
|
|
159
163
|
resolve('success');
|
|
160
164
|
};
|
|
165
|
+
|
|
166
|
+
// initPostEffects(scene.scene, scene.renderer, scene.camera, { type: 'main' })
|
|
167
|
+
|
|
161
168
|
scene.renderer.toneMappingExposure = 0.4;
|
|
162
169
|
});
|
|
163
170
|
}
|
|
@@ -180,6 +187,10 @@ var Factory3D = /*#__PURE__*/function () {
|
|
|
180
187
|
|
|
181
188
|
gltf.scene.traverse(function (child) {
|
|
182
189
|
child.layers.enable(5);
|
|
190
|
+
if (child.type === 'Mesh') {
|
|
191
|
+
child.castShadow = true;
|
|
192
|
+
child.receiveShadow = true;
|
|
193
|
+
}
|
|
183
194
|
});
|
|
184
195
|
handleUnit.call(_this2);
|
|
185
196
|
return gltf;
|
|
@@ -298,13 +309,6 @@ var Factory3D = /*#__PURE__*/function () {
|
|
|
298
309
|
_this2.realGroundModel = gltf.scene;
|
|
299
310
|
return gltf;
|
|
300
311
|
});
|
|
301
|
-
rgbeLoader.setPath("".concat(this.usePath)).load('demo.hdr', function (texture) {
|
|
302
|
-
texture.mapping = EquirectangularReflectionMapping;
|
|
303
|
-
texture.colorSpace = SRGBColorSpace;
|
|
304
|
-
_this2.boxSkeyTexture = texture;
|
|
305
|
-
_this2.scene.scene.environment = texture;
|
|
306
|
-
_this2.scene.scene.background = new Color('#ccc');
|
|
307
|
-
});
|
|
308
312
|
}
|
|
309
313
|
|
|
310
314
|
/**
|
|
@@ -332,7 +336,6 @@ var Factory3D = /*#__PURE__*/function () {
|
|
|
332
336
|
this.realGroundModel && (this.realGroundModel.visible = true);
|
|
333
337
|
this.realTreeModel && (this.realTreeModel.visible = true);
|
|
334
338
|
this.scene.scene.background = new Color('#ccc');
|
|
335
|
-
this.scene.scene.environment = this.boxSkeyTexture;
|
|
336
339
|
this.scene.renderer.toneMappingExposure = 0.4;
|
|
337
340
|
}
|
|
338
341
|
}
|
package/dist/factory/3d.js.map
CHANGED
|
@@ -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","targetProgresspoints","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","traverse","child","enable","add","interactionManager","renderer","domElement","storeManagement","useframe","update","loadModel","onLoad","toneMappingExposure","visible","style","realModl","call","group","type","name","geometry","plane","rotation","x","Math","PI","position","renderOrder","scale","text","blending","opacity","depthTest","map","offset","tech","techModel","targerMeshName","Object","values","v","lookAt","texture1","texture2","uvScale","includes","thermaLimaging","pipeline","realGroundModel","setPath","texture","mapping","colorSpace","boxSkeyTexture","environment","background","params","tag","apply","forEach","eventKey","on","args","eventHandleFn","get","fn","viewType","cutoutCamera","inspection","minCamera","mapCamera","mainCamera","emit","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'\nimport { targetProgresspoints } from './unit/inspection/lineData'\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 mainCamera: any\n\n interactionManager: InteractionManager\n\n constructor(option: factory3dOption) {\n this.option = option\n this.globalEventsAgent()\n factoryGlobalObject.setFactory(this)\n }\n\n /**\n * render factory 3d scene\n */\n renderScene(scene: SceneControl) {\n 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\n gltf.scene.traverse((child) => {\n child.layers.enable(5)\n })\n\n scene.add(this.realTreeModel)\n\n return gltf\n })\n\n const interactionManager = new InteractionManager(\n this.scene.renderer,\n this.scene.camera,\n this.scene.renderer.domElement, // Modified By LM this.scene.cssRenderer.cssRenderer.domElement,\n )\n\n this.interactionManager = interactionManager\n\n utils.storeManagement.set('interactionManager', interactionManager)\n\n use.useframe(() => {\n interactionManager.update()\n })\n\n this.loadModel()\n\n loadingManager.onLoad = () => {\n resolve('success')\n }\n\n 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 gltf.scene.traverse((child) => {\n child.layers.enable(5)\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 const targerMeshName = Object.values(targetProgresspoints).map(v => v.lookAt)\n\n // thermaLimaging model\n load.loadGLTF(`${this.usePath}2222.glb`, false, true, './draco/', (gltf) => {\n const group = gltf.scene\n group.traverse((child) => {\n if (child.type === 'Mesh') {\n // @ts-ignore\n child.material = new ShaderMaterial({\n vertexShader: vert,\n fragmentShader: frag,\n uniforms: {\n texture1: { value: new TextureLoader(this.loadingManager).load(`${this.usePath}test01.jpg`) },\n texture2: { value: new TextureLoader(this.loadingManager).load(`${this.usePath}test02.jpg`) },\n uvScale: { value: new Vector2(1, 1) },\n },\n })\n\n child.layers.set(2)\n\n if (targerMeshName.includes(child.name))\n // @ts-ignore\n child.material.depthTest = false\n }\n })\n\n 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(viewType?: string) {\n if (this.tag !== SceneTag['smart-inspection'])\n return\n\n if (viewType) {\n if (viewType === 'Drone') {\n if (this.scene.cutoutCamera === this.inspection.minCamera) {\n const cutoutCamera = this.inspection.minCamera\n\n this.scene.cutoutCamera = this.inspection.mapCamera\n this.mainCamera = this.scene.camera\n this.scene.camera = cutoutCamera\n\n utils.emitter.emit('play')\n utils.emitter.emit('toggleView', 'Drone')\n }\n }\n\n if (viewType === 'Global') {\n if (this.scene.cutoutCamera !== this.inspection.minCamera) {\n const mainCamera = this.mainCamera\n const cutoutCamera = this.inspection.minCamera\n\n this.scene.camera = mainCamera\n this.scene.cutoutCamera = cutoutCamera\n\n utils.emitter.emit('stop')\n utils.emitter.emit('toggleView', 'Global')\n }\n }\n }\n else {\n // toggle to min camera\n if (this.scene.cutoutCamera === this.inspection.minCamera) {\n const cutoutCamera = this.inspection.minCamera\n\n this.scene.cutoutCamera = this.inspection.mapCamera\n\n this.mainCamera = this.scene.camera\n this.scene.camera = cutoutCamera\n\n utils.emitter.emit('play')\n utils.emitter.emit('toggleView', 'Drone')\n }\n else {\n // toggle to main camera\n const mainCamera = this.mainCamera\n const cutoutCamera = this.inspection.minCamera\n\n this.scene.camera = mainCamera\n this.scene.cutoutCamera = cutoutCamera\n\n utils.emitter.emit('stop')\n utils.emitter.emit('toggleView', 'Global')\n }\n }\n }\n\n addEventListener(eventName: string, handleFn: (args?: any) => void) {\n if (this.eventHandleFn.get(eventName))\n this.eventHandleFn.get(eventName).push(handleFn)\n\n else\n this.eventHandleFn.set(eventName, [handleFn])\n }\n}\n\nexport default Factory3D"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["AdditiveBlending","Color","InteractionManager","LoadingManager","Mesh","ModelLoader","PlaneGeometry","RepeatWrapping","ShaderChunk","ShaderMaterial","TextureLoader","Vector2","Vector3","Vector4","lib","use","utils","Camera","finirMaterialV1","handleUnit","toggleTag","globalEvents","SceneStyle","SceneTag","factoryGlobalObject","createRiseLayer","targetProgresspoints","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","traverse","child","enable","type","castShadow","receiveShadow","add","interactionManager","renderer","domElement","storeManagement","useframe","update","loadModel","onLoad","toneMappingExposure","visible","style","realModl","call","group","name","geometry","plane","rotation","x","Math","PI","position","renderOrder","scale","text","blending","opacity","depthTest","map","offset","tech","techModel","targerMeshName","Object","values","v","lookAt","texture1","texture2","uvScale","includes","thermaLimaging","pipeline","realGroundModel","params","background","tag","apply","forEach","eventKey","on","args","eventHandleFn","get","fn","viewType","cutoutCamera","inspection","minCamera","mapCamera","mainCamera","emit","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'\nimport { targetProgresspoints } from './unit/inspection/lineData'\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 = /* glsl */`\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 = /* glsl */`\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 mainCamera: any\n\n interactionManager: InteractionManager\n\n constructor(option: factory3dOption) {\n this.option = option\n this.globalEventsAgent()\n factoryGlobalObject.setFactory(this)\n }\n\n /**\n * render factory 3d scene\n */\n renderScene(scene: SceneControl) {\n 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\n gltf.scene.traverse((child) => {\n child.layers.enable(5)\n\n if (child.type === 'Mesh') {\n child.castShadow = true\n child.receiveShadow = true\n }\n })\n\n scene.add(this.realTreeModel)\n\n return gltf\n })\n\n const interactionManager = new InteractionManager(\n this.scene.renderer,\n this.scene.camera,\n this.scene.renderer.domElement, // Modified By LM this.scene.cssRenderer.cssRenderer.domElement,\n )\n\n this.interactionManager = interactionManager\n\n utils.storeManagement.set('interactionManager', interactionManager)\n\n use.useframe(() => {\n interactionManager.update()\n })\n\n this.loadModel()\n\n loadingManager.onLoad = () => {\n resolve('success')\n }\n\n // initPostEffects(scene.scene, scene.renderer, scene.camera, { type: 'main' })\n\n scene.renderer.toneMappingExposure = 0.4\n })\n }\n\n private loadModel() {\n // real model\n load.loadGLTF(`${this.usePath}222.glb`, false, true, './draco/', (gltf) => {\n this.scene.add(gltf.scene)\n\n gltf.scene.visible = SceneStyle.real === this.style\n\n this.realModl = gltf.scene as Group\n\n // this.interactionManager.add(gltf.scene)\n\n // gltf.scene.addEventListener('click', (value) => {\n // console.log(value.point)\n // this.position = value.point\n // })\n\n gltf.scene.traverse((child) => {\n child.layers.enable(5)\n\n if (child.type === 'Mesh') {\n child.castShadow = true\n child.receiveShadow = true\n }\n })\n\n handleUnit.call(this)\n\n return gltf\n })\n\n // tech model\n load.loadGLTF(`${this.usePath}2222.glb`, false, true, './draco/', (gltf) => {\n const group = gltf.scene\n\n use.useframe(() => {\n if (uniforms._Time.value > 0.5)\n uniforms._Time.value = 0\n\n uniforms._Time.value += 0.0008\n })\n\n group.traverse((child) => {\n // @ts-ignore\n if (child.type === 'Mesh') {\n if (child.name === '柱体') {\n // @ts-ignore\n child.visible = false\n const geometry = new PlaneGeometry(3000, 2000)\n const plane = new Mesh(geometry, material)\n plane.rotation.x = -Math.PI / 2\n\n plane.position.set(0, -1.5, 0)\n plane.renderOrder = -1\n\n group.add(plane)\n }\n\n else {\n // @ts-ignore\n child.material = finirMaterialV1\n }\n }\n })\n\n load.loadGLTF(`${this.usePath}plane.glb`, false, true, './draco/', (gltf) => {\n gltf.scene.scale.set(0.5, 0.5, 0.5)\n\n const text = new TextureLoader().load(`${this.usePath}roll.png`)\n\n text.wrapS = RepeatWrapping\n text.wrapT = RepeatWrapping\n\n text.repeat.set(1, 1)\n\n gltf.scene.traverse((child) => {\n if (child.type === 'Mesh') {\n // @ts-ignore\n child.material.blending = AdditiveBlending\n // @ts-ignore\n child.material.transparent = true\n // @ts-ignore\n child.material.opacity = 1\n // @ts-ignore\n child.material.depthTest = true\n\n // @ts-ignore\n child.material.map = text\n }\n })\n\n use.useframe(() => {\n text.offset.x += 0.01\n })\n\n group.add(gltf.scene)\n\n return gltf\n })\n\n createRiseLayer()\n\n this.scene.add(group)\n\n group.visible = SceneStyle.tech === this.style\n this.techModel = group as Group\n\n return gltf\n })\n\n const targerMeshName = Object.values(targetProgresspoints).map(v => v.lookAt)\n\n // thermaLimaging model\n load.loadGLTF(`${this.usePath}2222.glb`, false, true, './draco/', (gltf) => {\n const group = gltf.scene\n group.traverse((child) => {\n if (child.type === 'Mesh') {\n // @ts-ignore\n child.material = new ShaderMaterial({\n vertexShader: vert,\n fragmentShader: frag,\n uniforms: {\n texture1: { value: new TextureLoader(this.loadingManager).load(`${this.usePath}test01.jpg`) },\n texture2: { value: new TextureLoader(this.loadingManager).load(`${this.usePath}test02.jpg`) },\n uvScale: { value: new Vector2(1, 1) },\n },\n })\n\n child.layers.set(2)\n\n if (targerMeshName.includes(child.name))\n // @ts-ignore\n child.material.depthTest = false\n }\n })\n\n 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 }\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.renderer.toneMappingExposure = 0.4\n }\n }\n\n public toggleTag(tag: SceneTag) {\n if (this.tag === tag)\n return\n toggleTag[tag].apply(this, [this])\n }\n\n private globalEventsAgent() {\n globalEvents.forEach((eventKey) => {\n emitter.on(eventKey, (args) => {\n this.eventHandleFn.get(eventKey)?.forEach((fn) => {\n fn(args)\n })\n })\n })\n }\n\n /**\n * toggle view\n */\n toggleView(viewType?: string) {\n if (this.tag !== SceneTag['smart-inspection'])\n return\n\n if (viewType) {\n if (viewType === 'Drone') {\n if (this.scene.cutoutCamera === this.inspection.minCamera) {\n const cutoutCamera = this.inspection.minCamera\n\n this.scene.cutoutCamera = this.inspection.mapCamera\n this.mainCamera = this.scene.camera\n this.scene.camera = cutoutCamera\n\n utils.emitter.emit('play')\n utils.emitter.emit('toggleView', 'Drone')\n }\n }\n\n if (viewType === 'Global') {\n if (this.scene.cutoutCamera !== this.inspection.minCamera) {\n const mainCamera = this.mainCamera\n const cutoutCamera = this.inspection.minCamera\n\n this.scene.camera = mainCamera\n this.scene.cutoutCamera = cutoutCamera\n\n utils.emitter.emit('stop')\n utils.emitter.emit('toggleView', 'Global')\n }\n }\n }\n else {\n // toggle to min camera\n if (this.scene.cutoutCamera === this.inspection.minCamera) {\n const cutoutCamera = this.inspection.minCamera\n\n this.scene.cutoutCamera = this.inspection.mapCamera\n\n this.mainCamera = this.scene.camera\n this.scene.camera = cutoutCamera\n\n utils.emitter.emit('play')\n utils.emitter.emit('toggleView', 'Drone')\n }\n else {\n // toggle to main camera\n const mainCamera = this.mainCamera\n const cutoutCamera = this.inspection.minCamera\n\n this.scene.camera = mainCamera\n this.scene.cutoutCamera = cutoutCamera\n\n utils.emitter.emit('stop')\n utils.emitter.emit('toggleView', 'Global')\n }\n }\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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"}
|
|
@@ -21,7 +21,11 @@ var cylinderData = [{
|
|
|
21
21
|
color: new Color('#FED602').getHex(),
|
|
22
22
|
points: regionMap.reform.poi.position,
|
|
23
23
|
height: 80,
|
|
24
|
-
areaLabel: '重整装置区'
|
|
24
|
+
areaLabel: '重整装置区',
|
|
25
|
+
cameraPosition: {
|
|
26
|
+
target: [-314.011126, 0.55002, -146.543503],
|
|
27
|
+
position: [-312.394914, 257.245626, 47.197057]
|
|
28
|
+
}
|
|
25
29
|
}, {
|
|
26
30
|
label: '7人',
|
|
27
31
|
id: '2',
|
|
@@ -31,7 +35,11 @@ var cylinderData = [{
|
|
|
31
35
|
color: new Color('#FED602').getHex(),
|
|
32
36
|
points: regionMap.reduction.poi.position,
|
|
33
37
|
height: 70,
|
|
34
|
-
areaLabel: '常减压装置区'
|
|
38
|
+
areaLabel: '常减压装置区',
|
|
39
|
+
cameraPosition: {
|
|
40
|
+
target: [31.316545, 0.550012, -130.972087],
|
|
41
|
+
position: [34.239022, 267.62292, 62.561665]
|
|
42
|
+
}
|
|
35
43
|
}, {
|
|
36
44
|
label: '4人',
|
|
37
45
|
id: '3',
|
|
@@ -41,7 +49,11 @@ var cylinderData = [{
|
|
|
41
49
|
color: new Color('#FED602').getHex(),
|
|
42
50
|
points: regionMap.crudeOil.poi.position,
|
|
43
51
|
height: 40,
|
|
44
|
-
areaLabel: '原油罐区'
|
|
52
|
+
areaLabel: '原油罐区',
|
|
53
|
+
cameraPosition: {
|
|
54
|
+
target: [353.973508, 0.550011, -125.345886],
|
|
55
|
+
position: [353.432421, 201.482934, 32.729098]
|
|
56
|
+
}
|
|
45
57
|
}, {
|
|
46
58
|
label: '10人',
|
|
47
59
|
id: '4',
|
|
@@ -51,7 +63,11 @@ var cylinderData = [{
|
|
|
51
63
|
color: new Color('#FED602').getHex(),
|
|
52
64
|
points: regionMap.catalyticCracking.poi.position,
|
|
53
65
|
height: 100,
|
|
54
|
-
areaLabel: '催化裂化装置区'
|
|
66
|
+
areaLabel: '催化裂化装置区',
|
|
67
|
+
cameraPosition: {
|
|
68
|
+
target: [-322.573001, 0.550014, 31.815163],
|
|
69
|
+
position: [-320.957427, 257.144259, 225.47922]
|
|
70
|
+
}
|
|
55
71
|
}, {
|
|
56
72
|
label: '3人',
|
|
57
73
|
id: '5',
|
|
@@ -61,7 +77,11 @@ var cylinderData = [{
|
|
|
61
77
|
color: new Color('#FED602').getHex(),
|
|
62
78
|
points: regionMap.hydrocrackingUnit.poi.position,
|
|
63
79
|
height: 30,
|
|
64
|
-
areaLabel: '加氢裂化装置区'
|
|
80
|
+
areaLabel: '加氢裂化装置区',
|
|
81
|
+
cameraPosition: {
|
|
82
|
+
target: [-307.049915, 0.550014, 168.905777],
|
|
83
|
+
position: [-305.525588, 240.704876, 351.631836]
|
|
84
|
+
}
|
|
65
85
|
}, {
|
|
66
86
|
label: '8人',
|
|
67
87
|
id: '6',
|
|
@@ -71,7 +91,11 @@ var cylinderData = [{
|
|
|
71
91
|
color: new Color('#FED602').getHex(),
|
|
72
92
|
points: regionMap.cokingUnit.poi.position,
|
|
73
93
|
height: 80,
|
|
74
|
-
areaLabel: '焦化装置区'
|
|
94
|
+
areaLabel: '焦化装置区',
|
|
95
|
+
cameraPosition: {
|
|
96
|
+
target: [92.780379, 0.550012, 106.726765],
|
|
97
|
+
position: [96.849312, 372.392759, 376.181734]
|
|
98
|
+
}
|
|
75
99
|
}, {
|
|
76
100
|
label: '20人',
|
|
77
101
|
id: '7',
|
|
@@ -81,7 +105,11 @@ var cylinderData = [{
|
|
|
81
105
|
color: new Color('#FED602').getHex(),
|
|
82
106
|
points: regionMap.administrative.poi.position,
|
|
83
107
|
height: 150,
|
|
84
|
-
areaLabel: '办公区'
|
|
108
|
+
areaLabel: '办公区',
|
|
109
|
+
cameraPosition: {
|
|
110
|
+
target: [416.932569, 0.550009, 85.100115],
|
|
111
|
+
position: [567.413903, 236.090124, 82.586741]
|
|
112
|
+
}
|
|
85
113
|
}];
|
|
86
114
|
var CylinderManage = /*#__PURE__*/function () {
|
|
87
115
|
function CylinderManage(gobal, options) {
|
|
@@ -122,9 +150,11 @@ var CylinderManage = /*#__PURE__*/function () {
|
|
|
122
150
|
interactionManager.add(group);
|
|
123
151
|
var handleClick = function handleClick() {
|
|
124
152
|
if (_this2.gobal.style === SceneStyle.real || group.visible === false) return;
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
153
|
+
|
|
154
|
+
// @ts-ignore
|
|
155
|
+
_this2.gobal.cameraUtil.set({
|
|
156
|
+
target: item.cameraPosition.target,
|
|
157
|
+
position: item.cameraPosition.position
|
|
128
158
|
}).then(function () {
|
|
129
159
|
emitter.emit('peoplemanagement-camera-enter', item);
|
|
130
160
|
_this2.setVisible();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BoxGeometry","Color","Group","Mesh","ShaderMaterial","Vector3","globalObjectManage","use","utils","createFontMesh","SceneStyle","SceneTag","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","emit","cameraRemoveListener","scene","option","forEach","item","cylinder","getMesh","group","name","visible","copy","fromArray","interactionManager","storeManagement","add","handleClick","style","real","cameraUtil","focus","target","pitch","then","setVisible","currentGroup","cylinderMesh","regionPlane","planeMesh","addEventListener","tag","set","font","font2","fontPromiseAll","Promise","all","meshArr","mesh","geometry","center","useframe","camera","controlAddListener","bar","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, SceneTag } 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 this.gobal.cameraUtil.focus({ target: item.area, pitch: 0 }).then(() => {\n emitter.emit('peoplemanagement-camera-enter', item)\n this.setVisible()\n\n const currentGroup = this.cylinderMesh.get(item.belongTo) as Group\n currentGroup.visible = false\n\n this.currentoperate = item.belongTo\n })\n }\n\n // @ts-ignore\n (this.gobal.regionPlane.planeMesh as Map<string, Object3D>).get(item.id).addEventListener('click', () => {\n if (this.gobal.tag === SceneTag['people-management'])\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 setVisible(visible = true) {\n // 控制CYCLE的隐藏、显示\n this.cylinderMesh.forEach((bar) => {\n bar.visible = visible\n })\n }\n\n getMesh(data) {\n const width = 10\n\n const geometry = new BoxGeometry(width, data.height, width)\n\n const gradientMaterial = new ShaderMaterial({\n transparent: true,\n depthTest: false,\n uniforms: {\n intensity: { value: 1.0 },\n },\n vertexShader: `\n varying vec2 vUv;\n varying vec3 vNormal;\n void main()\n {\n vUv = uv;\n vNormal =normalize( normal ) ;\n vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n gl_Position = projectionMatrix * mvPosition;\n }\n \n `,\n fragmentShader: `\n \n varying vec3 vNormal;\n varying vec2 vUv;\n uniform float intensity;\n\n void main( void ) {\n \n float colX =clamp( vUv.y+0.3,0.,1.);\n\n if(vNormal.y >0.5)\n {\n colX=1.;\n }\n if(vNormal.y <-0.5)\n {\n colX=0.;\n }\n\n vec4 col = vec4 (1.,mix(0.2,0.8,colX),0.,1.);\n\n gl_FragColor=col*colX*intensity;\n }\n `,\n\n })\n\n // 创建渐变立方体\n const cylinder = new Mesh(geometry, gradientMaterial)\n cylinder.rotateY(Math.PI / 2)\n return cylinder\n }\n\n private cameraListenerHandle = () => {\n const currentCameraPosition = this.gobal.control.object.position\n const box = this.gobal.areaBoundingBox.boundingBoxMap.get(this.currentoperate)\n const iscollision = collisionDetection(box, currentCameraPosition)\n if (!iscollision) {\n emitter.emit('peoplemanagement-camera-out', {\n belongTo: this.currentoperate,\n })\n\n this.cameraRemoveListener()\n }\n }\n\n private cameraAddListener() {\n this.gobal.control.addEventListener('change', this.cameraListenerHandle)\n }\n\n private controlAddListener() {\n 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","SceneTag","regionMap","collisionDetection","lookAtOnYAxis","emitter","cylinderData","label","id","title","reform","belongTo","area","color","getHex","points","poi","position","height","areaLabel","cameraPosition","target","reduction","crudeOil","catalyticCracking","hydrocrackingUnit","cokingUnit","administrative","CylinderManage","gobal","options","Map","currentCameraPosition","control","object","box","areaBoundingBox","boundingBoxMap","get","currentoperate","iscollision","emit","cameraRemoveListener","scene","option","forEach","item","cylinder","getMesh","group","name","visible","copy","fromArray","interactionManager","storeManagement","add","handleClick","style","real","cameraUtil","set","then","setVisible","currentGroup","cylinderMesh","regionPlane","planeMesh","addEventListener","tag","font","font2","fontPromiseAll","Promise","all","meshArr","mesh","geometry","center","useframe","camera","controlAddListener","bar","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, SceneTag } 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 cameraPosition: {\n target: [\n -314.011126,\n 0.55002,\n -146.543503,\n ],\n position: [\n -312.394914,\n 257.245626,\n 47.197057,\n ],\n },\n },\n {\n label: '7人',\n id: '2',\n title: regionMap.reduction.title,\n belongTo: regionMap.reduction.id,\n area: regionMap.reduction.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.reduction.poi.position,\n height: 70,\n areaLabel: '常减压装置区',\n cameraPosition: {\n target: [\n 31.316545,\n 0.550012,\n -130.972087,\n ],\n position: [\n 34.239022,\n 267.62292,\n 62.561665,\n ],\n },\n },\n {\n label: '4人',\n id: '3',\n title: regionMap.crudeOil.title,\n belongTo: regionMap.crudeOil.id,\n area: regionMap.crudeOil.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.crudeOil.poi.position,\n height: 40,\n areaLabel: '原油罐区',\n cameraPosition: {\n target: [\n 353.973508,\n 0.550011,\n -125.345886,\n ],\n position: [\n 353.432421,\n 201.482934,\n 32.729098,\n ],\n },\n },\n {\n label: '10人',\n id: '4',\n title: regionMap.catalyticCracking.title,\n belongTo: regionMap.catalyticCracking.id,\n area: regionMap.catalyticCracking.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.catalyticCracking.poi.position,\n height: 100,\n areaLabel: '催化裂化装置区',\n cameraPosition: {\n target: [\n -322.573001,\n 0.550014,\n 31.815163,\n ],\n position: [\n -320.957427,\n 257.144259,\n 225.47922,\n ],\n },\n },\n {\n label: '3人',\n id: '5',\n title: regionMap.hydrocrackingUnit.title,\n belongTo: regionMap.hydrocrackingUnit.id,\n area: regionMap.hydrocrackingUnit.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.hydrocrackingUnit.poi.position,\n height: 30,\n areaLabel: '加氢裂化装置区',\n cameraPosition: {\n target: [\n -307.049915,\n 0.550014,\n 168.905777,\n ],\n position: [\n -305.525588,\n 240.704876,\n 351.631836,\n ],\n },\n },\n {\n label: '8人',\n id: '6',\n title: regionMap.cokingUnit.title,\n belongTo: regionMap.cokingUnit.id,\n area: regionMap.cokingUnit.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.cokingUnit.poi.position,\n height: 80,\n areaLabel: '焦化装置区',\n cameraPosition: {\n target: [\n 92.780379,\n 0.550012,\n 106.726765,\n ],\n position: [\n 96.849312,\n 372.392759,\n 376.181734,\n ],\n },\n },\n {\n label: '20人',\n id: '7',\n title: regionMap.administrative.title,\n belongTo: regionMap.administrative.id,\n area: regionMap.administrative.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.administrative.poi.position,\n height: 150,\n areaLabel: '办公区',\n cameraPosition: {\n target: [\n 416.932569,\n 0.550009,\n 85.100115,\n ],\n position: [\n 567.413903,\n 236.090124,\n 82.586741,\n ],\n },\n },\n]\n\ntype CylinderManageOption = {\n visible?: boolean\n}\n\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.cameraUtil.set({ target: item.cameraPosition.target, position: item.cameraPosition.position }).then(() => {\n emitter.emit('peoplemanagement-camera-enter', item)\n this.setVisible()\n\n const currentGroup = this.cylinderMesh.get(item.belongTo) as Group\n currentGroup.visible = false\n\n this.currentoperate = item.belongTo\n })\n }\n\n // @ts-ignore\n (this.gobal.regionPlane.planeMesh as Map<string, Object3D>).get(item.id).addEventListener('click', () => {\n if (this.gobal.tag === SceneTag['people-management'])\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 setVisible(visible = true) {\n // 控制CYCLE的隐藏、显示\n this.cylinderMesh.forEach((bar) => {\n bar.visible = visible\n })\n }\n\n getMesh(data) {\n const width = 10\n\n const geometry = new BoxGeometry(width, data.height, width)\n\n const gradientMaterial = new ShaderMaterial({\n transparent: true,\n depthTest: false,\n uniforms: {\n intensity: { value: 1.0 },\n },\n vertexShader: `\n varying vec2 vUv;\n varying vec3 vNormal;\n void main()\n {\n vUv = uv;\n vNormal =normalize( normal ) ;\n vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n gl_Position = projectionMatrix * mvPosition;\n }\n \n `,\n fragmentShader: `\n \n varying vec3 vNormal;\n varying vec2 vUv;\n uniform float intensity;\n\n void main( void ) {\n \n float colX =clamp( vUv.y+0.3,0.,1.);\n\n if(vNormal.y >0.5)\n {\n colX=1.;\n }\n if(vNormal.y <-0.5)\n {\n colX=0.;\n }\n\n vec4 col = vec4 (1.,mix(0.2,0.8,colX),0.,1.);\n\n gl_FragColor=col*colX*intensity;\n }\n `,\n\n })\n\n // 创建渐变立方体\n const cylinder = new Mesh(geometry, gradientMaterial)\n cylinder.rotateY(Math.PI / 2)\n return cylinder\n }\n\n private cameraListenerHandle = () => {\n const currentCameraPosition = this.gobal.control.object.position\n const box = this.gobal.areaBoundingBox.boundingBoxMap.get(this.currentoperate)\n const iscollision = collisionDetection(box, currentCameraPosition)\n if (!iscollision) {\n emitter.emit('peoplemanagement-camera-out', {\n belongTo: this.currentoperate,\n })\n\n this.cameraRemoveListener()\n }\n }\n\n private cameraAddListener() {\n this.gobal.control.addEventListener('change', this.cameraListenerHandle)\n }\n\n private controlAddListener() {\n 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,5 +1,6 @@
|
|
|
1
1
|
import { Mesh } from '@anov/3d-core';
|
|
2
2
|
import type { Object3D } from '@anov/3d-core';
|
|
3
|
+
import type { createBloomSelectedTool } from '@anov/3d-ability';
|
|
3
4
|
import type Factory3D from '../3d';
|
|
4
5
|
declare class DistrictLineManage {
|
|
5
6
|
private gobal;
|
|
@@ -7,6 +8,7 @@ declare class DistrictLineManage {
|
|
|
7
8
|
readonly lineMesh: Map<string, Object3D>;
|
|
8
9
|
activeLine: Mesh;
|
|
9
10
|
color: string;
|
|
11
|
+
bloomSelected: ReturnType<typeof createBloomSelectedTool>['bloomSelected'];
|
|
10
12
|
isShow: boolean;
|
|
11
13
|
constructor(gobal: Factory3D);
|
|
12
14
|
generateLine(): void;
|
|
@@ -19,9 +19,20 @@ var DistrictLineManage = /*#__PURE__*/function () {
|
|
|
19
19
|
_defineProperty(this, "lineMesh", new Map());
|
|
20
20
|
_defineProperty(this, "activeLine", void 0);
|
|
21
21
|
_defineProperty(this, "color", '#94786c');
|
|
22
|
+
_defineProperty(this, "bloomSelected", void 0);
|
|
22
23
|
_defineProperty(this, "isShow", false);
|
|
23
24
|
this.gobal = gobal;
|
|
24
25
|
this.scene = gobal.scene.scene;
|
|
26
|
+
|
|
27
|
+
// const { bloomSelected } = createBloomSelectedTool(
|
|
28
|
+
// {
|
|
29
|
+
// strength: 2.8,
|
|
30
|
+
// radius: 0.4,
|
|
31
|
+
// threshold: 0,
|
|
32
|
+
// },
|
|
33
|
+
// )
|
|
34
|
+
|
|
35
|
+
// this.bloomSelected = bloomSelected
|
|
25
36
|
}
|
|
26
37
|
_createClass(DistrictLineManage, [{
|
|
27
38
|
key: "generateLine",
|
|
@@ -59,6 +70,8 @@ var DistrictLineManage = /*#__PURE__*/function () {
|
|
|
59
70
|
return _ref.apply(this, arguments);
|
|
60
71
|
};
|
|
61
72
|
}());
|
|
73
|
+
|
|
74
|
+
// this.bloomSelected([...this.lineMesh.values()])
|
|
62
75
|
}
|
|
63
76
|
}, {
|
|
64
77
|
key: "setHighLightLine",
|
|
@@ -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","setMeshMaterial","activeLine","get","removeFromParent","remove","clear","removeHighLightLine"],"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 activeLine: Mesh\n color = '#94786c'\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: this.color })\n const mesh = new Mesh(geometry, material)\n this.scene.add(mesh)\n this.lineMesh.set(region.id, mesh)\n })\n }\n\n setHighLightLine(id) {\n this.setMeshMaterial(this.activeLine)\n this.activeLine = (this.lineMesh.get(id) as Mesh)\n this.setMeshMaterial(this.activeLine, '#f2ca0c')\n }\n\n setMeshMaterial(mesh, color = this.color) {\n if (mesh)\n mesh.material = new MeshBasicMaterial({ color })\n }\n\n removeHighLightLine() {\n this.setMeshMaterial(this.activeLine)\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 this.removeHighLightLine()\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;
|
|
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","setMeshMaterial","activeLine","get","removeFromParent","remove","clear","removeHighLightLine"],"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 type { createBloomSelectedTool } from '@anov/3d-ability'\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 activeLine: Mesh\n color = '#94786c'\n\n bloomSelected: ReturnType<typeof createBloomSelectedTool>['bloomSelected']\n isShow = false\n\n constructor(gobal: Factory3D) {\n this.gobal = gobal\n this.scene = gobal.scene.scene\n\n // const { bloomSelected } = createBloomSelectedTool(\n // {\n // strength: 2.8,\n // radius: 0.4,\n // threshold: 0,\n // },\n // )\n\n // this.bloomSelected = bloomSelected\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: this.color })\n const mesh = new Mesh(geometry, material)\n\n this.scene.add(mesh)\n this.lineMesh.set(region.id, mesh)\n })\n\n // this.bloomSelected([...this.lineMesh.values()])\n }\n\n setHighLightLine(id) {\n this.setMeshMaterial(this.activeLine)\n this.activeLine = (this.lineMesh.get(id) as Mesh)\n this.setMeshMaterial(this.activeLine, '#f2ca0c')\n }\n\n setMeshMaterial(mesh, color = this.color) {\n if (mesh)\n mesh.material = new MeshBasicMaterial({ color })\n }\n\n removeHighLightLine() {\n this.setMeshMaterial(this.activeLine)\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 this.removeHighLightLine()\n }\n}\n\nexport default DistrictLineManage"],"mappings":"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"}
|
|
@@ -24,6 +24,13 @@ var HandlerManage = /*#__PURE__*/function () {
|
|
|
24
24
|
_classCallCheck(this, HandlerManage);
|
|
25
25
|
_defineProperty(this, "app", void 0);
|
|
26
26
|
this.app = app;
|
|
27
|
+
|
|
28
|
+
// @ts-ignore
|
|
29
|
+
this.app.environment.sun.children[0].layers.enable(5);
|
|
30
|
+
// @ts-ignore
|
|
31
|
+
this.app.environment.setTime({
|
|
32
|
+
time: 1000
|
|
33
|
+
});
|
|
27
34
|
}
|
|
28
35
|
_createClass(HandlerManage, [{
|
|
29
36
|
key: "clickPerson",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["map","HF","HPU","LLCV","CMP1","CMP2","invertMap","HandlerManage","app","params","click","id","title","caseInstance","cameraPoi","closeHotmap","cylinder","setVisible","circle","remove","districtLine","removeHighLightLine","name","object","sceneControl","scene","getObjectByName","console","log","dispatchEvent","type","target","inspection","goToInspectionTarget","inspectionObject","stop","contineMove","setSelectedAnchorObject","toggleView","viewType"],"sources":["../../../src/factory/unit/handle.ts"],"sourcesContent":["import { regionMap } from '../regionData'\nimport type Anov3D from '../../sdkEntry'\nimport type { BaseModule } from '../../utils/abstract'\n\nexport const map = {\n HF: 0.04,\n HPU: 0.15,\n LLCV: 0.24,\n CMP1: 0.40,\n CMP2: 0.68,\n}\n\nexport const invertMap = {\n 0.04: 'HF',\n 0.15: 'HPU',\n 0.24: 'LLCV',\n 0.40: 'CMP1',\n 0.68: 'CMP2',\n}\n\nclass HandlerManage implements BaseModule {\n app: Anov3D\n constructor(app: Anov3D) {\n this.app = app\n }\n\n clickPerson(params: any) {\n this.click(params.id)\n }\n\n clickBar(params: any) {\n this.click(params.title)\n }\n\n clickCamera(params: any) {\n this.click(params.id)\n }\n\n clickGasCancel() {\n // @ts-ignore\n this.app.caseInstance.cameraPoi.closeHotmap()\n }\n\n releaseBar() {\n // @ts-ignore\n this.app.caseInstance.cylinder.setVisible()\n // @ts-ignore\n this.app.caseInstance.circle.remove()\n // @ts-ignore\n this.app.caseInstance.districtLine.removeHighLightLine()\n }\n\n click(name) {\n // 根据名称动态获取Mesh对象\n const object = this.app.sceneControl.scene!.getObjectByName(name)\n\n // 触发事件\n if (object) {\n console.log('Mesh对象已找到!')\n // 手动调用Mesh对象上的点击事件处理函数\n object.dispatchEvent({ type: 'click' })\n }\n else {\n console.log('未找到Mesh对象!')\n }\n }\n\n setInspectTarget(params: { target: string }) {\n const { target } = params\n\n // @ts-ignore\n return this.app.caseInstance.inspection.goToInspectionTarget(map[target])\n }\n\n stopInspect() {\n // @ts-ignore\n this.app.caseInstance.inspection.inspectionObject.stop()\n }\n\n continueInspect() {\n // @ts-ignore\n this.app.caseInstance.inspection.inspectionObject.contineMove()\n }\n\n highlightInspectTarget(params: { target: string; highlight: boolean }) {\n // @ts-ignore\n this.app.caseInstance.inspection.setSelectedAnchorObject(params)\n }\n\n setViewType(params: { viewType: string }) {\n // @ts-ignore\n this.app.caseInstance.toggleView(params.viewType)\n }\n}\n\nexport default HandlerManage\n"],"mappings":";;;;;;;AAIA,OAAO,IAAMA,GAAG,GAAG;EACjBC,EAAE,EAAE,IAAI;EACRC,GAAG,EAAE,IAAI;EACTC,IAAI,EAAE,IAAI;EACVC,IAAI,EAAE,IAAI;EACVC,IAAI,EAAE;AACR,CAAC;AAED,OAAO,IAAMC,SAAS,GAAG;EACvB,IAAI,EAAE,IAAI;EACV,IAAI,EAAE,KAAK;EACX,IAAI,EAAE,MAAM;EACZ,IAAI,EAAE,MAAM;EACZ,IAAI,EAAE;AACR,CAAC;AAAA,IAEKC,aAAa;EAEjB,uBAAYC,GAAW,EAAE;IAAA;IAAA;IACvB,IAAI,CAACA,GAAG,GAAGA,GAAG;
|
|
1
|
+
{"version":3,"names":["map","HF","HPU","LLCV","CMP1","CMP2","invertMap","HandlerManage","app","environment","sun","children","layers","enable","setTime","time","params","click","id","title","caseInstance","cameraPoi","closeHotmap","cylinder","setVisible","circle","remove","districtLine","removeHighLightLine","name","object","sceneControl","scene","getObjectByName","console","log","dispatchEvent","type","target","inspection","goToInspectionTarget","inspectionObject","stop","contineMove","setSelectedAnchorObject","toggleView","viewType"],"sources":["../../../src/factory/unit/handle.ts"],"sourcesContent":["import { regionMap } from '../regionData'\nimport type Anov3D from '../../sdkEntry'\nimport type { BaseModule } from '../../utils/abstract'\n\nexport const map = {\n HF: 0.04,\n HPU: 0.15,\n LLCV: 0.24,\n CMP1: 0.40,\n CMP2: 0.68,\n}\n\nexport const invertMap = {\n 0.04: 'HF',\n 0.15: 'HPU',\n 0.24: 'LLCV',\n 0.40: 'CMP1',\n 0.68: 'CMP2',\n}\n\nclass HandlerManage implements BaseModule {\n app: Anov3D\n constructor(app: Anov3D) {\n this.app = app\n\n // @ts-ignore\n this.app.environment.sun.children[0].layers.enable(5)\n // @ts-ignore\n this.app.environment.setTime({ time: 1000 })\n }\n\n clickPerson(params: any) {\n this.click(params.id)\n }\n\n clickBar(params: any) {\n this.click(params.title)\n }\n\n clickCamera(params: any) {\n this.click(params.id)\n }\n\n clickGasCancel() {\n // @ts-ignore\n this.app.caseInstance.cameraPoi.closeHotmap()\n }\n\n releaseBar() {\n // @ts-ignore\n this.app.caseInstance.cylinder.setVisible()\n // @ts-ignore\n this.app.caseInstance.circle.remove()\n // @ts-ignore\n this.app.caseInstance.districtLine.removeHighLightLine()\n }\n\n click(name) {\n // 根据名称动态获取Mesh对象\n const object = this.app.sceneControl.scene!.getObjectByName(name)\n\n // 触发事件\n if (object) {\n console.log('Mesh对象已找到!')\n // 手动调用Mesh对象上的点击事件处理函数\n object.dispatchEvent({ type: 'click' })\n }\n else {\n console.log('未找到Mesh对象!')\n }\n }\n\n setInspectTarget(params: { target: string }) {\n const { target } = params\n\n // @ts-ignore\n return this.app.caseInstance.inspection.goToInspectionTarget(map[target])\n }\n\n stopInspect() {\n // @ts-ignore\n this.app.caseInstance.inspection.inspectionObject.stop()\n }\n\n continueInspect() {\n // @ts-ignore\n this.app.caseInstance.inspection.inspectionObject.contineMove()\n }\n\n highlightInspectTarget(params: { target: string; highlight: boolean }) {\n // @ts-ignore\n this.app.caseInstance.inspection.setSelectedAnchorObject(params)\n }\n\n setViewType(params: { viewType: string }) {\n // @ts-ignore\n this.app.caseInstance.toggleView(params.viewType)\n }\n}\n\nexport default HandlerManage\n"],"mappings":"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"}
|
|
@@ -18,6 +18,7 @@ import Inspection from "./inspection";
|
|
|
18
18
|
import CameraPoi from "./CameraPoi";
|
|
19
19
|
import DistrictLineManage from "./districtLine";
|
|
20
20
|
import RegionPlane from "./region";
|
|
21
|
+
import SliceManage from "./slice";
|
|
21
22
|
var emitter = utils.emitter;
|
|
22
23
|
|
|
23
24
|
// 临时优化
|
|
@@ -35,12 +36,14 @@ var showPeopleManagemen = function showPeopleManagemen() {
|
|
|
35
36
|
this.cylinder.cylinderMesh.forEach(function (mesh) {
|
|
36
37
|
mesh.visible = true;
|
|
37
38
|
});
|
|
39
|
+
if (this.slice) this.slice.mesh.visible = true;
|
|
38
40
|
};
|
|
39
41
|
var closePeopleManagemen = function closePeopleManagemen() {
|
|
40
42
|
this.cylinder.cylinderMesh.forEach(function (mesh) {
|
|
41
43
|
mesh.visible = false;
|
|
42
44
|
});
|
|
43
45
|
this.circle.remove();
|
|
46
|
+
if (this.slice) this.slice.mesh.visible = false;
|
|
44
47
|
};
|
|
45
48
|
var showSmartInspection = function showSmartInspection() {
|
|
46
49
|
this.inspection.show();
|
|
@@ -135,6 +138,10 @@ export var toggleTag = (_toggleTag = {}, _defineProperty(_toggleTag, SceneTag.ov
|
|
|
135
138
|
this.scene.controls.enableRotate = true;
|
|
136
139
|
this.scene.controls.enableZoom = true;
|
|
137
140
|
this.tag = SceneTag['people-management'];
|
|
141
|
+
if (!this.slice) {
|
|
142
|
+
this.slice = new SliceManage(this);
|
|
143
|
+
this.slice.generateSlice();
|
|
144
|
+
}
|
|
138
145
|
this.toggleSceneStyle(SceneStyle.tech);
|
|
139
146
|
togglePeopleManagemen.apply(this);
|
|
140
147
|
}), _defineProperty(_toggleTag, SceneTag['smart-inspection'], function () {
|