@anov/3d 0.0.49 → 0.0.51
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.d.ts +1 -1
- package/dist/factory/3d.js +65 -6
- package/dist/factory/3d.js.map +1 -1
- package/dist/factory/regionData.js +1 -1
- package/dist/factory/regionData.js.map +1 -1
- package/dist/factory/unit/districtLine.d.ts +1 -0
- package/dist/factory/unit/districtLine.js +5 -3
- package/dist/factory/unit/districtLine.js.map +1 -1
- package/dist/factory/unit/index.js +21 -2
- package/dist/factory/unit/index.js.map +1 -1
- package/dist/factory/unit/layer/rise.js +4 -4
- package/dist/factory/unit/layer/rise.js.map +1 -1
- package/dist/factory/unit/poi.js +34 -4
- package/dist/factory/unit/poi.js.map +1 -1
- package/dist/factory/unit/region.d.ts +12 -0
- package/dist/factory/unit/region.js +73 -0
- package/dist/factory/unit/region.js.map +1 -0
- package/dist/factory/unit/wall.d.ts +2 -0
- package/dist/factory/unit/wall.js +10 -7
- package/dist/factory/unit/wall.js.map +1 -1
- package/dist/factory/utils/finirMaterial.js +4 -4
- package/dist/factory/utils/finirMaterial.js.map +1 -1
- package/package.json +1 -1
package/dist/factory/3d.d.ts
CHANGED
|
@@ -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 = "./";
|
|
20
20
|
declare class Factory3D {
|
|
21
21
|
position: Vector3;
|
|
22
22
|
scene: SceneControl;
|
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 { Color, EquirectangularReflectionMapping, InteractionManager, LoadingManager, ModelLoader, RepeatWrapping, SRGBColorSpace, ShaderChunk, ShaderMaterial, TextureLoader, Vector2, Vector3, lib, use, utils } from '@anov/3d-core';
|
|
8
|
+
import { AdditiveBlending, Color, EquirectangularReflectionMapping, InteractionManager, LoadingManager, Mesh, ModelLoader, PlaneGeometry, RepeatWrapping, SRGBColorSpace, 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";
|
|
@@ -18,23 +18,70 @@ import vert from "./unit/glsl/heat/ver";
|
|
|
18
18
|
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
19
|
|
|
20
20
|
// Fragment shader
|
|
21
|
-
var fragmentShader = "\n ".concat(ShaderChunk.logdepthbuf_pars_fragment, " \n\n
|
|
21
|
+
var fragmentShader = "\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");
|
|
22
22
|
export var loadingManager = new LoadingManager();
|
|
23
23
|
var load = new ModelLoader(loadingManager);
|
|
24
24
|
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 =
|
|
28
|
+
export var usePath = resourcePath;
|
|
29
29
|
var _Texture = new TextureLoader().load("".concat(usePath, "demo03.jpg"));
|
|
30
|
+
var _Texture2 = new TextureLoader().load("".concat(usePath, "demo04.jpg"));
|
|
31
|
+
var _Texture3 = new TextureLoader().load("".concat(usePath, "test04.jpg"));
|
|
30
32
|
_Texture.wrapS = RepeatWrapping;
|
|
31
33
|
_Texture.wrapT = RepeatWrapping;
|
|
32
|
-
|
|
34
|
+
_Texture2.wrapS = RepeatWrapping;
|
|
35
|
+
_Texture2.wrapT = RepeatWrapping;
|
|
36
|
+
_Texture3.wrapS = RepeatWrapping;
|
|
37
|
+
_Texture3.wrapT = RepeatWrapping;
|
|
38
|
+
_Texture.repeat.set(5000, 5000);
|
|
39
|
+
_Texture2.repeat.set(10, 10);
|
|
40
|
+
_Texture3.repeat.set(5000, 5000);
|
|
41
|
+
var uniforms = {
|
|
42
|
+
_Texture: {
|
|
43
|
+
value: _Texture
|
|
44
|
+
},
|
|
45
|
+
_Texture_ST: {
|
|
46
|
+
value: new Vector4()
|
|
47
|
+
},
|
|
48
|
+
_Color: {
|
|
49
|
+
value: new Vector4(new Color('#096ddb').r, new Color('#096ddb').g, new Color('#096ddb').b, 0.5)
|
|
50
|
+
},
|
|
51
|
+
_ColorS: {
|
|
52
|
+
value: 1
|
|
53
|
+
},
|
|
54
|
+
_TextureMask: {
|
|
55
|
+
value: _Texture2
|
|
56
|
+
},
|
|
57
|
+
_TexturePlane: {
|
|
58
|
+
value: _Texture3
|
|
59
|
+
},
|
|
60
|
+
_MaskUV: {
|
|
61
|
+
value: 1
|
|
62
|
+
},
|
|
63
|
+
_ColorMask: {
|
|
64
|
+
value: new Vector4(new Color('#fff').r, new Color('#fff').g, new Color('#fff').b, 1)
|
|
65
|
+
},
|
|
66
|
+
_ColorMaskS: {
|
|
67
|
+
value: 1
|
|
68
|
+
},
|
|
69
|
+
_Speed: {
|
|
70
|
+
value: new Vector4(0.0, 0.2, 0, 0)
|
|
71
|
+
},
|
|
72
|
+
_OP: {
|
|
73
|
+
value: 1.0
|
|
74
|
+
},
|
|
75
|
+
_Time: {
|
|
76
|
+
value: 1.0
|
|
77
|
+
}
|
|
78
|
+
};
|
|
33
79
|
var material = new ShaderMaterial({
|
|
34
80
|
uniforms: uniforms,
|
|
35
81
|
vertexShader: vertexShader,
|
|
36
82
|
fragmentShader: fragmentShader,
|
|
37
83
|
transparent: true
|
|
84
|
+
// depthTest: false,
|
|
38
85
|
});
|
|
39
86
|
var Factory3D = /*#__PURE__*/function () {
|
|
40
87
|
function Factory3D(option) {
|
|
@@ -132,11 +179,22 @@ var Factory3D = /*#__PURE__*/function () {
|
|
|
132
179
|
// tech model
|
|
133
180
|
load.loadGLTF("".concat(this.usePath, "2222.glb"), false, true, './draco/', function (gltf) {
|
|
134
181
|
var group = gltf.scene;
|
|
182
|
+
use.useframe(function () {
|
|
183
|
+
if (uniforms._Time.value > 0.5) uniforms._Time.value = 0;
|
|
184
|
+
uniforms._Time.value += 0.0008;
|
|
185
|
+
});
|
|
135
186
|
group.traverse(function (child) {
|
|
136
187
|
// @ts-ignore
|
|
137
188
|
if (child.type === 'Mesh') {
|
|
138
189
|
if (child.name === '柱体') {
|
|
190
|
+
// @ts-ignore
|
|
139
191
|
child.visible = false;
|
|
192
|
+
var geometry = new PlaneGeometry(3000, 2000);
|
|
193
|
+
var plane = new Mesh(geometry, material);
|
|
194
|
+
plane.rotation.x = -Math.PI / 2;
|
|
195
|
+
plane.position.set(0, -1.5, 0);
|
|
196
|
+
plane.renderOrder = -1;
|
|
197
|
+
group.add(plane);
|
|
140
198
|
} else {
|
|
141
199
|
// @ts-ignore
|
|
142
200
|
child.material = finirMaterialV1;
|
|
@@ -151,13 +209,14 @@ var Factory3D = /*#__PURE__*/function () {
|
|
|
151
209
|
text.repeat.set(1, 1);
|
|
152
210
|
gltf.scene.traverse(function (child) {
|
|
153
211
|
if (child.type === 'Mesh') {
|
|
212
|
+
// @ts-ignore
|
|
213
|
+
child.material.blending = AdditiveBlending;
|
|
154
214
|
// @ts-ignore
|
|
155
215
|
child.material.transparent = true;
|
|
156
216
|
// @ts-ignore
|
|
157
217
|
child.material.opacity = 1;
|
|
158
|
-
child.renderOrder = -1;
|
|
159
218
|
// @ts-ignore
|
|
160
|
-
child.material.depthTest =
|
|
219
|
+
child.material.depthTest = true;
|
|
161
220
|
|
|
162
221
|
// @ts-ignore
|
|
163
222
|
child.material.map = text;
|
package/dist/factory/3d.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Color","EquirectangularReflectionMapping","InteractionManager","LoadingManager","ModelLoader","RepeatWrapping","SRGBColorSpace","ShaderChunk","ShaderMaterial","TextureLoader","Vector2","Vector3","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","wrapS","wrapT","uniforms","material","transparent","Factory3D","option","overview","real","Map","globalEventsAgent","setFactory","scene","Promise","resolve","cameraUtil","camera","controls","control","layers","set","loadGLTF","gltf","realTreeModel","add","interactionManager","renderer","domElement","storeManagement","useframe","update","loadModel","onLoad","toneMappingExposure","visible","style","realModl","call","group","traverse","child","type","name","scale","text","repeat","opacity","renderOrder","depthTest","map","offset","x","tech","techModel","texture1","value","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 { 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 varying vec3 vPosition;\n varying vec2 vUv;\n\n void main() {\n \n if(vPosition.x>-550.0 && vPosition.x<550.0 && vPosition.z>-300.0 && vPosition.z<270.0){\n gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);\n }else{\n gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);\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 = resourcePath2\n\nconst _Texture = new TextureLoader().load(`${usePath}demo03.jpg`)\n\n_Texture.wrapS = RepeatWrapping\n_Texture.wrapT = RepeatWrapping\n\nconst uniforms = {\n\n}\n\nconst material = new ShaderMaterial({\n uniforms,\n vertexShader,\n fragmentShader,\n transparent: true,\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 group.traverse((child) => {\n // @ts-ignore\n if (child.type === 'Mesh') {\n if (child.name === '柱体') {\n child.visible = false\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.transparent = true\n // @ts-ignore\n child.material.opacity = 1\n child.renderOrder = -1\n // @ts-ignore\n child.material.depthTest = false\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 = 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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"}
|
|
@@ -72,7 +72,7 @@ export var regionMap = {
|
|
|
72
72
|
reduction: {
|
|
73
73
|
id: '2',
|
|
74
74
|
title: '常减压装置区',
|
|
75
|
-
area: [[-140.123, 0, -225.604], [206.547, 0, -225.624], [206.547, 0, -59.401], [-140.123, 0, -59.401]],
|
|
75
|
+
area: [[-140.123, 0.1, -225.604], [206.547, 0, -225.624], [206.547, -0.1, -59.401], [-140.123, 0, -59.401]],
|
|
76
76
|
maxHigh: 1000,
|
|
77
77
|
poi: {
|
|
78
78
|
id: '2',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["regionMap","reform","id","title","area","maxHigh","poi","position","content","people","name","dep","online","camera","reduction","probePoint","warn","crudeOil","catalyticCracking","hydrocrackingUnit","cokingUnit","administrative"],"sources":["../../src/factory/regionData.ts"],"sourcesContent":["/**\n * todo: 各个单元数据需要统一\n * 当前demo area可以用直线绘制\n */\n\nexport interface IPeople {\n id: string\n name: string\n dep?: string\n online?: boolean\n position: Array<number>\n}\n\nexport interface IPoi {\n id: string\n position: Array<number>\n content?: string\n}\n\nexport interface IProbePoint {\n id: string\n name: string\n warn: boolean\n position: Array<number>\n}\n\nexport type RegionMap = {\n [k: string]: {\n id: string\n title: string\n area: number[][]\n maxHigh?: number\n poi?: IPoi\n people?: Array<IPeople>\n camera?: Object\n probePoint?: Array<IProbePoint>\n }\n}\n\nexport const regionMap: RegionMap = {\n reform: {\n id: '1',\n title: '重整装置区',\n area: [\n [\n -483.562,\n 0,\n -225.624,\n ],\n [\n -145.997,\n 0,\n -225.624,\n ],\n [\n -145.997,\n 0,\n -59.401,\n ],\n [\n -483.562,\n 0,\n -59.401,\n ],\n ],\n maxHigh: 1000,\n poi: {\n id: '1',\n position: [-314.01113070, 0.55000000, -146.54350582],\n content: '通过直馏汽油和加氢石脑油,在催化剂存在的前提下,将原料的烷烃和环烷烃重构成为芳烃。并采用半再生固定床重整工艺,催化剂分段装填及两段混氢技术,装置采用了RIPP的粗汽油制氢技术。',\n },\n people: [\n {\n id: '7',\n name: '耿笑',\n dep: '设备运维',\n online: true,\n position: [-352.00000000, 0.62500079, -177.20000000],\n },\n {\n id: '2',\n name: '李连贵',\n dep: '工艺操作',\n online: true,\n position: [-275.70000000, 0.62500079, -137.10000000],\n },\n {\n id: '8',\n name: '吕萌',\n dep: '质量检测',\n online: true,\n position: [-365.40000000, 0.62500079, -80.60000000],\n },\n {\n id: '1',\n name: '宋玉',\n dep: '质量检测',\n online: true,\n position: [-436.90000000, 0.62500079, -121.50000000],\n },\n {\n id: '5',\n name: '王小雨',\n dep: '运输装卸',\n online: true,\n position: [-238.70000000, 0.62500079, -205.10000000],\n },\n {\n id: '6',\n name: '张建国',\n dep: '原料加工',\n online: true,\n position: [-436.50000000, 0.62500079, -182.30000000],\n },\n {\n id: '3',\n name: '张小萌',\n dep: '生产技术',\n online: true,\n position: [-204.80000000, 0.62500079, -150.10000000],\n },\n {\n id: '4',\n name: '朱正',\n dep: '设备运维',\n online: true,\n position: [-302.20000000, 0.62500079, -117.90000000],\n },\n ],\n camera: {\n id: '1',\n name: '摄像头1',\n position: [\n -314.0111307,\n 20.55,\n -146.54350582,\n ],\n },\n },\n reduction: {\n id: '2',\n title: '常减压装置区',\n area: [\n [-140.123, 0, -225.604],\n [206.547, 0, -225.624],\n [206.547, 0, -59.401],\n [-140.123, 0, -59.401],\n ],\n maxHigh: 1000,\n poi: {\n id: '2',\n position: [28.89784048, 0.55000000, -144.28157517],\n content: '主要包括三个工序:原油的脱盐、脱水;常压蒸馏;减压蒸馏。从油田送往炼油厂的原油往往含盐(主要是氧化物)带水(溶于油或呈乳化状态),可导致设备的腐蚀,在设备内壁结垢和影响成品油的组成,需在加工前脱除。',\n },\n people: [\n {\n id: '12',\n name: '才新梁',\n dep: '运输装卸',\n online: true,\n position: [26.50000000, 0.62500079, -155.00000000],\n },\n {\n id: '13',\n name: '何超盈',\n dep: '生产技术',\n online: true,\n position: [198.50000000, 0.62500079, -169.20000000],\n },\n {\n id: '11',\n name: '李大为',\n dep: '质量检测',\n online: true,\n position: [-79.80000000, 0.62500079, -218.20000000],\n },\n {\n id: '15',\n name: '孙建连',\n dep: '工艺操作',\n online: true,\n position: [-19.50000000, 0.62500079, -174.60000000],\n },\n {\n id: '9',\n name: '孙强',\n dep: '工艺操作',\n online: true,\n position: [-114.10000000, 0.62500079, -114.60000000],\n },\n {\n id: '10',\n name: '佟丽英',\n dep: '运输装卸',\n online: true,\n position: [26.10000000, 0.62500079, -202.30000000],\n },\n {\n id: '14',\n name: '王超',\n dep: '设备运维',\n online: true,\n position: [-14.90000000, 0.62500079, -116.90000000],\n },\n ],\n camera: {\n id: '2',\n name: '摄像头2',\n position: [\n 28.89784048,\n 20.55,\n -144.28157517,\n ],\n },\n probePoint: [\n {\n id: '3',\n name: '甲烷监测点3',\n warn: false,\n position: [\n 48.89784048,\n 30.55000000,\n -144.28157517,\n ],\n },\n ],\n },\n crudeOil: {\n id: '3',\n title: '原油罐区',\n area: [\n [240.584, 0, -225.624],\n [475.523, 0, -225.624],\n [475.543, 0, -59.401],\n [240.584, 0, -59.401],\n ],\n maxHigh: 1000,\n poi: {\n id: '3',\n position: [359.58372139, 0.55000000, -144.28157517],\n content: '原油罐区应靠近相应的加工装置区,并利用地形将液体物料自留输送,性质相近的液体物料储物罐宜布置较近。原油罐区的占地面积较大,原油罐区应注意火灾防范,存储量大一旦发生火灾,如不及时处置,扑救十分困难。',\n },\n people: [\n {\n id: '19',\n name: '牛小灵',\n dep: '生产技术',\n online: true,\n position: [404.70000000, 0.62500079, -190.30000000],\n },\n {\n id: '17',\n name: '彭旭',\n dep: '运输装卸',\n online: true,\n position: [294.10000000, 0.62500079, -125.90000000],\n },\n {\n id: '16',\n name: '宋麒麟',\n dep: '设备运维',\n online: true,\n position: [445.70000000, 0.62500079, -119.20000000],\n },\n {\n id: '18',\n name: '赵佳慧',\n dep: '生产技术',\n online: true,\n position: [344.50000000, 0.62500079, -127.10000000],\n },\n ],\n camera: {\n id: '3',\n name: '摄像头3',\n position: [\n 359.58372139,\n 20.55,\n -144.28157517,\n ],\n },\n },\n catalyticCracking: {\n id: '4',\n title: '催化裂化装置区',\n area: [\n [\n -483.562,\n 0,\n -49.812,\n ],\n [\n -145.997,\n 0,\n -49.812,\n ],\n [\n -145.997,\n 0,\n 115.799,\n ],\n [\n -483.562,\n 0,\n 115.799,\n ],\n ],\n maxHigh: 1000,\n poi: {\n id: '4',\n position: [-322.57300372, 0.55000000, 31.81516361],\n content: '该区域主要危险因素为高温,重点部位:1. 催化剂循环系统磨穿泄漏着火;2. 再生器及沉降器油气互串爆炸;3. 高位管线及设备泄漏着火。同时催化裂化工艺过程需注意对环境造成的影响,生产过程中烟气会带走较多热烈造成热能浪费和污染,',\n },\n people: [\n {\n id: '20',\n name: '李刚',\n dep: '运输装卸',\n online: true,\n position: [-339.40000000, 0.62500079, -1.90000000],\n },\n {\n id: '24',\n name: '李天一',\n dep: '工艺操作',\n online: true,\n position: [-394.80000000, 0.62500079, 16.80000000],\n },\n {\n id: '26',\n name: '吕方',\n dep: '设备运维',\n online: true,\n position: [-363.10000000, 0.62500079, 73.30000000],\n },\n {\n id: '29',\n name: '路笑',\n dep: '运输装卸',\n online: true,\n position: [-214.00000000, 0.62500079, 39.10000000],\n },\n {\n id: '22',\n name: '淼杉',\n dep: '运输装卸',\n online: true,\n position: [-175.10000000, 0.62500079, -12.80000000],\n },\n {\n id: '25',\n name: '孙江',\n dep: '运输装卸',\n online: true,\n position: [-175.80000000, 0.62500079, 8.90000000],\n },\n {\n id: '27',\n name: '王衣衣',\n dep: '运输装卸',\n online: true,\n position: [-394.60000000, 0.62500079, -37.80000000],\n },\n {\n id: '28',\n name: '张含义',\n dep: '质量检测',\n online: true,\n position: [-436.90000000, 0.62500079, 69.40000000],\n },\n {\n id: '21',\n name: '张山一',\n dep: '生产技术',\n online: true,\n position: [-325.30000000, 0.62500079, 86.20000000],\n },\n {\n id: '23',\n name: '张时柳',\n dep: '运输装卸',\n online: true,\n position: [-211.20000000, 0.62500079, 95.80000000],\n },\n ],\n camera: {\n id: '4',\n name: '摄像头4',\n position: [\n -322.57300372,\n 22.55,\n 31.81516361,\n ],\n },\n },\n hydrocrackingUnit: {\n id: '5',\n title: '加氢裂化装置区',\n area: [\n [-483.562, 0, 124.634],\n [-145.997, 0, 124.634],\n [-145.997, 0, 218.589],\n [\n -483.562, 0, 218.589,\n ],\n ],\n maxHigh: 1000,\n poi: {\n id: '5',\n position: [-307.04992341, 0.55000000, 168.90578924],\n content: '该区域主要注意器材的腐蚀,腐蚀类型主要有:氢损伤(包括高温氢腐蚀、氢脆、氢致剥离)、高温H2+H2S腐蚀、连多硫酸腐蚀、Cr-Mo钢的回火脆性、高温S腐蚀、低温部位的H2S+H2O腐蚀、H2S+NH3+H2O腐蚀。',\n },\n people: [\n {\n id: '30',\n name: '李梦雅',\n dep: '生产技术',\n online: true,\n position: [-219.29636564, 0.62500079, 171.94423797],\n },\n {\n id: '31',\n name: '张连营',\n dep: '运输装卸',\n online: true,\n position: [-393.97653099, 0.62500079, 145.08266863],\n },\n {\n id: '32',\n name: '张子成',\n dep: '运输装卸',\n online: true,\n position: [-454.81735573, 0.62500079, 198.95572783],\n },\n ],\n camera: {\n id: '5',\n name: '摄像头5',\n position: [\n -307.04992341,\n 20.55,\n 168.90578924,\n ],\n },\n },\n cokingUnit: {\n id: '6',\n title: '焦化装置区',\n area: [\n [-140.100, 0, -49.802],\n [316.508, 0, -49.802],\n [316.508, 0, 218.847],\n [-140.100, 0, 218.847],\n ],\n maxHigh: 300,\n poi: {\n id: '6',\n position: [76.84192138, 0.55000332, 95.89826158],\n content: '该区域采用的延迟焦化装置是厂区能耗大户,其中,其燃料油、循环水两者的能耗占整个装置能耗的54%左右,其中,燃料气主要用于原料的加热、升温;循环水、新鲜水、软化水主要用于装置机泵降温、焦炭塔冷却等等。',\n },\n people: [\n {\n id: '38',\n name: '毕贵元',\n dep: '工艺操作',\n online: true,\n position: [247.30000000, 0.62500079, 166.20000000],\n },\n {\n id: '39',\n name: '何晴',\n dep: '设备运维',\n online: true,\n position: [-83.70000000, 0.62500079, 177.50000000],\n },\n {\n id: '33',\n name: '杨东利',\n dep: '工艺操作',\n online: true,\n position: [68.20000000, 0.62500079, 5.20000000],\n },\n {\n id: '36',\n name: '杨晓月',\n dep: '质量检测',\n online: true,\n position: [258.00000000, 0.62500079, 99.00000000],\n },\n {\n id: '40',\n name: '杨一真',\n dep: '质量检测',\n online: true,\n position: [107.90000000, 0.62500079, 95.30000000],\n },\n {\n id: '37',\n name: '张飞',\n dep: '运输装卸',\n online: true,\n position: [-69.60000000, 0.62500079, 29.30000000],\n },\n {\n id: '35',\n name: '张一天',\n dep: '运输装卸',\n online: true,\n position: [271.20000000, 0.62500079, 24.70000000],\n },\n {\n id: '34',\n name: '张泽宇',\n dep: '设备运维',\n online: true,\n position: [175.00000000, 0.62500079, 74.60000000],\n },\n ],\n camera: {\n id: '6',\n name: '摄像头6',\n position: [76.84192138, 20.55000332, 95.89826158],\n },\n probePoint: [\n {\n id: '1',\n name: '监测点异常1',\n warn: true,\n position: [\n 55.84192138, 20.55000332, 85.89826158,\n ],\n },\n ],\n },\n administrative: {\n id: '7',\n title: '办公区',\n area: [\n [340.501, 0, -44.710],\n [482.570, 0, -44.710],\n [482.570, 0, 227.641],\n [340.501, 0, 227.641],\n ],\n maxHigh: 1000,\n people: [{\n id: '49',\n name: '毕古元',\n dep: '运输装卸',\n online: true,\n position: [431.60000000, 0.62500079, 94.90000000],\n },\n {\n id: '50',\n name: '陈红',\n dep: '设备运维',\n online: true,\n position: [374.20000000, 0.62500079, 14.80000000],\n },\n {\n id: '58',\n name: '陈静娴',\n dep: '质量检测',\n online: true,\n position: [352.40000000, 0.62500079, 138.30000000],\n },\n {\n id: '54',\n name: '高红雷',\n dep: '运输装卸',\n online: true,\n position: [435.20000000, 0.62500079, 172.90000000],\n },\n {\n id: '57',\n name: '葛强',\n dep: '设备运维',\n online: true,\n position: [379.10000000, 0.62500079, 193.40000000],\n },\n {\n id: '46',\n name: '宫京',\n dep: '运输装卸',\n online: true,\n position: [441.30000000, 0.62500079, 80.70000000],\n },\n {\n id: '53',\n name: '匡青一',\n dep: '运输装卸',\n online: true,\n position: [379.10000000, 0.62500079, 173.80000000],\n },\n {\n id: '55',\n name: '李丽颖',\n dep: '质量检测',\n online: true,\n position: [357.50000000, 0.62500079, 221.40000000],\n },\n {\n id: '48',\n name: '李同一',\n dep: '工艺操作',\n online: true,\n position: [467.80000000, 0.62500079, 108.10000000],\n },\n {\n id: '56',\n name: '李晓阳',\n dep: '运输装卸',\n online: true,\n position: [444.20000000, 0.62500079, 191.80000000],\n },\n {\n id: '41',\n name: '刘超',\n dep: '运输装卸',\n online: true,\n position: [354.20000000, 0.62500079, -22.70000000],\n },\n {\n id: '42',\n name: '刘凤林',\n dep: '工艺操作',\n online: true,\n position: [368.50000000, 0.62500079, 40.30000000],\n },\n {\n id: '44',\n name: '卢灵',\n dep: '运输装卸',\n online: true,\n position: [368.00000000, 0.62500079, 79.90000000],\n },\n {\n id: '45',\n name: '苏丁',\n dep: '质量检测',\n online: true,\n position: [440.30000000, 0.62500079, 72.90000000],\n },\n {\n id: '50',\n name: '王林缘',\n dep: '工艺操作',\n online: true,\n position: [360.40000000, 0.62500079, 103.20000000],\n },\n {\n id: '51',\n name: '汪泉',\n dep: '运输装卸',\n online: true,\n position: [394.30000000, 0.62500079, 142.00000000],\n },\n {\n id: '43',\n name: '徐刚',\n dep: '运输装卸',\n online: true,\n position: [442.70000000, 0.62500079, -19.0000000],\n },\n {\n id: '52',\n name: '薛友',\n dep: '质量检测',\n online: true,\n position: [444.40000000, 0.62500079, 147.80000000],\n },\n {\n id: '60',\n name: '章虎泉',\n dep: '工艺操作',\n online: true,\n position: [467.80000000, 0.62500079, 21.90000000],\n },\n {\n id: '47',\n name: '张山峰',\n dep: '设备运维',\n online: true,\n position: [459.90000000, 0.62500079, 90.10000000],\n },\n ],\n poi: {\n id: '7',\n position: [404.24348058, 0.55000000, 85.00566808],\n content: '提供对工厂办公人员的休息和休闲区域,包括食堂,休息室,员工宿舍,休闲楼等场地,提供对工厂办公人员的休息和休闲区域,包括食堂,休息室,员工宿舍,休闲楼等场地,且该区域需较远离生产区,保证员工休息质量。',\n },\n camera: {\n id: '7',\n name: '摄像头7',\n position: [\n 404.24348058,\n 20.55,\n 85.00566808,\n ],\n },\n probePoint: [\n {\n id: '2',\n name: '甲烷监测点2',\n warn: false,\n position: [\n 384.24348058,\n 20.55,\n 75.00566808,\n ],\n },\n ],\n },\n}\n\nexport default regionMap"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["regionMap","reform","id","title","area","maxHigh","poi","position","content","people","name","dep","online","camera","reduction","probePoint","warn","crudeOil","catalyticCracking","hydrocrackingUnit","cokingUnit","administrative"],"sources":["../../src/factory/regionData.ts"],"sourcesContent":["/**\n * todo: 各个单元数据需要统一\n * 当前demo area可以用直线绘制\n */\n\nexport interface IPeople {\n id: string\n name: string\n dep?: string\n online?: boolean\n position: Array<number>\n}\n\nexport interface IPoi {\n id: string\n position: Array<number>\n content?: string\n}\n\nexport interface IProbePoint {\n id: string\n name: string\n warn: boolean\n position: Array<number>\n}\n\nexport type RegionMap = {\n [k: string]: {\n id: string\n title: string\n area: number[][]\n maxHigh?: number\n poi?: IPoi\n people?: Array<IPeople>\n camera?: Object\n probePoint?: Array<IProbePoint>\n }\n}\n\nexport const regionMap: RegionMap = {\n reform: {\n id: '1',\n title: '重整装置区',\n area: [\n [\n -483.562,\n 0,\n -225.624,\n ],\n [\n -145.997,\n 0,\n -225.624,\n ],\n [\n -145.997,\n 0,\n -59.401,\n ],\n [\n -483.562,\n 0,\n -59.401,\n ],\n ],\n maxHigh: 1000,\n poi: {\n id: '1',\n position: [-314.01113070, 0.55000000, -146.54350582],\n content: '通过直馏汽油和加氢石脑油,在催化剂存在的前提下,将原料的烷烃和环烷烃重构成为芳烃。并采用半再生固定床重整工艺,催化剂分段装填及两段混氢技术,装置采用了RIPP的粗汽油制氢技术。',\n },\n people: [\n {\n id: '7',\n name: '耿笑',\n dep: '设备运维',\n online: true,\n position: [-352.00000000, 0.62500079, -177.20000000],\n },\n {\n id: '2',\n name: '李连贵',\n dep: '工艺操作',\n online: true,\n position: [-275.70000000, 0.62500079, -137.10000000],\n },\n {\n id: '8',\n name: '吕萌',\n dep: '质量检测',\n online: true,\n position: [-365.40000000, 0.62500079, -80.60000000],\n },\n {\n id: '1',\n name: '宋玉',\n dep: '质量检测',\n online: true,\n position: [-436.90000000, 0.62500079, -121.50000000],\n },\n {\n id: '5',\n name: '王小雨',\n dep: '运输装卸',\n online: true,\n position: [-238.70000000, 0.62500079, -205.10000000],\n },\n {\n id: '6',\n name: '张建国',\n dep: '原料加工',\n online: true,\n position: [-436.50000000, 0.62500079, -182.30000000],\n },\n {\n id: '3',\n name: '张小萌',\n dep: '生产技术',\n online: true,\n position: [-204.80000000, 0.62500079, -150.10000000],\n },\n {\n id: '4',\n name: '朱正',\n dep: '设备运维',\n online: true,\n position: [-302.20000000, 0.62500079, -117.90000000],\n },\n ],\n camera: {\n id: '1',\n name: '摄像头1',\n position: [\n -314.0111307,\n 20.55,\n -146.54350582,\n ],\n },\n },\n reduction: {\n id: '2',\n title: '常减压装置区',\n area: [\n [-140.123, 0.1, -225.604],\n [206.547, 0, -225.624],\n [206.547, -0.1, -59.401],\n [-140.123, 0, -59.401],\n ],\n maxHigh: 1000,\n poi: {\n id: '2',\n position: [28.89784048, 0.55000000, -144.28157517],\n content: '主要包括三个工序:原油的脱盐、脱水;常压蒸馏;减压蒸馏。从油田送往炼油厂的原油往往含盐(主要是氧化物)带水(溶于油或呈乳化状态),可导致设备的腐蚀,在设备内壁结垢和影响成品油的组成,需在加工前脱除。',\n },\n people: [\n {\n id: '12',\n name: '才新梁',\n dep: '运输装卸',\n online: true,\n position: [26.50000000, 0.62500079, -155.00000000],\n },\n {\n id: '13',\n name: '何超盈',\n dep: '生产技术',\n online: true,\n position: [198.50000000, 0.62500079, -169.20000000],\n },\n {\n id: '11',\n name: '李大为',\n dep: '质量检测',\n online: true,\n position: [-79.80000000, 0.62500079, -218.20000000],\n },\n {\n id: '15',\n name: '孙建连',\n dep: '工艺操作',\n online: true,\n position: [-19.50000000, 0.62500079, -174.60000000],\n },\n {\n id: '9',\n name: '孙强',\n dep: '工艺操作',\n online: true,\n position: [-114.10000000, 0.62500079, -114.60000000],\n },\n {\n id: '10',\n name: '佟丽英',\n dep: '运输装卸',\n online: true,\n position: [26.10000000, 0.62500079, -202.30000000],\n },\n {\n id: '14',\n name: '王超',\n dep: '设备运维',\n online: true,\n position: [-14.90000000, 0.62500079, -116.90000000],\n },\n ],\n camera: {\n id: '2',\n name: '摄像头2',\n position: [\n 28.89784048,\n 20.55,\n -144.28157517,\n ],\n },\n probePoint: [\n {\n id: '3',\n name: '甲烷监测点3',\n warn: false,\n position: [\n 48.89784048,\n 30.55000000,\n -144.28157517,\n ],\n },\n ],\n },\n crudeOil: {\n id: '3',\n title: '原油罐区',\n area: [\n [240.584, 0, -225.624],\n [475.523, 0, -225.624],\n [475.543, 0, -59.401],\n [240.584, 0, -59.401],\n ],\n maxHigh: 1000,\n poi: {\n id: '3',\n position: [359.58372139, 0.55000000, -144.28157517],\n content: '原油罐区应靠近相应的加工装置区,并利用地形将液体物料自留输送,性质相近的液体物料储物罐宜布置较近。原油罐区的占地面积较大,原油罐区应注意火灾防范,存储量大一旦发生火灾,如不及时处置,扑救十分困难。',\n },\n people: [\n {\n id: '19',\n name: '牛小灵',\n dep: '生产技术',\n online: true,\n position: [404.70000000, 0.62500079, -190.30000000],\n },\n {\n id: '17',\n name: '彭旭',\n dep: '运输装卸',\n online: true,\n position: [294.10000000, 0.62500079, -125.90000000],\n },\n {\n id: '16',\n name: '宋麒麟',\n dep: '设备运维',\n online: true,\n position: [445.70000000, 0.62500079, -119.20000000],\n },\n {\n id: '18',\n name: '赵佳慧',\n dep: '生产技术',\n online: true,\n position: [344.50000000, 0.62500079, -127.10000000],\n },\n ],\n camera: {\n id: '3',\n name: '摄像头3',\n position: [\n 359.58372139,\n 20.55,\n -144.28157517,\n ],\n },\n },\n catalyticCracking: {\n id: '4',\n title: '催化裂化装置区',\n area: [\n [\n -483.562,\n 0,\n -49.812,\n ],\n [\n -145.997,\n 0,\n -49.812,\n ],\n [\n -145.997,\n 0,\n 115.799,\n ],\n [\n -483.562,\n 0,\n 115.799,\n ],\n ],\n maxHigh: 1000,\n poi: {\n id: '4',\n position: [-322.57300372, 0.55000000, 31.81516361],\n content: '该区域主要危险因素为高温,重点部位:1. 催化剂循环系统磨穿泄漏着火;2. 再生器及沉降器油气互串爆炸;3. 高位管线及设备泄漏着火。同时催化裂化工艺过程需注意对环境造成的影响,生产过程中烟气会带走较多热烈造成热能浪费和污染,',\n },\n people: [\n {\n id: '20',\n name: '李刚',\n dep: '运输装卸',\n online: true,\n position: [-339.40000000, 0.62500079, -1.90000000],\n },\n {\n id: '24',\n name: '李天一',\n dep: '工艺操作',\n online: true,\n position: [-394.80000000, 0.62500079, 16.80000000],\n },\n {\n id: '26',\n name: '吕方',\n dep: '设备运维',\n online: true,\n position: [-363.10000000, 0.62500079, 73.30000000],\n },\n {\n id: '29',\n name: '路笑',\n dep: '运输装卸',\n online: true,\n position: [-214.00000000, 0.62500079, 39.10000000],\n },\n {\n id: '22',\n name: '淼杉',\n dep: '运输装卸',\n online: true,\n position: [-175.10000000, 0.62500079, -12.80000000],\n },\n {\n id: '25',\n name: '孙江',\n dep: '运输装卸',\n online: true,\n position: [-175.80000000, 0.62500079, 8.90000000],\n },\n {\n id: '27',\n name: '王衣衣',\n dep: '运输装卸',\n online: true,\n position: [-394.60000000, 0.62500079, -37.80000000],\n },\n {\n id: '28',\n name: '张含义',\n dep: '质量检测',\n online: true,\n position: [-436.90000000, 0.62500079, 69.40000000],\n },\n {\n id: '21',\n name: '张山一',\n dep: '生产技术',\n online: true,\n position: [-325.30000000, 0.62500079, 86.20000000],\n },\n {\n id: '23',\n name: '张时柳',\n dep: '运输装卸',\n online: true,\n position: [-211.20000000, 0.62500079, 95.80000000],\n },\n ],\n camera: {\n id: '4',\n name: '摄像头4',\n position: [\n -322.57300372,\n 22.55,\n 31.81516361,\n ],\n },\n },\n hydrocrackingUnit: {\n id: '5',\n title: '加氢裂化装置区',\n area: [\n [-483.562, 0, 124.634],\n [-145.997, 0, 124.634],\n [-145.997, 0, 218.589],\n [\n -483.562, 0, 218.589,\n ],\n ],\n maxHigh: 1000,\n poi: {\n id: '5',\n position: [-307.04992341, 0.55000000, 168.90578924],\n content: '该区域主要注意器材的腐蚀,腐蚀类型主要有:氢损伤(包括高温氢腐蚀、氢脆、氢致剥离)、高温H2+H2S腐蚀、连多硫酸腐蚀、Cr-Mo钢的回火脆性、高温S腐蚀、低温部位的H2S+H2O腐蚀、H2S+NH3+H2O腐蚀。',\n },\n people: [\n {\n id: '30',\n name: '李梦雅',\n dep: '生产技术',\n online: true,\n position: [-219.29636564, 0.62500079, 171.94423797],\n },\n {\n id: '31',\n name: '张连营',\n dep: '运输装卸',\n online: true,\n position: [-393.97653099, 0.62500079, 145.08266863],\n },\n {\n id: '32',\n name: '张子成',\n dep: '运输装卸',\n online: true,\n position: [-454.81735573, 0.62500079, 198.95572783],\n },\n ],\n camera: {\n id: '5',\n name: '摄像头5',\n position: [\n -307.04992341,\n 20.55,\n 168.90578924,\n ],\n },\n },\n cokingUnit: {\n id: '6',\n title: '焦化装置区',\n area: [\n [-140.100, 0, -49.802],\n [316.508, 0, -49.802],\n [316.508, 0, 218.847],\n [-140.100, 0, 218.847],\n ],\n maxHigh: 300,\n poi: {\n id: '6',\n position: [76.84192138, 0.55000332, 95.89826158],\n content: '该区域采用的延迟焦化装置是厂区能耗大户,其中,其燃料油、循环水两者的能耗占整个装置能耗的54%左右,其中,燃料气主要用于原料的加热、升温;循环水、新鲜水、软化水主要用于装置机泵降温、焦炭塔冷却等等。',\n },\n people: [\n {\n id: '38',\n name: '毕贵元',\n dep: '工艺操作',\n online: true,\n position: [247.30000000, 0.62500079, 166.20000000],\n },\n {\n id: '39',\n name: '何晴',\n dep: '设备运维',\n online: true,\n position: [-83.70000000, 0.62500079, 177.50000000],\n },\n {\n id: '33',\n name: '杨东利',\n dep: '工艺操作',\n online: true,\n position: [68.20000000, 0.62500079, 5.20000000],\n },\n {\n id: '36',\n name: '杨晓月',\n dep: '质量检测',\n online: true,\n position: [258.00000000, 0.62500079, 99.00000000],\n },\n {\n id: '40',\n name: '杨一真',\n dep: '质量检测',\n online: true,\n position: [107.90000000, 0.62500079, 95.30000000],\n },\n {\n id: '37',\n name: '张飞',\n dep: '运输装卸',\n online: true,\n position: [-69.60000000, 0.62500079, 29.30000000],\n },\n {\n id: '35',\n name: '张一天',\n dep: '运输装卸',\n online: true,\n position: [271.20000000, 0.62500079, 24.70000000],\n },\n {\n id: '34',\n name: '张泽宇',\n dep: '设备运维',\n online: true,\n position: [175.00000000, 0.62500079, 74.60000000],\n },\n ],\n camera: {\n id: '6',\n name: '摄像头6',\n position: [76.84192138, 20.55000332, 95.89826158],\n },\n probePoint: [\n {\n id: '1',\n name: '监测点异常1',\n warn: true,\n position: [\n 55.84192138, 20.55000332, 85.89826158,\n ],\n },\n ],\n },\n administrative: {\n id: '7',\n title: '办公区',\n area: [\n [340.501, 0, -44.710],\n [482.570, 0, -44.710],\n [482.570, 0, 227.641],\n [340.501, 0, 227.641],\n ],\n maxHigh: 1000,\n people: [{\n id: '49',\n name: '毕古元',\n dep: '运输装卸',\n online: true,\n position: [431.60000000, 0.62500079, 94.90000000],\n },\n {\n id: '50',\n name: '陈红',\n dep: '设备运维',\n online: true,\n position: [374.20000000, 0.62500079, 14.80000000],\n },\n {\n id: '58',\n name: '陈静娴',\n dep: '质量检测',\n online: true,\n position: [352.40000000, 0.62500079, 138.30000000],\n },\n {\n id: '54',\n name: '高红雷',\n dep: '运输装卸',\n online: true,\n position: [435.20000000, 0.62500079, 172.90000000],\n },\n {\n id: '57',\n name: '葛强',\n dep: '设备运维',\n online: true,\n position: [379.10000000, 0.62500079, 193.40000000],\n },\n {\n id: '46',\n name: '宫京',\n dep: '运输装卸',\n online: true,\n position: [441.30000000, 0.62500079, 80.70000000],\n },\n {\n id: '53',\n name: '匡青一',\n dep: '运输装卸',\n online: true,\n position: [379.10000000, 0.62500079, 173.80000000],\n },\n {\n id: '55',\n name: '李丽颖',\n dep: '质量检测',\n online: true,\n position: [357.50000000, 0.62500079, 221.40000000],\n },\n {\n id: '48',\n name: '李同一',\n dep: '工艺操作',\n online: true,\n position: [467.80000000, 0.62500079, 108.10000000],\n },\n {\n id: '56',\n name: '李晓阳',\n dep: '运输装卸',\n online: true,\n position: [444.20000000, 0.62500079, 191.80000000],\n },\n {\n id: '41',\n name: '刘超',\n dep: '运输装卸',\n online: true,\n position: [354.20000000, 0.62500079, -22.70000000],\n },\n {\n id: '42',\n name: '刘凤林',\n dep: '工艺操作',\n online: true,\n position: [368.50000000, 0.62500079, 40.30000000],\n },\n {\n id: '44',\n name: '卢灵',\n dep: '运输装卸',\n online: true,\n position: [368.00000000, 0.62500079, 79.90000000],\n },\n {\n id: '45',\n name: '苏丁',\n dep: '质量检测',\n online: true,\n position: [440.30000000, 0.62500079, 72.90000000],\n },\n {\n id: '50',\n name: '王林缘',\n dep: '工艺操作',\n online: true,\n position: [360.40000000, 0.62500079, 103.20000000],\n },\n {\n id: '51',\n name: '汪泉',\n dep: '运输装卸',\n online: true,\n position: [394.30000000, 0.62500079, 142.00000000],\n },\n {\n id: '43',\n name: '徐刚',\n dep: '运输装卸',\n online: true,\n position: [442.70000000, 0.62500079, -19.0000000],\n },\n {\n id: '52',\n name: '薛友',\n dep: '质量检测',\n online: true,\n position: [444.40000000, 0.62500079, 147.80000000],\n },\n {\n id: '60',\n name: '章虎泉',\n dep: '工艺操作',\n online: true,\n position: [467.80000000, 0.62500079, 21.90000000],\n },\n {\n id: '47',\n name: '张山峰',\n dep: '设备运维',\n online: true,\n position: [459.90000000, 0.62500079, 90.10000000],\n },\n ],\n poi: {\n id: '7',\n position: [404.24348058, 0.55000000, 85.00566808],\n content: '提供对工厂办公人员的休息和休闲区域,包括食堂,休息室,员工宿舍,休闲楼等场地,提供对工厂办公人员的休息和休闲区域,包括食堂,休息室,员工宿舍,休闲楼等场地,且该区域需较远离生产区,保证员工休息质量。',\n },\n camera: {\n id: '7',\n name: '摄像头7',\n position: [\n 404.24348058,\n 20.55,\n 85.00566808,\n ],\n },\n probePoint: [\n {\n id: '2',\n name: '甲烷监测点2',\n warn: false,\n position: [\n 384.24348058,\n 20.55,\n 75.00566808,\n ],\n },\n ],\n },\n}\n\nexport default regionMap"],"mappings":"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"}
|
|
@@ -17,6 +17,7 @@ var DistrictLineManage = /*#__PURE__*/function () {
|
|
|
17
17
|
_defineProperty(this, "gobal", void 0);
|
|
18
18
|
_defineProperty(this, "scene", void 0);
|
|
19
19
|
_defineProperty(this, "lineMesh", new Map());
|
|
20
|
+
_defineProperty(this, "isShow", false);
|
|
20
21
|
this.gobal = gobal;
|
|
21
22
|
this.scene = gobal.scene.scene;
|
|
22
23
|
}
|
|
@@ -24,16 +25,16 @@ var DistrictLineManage = /*#__PURE__*/function () {
|
|
|
24
25
|
key: "generateLine",
|
|
25
26
|
value: function generateLine() {
|
|
26
27
|
var _this = this;
|
|
28
|
+
this.isShow = true;
|
|
27
29
|
Object.keys(regionMap).forEach( /*#__PURE__*/function () {
|
|
28
30
|
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(key) {
|
|
29
31
|
var region, groundLinePoints, groundLine, geometry, material, mesh;
|
|
30
32
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
31
33
|
while (1) switch (_context.prev = _context.next) {
|
|
32
34
|
case 0:
|
|
33
|
-
// 摄像机
|
|
34
35
|
region = regionMap[key];
|
|
35
36
|
groundLinePoints = region.area.map(function (v) {
|
|
36
|
-
return new Vector3(v[0], v[1], v[2]);
|
|
37
|
+
return new Vector3(v[0], v[1] + 0.1, v[2]);
|
|
37
38
|
});
|
|
38
39
|
groundLine = new RoundLineGeometry(groundLinePoints, {
|
|
39
40
|
radius: 5,
|
|
@@ -41,7 +42,7 @@ var DistrictLineManage = /*#__PURE__*/function () {
|
|
|
41
42
|
});
|
|
42
43
|
geometry = new TubeGeometry(groundLine.curve, 10000, 1, 2, false);
|
|
43
44
|
material = new MeshBasicMaterial({
|
|
44
|
-
color: '#
|
|
45
|
+
color: '#f9ba41'
|
|
45
46
|
});
|
|
46
47
|
mesh = new Mesh(geometry, material);
|
|
47
48
|
_this.scene.add(mesh);
|
|
@@ -60,6 +61,7 @@ var DistrictLineManage = /*#__PURE__*/function () {
|
|
|
60
61
|
}, {
|
|
61
62
|
key: "remove",
|
|
62
63
|
value: function remove() {
|
|
64
|
+
this.isShow = false;
|
|
63
65
|
this.lineMesh.forEach(function (mesh) {
|
|
64
66
|
mesh.removeFromParent();
|
|
65
67
|
mesh.remove();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Mesh","MeshBasicMaterial","TubeGeometry","Vector3","RoundLineGeometry","regionMap","DistrictLineManage","gobal","Map","scene","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 constructor(gobal: Factory3D) {\n this.gobal = gobal\n this.scene = gobal.scene.scene\n }\n\n generateLine() {\n Object.keys(regionMap).forEach(async (key: string) => {\n
|
|
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"}
|
|
@@ -17,6 +17,7 @@ import AreaBoundingBoxManage from "./areaBoundingBox";
|
|
|
17
17
|
import Inspection from "./inspection";
|
|
18
18
|
import CameraPoi from "./CameraPoi";
|
|
19
19
|
import DistrictLineManage from "./districtLine";
|
|
20
|
+
import RegionPlane from "./region";
|
|
20
21
|
var emitter = utils.emitter;
|
|
21
22
|
|
|
22
23
|
// 临时优化
|
|
@@ -34,13 +35,11 @@ var showPeopleManagemen = function showPeopleManagemen() {
|
|
|
34
35
|
this.cylinder.cylinderMesh.forEach(function (mesh) {
|
|
35
36
|
mesh.visible = true;
|
|
36
37
|
});
|
|
37
|
-
this.districtLine.generateLine();
|
|
38
38
|
};
|
|
39
39
|
var closePeopleManagemen = function closePeopleManagemen() {
|
|
40
40
|
this.cylinder.cylinderMesh.forEach(function (mesh) {
|
|
41
41
|
mesh.visible = false;
|
|
42
42
|
});
|
|
43
|
-
this.districtLine.remove();
|
|
44
43
|
this.circle.remove();
|
|
45
44
|
};
|
|
46
45
|
var showSmartInspection = function showSmartInspection() {
|
|
@@ -58,32 +57,49 @@ var showCameraPoiInspection = function showCameraPoiInspection() {
|
|
|
58
57
|
(_this$cameraPoi2 = this.cameraPoi) === null || _this$cameraPoi2 === void 0 ? void 0 : _this$cameraPoi2.generateObject();
|
|
59
58
|
};
|
|
60
59
|
var toggleOverview = function toggleOverview() {
|
|
60
|
+
if (!this.districtLine.isShow) this.districtLine.generateLine();
|
|
61
61
|
this.scene.camera.layers.disable(28);
|
|
62
62
|
showOverview.apply(this);
|
|
63
63
|
closePeopleManagemen.apply(this);
|
|
64
64
|
closeSmartInspection.apply(this);
|
|
65
65
|
closeCameraPoiInspection.apply(this);
|
|
66
|
+
this.regionPlane.planeMesh.forEach(function (mesh) {
|
|
67
|
+
mesh.visible = true;
|
|
68
|
+
});
|
|
66
69
|
};
|
|
67
70
|
var togglePeopleManagemen = function togglePeopleManagemen() {
|
|
71
|
+
if (!this.districtLine.isShow) this.districtLine.generateLine();
|
|
68
72
|
this.scene.camera.layers.enable(28);
|
|
69
73
|
showPeopleManagemen.apply(this);
|
|
70
74
|
closeOverview.apply(this);
|
|
71
75
|
closeSmartInspection.apply(this);
|
|
72
76
|
closeCameraPoiInspection.apply(this);
|
|
77
|
+
this.regionPlane.planeMesh.forEach(function (mesh) {
|
|
78
|
+
mesh.visible = true;
|
|
79
|
+
});
|
|
73
80
|
};
|
|
74
81
|
var toggleSmartInspection = function toggleSmartInspection() {
|
|
82
|
+
this.districtLine.remove();
|
|
75
83
|
this.scene.camera.layers.disable(28);
|
|
76
84
|
showSmartInspection.apply(this);
|
|
77
85
|
closeOverview.apply(this);
|
|
78
86
|
closePeopleManagemen.apply(this);
|
|
79
87
|
closeCameraPoiInspection.apply(this);
|
|
88
|
+
this.regionPlane.planeMesh.forEach(function (mesh) {
|
|
89
|
+
console.log(mesh);
|
|
90
|
+
mesh.visible = false;
|
|
91
|
+
});
|
|
80
92
|
};
|
|
81
93
|
var toggleSecurityOperation = function toggleSecurityOperation() {
|
|
94
|
+
this.districtLine.remove();
|
|
82
95
|
this.scene.camera.layers.disable(28);
|
|
83
96
|
showCameraPoiInspection.apply(this);
|
|
84
97
|
closeOverview.apply(this);
|
|
85
98
|
closePeopleManagemen.apply(this);
|
|
86
99
|
closeSmartInspection.apply(this);
|
|
100
|
+
this.regionPlane.planeMesh.forEach(function (mesh) {
|
|
101
|
+
mesh.visible = false;
|
|
102
|
+
});
|
|
87
103
|
};
|
|
88
104
|
export var toggleTag = (_toggleTag = {}, _defineProperty(_toggleTag, SceneTag.overview, function () {
|
|
89
105
|
this.tag = SceneTag.overview;
|
|
@@ -117,6 +133,8 @@ var handleUnit = function handleUnit() {
|
|
|
117
133
|
});
|
|
118
134
|
cylinder.generateCylinder();
|
|
119
135
|
this.cylinder = cylinder;
|
|
136
|
+
var regionPlane = new RegionPlane(this);
|
|
137
|
+
this.regionPlane = regionPlane;
|
|
120
138
|
|
|
121
139
|
// POI
|
|
122
140
|
var poi = new PoiManage(this);
|
|
@@ -128,6 +146,7 @@ var handleUnit = function handleUnit() {
|
|
|
128
146
|
this.circle = circle;
|
|
129
147
|
var districtLine = new DistrictLineManage(this);
|
|
130
148
|
this.districtLine = districtLine;
|
|
149
|
+
this.districtLine.generateLine();
|
|
131
150
|
emitter.on('peoplemanagement-camera-enter', function (data) {
|
|
132
151
|
sendToMessage(MessageType.Event, 'onClick', EMessageStatus.Success, undefined, _objectSpread({
|
|
133
152
|
type: 'Bar'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["utils","SceneStyle","SceneTag","MessageType","sendToMessage","EMessageStatus","WallManage","CylinderManage","PoiManage","CircleManage","AreaBoundingBoxManage","Inspection","CameraPoi","DistrictLineManage","emitter","showOverview","poi","generatePoi","closeOverview","wall","wallMesh","forEach","mesh","visible","remove","showPeopleManagemen","cylinder","cylinderMesh","districtLine","generateLine","closePeopleManagemen","circle","showSmartInspection","inspection","show","closeSmartInspection","hide","closeCameraPoiInspection","cameraPoi","showCameraPoiInspection","generateObject","toggleOverview","scene","camera","layers","disable","apply","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'\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 this.districtLine.generateLine()\n}\n\nconst closePeopleManagemen = function () {\n this.cylinder.cylinderMesh.forEach((mesh) => {\n mesh.visible = false\n })\n this.districtLine.remove()\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 this.scene.camera.layers.disable(28)\n showOverview.apply(this)\n closePeopleManagemen.apply(this)\n closeSmartInspection.apply(this)\n closeCameraPoiInspection.apply(this)\n}\n\nconst togglePeopleManagemen = function () {\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\nconst toggleSmartInspection = function () {\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\nconst toggleSecurityOperation = function () {\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\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 // 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 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
|
+
{"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,4 +1,4 @@
|
|
|
1
|
-
import { ShaderMaterial, Sprite, TextureLoader, Vector3, Vector4, use } from '@anov/3d-core';
|
|
1
|
+
import { Color, ShaderMaterial, Sprite, TextureLoader, Vector3, Vector4, use } from '@anov/3d-core';
|
|
2
2
|
import { usePath } from "../../3d";
|
|
3
3
|
var lookAtOnYAxis = function lookAtOnYAxis(mesh, targetPosition) {
|
|
4
4
|
var direction = new Vector3().subVectors(targetPosition, mesh.position);
|
|
@@ -110,7 +110,7 @@ var createRiseLayer = function createRiseLayer(riseLayer) {
|
|
|
110
110
|
var riseSpriteMaterial = new ShaderMaterial({
|
|
111
111
|
uniforms: {
|
|
112
112
|
_TintColor: {
|
|
113
|
-
value: new Vector4(
|
|
113
|
+
value: new Vector4(new Color('#857125').r, new Color('#857125').g, new Color('#857125').b, 1)
|
|
114
114
|
},
|
|
115
115
|
_MainTex: {
|
|
116
116
|
value: new TextureLoader().load("".concat(usePath, "test03.png"))
|
|
@@ -122,7 +122,7 @@ var createRiseLayer = function createRiseLayer(riseLayer) {
|
|
|
122
122
|
depthTest: false,
|
|
123
123
|
transparent: true,
|
|
124
124
|
vertexShader: /* glsl */"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }\n ",
|
|
125
|
-
fragmentShader: /* glsl */"\nuniform vec3 _TintColor;\nuniform sampler2D _MainTex;\nuniform float _InvFade;\n\nvarying vec2 vUv;\n\nvoid main() {\n #ifdef USE_SOFTPARTICLES\n float sceneZ = texture2DProj(_CameraDepthTexture, vec4(vUv, 0.0, 1.0)).r;\n float partZ = gl_FragCoord.z / gl_FragCoord.w;\n float fade = clamp(_InvFade * (sceneZ - partZ), 0.0, 1.0);\n gl_FragColor = vec4(texture2D(_MainTex, vUv).rgb * _TintColor.rgb * 2.0 * fade, texture2D(_MainTex, vUv).a);\n #else\n gl_FragColor = vec4(texture2D(_MainTex, vUv).rgb * _TintColor.rgb * 2.0, texture2D(_MainTex, vUv).a);\n #endif\n\n \n}\n "
|
|
125
|
+
fragmentShader: /* glsl */"\nuniform vec3 _TintColor;\nuniform sampler2D _MainTex;\nuniform float _InvFade;\n\nvarying vec2 vUv;\n\nvoid main() {\n #ifdef USE_SOFTPARTICLES\n float sceneZ = texture2DProj(_CameraDepthTexture, vec4(vUv, 0.0, 1.0)).r;\n float partZ = gl_FragCoord.z / gl_FragCoord.w;\n float fade = clamp(_InvFade * (sceneZ - partZ), 0.0, 1.0);\n gl_FragColor = vec4(texture2D(_MainTex, vUv).rgb * _TintColor.rgb * 2.0 * fade, texture2D(_MainTex, vUv).a);\n #else\n gl_FragColor = vec4(texture2D(_MainTex, vUv).rgb * _TintColor.rgb * 2.0, texture2D(_MainTex, vUv).a);\n #endif\n\n\n\n \n}\n "
|
|
126
126
|
});
|
|
127
127
|
position.forEach(function (item) {
|
|
128
128
|
var sprite = new Sprite(riseSpriteMaterial);
|
|
@@ -133,7 +133,7 @@ var createRiseLayer = function createRiseLayer(riseLayer) {
|
|
|
133
133
|
use.useframe(function () {
|
|
134
134
|
lookAtOnYAxis(sprite, camera.position);
|
|
135
135
|
if (sprite.position.y > 300) sprite.position.y = 0;
|
|
136
|
-
sprite.position.y += 1.
|
|
136
|
+
sprite.position.y += 1.0;
|
|
137
137
|
});
|
|
138
138
|
scene.add(sprite);
|
|
139
139
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ShaderMaterial","Sprite","TextureLoader","Vector3","Vector4","use","usePath","lookAtOnYAxis","mesh","targetPosition","direction","subVectors","position","y","normalize","rotationY","Math","atan2","z","x","PI","rotation","createRiseLayer","riseLayer","useScene","scene","camera","RiseLayer","riseSpriteMaterial","uniforms","_TintColor","value","_MainTex","load","_InvFade","depthTest","transparent","vertexShader","fragmentShader","forEach","item","sprite","scale","set","rotateZ","random","layers","useframe","add"],"sources":["../../../../src/factory/unit/layer/rise.ts"],"sourcesContent":["import type { Object3D } from '@anov/3d-core'\nimport { ShaderMaterial, Sprite, TextureLoader, Vector3, Vector4, lib, use } from '@anov/3d-core'\nimport { usePath } from '../../3d'\n\nconst lookAtOnYAxis = (mesh: Object3D, targetPosition: Vector3) => {\n const direction = new Vector3().subVectors(targetPosition, mesh.position)\n direction.y = 0\n direction.normalize()\n\n let rotationY = Math.atan2(-direction.z, direction.x)\n\n rotationY -= Math.PI / 2\n\n mesh.rotation.y = rotationY + Math.PI\n}\n\nconst position = [{ x: -498.20348353985537, y: 1.724138326633124, z: -281.23472454616785 },\n { x: -563.1644534597008, y: -7.638570902979723, z: -149.5955833695798 },\n { x: -539.9109368199106, y: -0.7796363631222221, z: 4.303779590985869 },\n { x: -534.3300967431978, y: -1.9484837019957695, z: 207.03842215576515 },\n { x: -442.78992295689204, y: -0.9124291814532626, z: 284.6781114942187 },\n { x: -283.09754160435295, y: -0.8067932128907387, z: 284.7632588661927 },\n { x: -17.793886943446523, y: -0.8170822284307633, z: 278.6614163511422 },\n { x: 179.67836454455573, y: -0.7142971925655957, z: 277.5182969378766 },\n { x: 508.9391424549631, y: -0.06078556583531736, z: 270.6384956562051 },\n { x: 533.1529366899049, y: -0.3130418997158131, z: 175.59337885556306 },\n { x: 533.9192918796916, y: -0.595400047193607, z: 70.85117576185621 },\n { x: 558.8072691291136, y: 5.982457089229797, z: -47.46377685009156 },\n { x: 536.4516296924203, y: 1.629037413908577, z: -152.78540121590413 },\n { x: 555.1397274226065, y: 0.23968594510984076, z: -307.35056881373566 },\n { x: 476.2494806852892, y: -0.8084288516456581, z: -345.36949523013845 },\n { x: 216.87888929400197, y: -0.5794669817644262, z: -332.7211786339103 },\n { x: 175.22031507466454, y: -0.5724182128905113, z: -341.87163811528535 },\n { x: -35.18223117258549, y: -0.6265496863107956, z: -379.64710400924196 },\n { x: -356.44488560882746, y: -0.8819180034963665, z: -351.6907599590395 },\n { x: -237.58163560440826, y: 1.1368683772161603e-13, z: -128.96463232189376 },\n { x: 196.42648060764338, y: 1.1368683772161603e-13, z: 55.58793681693976 },\n { x: -235.24785890696023, y: 0, z: 187.57190736438497 },\n]\n\n/**\n * todo: other page remove animation\n * @param riseLayer\n */\nconst createRiseLayer = (riseLayer?: number) => {\n const { scene, camera } = use.useScene()\n const RiseLayer = riseLayer ?? 28\n\n const riseSpriteMaterial = new ShaderMaterial(\n {\n uniforms: {\n _TintColor: {\n value: new Vector4(
|
|
1
|
+
{"version":3,"names":["Color","ShaderMaterial","Sprite","TextureLoader","Vector3","Vector4","use","usePath","lookAtOnYAxis","mesh","targetPosition","direction","subVectors","position","y","normalize","rotationY","Math","atan2","z","x","PI","rotation","createRiseLayer","riseLayer","useScene","scene","camera","RiseLayer","riseSpriteMaterial","uniforms","_TintColor","value","r","g","b","_MainTex","load","_InvFade","depthTest","transparent","vertexShader","fragmentShader","forEach","item","sprite","scale","set","rotateZ","random","layers","useframe","add"],"sources":["../../../../src/factory/unit/layer/rise.ts"],"sourcesContent":["import type { Object3D } from '@anov/3d-core'\nimport { Color, ShaderMaterial, Sprite, TextureLoader, Vector3, Vector4, lib, use } from '@anov/3d-core'\nimport { usePath } from '../../3d'\n\nconst lookAtOnYAxis = (mesh: Object3D, targetPosition: Vector3) => {\n const direction = new Vector3().subVectors(targetPosition, mesh.position)\n direction.y = 0\n direction.normalize()\n\n let rotationY = Math.atan2(-direction.z, direction.x)\n\n rotationY -= Math.PI / 2\n\n mesh.rotation.y = rotationY + Math.PI\n}\n\nconst position = [{ x: -498.20348353985537, y: 1.724138326633124, z: -281.23472454616785 },\n { x: -563.1644534597008, y: -7.638570902979723, z: -149.5955833695798 },\n { x: -539.9109368199106, y: -0.7796363631222221, z: 4.303779590985869 },\n { x: -534.3300967431978, y: -1.9484837019957695, z: 207.03842215576515 },\n { x: -442.78992295689204, y: -0.9124291814532626, z: 284.6781114942187 },\n { x: -283.09754160435295, y: -0.8067932128907387, z: 284.7632588661927 },\n { x: -17.793886943446523, y: -0.8170822284307633, z: 278.6614163511422 },\n { x: 179.67836454455573, y: -0.7142971925655957, z: 277.5182969378766 },\n { x: 508.9391424549631, y: -0.06078556583531736, z: 270.6384956562051 },\n { x: 533.1529366899049, y: -0.3130418997158131, z: 175.59337885556306 },\n { x: 533.9192918796916, y: -0.595400047193607, z: 70.85117576185621 },\n { x: 558.8072691291136, y: 5.982457089229797, z: -47.46377685009156 },\n { x: 536.4516296924203, y: 1.629037413908577, z: -152.78540121590413 },\n { x: 555.1397274226065, y: 0.23968594510984076, z: -307.35056881373566 },\n { x: 476.2494806852892, y: -0.8084288516456581, z: -345.36949523013845 },\n { x: 216.87888929400197, y: -0.5794669817644262, z: -332.7211786339103 },\n { x: 175.22031507466454, y: -0.5724182128905113, z: -341.87163811528535 },\n { x: -35.18223117258549, y: -0.6265496863107956, z: -379.64710400924196 },\n { x: -356.44488560882746, y: -0.8819180034963665, z: -351.6907599590395 },\n { x: -237.58163560440826, y: 1.1368683772161603e-13, z: -128.96463232189376 },\n { x: 196.42648060764338, y: 1.1368683772161603e-13, z: 55.58793681693976 },\n { x: -235.24785890696023, y: 0, z: 187.57190736438497 },\n]\n\n/**\n * todo: other page remove animation\n * @param riseLayer\n */\nconst createRiseLayer = (riseLayer?: number) => {\n const { scene, camera } = use.useScene()\n const RiseLayer = riseLayer ?? 28\n\n const riseSpriteMaterial = new ShaderMaterial(\n {\n uniforms: {\n _TintColor: {\n value: new Vector4(new Color('#857125').r, new Color('#857125').g, new Color('#857125').b, 1),\n },\n _MainTex: {\n value: new TextureLoader().load(`${usePath}test03.png`),\n },\n _InvFade: {\n value: 0.5,\n },\n },\n depthTest: false,\n transparent: true,\n vertexShader: /* glsl */`\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }\n `,\n fragmentShader: /* glsl */`\nuniform vec3 _TintColor;\nuniform sampler2D _MainTex;\nuniform float _InvFade;\n\nvarying vec2 vUv;\n\nvoid main() {\n #ifdef USE_SOFTPARTICLES\n float sceneZ = texture2DProj(_CameraDepthTexture, vec4(vUv, 0.0, 1.0)).r;\n float partZ = gl_FragCoord.z / gl_FragCoord.w;\n float fade = clamp(_InvFade * (sceneZ - partZ), 0.0, 1.0);\n gl_FragColor = vec4(texture2D(_MainTex, vUv).rgb * _TintColor.rgb * 2.0 * fade, texture2D(_MainTex, vUv).a);\n #else\n gl_FragColor = vec4(texture2D(_MainTex, vUv).rgb * _TintColor.rgb * 2.0, texture2D(_MainTex, vUv).a);\n #endif\n\n\n\n \n}\n `,\n\n },\n )\n\n position.forEach((item) => {\n const sprite = new Sprite(\n riseSpriteMaterial as any,\n )\n\n sprite.scale.set(30, 30, 1)\n sprite.rotateZ(-Math.PI / 2)\n\n sprite.position.set(item.x, item.y + Math.random() * 300, item.z)\n sprite.layers.set(RiseLayer)\n\n use.useframe(() => {\n lookAtOnYAxis(sprite, camera!.position)\n\n if (sprite.position.y > 300)\n sprite.position.y = 0\n\n sprite.position.y += 1.0\n })\n\n scene!.add(sprite)\n })\n}\n\nexport default createRiseLayer"],"mappings":"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"}
|
package/dist/factory/unit/poi.js
CHANGED
|
@@ -8,10 +8,11 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
|
|
|
8
8
|
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; }
|
|
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
|
-
import { Vector3, utils } from '@anov/3d-core';
|
|
11
|
+
import { Vector3, use, utils } from '@anov/3d-core';
|
|
12
12
|
import { Css2DPoi, EAnimationType, SpritePoi } from '@anov/3d-ability';
|
|
13
13
|
import { usePath } from "../3d";
|
|
14
14
|
import { regionMap } from "../regionData";
|
|
15
|
+
import { walllMaterial } from "./wall";
|
|
15
16
|
var PoiManage = /*#__PURE__*/function () {
|
|
16
17
|
function PoiManage(gobal) {
|
|
17
18
|
_classCallCheck(this, PoiManage);
|
|
@@ -37,7 +38,7 @@ var PoiManage = /*#__PURE__*/function () {
|
|
|
37
38
|
case 0:
|
|
38
39
|
Object.keys(regionMap).forEach( /*#__PURE__*/function () {
|
|
39
40
|
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(key) {
|
|
40
|
-
var region, option, sprite, changeWallState, unClick;
|
|
41
|
+
var region, option, sprite, target, changeWallState, unClick;
|
|
41
42
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
42
43
|
while (1) switch (_context.prev = _context.next) {
|
|
43
44
|
case 0:
|
|
@@ -57,7 +58,8 @@ var PoiManage = /*#__PURE__*/function () {
|
|
|
57
58
|
_this.scene.add(sprite);
|
|
58
59
|
_this.poiMesh.set(region.poi.id, sprite);
|
|
59
60
|
|
|
60
|
-
//
|
|
61
|
+
// @ts-ignore
|
|
62
|
+
target = _this.gobal.regionPlane.planeMesh.get(region.id); // 绑定事件
|
|
61
63
|
_this.interactionManager.add(sprite);
|
|
62
64
|
changeWallState = function changeWallState(show) {
|
|
63
65
|
var _this$dialogPoi;
|
|
@@ -65,11 +67,27 @@ var PoiManage = /*#__PURE__*/function () {
|
|
|
65
67
|
// 光墙
|
|
66
68
|
var wall = _this.wallManage.wallMesh.get(region.id);
|
|
67
69
|
wall.visible = show;
|
|
70
|
+
walllMaterial.uniforms.grow.value = 0;
|
|
71
|
+
if (show) {
|
|
72
|
+
var wallGrowFrame;
|
|
73
|
+
if (wallGrowFrame) wallGrowFrame();
|
|
74
|
+
wallGrowFrame = use.useframe(function () {
|
|
75
|
+
walllMaterial.uniforms.grow.value += 3;
|
|
76
|
+
if (walllMaterial.uniforms.grow.value > 50) wallGrowFrame();
|
|
77
|
+
});
|
|
78
|
+
}
|
|
68
79
|
};
|
|
80
|
+
target.addEventListener('mouseover', function () {
|
|
81
|
+
if (!sprite.visible) return;
|
|
82
|
+
changeWallState(true);
|
|
83
|
+
});
|
|
69
84
|
sprite.addEventListener('mouseover', function () {
|
|
70
85
|
if (!sprite.visible) return;
|
|
71
86
|
changeWallState(true);
|
|
72
87
|
});
|
|
88
|
+
target.addEventListener('mouseout', function () {
|
|
89
|
+
changeWallState(false);
|
|
90
|
+
});
|
|
73
91
|
sprite.addEventListener('mouseout', function () {
|
|
74
92
|
changeWallState(false);
|
|
75
93
|
});
|
|
@@ -82,10 +100,22 @@ var PoiManage = /*#__PURE__*/function () {
|
|
|
82
100
|
wall.visible = true;
|
|
83
101
|
// 隐藏当前POI点
|
|
84
102
|
sprite.visible = false;
|
|
103
|
+
|
|
104
|
+
// let wallGrowFrame
|
|
105
|
+
|
|
106
|
+
// if (wallGrowFrame)
|
|
107
|
+
// wallGrowFrame()
|
|
108
|
+
|
|
109
|
+
// walllMaterial.uniforms.grow.value = 0
|
|
110
|
+
|
|
111
|
+
// wallGrowFrame = use.useframe(() => {
|
|
112
|
+
// walllMaterial.uniforms.grow.value += 3
|
|
113
|
+
// })
|
|
114
|
+
|
|
85
115
|
_this.addDialogPanel(region, event.point);
|
|
86
116
|
});
|
|
87
117
|
_this.poiEventListener.add(unClick);
|
|
88
|
-
case
|
|
118
|
+
case 15:
|
|
89
119
|
case "end":
|
|
90
120
|
return _context.stop();
|
|
91
121
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Vector3","utils","Css2DPoi","EAnimationType","SpritePoi","usePath","regionMap","PoiManage","gobal","Map","Set","scene","wallManage","wall","interactionManager","storeManagement","get","Object","keys","forEach","key","region","option","scale","animation","type","grow","duration","fadeIn","sprite","getDom","position","copy","fromArray","poi","add","poiMesh","set","id","changeWallState","show","dialogPoi","visible","wallMesh","addEventListener","unClick","event","reset","addDialogPanel","point","poiEventListener","data","dom","document","createElement","assign","style","fontSize","backgroundImage","backgroundSize","backgroundRepeat","display","justifyContent","alignItems","textAlign","color","pointerEvents","cursor","height","width","title","length","padding","fontWeight","innerText","remove","removeFromParent","f","clear","content","print","clone"],"sources":["../../../src/factory/unit/poi.ts"],"sourcesContent":["import type { InteractionManager, Object3D, Scene } from '@anov/3d-core'\nimport { Vector3, utils } from '@anov/3d-core'\nimport { Css2DPoi, EAnimationType, SpritePoi } from '@anov/3d-ability'\nimport type Factory3D from '../3d'\nimport { usePath } from '../3d'\nimport { regionMap } from '../regionData'\nimport type WallManage from './wall'\n\nclass PoiManage {\n private gobal: Factory3D\n private scene: Scene\n private dialogPoi: Object3D\n readonly poiMesh: Map<string, Object3D> = new Map()\n readonly poiEventListener: Set<Function> = new Set()\n private wallManage: WallManage\n private interactionManager\n\n constructor(gobal) {\n this.gobal = gobal\n this.scene = gobal.scene.scene\n this.wallManage = gobal.wall\n this.interactionManager = utils.storeManagement.get<InteractionManager>('interactionManager')\n }\n\n async generatePoi() {\n Object.keys(regionMap).forEach(async (key: string) => {\n const region = regionMap[key]\n const option = {\n scale: [80, 80, 1],\n animation: [{\n type: EAnimationType.grow,\n duration: 1,\n }, {\n type: EAnimationType.fadeIn,\n duration: 0.2,\n }],\n }\n const sprite = new SpritePoi(this.getDom(region), option)\n sprite.position.copy(new Vector3().fromArray(region.poi.position))\n\n this.scene.add(sprite)\n this.poiMesh.set(region.poi.id, sprite)\n\n // 绑定事件\n this.interactionManager.add(sprite)\n const changeWallState = (show) => {\n if (this.dialogPoi?.visible)\n return\n // 光墙\n const wall = this.wallManage.wallMesh.get(region.id)\n wall.visible = show\n }\n\n sprite.addEventListener('mouseover', () => {\n if (!sprite.visible)\n return\n changeWallState(true)\n })\n sprite.addEventListener('mouseout', () => {\n changeWallState(false)\n })\n const unClick = sprite.addEventListener('click', (event) => {\n if (!sprite.visible)\n return\n this.reset()\n\n // 光墙\n const wall = this.wallManage.wallMesh.get(region.id)\n wall.visible = true\n // 隐藏当前POI点\n sprite.visible = false\n this.addDialogPanel(region, event.point)\n }) as Function\n this.poiEventListener.add(unClick)\n })\n }\n\n getDom(data) {\n const dom = document.createElement('div')\n Object.assign(dom.style, {\n fontSize: '18px',\n backgroundImage: `url(${usePath}poi2.png)`,\n backgroundSize: '100% 100%',\n backgroundRepeat: 'no-repeat',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'flex-start',\n textAlign: 'center',\n color: '#fff',\n pointerEvents: 'auto',\n cursor: 'pointer',\n height: '262px',\n width: `${data.title.length * 36}px`,\n padding: '12px 0 0 25px',\n fontWeight: 'bold',\n })\n dom.innerText = data.title\n return dom\n }\n\n remove() {\n // 控制POI点的隐藏、显示\n this.poiMesh.forEach((poi) => {\n this.interactionManager.remove(poi)\n poi.removeFromParent()\n poi.remove()\n })\n // 取消事件监听\n this.poiEventListener.forEach((f) => {\n f()\n })\n // 移除面板\n if (this.dialogPoi)\n this.dialogPoi.removeFromParent()\n this.poiMesh.clear()\n this.poiEventListener.clear()\n }\n\n reset() {\n // 控制POI点的隐藏、显示\n // 控制POI点的隐藏、显示\n this.poiMesh.forEach((poi) => {\n poi.visible = true\n })\n // 移除面板\n if (this.dialogPoi)\n this.dialogPoi.removeFromParent()\n // 控制光墙的隐藏、显示\n this.wallManage?.wallMesh.forEach((wall) => {\n wall.visible = false\n })\n }\n\n private addDialogPanel(data, position) {\n // 添加面板\n this.dialogPoi = new Css2DPoi({ title: data.title, content: data.poi.content }, {\n animation: [{\n type: EAnimationType.grow,\n duration: 1,\n }, {\n type: EAnimationType.fadeIn,\n duration: 0.3,\n }, {\n type: EAnimationType.print,\n duration: 0.02,\n }],\n })\n this.dialogPoi.position.copy(position.clone().add(new Vector3(-30, 30, 0)))\n this.scene.add(this.dialogPoi)\n\n this.interactionManager.add(this.dialogPoi)\n this.dialogPoi.addEventListener('click', () => {\n this.dialogPoi.remove()\n this.dialogPoi.removeFromParent()\n this.dialogPoi = null\n this.reset()\n })\n }\n}\n\nexport default PoiManage"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["Vector3","use","utils","Css2DPoi","EAnimationType","SpritePoi","usePath","regionMap","walllMaterial","PoiManage","gobal","Map","Set","scene","wallManage","wall","interactionManager","storeManagement","get","Object","keys","forEach","key","region","option","scale","animation","type","grow","duration","fadeIn","sprite","getDom","position","copy","fromArray","poi","add","poiMesh","set","id","target","regionPlane","planeMesh","changeWallState","show","dialogPoi","visible","wallMesh","uniforms","value","wallGrowFrame","useframe","addEventListener","unClick","event","reset","addDialogPanel","point","poiEventListener","data","dom","document","createElement","assign","style","fontSize","backgroundImage","backgroundSize","backgroundRepeat","display","justifyContent","alignItems","textAlign","color","pointerEvents","cursor","height","width","title","length","padding","fontWeight","innerText","remove","removeFromParent","f","clear","content","print","clone"],"sources":["../../../src/factory/unit/poi.ts"],"sourcesContent":["import type { InteractionManager, Object3D, Scene } from '@anov/3d-core'\nimport { Vector3, use, utils } from '@anov/3d-core'\nimport { Css2DPoi, EAnimationType, SpritePoi } from '@anov/3d-ability'\nimport type Factory3D from '../3d'\nimport { usePath } from '../3d'\nimport { regionMap } from '../regionData'\nimport type WallManage from './wall'\nimport { walllMaterial } from './wall'\n\nclass PoiManage {\n private gobal: Factory3D\n private scene: Scene\n private dialogPoi: Object3D\n readonly poiMesh: Map<string, Object3D> = new Map()\n readonly poiEventListener: Set<Function> = new Set()\n private wallManage: WallManage\n private interactionManager\n\n constructor(gobal) {\n this.gobal = gobal\n this.scene = gobal.scene.scene\n this.wallManage = gobal.wall\n this.interactionManager = utils.storeManagement.get<InteractionManager>('interactionManager')\n }\n\n async generatePoi() {\n Object.keys(regionMap).forEach(async (key: string) => {\n const region = regionMap[key]\n const option = {\n scale: [80, 80, 1],\n animation: [{\n type: EAnimationType.grow,\n duration: 1,\n }, {\n type: EAnimationType.fadeIn,\n duration: 0.2,\n }],\n }\n const sprite = new SpritePoi(this.getDom(region), option)\n sprite.position.copy(new Vector3().fromArray(region.poi.position))\n\n this.scene.add(sprite)\n this.poiMesh.set(region.poi.id, sprite)\n\n // @ts-ignore\n const target = this.gobal.regionPlane.planeMesh.get(region.id)\n\n // 绑定事件\n this.interactionManager.add(sprite)\n const changeWallState = (show) => {\n if (this.dialogPoi?.visible)\n return\n // 光墙\n const wall = this.wallManage.wallMesh.get(region.id)\n wall.visible = show\n walllMaterial.uniforms.grow.value = 0\n\n if (show) {\n let wallGrowFrame\n\n if (wallGrowFrame)\n wallGrowFrame()\n\n wallGrowFrame = use.useframe(() => {\n walllMaterial.uniforms.grow.value += 3\n\n if (walllMaterial.uniforms.grow.value > 50)\n wallGrowFrame()\n })\n }\n }\n\n target.addEventListener('mouseover', () => {\n if (!sprite.visible)\n return\n changeWallState(true)\n })\n\n sprite.addEventListener('mouseover', () => {\n if (!sprite.visible)\n return\n changeWallState(true)\n })\n\n target.addEventListener('mouseout', () => {\n changeWallState(false)\n })\n\n sprite.addEventListener('mouseout', () => {\n changeWallState(false)\n })\n\n const unClick = sprite.addEventListener('click', (event) => {\n if (!sprite.visible)\n return\n this.reset()\n\n // 光墙\n const wall = this.wallManage.wallMesh.get(region.id)\n wall.visible = true\n // 隐藏当前POI点\n sprite.visible = false\n\n // let wallGrowFrame\n\n // if (wallGrowFrame)\n // wallGrowFrame()\n\n // walllMaterial.uniforms.grow.value = 0\n\n // wallGrowFrame = use.useframe(() => {\n // walllMaterial.uniforms.grow.value += 3\n // })\n\n this.addDialogPanel(region, event.point)\n }) as Function\n this.poiEventListener.add(unClick)\n })\n }\n\n getDom(data) {\n const dom = document.createElement('div')\n Object.assign(dom.style, {\n fontSize: '18px',\n backgroundImage: `url(${usePath}poi2.png)`,\n backgroundSize: '100% 100%',\n backgroundRepeat: 'no-repeat',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'flex-start',\n textAlign: 'center',\n color: '#fff',\n pointerEvents: 'auto',\n cursor: 'pointer',\n height: '262px',\n width: `${data.title.length * 36}px`,\n padding: '12px 0 0 25px',\n fontWeight: 'bold',\n })\n dom.innerText = data.title\n return dom\n }\n\n remove() {\n // 控制POI点的隐藏、显示\n this.poiMesh.forEach((poi) => {\n this.interactionManager.remove(poi)\n poi.removeFromParent()\n poi.remove()\n })\n // 取消事件监听\n this.poiEventListener.forEach((f) => {\n f()\n })\n // 移除面板\n if (this.dialogPoi)\n this.dialogPoi.removeFromParent()\n this.poiMesh.clear()\n this.poiEventListener.clear()\n }\n\n reset() {\n // 控制POI点的隐藏、显示\n // 控制POI点的隐藏、显示\n this.poiMesh.forEach((poi) => {\n poi.visible = true\n })\n // 移除面板\n if (this.dialogPoi)\n this.dialogPoi.removeFromParent()\n // 控制光墙的隐藏、显示\n this.wallManage?.wallMesh.forEach((wall) => {\n wall.visible = false\n })\n }\n\n private addDialogPanel(data, position) {\n // 添加面板\n this.dialogPoi = new Css2DPoi({ title: data.title, content: data.poi.content }, {\n animation: [{\n type: EAnimationType.grow,\n duration: 1,\n }, {\n type: EAnimationType.fadeIn,\n duration: 0.3,\n }, {\n type: EAnimationType.print,\n duration: 0.02,\n }],\n })\n this.dialogPoi.position.copy(position.clone().add(new Vector3(-30, 30, 0)))\n this.scene.add(this.dialogPoi)\n\n this.interactionManager.add(this.dialogPoi)\n this.dialogPoi.addEventListener('click', () => {\n this.dialogPoi.remove()\n this.dialogPoi.removeFromParent()\n this.dialogPoi = null\n this.reset()\n })\n }\n}\n\nexport default PoiManage"],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Object3D } from '@anov/3d-core';
|
|
2
|
+
import { BufferGeometry } from '@anov/3d-core';
|
|
3
|
+
import type Factory3D from '../3d';
|
|
4
|
+
declare class RegionPlane {
|
|
5
|
+
private scene;
|
|
6
|
+
readonly planeMesh: Map<string, Object3D>;
|
|
7
|
+
constructor(gobal: Factory3D);
|
|
8
|
+
generatePlane(): void;
|
|
9
|
+
createFaceGeometry(point1: any, point2: any, point3: any, point4: any): BufferGeometry<import("@anov/3d-core").NormalBufferAttributes>;
|
|
10
|
+
remove(): void;
|
|
11
|
+
}
|
|
12
|
+
export default RegionPlane;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
2
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
3
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
4
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
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
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
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 { BufferAttribute, BufferGeometry, DoubleSide, Mesh, MeshBasicMaterial, Vector3, utils } from '@anov/3d-core';
|
|
9
|
+
import { regionMap } from "../regionData";
|
|
10
|
+
var RegionPlane = /*#__PURE__*/function () {
|
|
11
|
+
function RegionPlane(gobal) {
|
|
12
|
+
_classCallCheck(this, RegionPlane);
|
|
13
|
+
_defineProperty(this, "scene", void 0);
|
|
14
|
+
_defineProperty(this, "planeMesh", new Map());
|
|
15
|
+
this.scene = gobal.scene.scene;
|
|
16
|
+
this.generatePlane();
|
|
17
|
+
}
|
|
18
|
+
_createClass(RegionPlane, [{
|
|
19
|
+
key: "generatePlane",
|
|
20
|
+
value: function generatePlane() {
|
|
21
|
+
var _this = this;
|
|
22
|
+
Object.values(regionMap).forEach(function (region) {
|
|
23
|
+
var area = region.area;
|
|
24
|
+
var areaVector3Arrat = area.map(function (v) {
|
|
25
|
+
return new Vector3(v[0], 20, v[2]);
|
|
26
|
+
});
|
|
27
|
+
var geometry = _this.createFaceGeometry(areaVector3Arrat[0], areaVector3Arrat[1], areaVector3Arrat[2], areaVector3Arrat[3]);
|
|
28
|
+
var plane = new Mesh(geometry, new MeshBasicMaterial({
|
|
29
|
+
color: '#f9ba41',
|
|
30
|
+
side: DoubleSide,
|
|
31
|
+
transparent: true,
|
|
32
|
+
opacity: 0,
|
|
33
|
+
depthTest: false
|
|
34
|
+
}));
|
|
35
|
+
_this.planeMesh.set(region.id, plane);
|
|
36
|
+
utils.storeManagement.get('interactionManager').add(plane);
|
|
37
|
+
_this.scene.add(plane);
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}, {
|
|
41
|
+
key: "createFaceGeometry",
|
|
42
|
+
value: function createFaceGeometry(point1, point2, point3, point4) {
|
|
43
|
+
var vertices = [point1.x, point1.y, point1.z, point2.x, point2.y, point2.z, point3.x, point3.y, point3.z, point4.x, point4.y, point4.z];
|
|
44
|
+
var indices = [0, 1, 2, 0, 2, 3];
|
|
45
|
+
var normal = new Vector3();
|
|
46
|
+
normal.crossVectors(new Vector3(point2.x - point1.x, point2.y - point1.y, point2.z - point1.z), new Vector3(point3.x - point1.x, point3.y - point1.y, point3.z - point1.z));
|
|
47
|
+
normal.normalize();
|
|
48
|
+
var normals = [normal.x, normal.y, normal.z, normal.x, normal.y, normal.z, normal.x, normal.y, normal.z, normal.x, normal.y, normal.z];
|
|
49
|
+
var geometry = new BufferGeometry();
|
|
50
|
+
geometry.setAttribute('position', new BufferAttribute(new Float32Array(vertices), 3));
|
|
51
|
+
geometry.setAttribute('normal', new BufferAttribute(new Float32Array(normals), 3));
|
|
52
|
+
geometry.setIndex(indices);
|
|
53
|
+
return geometry;
|
|
54
|
+
}
|
|
55
|
+
}, {
|
|
56
|
+
key: "remove",
|
|
57
|
+
value: function remove() {
|
|
58
|
+
this.planeMesh.forEach(function (mesh) {
|
|
59
|
+
mesh.removeFromParent();
|
|
60
|
+
mesh.remove();
|
|
61
|
+
|
|
62
|
+
// @ts-ignore
|
|
63
|
+
mesh.geometry.dispose();
|
|
64
|
+
// @ts-ignore
|
|
65
|
+
mesh.material.dispose();
|
|
66
|
+
});
|
|
67
|
+
this.planeMesh.clear();
|
|
68
|
+
}
|
|
69
|
+
}]);
|
|
70
|
+
return RegionPlane;
|
|
71
|
+
}();
|
|
72
|
+
export default RegionPlane;
|
|
73
|
+
//# sourceMappingURL=region.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["BufferAttribute","BufferGeometry","DoubleSide","Mesh","MeshBasicMaterial","Vector3","utils","regionMap","RegionPlane","gobal","Map","scene","generatePlane","Object","values","forEach","region","area","areaVector3Arrat","map","v","geometry","createFaceGeometry","plane","color","side","transparent","opacity","depthTest","planeMesh","set","id","storeManagement","get","add","point1","point2","point3","point4","vertices","x","y","z","indices","normal","crossVectors","normalize","normals","setAttribute","Float32Array","setIndex","mesh","removeFromParent","remove","dispose","material","clear"],"sources":["../../../src/factory/unit/region.ts"],"sourcesContent":["import type { InteractionManager, Object3D, Scene } from '@anov/3d-core'\nimport { BufferAttribute, BufferGeometry, DoubleSide, Mesh, MeshBasicMaterial, Vector3, utils } from '@anov/3d-core'\nimport type Factory3D from '../3d'\nimport { regionMap } from '../regionData'\n\nclass RegionPlane {\n private scene: Scene\n readonly planeMesh: Map<string, Object3D> = new Map()\n\n constructor(gobal: Factory3D) {\n this.scene = gobal.scene.scene\n this.generatePlane()\n }\n\n generatePlane() {\n Object.values(regionMap).forEach((region) => {\n const { area } = region\n const areaVector3Arrat = area.map(v => new Vector3(v[0], 20, v[2]))\n const geometry = this.createFaceGeometry(areaVector3Arrat[0], areaVector3Arrat[1], areaVector3Arrat[2], areaVector3Arrat[3])\n const plane = new Mesh(geometry, new MeshBasicMaterial({ color: '#f9ba41', side: DoubleSide, transparent: true, opacity: 0, depthTest: false }))\n this.planeMesh.set(region.id, plane)\n\n utils.storeManagement.get<InteractionManager>('interactionManager').add(plane)\n\n this.scene.add(plane)\n })\n }\n\n createFaceGeometry(point1, point2, point3, point4) {\n const vertices = [\n point1.x, point1.y, point1.z,\n point2.x, point2.y, point2.z,\n point3.x, point3.y, point3.z,\n point4.x, point4.y, point4.z,\n ]\n\n const indices = [\n 0, 1, 2,\n 0, 2, 3,\n ]\n\n const normal = new Vector3()\n normal.crossVectors(new Vector3(point2.x - point1.x, point2.y - point1.y, point2.z - point1.z),\n new Vector3(point3.x - point1.x, point3.y - point1.y, point3.z - point1.z))\n normal.normalize()\n const normals = [\n normal.x, normal.y, normal.z,\n normal.x, normal.y, normal.z,\n normal.x, normal.y, normal.z,\n normal.x, normal.y, normal.z,\n ]\n\n const geometry = new BufferGeometry()\n\n geometry.setAttribute('position', new BufferAttribute(new Float32Array(vertices), 3))\n geometry.setAttribute('normal', new BufferAttribute(new Float32Array(normals), 3))\n geometry.setIndex(indices)\n\n return geometry\n }\n\n remove() {\n this.planeMesh.forEach((mesh) => {\n mesh.removeFromParent()\n mesh.remove()\n\n // @ts-ignore\n mesh.geometry.dispose()\n // @ts-ignore\n mesh.material.dispose()\n })\n this.planeMesh.clear()\n }\n}\n\nexport default RegionPlane"],"mappings":"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"}
|
|
@@ -48,7 +48,7 @@ var wallPosition = [{
|
|
|
48
48
|
belongTo: regionMap.administrative.id,
|
|
49
49
|
points: regionMap.administrative.area
|
|
50
50
|
}];
|
|
51
|
-
var walllMaterial = new ShaderMaterial({
|
|
51
|
+
export var walllMaterial = new ShaderMaterial({
|
|
52
52
|
uniforms: {
|
|
53
53
|
iTime: {
|
|
54
54
|
value: 0
|
|
@@ -63,17 +63,20 @@ var walllMaterial = new ShaderMaterial({
|
|
|
63
63
|
value: 1.0
|
|
64
64
|
},
|
|
65
65
|
alpha: {
|
|
66
|
-
value: 0.
|
|
66
|
+
value: 0.15
|
|
67
67
|
},
|
|
68
68
|
color1: {
|
|
69
|
-
value: new Color('#
|
|
69
|
+
value: new Color('#1fddff')
|
|
70
70
|
},
|
|
71
71
|
color2: {
|
|
72
|
-
value: new Color('#
|
|
72
|
+
value: new Color('#1f88ff')
|
|
73
|
+
},
|
|
74
|
+
grow: {
|
|
75
|
+
value: 0.0
|
|
73
76
|
}
|
|
74
77
|
},
|
|
75
|
-
vertexShader: "varying vec2 vUv;\n
|
|
76
|
-
fragmentShader: "uniform float iTime;\n uniform float size
|
|
78
|
+
vertexShader: "\n varying vec2 vUv;\n varying vec3 vPosition;\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 }",
|
|
79
|
+
fragmentShader: "uniform float iTime;\n uniform float size;\n uniform float width;///\u5BBD\u5EA6\n uniform float speed;///\u901F\u5EA6\n uniform float alpha;///\u900F\u660E\u5EA6\n uniform vec3 color1;///\u989C\u82721\n uniform vec3 color2;///\u989C\u82722\n uniform float grow;\n varying vec2 vUv;\n varying vec3 vPosition;\n \n vec3 colorfix(vec3 color) {\n return vec3(color.r, color.g, color.b);\n }\n \n void mainImage(out vec4 fragColor, in vec2 fragCoord) {\n vec2 uv = vUv;\n vec2 wallUV = uv;\n wallUV.y *= size;\n\n float fwallUV = floor(fract(wallUV.y - iTime * speed) + width);\n float dis = 1. - (uv.y * 6. - 5.);\n float dis2 = 0.8 - (uv.y * 2. - 1.);\n vec3 col = color1 * dis2 + color2 * (1. - dis2);\n fragColor = vec4(col, fwallUV * alpha * dis);\n }\n \n void main() {\n vec2 fragCoord = gl_FragCoord.xy;\n mainImage(gl_FragColor, fragCoord);\n\n if(vPosition.y > grow){\n gl_FragColor.a = 0.0;\n }\n }\n \n ",
|
|
77
80
|
transparent: true,
|
|
78
81
|
side: 2,
|
|
79
82
|
depthTest: false
|
|
@@ -93,7 +96,7 @@ var WallManage = /*#__PURE__*/function () {
|
|
|
93
96
|
value: function generateWall() {
|
|
94
97
|
var _this = this;
|
|
95
98
|
setInterval(function () {
|
|
96
|
-
_this.time += 0.
|
|
99
|
+
_this.time += 0.008;
|
|
97
100
|
walllMaterial.uniforms.iTime.value = _this.time;
|
|
98
101
|
});
|
|
99
102
|
wallPosition.forEach(function (item) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createRoundLineWallMesh","Color","ShaderMaterial","Vector3","regionMap","wallPosition","label","reform","title","id","belongTo","points","area","reduction","crudeOil","catalyticCracking","hydrocrackingUnit","cokingUnit","administrative","walllMaterial","uniforms","iTime","value","size","width","speed","alpha","color1","color2","vertexShader","fragmentShader","transparent","side","depthTest","WallManage","gobal","options","Map","scene","option","setInterval","time","forEach","item","roundLineMesh","map","v","radius","close","visible","wallMesh","set","add"],"sources":["../../../src/factory/unit/wall.ts"],"sourcesContent":["import { createRoundLineWallMesh } from '@anov/3d-ability'\nimport type { Object3D, Scene } from '@anov/3d-core'\nimport { Color, ShaderMaterial, Vector3 } from '@anov/3d-core'\nimport type Factory3D from '../3d'\nimport regionMap from '../regionData'\n\n// import wallVertexShader from './glsl/wall/vertexShader.glsl'\n// import wallFragmentShader from './glsl/wall/fragmentShader.glsl'\n\nconst wallPosition = [\n {\n label: regionMap.reform.title,\n id: '1',\n belongTo: regionMap.reform.id,\n points: regionMap.reform.area,\n },\n {\n label: regionMap.reduction.title,\n id: '2',\n belongTo: regionMap.reduction.id,\n points: regionMap.reduction.area,\n },\n {\n label: regionMap.crudeOil.title,\n id: '3',\n belongTo: regionMap.crudeOil.id,\n points: regionMap.crudeOil.area,\n },\n {\n label: regionMap.catalyticCracking.title,\n id: '4',\n belongTo: regionMap.catalyticCracking.id,\n points: regionMap.catalyticCracking.area,\n },\n {\n label: regionMap.hydrocrackingUnit.title,\n id: '5',\n belongTo: regionMap.hydrocrackingUnit.id,\n points: regionMap.hydrocrackingUnit.area,\n },\n {\n label: regionMap.cokingUnit.title,\n id: '6',\n belongTo: regionMap.cokingUnit.id,\n points: regionMap.cokingUnit.area,\n },\n {\n label: regionMap.administrative.title,\n id: '7',\n belongTo: regionMap.administrative.id,\n points: regionMap.administrative.area,\n },\n]\n\
|
|
1
|
+
{"version":3,"names":["createRoundLineWallMesh","Color","ShaderMaterial","Vector3","regionMap","wallPosition","label","reform","title","id","belongTo","points","area","reduction","crudeOil","catalyticCracking","hydrocrackingUnit","cokingUnit","administrative","walllMaterial","uniforms","iTime","value","size","width","speed","alpha","color1","color2","grow","vertexShader","fragmentShader","transparent","side","depthTest","WallManage","gobal","options","Map","scene","option","setInterval","time","forEach","item","roundLineMesh","map","v","radius","close","visible","wallMesh","set","add"],"sources":["../../../src/factory/unit/wall.ts"],"sourcesContent":["import { createRoundLineWallMesh } from '@anov/3d-ability'\nimport type { Object3D, Scene } from '@anov/3d-core'\nimport { Color, ShaderMaterial, Vector3, use } from '@anov/3d-core'\nimport type Factory3D from '../3d'\nimport regionMap from '../regionData'\n\n// import wallVertexShader from './glsl/wall/vertexShader.glsl'\n// import wallFragmentShader from './glsl/wall/fragmentShader.glsl'\n\nconst wallPosition = [\n {\n label: regionMap.reform.title,\n id: '1',\n belongTo: regionMap.reform.id,\n points: regionMap.reform.area,\n },\n {\n label: regionMap.reduction.title,\n id: '2',\n belongTo: regionMap.reduction.id,\n points: regionMap.reduction.area,\n },\n {\n label: regionMap.crudeOil.title,\n id: '3',\n belongTo: regionMap.crudeOil.id,\n points: regionMap.crudeOil.area,\n },\n {\n label: regionMap.catalyticCracking.title,\n id: '4',\n belongTo: regionMap.catalyticCracking.id,\n points: regionMap.catalyticCracking.area,\n },\n {\n label: regionMap.hydrocrackingUnit.title,\n id: '5',\n belongTo: regionMap.hydrocrackingUnit.id,\n points: regionMap.hydrocrackingUnit.area,\n },\n {\n label: regionMap.cokingUnit.title,\n id: '6',\n belongTo: regionMap.cokingUnit.id,\n points: regionMap.cokingUnit.area,\n },\n {\n label: regionMap.administrative.title,\n id: '7',\n belongTo: regionMap.administrative.id,\n points: regionMap.administrative.area,\n },\n]\n\nexport const walllMaterial = new ShaderMaterial({\n uniforms: {\n iTime: {\n value: 0,\n },\n size: {\n value: 16.0,\n },\n width: {\n value: 0.4,\n },\n speed: {\n value: 1.0,\n },\n alpha: {\n value: 0.15,\n },\n color1: {\n value: new Color('#1fddff'),\n },\n color2: {\n value: new Color('#1f88ff'),\n },\n grow: {\n value: 0.0,\n },\n },\n vertexShader: `\n varying vec2 vUv;\n varying vec3 vPosition;\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 }`,\n fragmentShader: `uniform float iTime;\n uniform float size;\n uniform float width;///宽度\n uniform float speed;///速度\n uniform float alpha;///透明度\n uniform vec3 color1;///颜色1\n uniform vec3 color2;///颜色2\n uniform float grow;\n varying vec2 vUv;\n varying vec3 vPosition;\n \n vec3 colorfix(vec3 color) {\n return vec3(color.r, color.g, color.b);\n }\n \n void mainImage(out vec4 fragColor, in vec2 fragCoord) {\n vec2 uv = vUv;\n vec2 wallUV = uv;\n wallUV.y *= size;\n\n float fwallUV = floor(fract(wallUV.y - iTime * speed) + width);\n float dis = 1. - (uv.y * 6. - 5.);\n float dis2 = 0.8 - (uv.y * 2. - 1.);\n vec3 col = color1 * dis2 + color2 * (1. - dis2);\n fragColor = vec4(col, fwallUV * alpha * dis);\n }\n \n void main() {\n vec2 fragCoord = gl_FragCoord.xy;\n mainImage(gl_FragColor, fragCoord);\n\n if(vPosition.y > grow){\n gl_FragColor.a = 0.0;\n }\n }\n \n `,\n transparent: true,\n side: 2,\n depthTest: false,\n})\n\ntype WallManageOption = {\n visible?: boolean\n}\nclass WallManage {\n private scene: Scene\n readonly wallMesh: Map<string, Object3D> = new Map()\n private option: WallManageOption\n\n private time = 0\n\n constructor(gobal: Factory3D, options?: WallManageOption) {\n this.scene = gobal.scene.scene\n this.option = options || {}\n }\n\n generateWall() {\n setInterval(() => {\n this.time += 0.008\n walllMaterial.uniforms.iTime.value = this.time\n })\n\n wallPosition.forEach((item) => {\n const roundLineMesh = createRoundLineWallMesh(item.points.map(v => new Vector3(v[0], v[1], v[2])), {\n radius: 0,\n close: true,\n }, walllMaterial)\n roundLineMesh.visible = this.option?.visible ?? true\n this.wallMesh.set(item.id, roundLineMesh)\n this.scene.add(roundLineMesh)\n })\n }\n}\n\nexport default WallManage"],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@ export var finirMaterialV2 = new ShaderMaterial({
|
|
|
15
15
|
} // 反光强度0.9
|
|
16
16
|
},
|
|
17
17
|
|
|
18
|
-
vertexShader: "\n varying vec3 vNormal;\n
|
|
18
|
+
vertexShader: "\n varying vec3 vNormal;\n void main() {\n vNormal = normal;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }\n ",
|
|
19
19
|
fragmentShader: "\n varying vec3 vNormal;\n uniform vec3 edgeColor;\n uniform float edgeThickness;\n uniform float reflectionStrength;\n\n void main() {\n // \u8BA1\u7B97\u900F\u660E\u5EA6\n float alpha = 0.9; // \u900F\u660E\u5EA6\u7684\u57FA\u7840\u503C\n\n // \u8BA1\u7B97\u8FB9\u7F18\u6548\u679C\n float edge = fwidth(length(vNormal));\n alpha *= smoothstep(0.0, edgeThickness, edge);\n\n // \u8BA1\u7B97\u53CD\u5149\u6548\u679C\n vec3 reflection = reflect(normalize(-vNormal), vec3(0.455, 0.749, 0.890));\n float reflectionIntensity = max(dot(reflection, normalize(-vNormal)), 0.0);\n vec3 reflectionColor = reflectionStrength * reflectionIntensity * edgeColor;\n\n // \u6700\u7EC8\u989C\u8272\u8BBE\u7F6E\u4E3A\"#74bfe3\"\n vec3 finalColor = vec3(0.8, 0.25, 0.145); // \"#74bfe3\"\u7684RGB\u503C\n finalColor += reflectionColor; // \u6DFB\u52A0\u53CD\u5149\u6548\u679C\n\n // \u8BBE\u7F6E\u900F\u660E\u5EA6\n gl_FragColor = vec4(finalColor, alpha);\n }\n ",
|
|
20
20
|
transparent: true,
|
|
21
21
|
depthWrite: false
|
|
@@ -28,13 +28,13 @@ export var finirMaterialV1 = new MeshStandardMaterial({
|
|
|
28
28
|
});
|
|
29
29
|
finirMaterialV1.onBeforeCompile = function (shader) {
|
|
30
30
|
shader.uniforms.rimColor = {
|
|
31
|
-
value: new Color('#
|
|
31
|
+
value: new Color('#f5b68a')
|
|
32
32
|
};
|
|
33
33
|
shader.uniforms.rimPower = {
|
|
34
|
-
value: 0.
|
|
34
|
+
value: 0.07
|
|
35
35
|
};
|
|
36
36
|
shader.fragmentShader = shader.fragmentShader.replace('void main() {', ['uniform vec3 rimColor;', ' uniform float rimPower;', 'void main() {'].join('\n'));
|
|
37
|
-
shader.fragmentShader = shader.fragmentShader.replace('#include <dithering_fragment>', "#include <dithering_fragment>\n float dotNV = 1.0-saturate( dot( normal, geometry.viewDir ) );\n gl_FragColor.rgb
|
|
37
|
+
shader.fragmentShader = shader.fragmentShader.replace('#include <dithering_fragment>', "#include <dithering_fragment>\n float dotNV = 1.0-saturate( dot( normal, geometry.viewDir ) );\n gl_FragColor.rgb *= rimColor;\n\n\n float fresnelall = pow(rimPower*dotNV,.7);\n gl_FragColor.a += fresnelall;");
|
|
38
38
|
};
|
|
39
39
|
export var createFinirMaterial = function createFinirMaterial(rimColor, rimPower) {
|
|
40
40
|
var material = new MeshStandardMaterial({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Color","MeshStandardMaterial","ShaderMaterial","Vector3","finirMaterialV2","uniforms","edgeColor","value","edgeThickness","reflectionStrength","vertexShader","fragmentShader","transparent","depthWrite","finirMaterialV1","opacity","onBeforeCompile","shader","rimColor","rimPower","replace","join","createFinirMaterial","material"],"sources":["../../../src/factory/utils/finirMaterial.ts"],"sourcesContent":["import { Color, MeshStandardMaterial, ShaderMaterial, Vector3 } from '@anov/3d-core'\n\nexport const finirMaterialV2 = new ShaderMaterial({\n uniforms: {\n // 在这里定义uniform变量,用于控制透明度、边缘和反光效果\n edgeColor: { value: new Vector3(1.0, 0.0, 0.0) }, // 边缘颜色\n edgeThickness: { value: 0.05 }, // 边缘厚度0.05\n reflectionStrength: { value: 100 }, // 反光强度0.9\n },\n vertexShader: `\n varying vec3 vNormal;\n
|
|
1
|
+
{"version":3,"names":["Color","MeshStandardMaterial","ShaderMaterial","Vector3","finirMaterialV2","uniforms","edgeColor","value","edgeThickness","reflectionStrength","vertexShader","fragmentShader","transparent","depthWrite","finirMaterialV1","opacity","onBeforeCompile","shader","rimColor","rimPower","replace","join","createFinirMaterial","material"],"sources":["../../../src/factory/utils/finirMaterial.ts"],"sourcesContent":["import { Color, MeshStandardMaterial, ShaderMaterial, Vector3 } from '@anov/3d-core'\n\nexport const finirMaterialV2 = new ShaderMaterial({\n uniforms: {\n // 在这里定义uniform变量,用于控制透明度、边缘和反光效果\n edgeColor: { value: new Vector3(1.0, 0.0, 0.0) }, // 边缘颜色\n edgeThickness: { value: 0.05 }, // 边缘厚度0.05\n reflectionStrength: { value: 100 }, // 反光强度0.9\n },\n vertexShader: `\n varying vec3 vNormal;\n void main() {\n vNormal = normal;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }\n `,\n fragmentShader: `\n varying vec3 vNormal;\n uniform vec3 edgeColor;\n uniform float edgeThickness;\n uniform float reflectionStrength;\n\n void main() {\n // 计算透明度\n float alpha = 0.9; // 透明度的基础值\n\n // 计算边缘效果\n float edge = fwidth(length(vNormal));\n alpha *= smoothstep(0.0, edgeThickness, edge);\n\n // 计算反光效果\n vec3 reflection = reflect(normalize(-vNormal), vec3(0.455, 0.749, 0.890));\n float reflectionIntensity = max(dot(reflection, normalize(-vNormal)), 0.0);\n vec3 reflectionColor = reflectionStrength * reflectionIntensity * edgeColor;\n\n // 最终颜色设置为\"#74bfe3\"\n vec3 finalColor = vec3(0.8, 0.25, 0.145); // \"#74bfe3\"的RGB值\n finalColor += reflectionColor; // 添加反光效果\n\n // 设置透明度\n gl_FragColor = vec4(finalColor, alpha);\n }\n `,\n transparent: true,\n depthWrite: false,\n})\n\nexport const finirMaterialV1 = new MeshStandardMaterial({ /// /这个没有沟边粗细\n opacity: 0.0,\n transparent: true,\n depthWrite: false,\n})\n\nfinirMaterialV1.onBeforeCompile = (shader) => {\n shader.uniforms.rimColor = { value: new Color('#f5b68a') }\n shader.uniforms.rimPower = { value: 0.07 }\n shader.fragmentShader = shader.fragmentShader.replace(\n 'void main() {',\n [\n 'uniform vec3 rimColor;',\n ' uniform float rimPower;',\n 'void main() {',\n ].join('\\n'),\n )\n shader.fragmentShader = shader.fragmentShader.replace(\n '#include <dithering_fragment>',\n `#include <dithering_fragment>\n float dotNV = 1.0-saturate( dot( normal, geometry.viewDir ) );\n gl_FragColor.rgb *= rimColor;\n\n\n float fresnelall = pow(rimPower*dotNV,.7);\n gl_FragColor.a += fresnelall;`,\n\n )\n}\n\nexport const createFinirMaterial = (rimColor: string, rimPower: number) => {\n const material = new MeshStandardMaterial({ opacity: 0.0, transparent: true, depthWrite: false })\n material.onBeforeCompile = (shader) => {\n shader.uniforms.rimColor = { value: new Color(rimColor) }\n shader.uniforms.rimPower = { value: rimPower }\n shader.fragmentShader = shader.fragmentShader.replace(\n 'void main() {',\n [\n 'uniform vec3 rimColor;',\n 'uniform float rimPower;',\n 'void main() {',\n ].join('\\n'),\n )\n shader.fragmentShader = shader.fragmentShader.replace(\n '#include <dithering_fragment>',\n `#include <dithering_fragment>\n float dotNV = 1.0-saturate( dot( normal, geometry.viewDir ) );\n gl_FragColor.rgb += rimPower*dotNV*rimColor;\n vec3 fresnelall =rimPower*dotNV*rimColor;\n gl_FragColor.a +=(fresnelall.r+fresnelall.g+fresnelall.b)/3.;`,\n )\n }\n return material\n}"],"mappings":"AAAA,SAASA,KAAK,EAAEC,oBAAoB,EAAEC,cAAc,EAAEC,OAAO,QAAQ,eAAe;AAEpF,OAAO,IAAMC,eAAe,GAAG,IAAIF,cAAc,CAAC;EAChDG,QAAQ,EAAE;IACR;IACAC,SAAS,EAAE;MAAEC,KAAK,EAAE,IAAIJ,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG;IAAE,CAAC;IAAE;IAClDK,aAAa,EAAE;MAAED,KAAK,EAAE;IAAK,CAAC;IAAE;IAChCE,kBAAkB,EAAE;MAAEF,KAAK,EAAE;IAAI,CAAC,CAAE;EACtC,CAAC;;EACDG,YAAY,mRAMK;EACjBC,cAAc,g6CA0BG;EACjBC,WAAW,EAAE,IAAI;EACjBC,UAAU,EAAE;AACd,CAAC,CAAC;AAEF,OAAO,IAAMC,eAAe,GAAG,IAAIb,oBAAoB,CAAC;EAAE;EACxDc,OAAO,EAAE,GAAG;EACZH,WAAW,EAAE,IAAI;EACjBC,UAAU,EAAE;AACd,CAAC,CAAC;AAEFC,eAAe,CAACE,eAAe,GAAG,UAACC,MAAM,EAAK;EAC5CA,MAAM,CAACZ,QAAQ,CAACa,QAAQ,GAAG;IAAEX,KAAK,EAAE,IAAIP,KAAK,CAAC,SAAS;EAAE,CAAC;EAC1DiB,MAAM,CAACZ,QAAQ,CAACc,QAAQ,GAAG;IAAEZ,KAAK,EAAE;EAAK,CAAC;EAC1CU,MAAM,CAACN,cAAc,GAAGM,MAAM,CAACN,cAAc,CAACS,OAAO,CACnD,eAAe,EACf,CACE,wBAAwB,EACxB,0BAA0B,EAC1B,eAAe,CAChB,CAACC,IAAI,CAAC,IAAI,CAAC,CACb;EACDJ,MAAM,CAACN,cAAc,GAAGM,MAAM,CAACN,cAAc,CAACS,OAAO,CACnD,+BAA+B,gPAShC;AACH,CAAC;AAED,OAAO,IAAME,mBAAmB,GAAG,SAAtBA,mBAAmB,CAAIJ,QAAgB,EAAEC,QAAgB,EAAK;EACzE,IAAMI,QAAQ,GAAG,IAAItB,oBAAoB,CAAC;IAAEc,OAAO,EAAE,GAAG;IAAEH,WAAW,EAAE,IAAI;IAAEC,UAAU,EAAE;EAAM,CAAC,CAAC;EACjGU,QAAQ,CAACP,eAAe,GAAG,UAACC,MAAM,EAAK;IACrCA,MAAM,CAACZ,QAAQ,CAACa,QAAQ,GAAG;MAAEX,KAAK,EAAE,IAAIP,KAAK,CAACkB,QAAQ;IAAE,CAAC;IACzDD,MAAM,CAACZ,QAAQ,CAACc,QAAQ,GAAG;MAAEZ,KAAK,EAAEY;IAAS,CAAC;IAC9CF,MAAM,CAACN,cAAc,GAAGM,MAAM,CAACN,cAAc,CAACS,OAAO,CACnD,eAAe,EACf,CACE,wBAAwB,EACxB,yBAAyB,EACzB,eAAe,CAChB,CAACC,IAAI,CAAC,IAAI,CAAC,CACb;IACDJ,MAAM,CAACN,cAAc,GAAGM,MAAM,CAACN,cAAc,CAACS,OAAO,CACnD,+BAA+B,kRAMhC;EACH,CAAC;EACD,OAAOG,QAAQ;AACjB,CAAC"}
|