@anov/3d 0.0.4-alpha25 → 0.0.4-alpha26

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.
@@ -11,8 +11,8 @@ export declare enum SceneStyle {
11
11
  'tech' = 1
12
12
  }
13
13
  export declare enum SceneTag {
14
- 'overview' = "overview",
15
- 'people-management' = "people-management"
14
+ 'overview' = "Overview",
15
+ 'people-management' = "Person"
16
16
  }
17
17
  declare class Factory3D {
18
18
  position: Vector3;
@@ -22,8 +22,8 @@ export var SceneStyle;
22
22
  })(SceneStyle || (SceneStyle = {}));
23
23
  export var SceneTag;
24
24
  (function (SceneTag) {
25
- SceneTag["overview"] = "overview";
26
- SceneTag["people-management"] = "people-management";
25
+ SceneTag["overview"] = "Overview";
26
+ SceneTag["people-management"] = "Person";
27
27
  })(SceneTag || (SceneTag = {}));
28
28
  var Factory3D = /*#__PURE__*/function () {
29
29
  function Factory3D(option) {
@@ -1 +1 @@
1
- {"version":3,"names":["EquirectangularReflectionMapping","InteractionManager","ModelLoader","Vector3","lib","use","utils","Camera","finirMaterialV1","handleUnit","globalEvents","switchMaterial","debounce","load","rgbeLoader","RGBELoader","emitter","SceneStyle","SceneTag","Factory3D","option","overview","real","Map","globalEventsAgent","scene","cameraUtil","camera","controls","control","model","loadGLTF","gltf","group","clone","traverse","child","type","material","add","visible","style","tech","techModel","realModl","interactionManager","renderer","domElement","storeManagement","set","useframe","update","addEventListener","e","position","point","call","setPath","texture","mapping","boxSkeyTexture","background","environment","params","toggleState","endCallBack","speed","start","end","callback","tag","toggleSceneStyle","wall","wallMesh","forEach","mesh","cylinder","cylinderMesh","poi","reset","circle","remove","poiMesh","setVisible","eventKey","on","args","eventHandleFn","get","fn","eventName","handleFn","push"],"sources":["../../src/factory/3d.ts"],"sourcesContent":["import type { DataTexture, Group, Material, Object3D, OrbitControls, SceneControl } from '@anov/3d-core'\nimport { EquirectangularReflectionMapping, InteractionManager, ModelLoader, Vector3, lib, use, utils } from '@anov/3d-core'\nimport { Camera } from '@anov/3d-ability'\nimport { finirMaterialV1 } from './utils/finirMaterial'\nimport handleUnit 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 { globalEvents } from './globalData'\nimport switchMaterial from './utils/switchMaterial'\nimport { debounce } from './utils'\n\ntype factory3dOption = {\n model?: string\n environment: string\n}\nconst load = new ModelLoader()\nconst rgbeLoader = new lib.RGBELoader()\nconst { emitter } = utils\n\nexport enum SceneStyle {\n 'real',\n 'tech',\n}\n\nexport enum SceneTag {\n 'overview' = 'overview',\n 'people-management' = 'people-management',\n}\n\nclass Factory3D {\n position: Vector3 = new Vector3(0, 0, 0)\n scene!: SceneControl\n control!: OrbitControls\n cameraUtil!: Camera\n\n public tag = SceneTag.overview\n public style: SceneStyle = SceneStyle.real\n private option: factory3dOption\n private wall!: WallManage\n private line!: LineManage\n private cylinder!: CylinderManage\n private poi!: PoiManage\n private circle!: CircleManage\n areaBoundingBox!: AreaBoundingBoxManage\n\n private realModl!: Group\n private techModel!: Group\n\n private eventHandleFn: Map<string, ((args?: any) => void)[]> = new Map()\n\n private toggleState = true\n private boxSkeyTexture!: DataTexture\n\n interactionManager!: InteractionManager\n\n constructor(option: factory3dOption) {\n this.option = option\n this.globalEventsAgent()\n }\n\n /**\n * render factory 3d scene\n */\n renderScene(scene: SceneControl) {\n this.scene = scene\n this.cameraUtil = new Camera(scene.camera!, scene.controls!)\n this.control = scene.controls!\n\n this.option.model && load.loadGLTF(this.option.model, false, true, './draco/', (gltf) => {\n const group = gltf.scene.clone()\n group.traverse((child) => {\n if (child.type === 'Mesh') {\n // @ts-ignore\n child.material = finirMaterialV1\n }\n })\n\n this.scene.add(gltf.scene)\n this.scene.add(group)\n\n gltf.scene.visible = SceneStyle.real === this.style\n group.visible = SceneStyle.tech === this.style\n\n this.techModel = group as Group\n this.realModl = gltf.scene as Group\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 // interactionManager.add(gltf.scene)\n\n gltf.scene.addEventListener('click', (e) => {\n this.position = e.point\n })\n\n handleUnit.call(this)\n\n return gltf\n })\n\n rgbeLoader.setPath('./').load('quarry_01_1k.hdr', (texture) => {\n texture.mapping = EquirectangularReflectionMapping\n\n this.boxSkeyTexture = texture\n this.scene.scene.background = texture\n this.scene.scene.environment = texture\n })\n }\n\n /**\n * toggle SceneStyle\n * @param params\n */\n private toggleSceneStyle(params: SceneStyle) {\n if (this.style === params)\n return\n\n if (params === SceneStyle.tech)\n this.toggleState = false\n\n this.style = params\n\n const endCallBack = debounce(() => {\n this.realModl.visible = false\n this.toggleState = true\n })\n\n if (this.style === SceneStyle.tech) {\n this.realModl.traverse((child) => {\n if (child.type === 'Mesh') {\n switchMaterial(child as Object3D & { material: Material }, finirMaterialV1, {\n speed: 40,\n start: -500,\n end: 2000,\n callback: endCallBack,\n })\n }\n })\n }\n\n if (params === SceneStyle.real) {\n this.realModl.visible = SceneStyle.real === this.style\n this.scene.scene.background = this.boxSkeyTexture\n }\n else {\n this.scene.scene.background = null\n }\n\n this.techModel.visible = SceneStyle.tech === this.style\n }\n\n public toggleTag(tag: SceneTag) {\n if (this.toggleState === false)\n return\n switch (tag) {\n case SceneTag.overview:\n this.tag = SceneTag.overview\n this.toggleSceneStyle(SceneStyle.real)\n\n this.wall.wallMesh.forEach((mesh) => {\n mesh.visible = true\n })\n\n // this.line.lineMesh.forEach((mesh) => {\n // mesh.visible = false\n // })\n\n this.cylinder.cylinderMesh.forEach((mesh) => {\n mesh.visible = false\n })\n this.poi.reset()\n this.circle.remove()\n break\n case SceneTag['people-management']:\n this.tag = SceneTag['people-management']\n this.toggleSceneStyle(SceneStyle.tech)\n\n this.wall.wallMesh.forEach((mesh) => {\n mesh.visible = false\n })\n\n this.poi.poiMesh.forEach((mesh) => {\n mesh.visible = false\n })\n\n // this.line.lineMesh.forEach((mesh) => {\n // mesh.visible = true\n // })\n\n this.cylinder.cylinderMesh.forEach((mesh) => {\n mesh.visible = true\n })\n this.poi.setVisible(false)\n break\n }\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 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":["EquirectangularReflectionMapping","InteractionManager","ModelLoader","Vector3","lib","use","utils","Camera","finirMaterialV1","handleUnit","globalEvents","switchMaterial","debounce","load","rgbeLoader","RGBELoader","emitter","SceneStyle","SceneTag","Factory3D","option","overview","real","Map","globalEventsAgent","scene","cameraUtil","camera","controls","control","model","loadGLTF","gltf","group","clone","traverse","child","type","material","add","visible","style","tech","techModel","realModl","interactionManager","renderer","domElement","storeManagement","set","useframe","update","addEventListener","e","position","point","call","setPath","texture","mapping","boxSkeyTexture","background","environment","params","toggleState","endCallBack","speed","start","end","callback","tag","toggleSceneStyle","wall","wallMesh","forEach","mesh","cylinder","cylinderMesh","poi","reset","circle","remove","poiMesh","setVisible","eventKey","on","args","eventHandleFn","get","fn","eventName","handleFn","push"],"sources":["../../src/factory/3d.ts"],"sourcesContent":["import type { DataTexture, Group, Material, Object3D, OrbitControls, SceneControl } from '@anov/3d-core'\nimport { EquirectangularReflectionMapping, InteractionManager, ModelLoader, Vector3, lib, use, utils } from '@anov/3d-core'\nimport { Camera } from '@anov/3d-ability'\nimport { finirMaterialV1 } from './utils/finirMaterial'\nimport handleUnit 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 { globalEvents } from './globalData'\nimport switchMaterial from './utils/switchMaterial'\nimport { debounce } from './utils'\n\ntype factory3dOption = {\n model?: string\n environment: string\n}\nconst load = new ModelLoader()\nconst rgbeLoader = new lib.RGBELoader()\nconst { emitter } = utils\n\nexport enum SceneStyle {\n 'real',\n 'tech',\n}\n\nexport enum SceneTag {\n 'overview' = 'Overview',\n 'people-management' = 'Person',\n}\n\nclass Factory3D {\n position: Vector3 = new Vector3(0, 0, 0)\n scene!: SceneControl\n control!: OrbitControls\n cameraUtil!: Camera\n\n public tag = SceneTag.overview\n public style: SceneStyle = SceneStyle.real\n private option: factory3dOption\n private wall!: WallManage\n private line!: LineManage\n private cylinder!: CylinderManage\n private poi!: PoiManage\n private circle!: CircleManage\n areaBoundingBox!: AreaBoundingBoxManage\n\n private realModl!: Group\n private techModel!: Group\n\n private eventHandleFn: Map<string, ((args?: any) => void)[]> = new Map()\n\n private toggleState = true\n private boxSkeyTexture!: DataTexture\n\n interactionManager!: InteractionManager\n\n constructor(option: factory3dOption) {\n this.option = option\n this.globalEventsAgent()\n }\n\n /**\n * render factory 3d scene\n */\n renderScene(scene: SceneControl) {\n this.scene = scene\n this.cameraUtil = new Camera(scene.camera!, scene.controls!)\n this.control = scene.controls!\n\n this.option.model && load.loadGLTF(this.option.model, false, true, './draco/', (gltf) => {\n const group = gltf.scene.clone()\n group.traverse((child) => {\n if (child.type === 'Mesh') {\n // @ts-ignore\n child.material = finirMaterialV1\n }\n })\n\n this.scene.add(gltf.scene)\n this.scene.add(group)\n\n gltf.scene.visible = SceneStyle.real === this.style\n group.visible = SceneStyle.tech === this.style\n\n this.techModel = group as Group\n this.realModl = gltf.scene as Group\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 // interactionManager.add(gltf.scene)\n\n gltf.scene.addEventListener('click', (e) => {\n this.position = e.point\n })\n\n handleUnit.call(this)\n\n return gltf\n })\n\n rgbeLoader.setPath('./').load('quarry_01_1k.hdr', (texture) => {\n texture.mapping = EquirectangularReflectionMapping\n\n this.boxSkeyTexture = texture\n this.scene.scene.background = texture\n this.scene.scene.environment = texture\n })\n }\n\n /**\n * toggle SceneStyle\n * @param params\n */\n private toggleSceneStyle(params: SceneStyle) {\n if (this.style === params)\n return\n\n if (params === SceneStyle.tech)\n this.toggleState = false\n\n this.style = params\n\n const endCallBack = debounce(() => {\n this.realModl.visible = false\n this.toggleState = true\n })\n\n if (this.style === SceneStyle.tech) {\n this.realModl.traverse((child) => {\n if (child.type === 'Mesh') {\n switchMaterial(child as Object3D & { material: Material }, finirMaterialV1, {\n speed: 40,\n start: -500,\n end: 2000,\n callback: endCallBack,\n })\n }\n })\n }\n\n if (params === SceneStyle.real) {\n this.realModl.visible = SceneStyle.real === this.style\n this.scene.scene.background = this.boxSkeyTexture\n }\n else {\n this.scene.scene.background = null\n }\n\n this.techModel.visible = SceneStyle.tech === this.style\n }\n\n public toggleTag(tag: SceneTag) {\n if (this.toggleState === false)\n return\n switch (tag) {\n case SceneTag.overview:\n this.tag = SceneTag.overview\n this.toggleSceneStyle(SceneStyle.real)\n\n this.wall.wallMesh.forEach((mesh) => {\n mesh.visible = true\n })\n\n // this.line.lineMesh.forEach((mesh) => {\n // mesh.visible = false\n // })\n\n this.cylinder.cylinderMesh.forEach((mesh) => {\n mesh.visible = false\n })\n this.poi.reset()\n this.circle.remove()\n break\n case SceneTag['people-management']:\n this.tag = SceneTag['people-management']\n this.toggleSceneStyle(SceneStyle.tech)\n\n this.wall.wallMesh.forEach((mesh) => {\n mesh.visible = false\n })\n\n this.poi.poiMesh.forEach((mesh) => {\n mesh.visible = false\n })\n\n // this.line.lineMesh.forEach((mesh) => {\n // mesh.visible = true\n // })\n\n this.cylinder.cylinderMesh.forEach((mesh) => {\n mesh.visible = true\n })\n this.poi.setVisible(false)\n break\n }\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 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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"}
@@ -5,6 +5,8 @@
5
5
  export interface IPeople {
6
6
  id: string;
7
7
  name: string;
8
+ dep?: string;
9
+ online?: boolean;
8
10
  position: Array<number>;
9
11
  }
10
12
  export interface IPoi {
@@ -10,9 +10,58 @@ export var regionMap = {
10
10
  area: [[-483.562, 0, -225.624], [-145.997, 0, -225.624], [-145.997, 0, -59.401], [-483.562, 0, -59.401]],
11
11
  poi: {
12
12
  id: '1',
13
- position: [-290.29, 36.38, -123.69],
14
- content: '重整装置区是化工厂中进行主要生产过程的核心区域。它包括各种生产设备和装置,按照特定的工艺流程进行操作。'
15
- }
13
+ position: [-314.01113070, 0.55000000, -146.54350582],
14
+ content: '通过直馏汽油和加氢石脑油,在催化剂存在的前提下,将原料的烷烃和环烷烃重构成为芳烃。并采用半再生固定床重整工艺,催化剂分段装填及两段混氢技术,装置采用了RIPP的粗汽油制氢技术。'
15
+ },
16
+ people: [{
17
+ id: '7',
18
+ name: '耿笑',
19
+ dep: '设备运维',
20
+ online: true,
21
+ position: [-352.00000000, 0.62500079, -177.20000000]
22
+ }, {
23
+ id: '2',
24
+ name: '李连贵',
25
+ dep: '工艺操作',
26
+ online: true,
27
+ position: [-275.70000000, 0.62500079, -137.10000000]
28
+ }, {
29
+ id: '8',
30
+ name: '吕萌',
31
+ dep: '质量检测',
32
+ online: true,
33
+ position: [-365.40000000, 0.62500079, -80.60000000]
34
+ }, {
35
+ id: '1',
36
+ name: '宋玉',
37
+ dep: '质量检测',
38
+ online: true,
39
+ position: [-436.90000000, 0.62500079, -121.50000000]
40
+ }, {
41
+ id: '5',
42
+ name: '王小雨',
43
+ dep: '运输装卸',
44
+ online: true,
45
+ position: [-238.70000000, 0.62500079, -205.10000000]
46
+ }, {
47
+ id: '6',
48
+ name: '张建国',
49
+ dep: '原料加工',
50
+ online: true,
51
+ position: [-436.50000000, 0.62500079, -182.30000000]
52
+ }, {
53
+ id: '3',
54
+ name: '张小萌',
55
+ dep: '生产技术',
56
+ online: true,
57
+ position: [-204.80000000, 0.62500079, -150.10000000]
58
+ }, {
59
+ id: '4',
60
+ name: '朱正',
61
+ dep: '设备运维',
62
+ online: true,
63
+ position: [-302.20000000, 0.62500079, -117.90000000]
64
+ }]
16
65
  },
17
66
  reduction: {
18
67
  id: '2',
@@ -20,9 +69,52 @@ export var regionMap = {
20
69
  area: [[-140.123, 0, -225.604], [206.547, 0, -225.624], [206.547, 0, -59.401], [-140.123, 0, -59.401]],
21
70
  poi: {
22
71
  id: '2',
23
- position: [9.99, 40.33, -128.26],
24
- content: '常减压装置区是化工厂中进行主要生产过程的核心区域。它包括各种生产设备和装置,按照特定的工艺流程进行操作。'
25
- }
72
+ position: [28.89784048, 0.55000000, -144.28157517],
73
+ content: '主要包括三个工序:原油的脱盐、脱水;常压蒸馏;减压蒸馏。从油田送往炼油厂的原油往往含盐(主要是氧化物)带水(溶于油或呈乳化状态),可导致设备的腐蚀,在设备内壁结垢和影响成品油的组成,需在加工前脱除。'
74
+ },
75
+ people: [{
76
+ id: '12',
77
+ name: '才新梁',
78
+ dep: '运输装卸',
79
+ online: true,
80
+ position: [26.50000000, 0.62500079, -155.00000000]
81
+ }, {
82
+ id: '13',
83
+ name: '何超盈',
84
+ dep: '生产技术',
85
+ online: true,
86
+ position: [198.50000000, 0.62500079, -169.20000000]
87
+ }, {
88
+ id: '11',
89
+ name: '李大为',
90
+ dep: '质量检测',
91
+ online: true,
92
+ position: [-79.80000000, 0.62500079, -218.20000000]
93
+ }, {
94
+ id: '15',
95
+ name: '孙建连',
96
+ dep: '工艺操作',
97
+ online: true,
98
+ position: [-19.50000000, 0.62500079, -174.60000000]
99
+ }, {
100
+ id: '9',
101
+ name: '孙强',
102
+ dep: '工艺操作',
103
+ online: true,
104
+ position: [-114.10000000, 0.62500079, -114.60000000]
105
+ }, {
106
+ id: '10',
107
+ name: '佟丽英',
108
+ dep: '运输装卸',
109
+ online: true,
110
+ position: [26.10000000, 0.62500079, -202.30000000]
111
+ }, {
112
+ id: '14',
113
+ name: '王超',
114
+ dep: '设备运维',
115
+ online: true,
116
+ position: [-14.90000000, 0.62500079, -116.90000000]
117
+ }]
26
118
  },
27
119
  crudeOil: {
28
120
  id: '3',
@@ -30,9 +122,34 @@ export var regionMap = {
30
122
  area: [[240.584, 0, -225.624], [475.523, 0, -225.624], [475.543, 0, -59.401], [240.584, 0, -59.401]],
31
123
  poi: {
32
124
  id: '3',
33
- position: [373.29, 13.84, -150.09],
34
- content: '原油装置区是化工厂中进行主要生产过程的核心区域。它包括各种生产设备和装置,按照特定的工艺流程进行操作。'
35
- }
125
+ position: [359.58372139, 0.55000000, -144.28157517],
126
+ content: '原油罐区应靠近相应的加工装置区,并利用地形将液体物料自留输送,性质相近的液体物料储物罐宜布置较近。原油罐区的占地面积较大,原油罐区应注意火灾防范,存储量大一旦发生火灾,如不及时处置,扑救十分困难。'
127
+ },
128
+ people: [{
129
+ id: '19',
130
+ name: '牛小灵',
131
+ dep: '生产技术',
132
+ online: true,
133
+ position: [404.70000000, 0.62500079, -190.30000000]
134
+ }, {
135
+ id: '17',
136
+ name: '彭旭',
137
+ dep: '运输装卸',
138
+ online: true,
139
+ position: [294.10000000, 0.62500079, -125.90000000]
140
+ }, {
141
+ id: '16',
142
+ name: '宋麒麟',
143
+ dep: '设备运维',
144
+ online: true,
145
+ position: [445.70000000, 0.62500079, -119.20000000]
146
+ }, {
147
+ id: '18',
148
+ name: '赵佳慧',
149
+ dep: '生产技术',
150
+ online: true,
151
+ position: [344.50000000, 0.62500079, -127.10000000]
152
+ }]
36
153
  },
37
154
  catalyticCracking: {
38
155
  id: '4',
@@ -40,9 +157,70 @@ export var regionMap = {
40
157
  area: [[-483.562, 0, -49.812], [-145.997, 0, -49.812], [-145.997, 0, 115.799], [-483.562, 0, 115.799]],
41
158
  poi: {
42
159
  id: '4',
43
- position: [-294.28, 13.06, 37.12],
44
- content: '催化裂化装置区是化工厂中进行主要生产过程的核心区域。它包括各种生产设备和装置,按照特定的工艺流程进行操作。'
45
- }
160
+ position: [-322.57300372, 0.55000000, 31.81516361],
161
+ content: '该区域主要危险因素为高温,重点部位:1. 催化剂循环系统磨穿泄漏着火;2. 再生器及沉降器油气互串爆炸;3. 高位管线及设备泄漏着火。同时催化裂化工艺过程需注意对环境造成的影响,生产过程中烟气会带走较多热烈造成热能浪费和污染,'
162
+ },
163
+ people: [{
164
+ id: '20',
165
+ name: '李刚',
166
+ dep: '运输装卸',
167
+ online: true,
168
+ position: [-339.40000000, 0.62500079, -1.90000000]
169
+ }, {
170
+ id: '24',
171
+ name: '李天一',
172
+ dep: '工艺操作',
173
+ online: true,
174
+ position: [-394.80000000, 0.62500079, 16.80000000]
175
+ }, {
176
+ id: '26',
177
+ name: '吕方',
178
+ dep: '设备运维',
179
+ online: true,
180
+ position: [-363.10000000, 0.62500079, 73.30000000]
181
+ }, {
182
+ id: '29',
183
+ name: '路笑',
184
+ dep: '运输装卸',
185
+ online: true,
186
+ position: [-214.00000000, 0.62500079, 39.10000000]
187
+ }, {
188
+ id: '22',
189
+ name: '淼杉',
190
+ dep: '运输装卸',
191
+ online: true,
192
+ position: [-175.10000000, 0.62500079, -12.80000000]
193
+ }, {
194
+ id: '25',
195
+ name: '孙江',
196
+ dep: '运输装卸',
197
+ online: true,
198
+ position: [-175.80000000, 0.62500079, 8.90000000]
199
+ }, {
200
+ id: '27',
201
+ name: '王衣衣',
202
+ dep: '运输装卸',
203
+ online: true,
204
+ position: [-394.60000000, 0.62500079, -37.80000000]
205
+ }, {
206
+ id: '28',
207
+ name: '张含义',
208
+ dep: '质量检测',
209
+ online: true,
210
+ position: [-436.90000000, 0.62500079, 69.40000000]
211
+ }, {
212
+ id: '21',
213
+ name: '张山一',
214
+ dep: '生产技术',
215
+ online: true,
216
+ position: [-325.30000000, 0.62500079, 86.20000000]
217
+ }, {
218
+ id: '23',
219
+ name: '张时柳',
220
+ dep: '运输装卸',
221
+ online: true,
222
+ position: [-211.20000000, 0.62500079, 95.80000000]
223
+ }]
46
224
  },
47
225
  hydrocrackingUnit: {
48
226
  id: '5',
@@ -50,44 +228,87 @@ export var regionMap = {
50
228
  area: [[-483.562, 0, 124.634], [-145.997, 0, 124.634], [-145.997, 0, 218.589], [-483.562, 0, 218.589]],
51
229
  poi: {
52
230
  id: '5',
53
- position: [-325.49, 11.20, 150.00],
54
- content: '加氢裂化装置区是化工厂中进行主要生产过程的核心区域。它包括各种生产设备和装置,按照特定的工艺流程进行操作。'
55
- }
231
+ position: [-307.04992341, 0.55000000, 168.90578924],
232
+ content: '该区域主要注意器材的腐蚀,腐蚀类型主要有:氢损伤(包括高温氢腐蚀、氢脆、氢致剥离)、高温H2+H2S腐蚀、连多硫酸腐蚀、Cr-Mo钢的回火脆性、高温S腐蚀、低温部位的H2S+H2O腐蚀、H2S+NH3+H2O腐蚀。'
233
+ },
234
+ people: [{
235
+ id: '30',
236
+ name: '李梦雅',
237
+ dep: '生产技术',
238
+ online: true,
239
+ position: [-203.90000000, 0.62500079, -4.70000000]
240
+ }, {
241
+ id: '31',
242
+ name: '张连营',
243
+ dep: '运输装卸',
244
+ online: true,
245
+ position: [-428.40000000, 0.62500079, 96.90000000]
246
+ }, {
247
+ id: '32',
248
+ name: '张子成',
249
+ dep: '运输装卸',
250
+ online: true,
251
+ position: [-408.30000000, 0.62500079, -37.20000000]
252
+ }]
56
253
  },
57
254
  cokingUnit: {
58
255
  id: '6',
59
256
  title: '焦化装置区',
60
257
  area: [[-140.100, 0, -49.802], [316.508, 0, -49.802], [316.508, 0, 218.847], [-140.100, 0, 218.847]],
258
+ poi: {
259
+ id: '6',
260
+ position: [76.84192138, 0.55000332, 95.89826158],
261
+ content: '该区域采用的延迟焦化装置是厂区能耗大户,其中,其燃料油、循环水两者的能耗占整个装置能耗的54%左右,其中,燃料气主要用于原料的加热、升温;循环水、新鲜水、软化水主要用于装置机泵降温、焦炭塔冷却等等。'
262
+ },
61
263
  people: [{
62
- id: '61',
63
- name: '张三',
64
- position: [49.19, 12.21, 167.39]
264
+ id: '38',
265
+ name: '毕贵元',
266
+ dep: '工艺操作',
267
+ online: true,
268
+ position: [247.30000000, 0.62500079, 166.20000000]
65
269
  }, {
66
- id: '62',
67
- name: '李四',
68
- position: [80.87, 18.85, 203.34]
270
+ id: '39',
271
+ name: '何晴',
272
+ dep: '设备运维',
273
+ online: true,
274
+ position: [-83.70000000, 0.62500079, 177.50000000]
69
275
  }, {
70
- id: '63',
71
- name: '王五',
72
- position: [112.23, 12.23, 144.75]
276
+ id: '33',
277
+ name: '杨东利',
278
+ dep: '工艺操作',
279
+ online: true,
280
+ position: [68.20000000, 0.62500079, 5.20000000]
73
281
  }, {
74
- id: '64',
75
- name: '杨洪波',
76
- position: [-30.27, 19.68, 54.44]
282
+ id: '36',
283
+ name: '杨晓月',
284
+ dep: '质量检测',
285
+ online: true,
286
+ position: [258.00000000, 0.62500079, 99.00000000]
77
287
  }, {
78
- id: '65',
79
- name: '李红军',
80
- position: [-4.23, -0.00, 136.60]
288
+ id: '40',
289
+ name: '杨一真',
290
+ dep: '质量检测',
291
+ online: true,
292
+ position: [107.90000000, 0.62500079, 95.30000000]
81
293
  }, {
82
- id: '66',
83
- name: '罗红军',
84
- position: [142.24, 11.12, 192.34]
85
- }],
86
- poi: {
87
- id: '6',
88
- position: [75.75, 12.39, 75.09],
89
- content: '焦化装置区是化工厂中进行主要生产过程的核心区域。它包括各种生产设备和装置,按照特定的工艺流程进行操作。'
90
- }
294
+ id: '37',
295
+ name: '张飞',
296
+ dep: '运输装卸',
297
+ online: true,
298
+ position: [-69.60000000, 0.62500079, 29.30000000]
299
+ }, {
300
+ id: '35',
301
+ name: '张一天',
302
+ dep: '运输装卸',
303
+ online: true,
304
+ position: [271.20000000, 0.62500079, 24.70000000]
305
+ }, {
306
+ id: '34',
307
+ name: '张泽宇',
308
+ dep: '设备运维',
309
+ online: true,
310
+ position: [175.00000000, 0.62500079, 74.60000000]
311
+ }]
91
312
  },
92
313
  administrative: {
93
314
  id: '7',
@@ -95,34 +316,130 @@ export var regionMap = {
95
316
  area: [[340.501, 0, -44.710], [482.570, 0, -44.710], [482.570, 0, 227.641], [340.501, 0, 227.641]],
96
317
  maxHigh: 100,
97
318
  people: [{
98
- id: '71',
99
- name: '张三',
100
- position: [387.74, 16.41, 33.22]
319
+ id: '49',
320
+ name: '毕古元',
321
+ dep: '运输装卸',
322
+ online: true,
323
+ position: [431.60000000, 0.62500079, 94.90000000]
324
+ }, {
325
+ id: '50',
326
+ name: '陈红',
327
+ dep: '设备运维',
328
+ online: true,
329
+ position: [374.20000000, 0.62500079, 14.80000000]
330
+ }, {
331
+ id: '58',
332
+ name: '陈静娴',
333
+ dep: '质量检测',
334
+ online: true,
335
+ position: [352.40000000, 0.62500079, 138.30000000]
336
+ }, {
337
+ id: '54',
338
+ name: '高红雷',
339
+ dep: '运输装卸',
340
+ online: true,
341
+ position: [435.20000000, 0.62500079, 172.90000000]
342
+ }, {
343
+ id: '57',
344
+ name: '葛强',
345
+ dep: '设备运维',
346
+ online: true,
347
+ position: [379.10000000, 0.62500079, 193.40000000]
348
+ }, {
349
+ id: '46',
350
+ name: '宫京',
351
+ dep: '运输装卸',
352
+ online: true,
353
+ position: [441.30000000, 0.62500079, 80.70000000]
354
+ }, {
355
+ id: '53',
356
+ name: '匡青一',
357
+ dep: '运输装卸',
358
+ online: true,
359
+ position: [379.10000000, 0.62500079, 173.80000000]
360
+ }, {
361
+ id: '55',
362
+ name: '李丽颖',
363
+ dep: '质量检测',
364
+ online: true,
365
+ position: [357.50000000, 0.62500079, 221.40000000]
366
+ }, {
367
+ id: '48',
368
+ name: '李同一',
369
+ dep: '工艺操作',
370
+ online: true,
371
+ position: [467.80000000, 0.62500079, 108.10000000]
372
+ }, {
373
+ id: '56',
374
+ name: '李晓阳',
375
+ dep: '运输装卸',
376
+ online: true,
377
+ position: [444.20000000, 0.62500079, 191.80000000]
378
+ }, {
379
+ id: '41',
380
+ name: '刘超',
381
+ dep: '运输装卸',
382
+ online: true,
383
+ position: [354.20000000, 0.62500079, -22.70000000]
384
+ }, {
385
+ id: '42',
386
+ name: '刘凤林',
387
+ dep: '工艺操作',
388
+ online: true,
389
+ position: [368.50000000, 0.62500079, 40.30000000]
390
+ }, {
391
+ id: '44',
392
+ name: '卢灵',
393
+ dep: '运输装卸',
394
+ online: true,
395
+ position: [368.00000000, 0.62500079, 79.90000000]
396
+ }, {
397
+ id: '45',
398
+ name: '苏丁',
399
+ dep: '质量检测',
400
+ online: true,
401
+ position: [440.30000000, 0.62500079, 72.90000000]
402
+ }, {
403
+ id: '50',
404
+ name: '王林缘',
405
+ dep: '工艺操作',
406
+ online: true,
407
+ position: [360.40000000, 0.62500079, 103.20000000]
101
408
  }, {
102
- id: '72',
103
- name: '李四',
104
- position: [368.38, 1.03, 79.71]
409
+ id: '51',
410
+ name: '汪泉',
411
+ dep: '运输装卸',
412
+ online: true,
413
+ position: [394.30000000, 0.62500079, 142.00000000]
105
414
  }, {
106
- id: '73',
107
- name: '王五',
108
- position: [423.63, 16.35, 67.64]
415
+ id: '43',
416
+ name: '徐刚',
417
+ dep: '运输装卸',
418
+ online: true,
419
+ position: [442.70000000, 0.62500079, -19.0000000]
109
420
  }, {
110
- id: '74',
111
- name: '杨洪波',
112
- position: [443.84, 16.07, 138.20]
421
+ id: '52',
422
+ name: '薛友',
423
+ dep: '质量检测',
424
+ online: true,
425
+ position: [444.40000000, 0.62500079, 147.80000000]
113
426
  }, {
114
- id: '75',
115
- name: '李斯',
116
- position: [420.59, 16.23, 199.18]
427
+ id: '60',
428
+ name: '章虎泉',
429
+ dep: '工艺操作',
430
+ online: true,
431
+ position: [467.80000000, 0.62500079, 21.90000000]
117
432
  }, {
118
- id: '76',
119
- name: '罗红军',
120
- position: [383.85, 13.81, 197.60]
433
+ id: '47',
434
+ name: '张山峰',
435
+ dep: '设备运维',
436
+ online: true,
437
+ position: [459.90000000, 0.62500079, 90.10000000]
121
438
  }],
122
439
  poi: {
123
440
  id: '7',
124
- position: [358.37, 17.54, 72.47],
125
- content: '办公区是化工厂中进行主要生产过程的核心区域。它包括各种生产设备和装置,按照特定的工艺流程进行操作。'
441
+ position: [404.24348058, 0.55000000, 85.00566808],
442
+ content: '提供对工厂办公人员的休息和休闲区域,包括食堂,休息室,员工宿舍,休闲楼等场地,且该区域需较远离生产区,保证员工休息质量。'
126
443
  }
127
444
  }
128
445
  };
@@ -1 +1 @@
1
- {"version":3,"names":["regionMap","reform","id","title","area","poi","position","content","reduction","crudeOil","catalyticCracking","hydrocrackingUnit","cokingUnit","people","name","administrative","maxHigh"],"sources":["../../src/factory/regionData.ts"],"sourcesContent":["/**\n * todo: 各个单元数据需要统一\n * 当前demo area可以用直线绘制\n */\n\nexport interface IPeople {\n id: string\n name: string\n position: Array<number>\n}\n\nexport interface IPoi {\n id: string\n position: Array<number>\n content?: string\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 }\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 poi: {\n id: '1',\n position: [-290.29, 36.38, -123.69],\n content: '重整装置区是化工厂中进行主要生产过程的核心区域。它包括各种生产设备和装置,按照特定的工艺流程进行操作。',\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 poi: {\n id: '2',\n position: [9.99, 40.33, -128.26],\n content: '常减压装置区是化工厂中进行主要生产过程的核心区域。它包括各种生产设备和装置,按照特定的工艺流程进行操作。',\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 poi: {\n id: '3',\n position: [373.29, 13.84, -150.09],\n content: '原油装置区是化工厂中进行主要生产过程的核心区域。它包括各种生产设备和装置,按照特定的工艺流程进行操作。',\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 poi: {\n id: '4',\n position: [-294.28, 13.06, 37.12],\n content: '催化裂化装置区是化工厂中进行主要生产过程的核心区域。它包括各种生产设备和装置,按照特定的工艺流程进行操作。',\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 poi: {\n id: '5',\n position: [-325.49, 11.20, 150.00],\n content: '加氢裂化装置区是化工厂中进行主要生产过程的核心区域。它包括各种生产设备和装置,按照特定的工艺流程进行操作。',\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 people: [{\n id: '61',\n name: '张三',\n position: [49.19, 12.21, 167.39],\n },\n {\n id: '62',\n name: '李四',\n position: [80.87, 18.85, 203.34],\n },\n {\n id: '63',\n name: '王五',\n position: [112.23, 12.23, 144.75],\n },\n {\n id: '64',\n name: '杨洪波',\n position: [-30.27, 19.68, 54.44],\n },\n {\n id: '65',\n name: '李红军',\n position: [-4.23, -0.00, 136.60],\n },\n {\n id: '66',\n name: '罗红军',\n position: [142.24, 11.12, 192.34],\n }],\n poi: {\n id: '6',\n position: [75.75, 12.39, 75.09],\n content: '焦化装置区是化工厂中进行主要生产过程的核心区域。它包括各种生产设备和装置,按照特定的工艺流程进行操作。',\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: 100,\n people: [{\n id: '71',\n name: '张三',\n position: [387.74, 16.41, 33.22],\n },\n {\n id: '72',\n name: '李四',\n position: [368.38, 1.03, 79.71],\n },\n {\n id: '73',\n name: '王五',\n position: [423.63, 16.35, 67.64],\n },\n {\n id: '74',\n name: '杨洪波',\n position: [443.84, 16.07, 138.20],\n },\n {\n id: '75',\n name: '李斯',\n position: [420.59, 16.23, 199.18],\n },\n {\n id: '76',\n name: '罗红军',\n position: [383.85, 13.81, 197.60],\n }],\n poi: {\n id: '7',\n position: [358.37, 17.54, 72.47],\n content: '办公区是化工厂中进行主要生产过程的核心区域。它包括各种生产设备和装置,按照特定的工艺流程进行操作。',\n },\n },\n}\n\nexport default regionMap"],"mappings":"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"}
1
+ {"version":3,"names":["regionMap","reform","id","title","area","poi","position","content","people","name","dep","online","reduction","crudeOil","catalyticCracking","hydrocrackingUnit","cokingUnit","administrative","maxHigh"],"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 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 }\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 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 },\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 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 },\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 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 },\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 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 },\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 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: [-203.90000000, 0.62500079, -4.70000000],\n },\n {\n id: '31',\n name: '张连营',\n dep: '运输装卸',\n online: true,\n position: [-428.40000000, 0.62500079, 96.90000000],\n },\n {\n id: '32',\n name: '张子成',\n dep: '运输装卸',\n online: true,\n position: [-408.30000000, 0.62500079, -37.20000000],\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 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 },\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: 100,\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 },\n}\n\nexport default regionMap"],"mappings":"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"}
@@ -22,7 +22,7 @@ var CircleManage = /*#__PURE__*/function () {
22
22
  key: "generateCircle",
23
23
  value: function generateCircle(belongTo) {
24
24
  var _this = this;
25
- var geometry = new SphereGeometry(1.5, 32, 16);
25
+ var geometry = new SphereGeometry(2, 32, 16);
26
26
  var material = new MeshBasicMaterial({
27
27
  color: 0xFED602
28
28
  });
@@ -1 +1 @@
1
- {"version":3,"names":["Mesh","MeshBasicMaterial","SphereGeometry","Vector3","utils","EPoiType","Poi","regionMap","CircleManage","gobal","Map","scene","interactionManager","storeManagement","get","belongTo","geometry","material","color","circle","data","getData","forEach","people","mesh","clone","position","fromArray","add","bindEvent","circleMesh","set","id","removeFromParent","clear","visible","poi","skewing","addEventListener","peoplePoi","Base","create","name","copy","regionKey","Object","keys","find","key"],"sources":["../../../src/factory/unit/circle.ts"],"sourcesContent":["import { Mesh, MeshBasicMaterial, SphereGeometry, Vector3, utils } from '@anov/3d-core'\nimport type { InteractionManager, Object3D, Scene } from '@anov/3d-core'\nimport { EPoiType, Poi } from '@anov/3d-ability'\nimport type Factory3D from '../3d'\nimport { regionMap } from '../regionData'\n\nclass CircleManage {\n private scene: Scene\n readonly circleMesh: Map<string, Object3D> = new Map()\n private interactionManager\n private peoplePoi: Object3D\n\n constructor(gobal: Factory3D) {\n this.scene = gobal.scene.scene\n this.interactionManager = utils.storeManagement.get<InteractionManager>('interactionManager')\n }\n\n generateCircle(belongTo: string) {\n const geometry = new SphereGeometry(1.5, 32, 16)\n const material = new MeshBasicMaterial({ color: 0xFED602 })\n const circle = new Mesh(geometry, material)\n\n const data = this.getData(belongTo)\n data.forEach((people) => {\n const mesh = circle.clone()\n mesh.position.fromArray(people.position)\n this.scene.add(mesh)\n this.bindEvent(mesh, people)\n this.circleMesh.set(people.id, mesh)\n })\n }\n\n remove() {\n this.circleMesh.forEach((mesh) => {\n mesh.removeFromParent()\n })\n this.circleMesh.clear()\n }\n\n setVisible(visible = true) {\n // 控制CYCLE的隐藏、显示\n this.circleMesh.forEach((poi) => {\n poi.visible = visible\n })\n }\n\n private bindEvent(mesh: Mesh, data) {\n this.interactionManager.add(mesh)\n const skewing = new Vector3(0, 1.5, -1.5) // 偏移量\n mesh.addEventListener('mouseover', () => {\n if (this.peoplePoi)\n return\n\n const poi = new Poi(EPoiType.Base)\n this.peoplePoi = poi.create(data.name)\n\n this.peoplePoi.position.copy(mesh.position.clone().add(skewing))\n this.scene.add(this.peoplePoi)\n })\n mesh.addEventListener('mouseout', () => {\n if (this.peoplePoi) {\n this.peoplePoi.removeFromParent()\n this.peoplePoi = null\n }\n })\n }\n\n private getData(belongTo) {\n const regionKey = Object.keys(regionMap).find((key: any) => {\n return regionMap[key].id === belongTo\n })\n\n return regionMap[regionKey] && regionMap[regionKey].people\n }\n}\n\nexport default CircleManage"],"mappings":"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"}
1
+ {"version":3,"names":["Mesh","MeshBasicMaterial","SphereGeometry","Vector3","utils","EPoiType","Poi","regionMap","CircleManage","gobal","Map","scene","interactionManager","storeManagement","get","belongTo","geometry","material","color","circle","data","getData","forEach","people","mesh","clone","position","fromArray","add","bindEvent","circleMesh","set","id","removeFromParent","clear","visible","poi","skewing","addEventListener","peoplePoi","Base","create","name","copy","regionKey","Object","keys","find","key"],"sources":["../../../src/factory/unit/circle.ts"],"sourcesContent":["import { Mesh, MeshBasicMaterial, SphereGeometry, Vector3, utils } from '@anov/3d-core'\nimport type { InteractionManager, Object3D, Scene } from '@anov/3d-core'\nimport { EPoiType, Poi } from '@anov/3d-ability'\nimport type Factory3D from '../3d'\nimport { regionMap } from '../regionData'\n\nclass CircleManage {\n private scene: Scene\n readonly circleMesh: Map<string, Object3D> = new Map()\n private interactionManager\n private peoplePoi: Object3D\n\n constructor(gobal: Factory3D) {\n this.scene = gobal.scene.scene\n this.interactionManager = utils.storeManagement.get<InteractionManager>('interactionManager')\n }\n\n generateCircle(belongTo: string) {\n const geometry = new SphereGeometry(2, 32, 16)\n const material = new MeshBasicMaterial({ color: 0xFED602 })\n const circle = new Mesh(geometry, material)\n\n const data = this.getData(belongTo)\n data.forEach((people) => {\n const mesh = circle.clone()\n mesh.position.fromArray(people.position)\n this.scene.add(mesh)\n this.bindEvent(mesh, people)\n this.circleMesh.set(people.id, mesh)\n })\n }\n\n remove() {\n this.circleMesh.forEach((mesh) => {\n mesh.removeFromParent()\n })\n this.circleMesh.clear()\n }\n\n setVisible(visible = true) {\n // 控制CYCLE的隐藏、显示\n this.circleMesh.forEach((poi) => {\n poi.visible = visible\n })\n }\n\n private bindEvent(mesh: Mesh, data) {\n this.interactionManager.add(mesh)\n const skewing = new Vector3(0, 1.5, -1.5) // 偏移量\n mesh.addEventListener('mouseover', () => {\n if (this.peoplePoi)\n return\n\n const poi = new Poi(EPoiType.Base)\n this.peoplePoi = poi.create(data.name)\n\n this.peoplePoi.position.copy(mesh.position.clone().add(skewing))\n this.scene.add(this.peoplePoi)\n })\n mesh.addEventListener('mouseout', () => {\n if (this.peoplePoi) {\n this.peoplePoi.removeFromParent()\n this.peoplePoi = null\n }\n })\n }\n\n private getData(belongTo) {\n const regionKey = Object.keys(regionMap).find((key: any) => {\n return regionMap[key].id === belongTo\n })\n\n return regionMap[regionKey] && regionMap[regionKey].people\n }\n}\n\nexport default CircleManage"],"mappings":"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"}
@@ -13,19 +13,54 @@ import { collisionDetection } from "../utils/areaBoundingBox";
13
13
  import { lookAtOnYAxis } from "../utils";
14
14
  var emitter = utils.emitter;
15
15
  var cylinderData = [{
16
- label: '10人',
16
+ label: '8人',
17
+ id: '1',
18
+ belongTo: regionMap.reform.id,
19
+ color: new Color('#FED602').getHex(),
20
+ points: regionMap.reform.poi.position,
21
+ height: 80
22
+ }, {
23
+ label: '7人',
17
24
  id: '2',
25
+ belongTo: regionMap.reduction.id,
26
+ color: new Color('#FED602').getHex(),
27
+ points: regionMap.reduction.poi.position,
28
+ height: 70
29
+ }, {
30
+ label: '4人',
31
+ id: '3',
32
+ belongTo: regionMap.crudeOil.id,
33
+ color: new Color('#FED602').getHex(),
34
+ points: regionMap.crudeOil.poi.position,
35
+ height: 40
36
+ }, {
37
+ label: '10人',
38
+ id: '4',
39
+ belongTo: regionMap.catalyticCracking.id,
40
+ color: new Color('#FED602').getHex(),
41
+ points: regionMap.catalyticCracking.poi.position,
42
+ height: 100
43
+ }, {
44
+ label: '3人',
45
+ id: '5',
46
+ belongTo: regionMap.hydrocrackingUnit.id,
47
+ color: new Color('#FED602').getHex(),
48
+ points: regionMap.hydrocrackingUnit.poi.position,
49
+ height: 30
50
+ }, {
51
+ label: '8人',
52
+ id: '6',
18
53
  belongTo: regionMap.cokingUnit.id,
19
54
  color: new Color('#FED602').getHex(),
20
- points: [79.88, 12.15, 170.00],
21
- height: 50
55
+ points: regionMap.cokingUnit.poi.position,
56
+ height: 80
22
57
  }, {
23
58
  label: '20人',
24
- id: '3',
59
+ id: '7',
25
60
  belongTo: regionMap.administrative.id,
26
61
  color: new Color('#FED602').getHex(),
27
- points: [417.27, 0.03, 91.38],
28
- height: 100
62
+ points: regionMap.administrative.poi.position,
63
+ height: 150
29
64
  }];
30
65
  var CylinderManage = /*#__PURE__*/function () {
31
66
  function CylinderManage(gobal, options) {
@@ -1 +1 @@
1
- {"version":3,"names":["BoxGeometry","Color","Group","Mesh","ShaderMaterial","Vector3","globalObjectManage","use","utils","createFontMesh","SceneStyle","regionMap","collisionDetection","lookAtOnYAxis","emitter","cylinderData","label","id","belongTo","cokingUnit","color","getHex","points","height","administrative","CylinderManage","gobal","options","Map","currentCameraPosition","control","object","position","box","areaBoundingBox","boundingBoxMap","get","currentoperate","iscollision","emit","cameraRemoveListener","scene","option","forEach","item","geometry","material","transparent","depthWrite","depthTest","uniforms","uHeight","value","uColor","vertexShader","fragmentShader","cylinder","group","visible","copy","fromArray","interactionManager","storeManagement","add","addEventListener","style","real","cameraUtil","set","target","then","currentGroup","cylinderMesh","cameraAddListener","font","mesh","center","useframe","camera","cameraListenerHandle","removeEventListener"],"sources":["../../../src/factory/unit/cylinder.ts"],"sourcesContent":["import type { InteractionManager, Object3D, Scene } from '@anov/3d-core'\nimport { BoxGeometry, Color, Group, Mesh, ShaderMaterial, Vector3, globalObjectManage, use, utils } from '@anov/3d-core'\nimport createFontMesh from '../utils/fontMesh'\nimport type Factory3D from '../3d'\nimport { SceneStyle } from '../3d'\nimport regionMap from '../regionData'\nimport { collisionDetection } from '../utils/areaBoundingBox'\n\nimport { lookAtOnYAxis } from '../utils'\n\nconst { emitter } = utils\n\nconst cylinderData = [\n {\n label: '10人',\n id: '2',\n belongTo: regionMap.cokingUnit.id,\n color: new Color('#FED602').getHex(),\n points: [79.88, 12.15, 170.00],\n height: 50,\n },\n\n {\n label: '20人',\n id: '3',\n belongTo: regionMap.administrative.id,\n color: new Color('#FED602').getHex(),\n points: [417.27, 0.03, 91.38],\n height: 100,\n },\n]\n\ntype CylinderManageOption = {\n visible?: boolean\n}\n\nclass CylinderManage {\n private scene: Scene\n readonly cylinderMesh: Map<string, Object3D> = new Map()\n private option: CylinderManageOption\n private gobal: Factory3D\n private currentoperate: string\n\n constructor(gobal: Factory3D, options?: CylinderManageOption) {\n this.scene = gobal.scene.scene\n this.gobal = gobal\n this.option = options || {}\n }\n\n generateCylinder() {\n cylinderData.forEach((item) => {\n const geometry = new BoxGeometry(10, item.height, 10)\n const material = new ShaderMaterial({\n transparent: true,\n depthWrite: false,\n depthTest: false,\n uniforms: {\n uHeight: {\n value: item.height,\n },\n uColor: {\n value: new Color(item.color),\n },\n },\n vertexShader: `\n uniform float uHeight;\n varying float vOpacity;\n void main() {\n vOpacity = (position.y + uHeight/2.0) / uHeight;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position,1.0);\n }\n `,\n fragmentShader: `\n uniform vec3 uColor;\n varying float vOpacity;\n void main() {\n gl_FragColor = vec4(uColor,0.3+vOpacity/10.0*7.0);\n }\n `,\n })\n const cylinder = new Mesh(geometry, material)\n const group = new Group()\n\n group.visible = this.option?.visible ?? true\n cylinder.position.copy(new Vector3().fromArray([item.points[0], item.points[1] + item.height / 2, item.points[2]]))\n\n const interactionManager = utils.storeManagement.get<InteractionManager>('interactionManager')\n interactionManager.add(cylinder)\n\n cylinder.addEventListener('click', () => {\n if (this.gobal.style === SceneStyle.real)\n return\n\n if (group.visible === false)\n return\n\n this.gobal.cameraUtil.set({\n position: [item.points[0], item.points[1] + item.height / 2, item.points[2] + 100],\n target: [item.points[0], item.points[1] + item.height / 2, item.points[2]],\n }).then(() => {\n emitter.emit('peoplemanagement-camera-enter', item)\n const currentGroup = this.cylinderMesh.get(item.belongTo) as Group\n currentGroup.visible = false\n\n this.currentoperate = item.belongTo\n this.cameraAddListener()\n })\n })\n\n this.cylinderMesh.set(item.belongTo, group)\n group.add(cylinder)\n\n const font = createFontMesh(item.label, {\n position: new Vector3().fromArray([item.points[0], item.points[1] + item.height + 10, item.points[2]]),\n })\n\n font.then((mesh) => {\n mesh.geometry.center()\n\n group.add(mesh)\n\n use.useframe(() => {\n lookAtOnYAxis(mesh, globalObjectManage.camera.position)\n })\n this.scene.add(group)\n })\n })\n }\n\n private cameraListenerHandle = () => {\n const currentCameraPosition = this.gobal.control.object.position\n const box = this.gobal.areaBoundingBox.boundingBoxMap.get(this.currentoperate)\n const iscollision = collisionDetection(box, currentCameraPosition)\n\n if (!iscollision) {\n emitter.emit('peoplemanagement-camera-out', {\n belongTo: this.currentoperate,\n })\n\n this.cameraRemoveListener()\n }\n }\n\n private cameraAddListener() {\n this.gobal.control.addEventListener('change', this.cameraListenerHandle)\n }\n\n private cameraRemoveListener() {\n this.gobal.control.removeEventListener('change', this.cameraListenerHandle)\n }\n}\n\nexport default CylinderManage"],"mappings":"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"}
1
+ {"version":3,"names":["BoxGeometry","Color","Group","Mesh","ShaderMaterial","Vector3","globalObjectManage","use","utils","createFontMesh","SceneStyle","regionMap","collisionDetection","lookAtOnYAxis","emitter","cylinderData","label","id","belongTo","reform","color","getHex","points","poi","position","height","reduction","crudeOil","catalyticCracking","hydrocrackingUnit","cokingUnit","administrative","CylinderManage","gobal","options","Map","currentCameraPosition","control","object","box","areaBoundingBox","boundingBoxMap","get","currentoperate","iscollision","emit","cameraRemoveListener","scene","option","forEach","item","geometry","material","transparent","depthWrite","depthTest","uniforms","uHeight","value","uColor","vertexShader","fragmentShader","cylinder","group","visible","copy","fromArray","interactionManager","storeManagement","add","addEventListener","style","real","cameraUtil","set","target","then","currentGroup","cylinderMesh","cameraAddListener","font","mesh","center","useframe","camera","cameraListenerHandle","removeEventListener"],"sources":["../../../src/factory/unit/cylinder.ts"],"sourcesContent":["import type { InteractionManager, Object3D, Scene } from '@anov/3d-core'\nimport { BoxGeometry, Color, Group, Mesh, ShaderMaterial, Vector3, globalObjectManage, use, utils } from '@anov/3d-core'\nimport createFontMesh from '../utils/fontMesh'\nimport type Factory3D from '../3d'\nimport { SceneStyle } from '../3d'\nimport regionMap from '../regionData'\nimport { collisionDetection } from '../utils/areaBoundingBox'\n\nimport { lookAtOnYAxis } from '../utils'\n\nconst { emitter } = utils\n\nconst cylinderData = [\n {\n label: '8人',\n id: '1',\n belongTo: regionMap.reform.id,\n color: new Color('#FED602').getHex(),\n points: regionMap.reform.poi.position,\n height: 80,\n },\n {\n label: '7人',\n id: '2',\n belongTo: regionMap.reduction.id,\n color: new Color('#FED602').getHex(),\n points: regionMap.reduction.poi.position,\n height: 70,\n },\n {\n label: '4人',\n id: '3',\n belongTo: regionMap.crudeOil.id,\n color: new Color('#FED602').getHex(),\n points: regionMap.crudeOil.poi.position,\n height: 40,\n },\n {\n label: '10人',\n id: '4',\n belongTo: regionMap.catalyticCracking.id,\n color: new Color('#FED602').getHex(),\n points: regionMap.catalyticCracking.poi.position,\n height: 100,\n },\n {\n label: '3人',\n id: '5',\n belongTo: regionMap.hydrocrackingUnit.id,\n color: new Color('#FED602').getHex(),\n points: regionMap.hydrocrackingUnit.poi.position,\n height: 30,\n },\n {\n label: '8人',\n id: '6',\n belongTo: regionMap.cokingUnit.id,\n color: new Color('#FED602').getHex(),\n points: regionMap.cokingUnit.poi.position,\n height: 80,\n },\n {\n label: '20人',\n id: '7',\n belongTo: regionMap.administrative.id,\n color: new Color('#FED602').getHex(),\n points: regionMap.administrative.poi.position,\n height: 150,\n },\n]\n\ntype CylinderManageOption = {\n visible?: boolean\n}\n\nclass CylinderManage {\n private scene: Scene\n readonly cylinderMesh: Map<string, Object3D> = new Map()\n private option: CylinderManageOption\n private gobal: Factory3D\n private currentoperate: string\n\n constructor(gobal: Factory3D, options?: CylinderManageOption) {\n this.scene = gobal.scene.scene\n this.gobal = gobal\n this.option = options || {}\n }\n\n generateCylinder() {\n cylinderData.forEach((item) => {\n const geometry = new BoxGeometry(10, item.height, 10)\n const material = new ShaderMaterial({\n transparent: true,\n depthWrite: false,\n depthTest: false,\n uniforms: {\n uHeight: {\n value: item.height,\n },\n uColor: {\n value: new Color(item.color),\n },\n },\n vertexShader: `\n uniform float uHeight;\n varying float vOpacity;\n void main() {\n vOpacity = (position.y + uHeight/2.0) / uHeight;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position,1.0);\n }\n `,\n fragmentShader: `\n uniform vec3 uColor;\n varying float vOpacity;\n void main() {\n gl_FragColor = vec4(uColor,0.3+vOpacity/10.0*7.0);\n }\n `,\n })\n const cylinder = new Mesh(geometry, material)\n const group = new Group()\n\n group.visible = this.option?.visible ?? true\n cylinder.position.copy(new Vector3().fromArray([item.points[0], item.points[1] + item.height / 2, item.points[2]]))\n\n const interactionManager = utils.storeManagement.get<InteractionManager>('interactionManager')\n interactionManager.add(cylinder)\n\n cylinder.addEventListener('click', () => {\n if (this.gobal.style === SceneStyle.real)\n return\n\n if (group.visible === false)\n return\n\n this.gobal.cameraUtil.set({\n position: [item.points[0], item.points[1] + item.height / 2, item.points[2] + 100],\n target: [item.points[0], item.points[1] + item.height / 2, item.points[2]],\n }).then(() => {\n emitter.emit('peoplemanagement-camera-enter', item)\n const currentGroup = this.cylinderMesh.get(item.belongTo) as Group\n currentGroup.visible = false\n\n this.currentoperate = item.belongTo\n this.cameraAddListener()\n })\n })\n\n this.cylinderMesh.set(item.belongTo, group)\n group.add(cylinder)\n\n const font = createFontMesh(item.label, {\n position: new Vector3().fromArray([item.points[0], item.points[1] + item.height + 10, item.points[2]]),\n })\n\n font.then((mesh) => {\n mesh.geometry.center()\n\n group.add(mesh)\n\n use.useframe(() => {\n lookAtOnYAxis(mesh, globalObjectManage.camera.position)\n })\n this.scene.add(group)\n })\n })\n }\n\n private cameraListenerHandle = () => {\n const currentCameraPosition = this.gobal.control.object.position\n const box = this.gobal.areaBoundingBox.boundingBoxMap.get(this.currentoperate)\n const iscollision = collisionDetection(box, currentCameraPosition)\n\n if (!iscollision) {\n emitter.emit('peoplemanagement-camera-out', {\n belongTo: this.currentoperate,\n })\n\n this.cameraRemoveListener()\n }\n }\n\n private cameraAddListener() {\n this.gobal.control.addEventListener('change', this.cameraListenerHandle)\n }\n\n private cameraRemoveListener() {\n this.gobal.control.removeEventListener('change', this.cameraListenerHandle)\n }\n}\n\nexport default CylinderManage"],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { Object3D } from '@anov/3d-core';
2
+ declare class PoiManage {
3
+ private gobal;
4
+ private scene;
5
+ private dialogPoi;
6
+ readonly poiMesh: Map<string, Object3D>;
7
+ private wallManage;
8
+ private interactionManager;
9
+ constructor(gobal: any);
10
+ generatePoi(): void;
11
+ setVisible(visible?: boolean): void;
12
+ reset(): void;
13
+ private addDialogPanel;
14
+ }
15
+ export default PoiManage;
@@ -0,0 +1,144 @@
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 _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) keys.push(key); return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, catch: function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
3
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
5
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
6
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
7
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
8
+ 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); } }
9
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
10
+ 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; }
11
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
12
+ 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); }
13
+ import { Mesh, MeshBasicMaterial, PlaneGeometry, Vector3, utils } from '@anov/3d-core';
14
+ import { EPoiType, Poi } from '@anov/3d-ability';
15
+ import { regionMap } from "../regionData";
16
+ var PoiManage = /*#__PURE__*/function () {
17
+ function PoiManage(gobal) {
18
+ _classCallCheck(this, PoiManage);
19
+ _defineProperty(this, "gobal", void 0);
20
+ _defineProperty(this, "scene", void 0);
21
+ _defineProperty(this, "dialogPoi", void 0);
22
+ _defineProperty(this, "poiMesh", new Map());
23
+ _defineProperty(this, "wallManage", void 0);
24
+ _defineProperty(this, "interactionManager", void 0);
25
+ this.gobal = gobal;
26
+ this.scene = gobal.scene.scene;
27
+ this.wallManage = gobal.wall;
28
+ this.interactionManager = utils.storeManagement.get('interactionManager');
29
+ }
30
+ _createClass(PoiManage, [{
31
+ key: "generatePoi",
32
+ value: function generatePoi() {
33
+ var _this = this;
34
+ Object.keys(regionMap).forEach( /*#__PURE__*/function () {
35
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(key) {
36
+ var region, option, geometry, material, plane, poi, sprite, changeWallState;
37
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
38
+ while (1) switch (_context.prev = _context.next) {
39
+ case 0:
40
+ region = regionMap[key];
41
+ option = _objectSpread({
42
+ scale: 80
43
+ }, (region.id === '4' || region.id === '5') && {
44
+ width: 260,
45
+ height: 260,
46
+ img: './poi_big.png'
47
+ });
48
+ geometry = new PlaneGeometry(1, 1);
49
+ material = new MeshBasicMaterial({
50
+ color: 0xFFFF00,
51
+ side: THREE.DoubleSide
52
+ });
53
+ plane = new Mesh(geometry, material);
54
+ poi = new Poi(EPoiType.Line);
55
+ sprite = poi.create(region.title, option);
56
+ sprite.position.copy(new Vector3().fromArray(region.poi.position));
57
+ _this.scene.add(sprite);
58
+ _this.poiMesh.set(region.poi.id, sprite);
59
+
60
+ // 绑定事件
61
+ _this.interactionManager.add(sprite);
62
+ changeWallState = function changeWallState(show) {
63
+ var _this$dialogPoi;
64
+ if ((_this$dialogPoi = _this.dialogPoi) !== null && _this$dialogPoi !== void 0 && _this$dialogPoi.visible) return;
65
+ // 光墙
66
+ var wall = _this.wallManage.wallMesh.get(region.id);
67
+ wall.visible = show;
68
+ };
69
+ sprite.addEventListener('mouseover', function () {
70
+ changeWallState(true);
71
+ });
72
+ sprite.addEventListener('mouseout', function () {
73
+ changeWallState(false);
74
+ });
75
+ sprite.addEventListener('click', function (event) {
76
+ if (!sprite.visible) return;
77
+ _this.reset();
78
+ // 光墙
79
+ var wall = _this.wallManage.wallMesh.get(region.id);
80
+ wall.visible = true;
81
+ // 隐藏当前POI点
82
+ sprite.visible = false;
83
+ _this.addDialogPanel(region, event.point, sprite);
84
+ });
85
+ case 15:
86
+ case "end":
87
+ return _context.stop();
88
+ }
89
+ }, _callee);
90
+ }));
91
+ return function (_x) {
92
+ return _ref.apply(this, arguments);
93
+ };
94
+ }());
95
+ }
96
+ }, {
97
+ key: "setVisible",
98
+ value: function setVisible() {
99
+ var visible = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
100
+ // 控制POI点的隐藏、显示
101
+ this.poiMesh.forEach(function (poi) {
102
+ poi.visible = visible;
103
+ });
104
+ // 移除面板
105
+ if (this.dialogPoi) this.dialogPoi.removeFromParent();
106
+ }
107
+ }, {
108
+ key: "reset",
109
+ value: function reset() {
110
+ var _this$wallManage;
111
+ // 控制POI点的隐藏、显示
112
+ this.setVisible(true);
113
+ // 控制光墙的隐藏、显示
114
+ (_this$wallManage = this.wallManage) === null || _this$wallManage === void 0 ? void 0 : _this$wallManage.wallMesh.forEach(function (wall) {
115
+ wall.visible = false;
116
+ });
117
+ }
118
+ }, {
119
+ key: "addDialogPanel",
120
+ value: function addDialogPanel(data, position) {
121
+ var _this2 = this;
122
+ // 添加面板
123
+ var poi = new Poi(EPoiType.Panel);
124
+ this.dialogPoi = poi.create({
125
+ title: data.title,
126
+ content: data.poi.content
127
+ }, {
128
+ print: true
129
+ });
130
+ this.dialogPoi.position.copy(position.clone().add(new Vector3(-30, 30, 0)));
131
+ this.scene.add(this.dialogPoi);
132
+ this.interactionManager.add(this.dialogPoi);
133
+ this.dialogPoi.addEventListener('click', function (event) {
134
+ _this2.dialogPoi.remove();
135
+ _this2.dialogPoi.removeFromParent();
136
+ _this2.dialogPoi = null;
137
+ _this2.reset();
138
+ });
139
+ }
140
+ }]);
141
+ return PoiManage;
142
+ }();
143
+ export default PoiManage;
144
+ //# sourceMappingURL=poi copy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Mesh","MeshBasicMaterial","PlaneGeometry","Vector3","utils","EPoiType","Poi","regionMap","PoiManage","gobal","Map","scene","wallManage","wall","interactionManager","storeManagement","get","Object","keys","forEach","key","region","option","scale","id","width","height","img","geometry","material","color","side","THREE","DoubleSide","plane","poi","Line","sprite","create","title","position","copy","fromArray","add","poiMesh","set","changeWallState","show","dialogPoi","visible","wallMesh","addEventListener","event","reset","addDialogPanel","point","removeFromParent","setVisible","data","Panel","content","print","clone","remove"],"sources":["../../../src/factory/unit/poi copy.ts"],"sourcesContent":["import type { InteractionManager, Object3D, Scene, Sprite } from '@anov/3d-core'\nimport { Mesh, MeshBasicMaterial, PlaneGeometry, Vector3, utils } from '@anov/3d-core'\nimport { EPoiType, Poi } from '@anov/3d-ability'\nimport type Factory3D 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 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 generatePoi() {\n Object.keys(regionMap).forEach(async (key: string) => {\n const region = regionMap[key]\n const option = {\n scale: 80,\n ...((region.id === '4' || region.id === '5') && {\n width: 260,\n height: 260,\n img: './poi_big.png',\n }),\n }\n const geometry = new PlaneGeometry(1, 1)\n const material = new MeshBasicMaterial({ color: 0xFFFF00, side: THREE.DoubleSide })\n const plane = new Mesh(geometry, material)\n const poi = new Poi(EPoiType.Line)\n const sprite = poi.create(region.title, option) as Sprite\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 changeWallState(true)\n })\n sprite.addEventListener('mouseout', () => {\n changeWallState(false)\n })\n sprite.addEventListener('click', (event) => {\n if (!sprite.visible)\n return\n this.reset()\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, sprite)\n })\n })\n }\n\n setVisible(visible = true) {\n // 控制POI点的隐藏、显示\n this.poiMesh.forEach((poi) => {\n poi.visible = visible\n })\n // 移除面板\n if (this.dialogPoi)\n this.dialogPoi.removeFromParent()\n }\n\n reset() {\n // 控制POI点的隐藏、显示\n this.setVisible(true)\n // 控制光墙的隐藏、显示\n this.wallManage?.wallMesh.forEach((wall) => {\n wall.visible = false\n })\n }\n\n private addDialogPanel(data, position) {\n // 添加面板\n const poi = new Poi(EPoiType.Panel)\n this.dialogPoi = poi.create({ title: data.title, content: data.poi.content }, { print: true })\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', (event) => {\n this.dialogPoi.remove()\n this.dialogPoi.removeFromParent()\n this.dialogPoi = null\n this.reset()\n })\n }\n}\n\nexport default PoiManage"],"mappings":";+CACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAASA,IAAI,EAAEC,iBAAiB,EAAEC,aAAa,EAAEC,OAAO,EAAEC,KAAK,QAAQ,eAAe;AACtF,SAASC,QAAQ,EAAEC,GAAG,QAAQ,kBAAkB;AAEhD,SAASC,SAAS;AAAuB,IAGnCC,SAAS;EAQb,mBAAYC,KAAK,EAAE;IAAA;IAAA;IAAA;IAAA;IAAA,iCAJuB,IAAIC,GAAG,EAAE;IAAA;IAAA;IAKjD,IAAI,CAACD,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACE,KAAK,GAAGF,KAAK,CAACE,KAAK,CAACA,KAAK;IAC9B,IAAI,CAACC,UAAU,GAAGH,KAAK,CAACI,IAAI;IAC5B,IAAI,CAACC,kBAAkB,GAAGV,KAAK,CAACW,eAAe,CAACC,GAAG,CAAqB,oBAAoB,CAAC;EAC/F;EAAC;IAAA;IAAA,OAED,uBAAc;MAAA;MACZC,MAAM,CAACC,IAAI,CAACX,SAAS,CAAC,CAACY,OAAO;QAAA,sEAAC,iBAAOC,GAAW;UAAA;UAAA;YAAA;cAAA;gBACzCC,MAAM,GAAGd,SAAS,CAACa,GAAG,CAAC;gBACvBE,MAAM;kBACVC,KAAK,EAAE;gBAAE,GACL,CAACF,MAAM,CAACG,EAAE,KAAK,GAAG,IAAIH,MAAM,CAACG,EAAE,KAAK,GAAG,KAAK;kBAC9CC,KAAK,EAAE,GAAG;kBACVC,MAAM,EAAE,GAAG;kBACXC,GAAG,EAAE;gBACP,CAAC;gBAEGC,QAAQ,GAAG,IAAI1B,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;gBAClC2B,QAAQ,GAAG,IAAI5B,iBAAiB,CAAC;kBAAE6B,KAAK,EAAE,QAAQ;kBAAEC,IAAI,EAAEC,KAAK,CAACC;gBAAW,CAAC,CAAC;gBAC7EC,KAAK,GAAG,IAAIlC,IAAI,CAAC4B,QAAQ,EAAEC,QAAQ,CAAC;gBACpCM,GAAG,GAAG,IAAI7B,GAAG,CAACD,QAAQ,CAAC+B,IAAI,CAAC;gBAC5BC,MAAM,GAAGF,GAAG,CAACG,MAAM,CAACjB,MAAM,CAACkB,KAAK,EAAEjB,MAAM,CAAC;gBAC/Ce,MAAM,CAACG,QAAQ,CAACC,IAAI,CAAC,IAAItC,OAAO,EAAE,CAACuC,SAAS,CAACrB,MAAM,CAACc,GAAG,CAACK,QAAQ,CAAC,CAAC;gBAElE,KAAI,CAAC7B,KAAK,CAACgC,GAAG,CAACN,MAAM,CAAC;gBACtB,KAAI,CAACO,OAAO,CAACC,GAAG,CAACxB,MAAM,CAACc,GAAG,CAACX,EAAE,EAAEa,MAAM,CAAC;;gBAEvC;gBACA,KAAI,CAACvB,kBAAkB,CAAC6B,GAAG,CAACN,MAAM,CAAC;gBAC7BS,eAAe,GAAG,SAAlBA,eAAe,CAAIC,IAAI,EAAK;kBAAA;kBAChC,uBAAI,KAAI,CAACC,SAAS,4CAAd,gBAAgBC,OAAO,EACzB;kBACF;kBACA,IAAMpC,IAAI,GAAG,KAAI,CAACD,UAAU,CAACsC,QAAQ,CAAClC,GAAG,CAACK,MAAM,CAACG,EAAE,CAAC;kBACpDX,IAAI,CAACoC,OAAO,GAAGF,IAAI;gBACrB,CAAC;gBAEDV,MAAM,CAACc,gBAAgB,CAAC,WAAW,EAAE,YAAM;kBACzCL,eAAe,CAAC,IAAI,CAAC;gBACvB,CAAC,CAAC;gBACFT,MAAM,CAACc,gBAAgB,CAAC,UAAU,EAAE,YAAM;kBACxCL,eAAe,CAAC,KAAK,CAAC;gBACxB,CAAC,CAAC;gBACFT,MAAM,CAACc,gBAAgB,CAAC,OAAO,EAAE,UAACC,KAAK,EAAK;kBAC1C,IAAI,CAACf,MAAM,CAACY,OAAO,EACjB;kBACF,KAAI,CAACI,KAAK,EAAE;kBACZ;kBACA,IAAMxC,IAAI,GAAG,KAAI,CAACD,UAAU,CAACsC,QAAQ,CAAClC,GAAG,CAACK,MAAM,CAACG,EAAE,CAAC;kBACpDX,IAAI,CAACoC,OAAO,GAAG,IAAI;kBACnB;kBACAZ,MAAM,CAACY,OAAO,GAAG,KAAK;kBACtB,KAAI,CAACK,cAAc,CAACjC,MAAM,EAAE+B,KAAK,CAACG,KAAK,EAAElB,MAAM,CAAC;gBAClD,CAAC,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA,CACH;QAAA;UAAA;QAAA;MAAA,IAAC;IACJ;EAAC;IAAA;IAAA,OAED,sBAA2B;MAAA,IAAhBY,OAAO,uEAAG,IAAI;MACvB;MACA,IAAI,CAACL,OAAO,CAACzB,OAAO,CAAC,UAACgB,GAAG,EAAK;QAC5BA,GAAG,CAACc,OAAO,GAAGA,OAAO;MACvB,CAAC,CAAC;MACF;MACA,IAAI,IAAI,CAACD,SAAS,EAChB,IAAI,CAACA,SAAS,CAACQ,gBAAgB,EAAE;IACrC;EAAC;IAAA;IAAA,OAED,iBAAQ;MAAA;MACN;MACA,IAAI,CAACC,UAAU,CAAC,IAAI,CAAC;MACrB;MACA,wBAAI,CAAC7C,UAAU,qDAAf,iBAAiBsC,QAAQ,CAAC/B,OAAO,CAAC,UAACN,IAAI,EAAK;QAC1CA,IAAI,CAACoC,OAAO,GAAG,KAAK;MACtB,CAAC,CAAC;IACJ;EAAC;IAAA;IAAA,OAED,wBAAuBS,IAAI,EAAElB,QAAQ,EAAE;MAAA;MACrC;MACA,IAAML,GAAG,GAAG,IAAI7B,GAAG,CAACD,QAAQ,CAACsD,KAAK,CAAC;MACnC,IAAI,CAACX,SAAS,GAAGb,GAAG,CAACG,MAAM,CAAC;QAAEC,KAAK,EAAEmB,IAAI,CAACnB,KAAK;QAAEqB,OAAO,EAAEF,IAAI,CAACvB,GAAG,CAACyB;MAAQ,CAAC,EAAE;QAAEC,KAAK,EAAE;MAAK,CAAC,CAAC;MAC9F,IAAI,CAACb,SAAS,CAACR,QAAQ,CAACC,IAAI,CAACD,QAAQ,CAACsB,KAAK,EAAE,CAACnB,GAAG,CAAC,IAAIxC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;MAC3E,IAAI,CAACQ,KAAK,CAACgC,GAAG,CAAC,IAAI,CAACK,SAAS,CAAC;MAE9B,IAAI,CAAClC,kBAAkB,CAAC6B,GAAG,CAAC,IAAI,CAACK,SAAS,CAAC;MAC3C,IAAI,CAACA,SAAS,CAACG,gBAAgB,CAAC,OAAO,EAAE,UAACC,KAAK,EAAK;QAClD,MAAI,CAACJ,SAAS,CAACe,MAAM,EAAE;QACvB,MAAI,CAACf,SAAS,CAACQ,gBAAgB,EAAE;QACjC,MAAI,CAACR,SAAS,GAAG,IAAI;QACrB,MAAI,CAACK,KAAK,EAAE;MACd,CAAC,CAAC;IACJ;EAAC;EAAA;AAAA;AAGH,eAAe7C,SAAS"}
@@ -26,11 +26,11 @@ var Font = /*#__PURE__*/function () {
26
26
  var geometry = new TextGeometry(text, {
27
27
  font: _this.font,
28
28
  size: (_options$size = options.size) !== null && _options$size !== void 0 ? _options$size : 10,
29
- height: 0.1
29
+ height: 1
30
30
  });
31
31
  var mesh = new Mesh(geometry, new MeshBasicMaterial({
32
32
  depthTest: true,
33
- color: new Color('#000')
33
+ color: new Color('#fff')
34
34
  }));
35
35
  mesh.position.copy(options.position);
36
36
  res(mesh);
@@ -1 +1 @@
1
- {"version":3,"names":["Color","Mesh","MeshBasicMaterial","lib","FontLoader","TextGeometry","Font","font","text","options","Promise","res","loader","load","geometry","size","height","mesh","depthTest","color","position","copy","createFontMesh","createText"],"sources":["../../../src/factory/utils/fontMesh.ts"],"sourcesContent":["import type { Vector3 } from '@anov/3d-core'\nimport { Color, Mesh, MeshBasicMaterial, lib } from '@anov/3d-core'\n\nconst { FontLoader, TextGeometry } = lib\n\ntype FontMeshOption = {\n position: Vector3\n color?: Color\n size?: number\n rotate?: number\n}\n\nclass Font {\n font: lib.Font | null\n\n constructor() {\n this.font = null\n }\n\n createText(text: string, options: FontMeshOption) {\n return new Promise((res) => {\n const loader = new FontLoader()\n loader.load('./font.json', (font) => {\n this.font = font\n\n const geometry = new TextGeometry(text, {\n font: this.font,\n size: options.size ?? 10,\n height: 0.1,\n })\n\n const mesh = new Mesh(geometry, new MeshBasicMaterial({\n depthTest: true,\n color: new Color('#000'),\n }))\n\n mesh.position.copy(options.position)\n res(mesh)\n })\n })\n }\n}\n\nconst font = new Font()\n\nconst createFontMesh = (text: string, options: FontMeshOption) => {\n return font.createText(text, options) as Promise<Mesh>\n}\n\nexport default createFontMesh\n"],"mappings":";;;;;;;AACA,SAASA,KAAK,EAAEC,IAAI,EAAEC,iBAAiB,EAAEC,GAAG,QAAQ,eAAe;AAEnE,IAAQC,UAAU,GAAmBD,GAAG,CAAhCC,UAAU;EAAEC,YAAY,GAAKF,GAAG,CAApBE,YAAY;AAAQ,IASlCC,IAAI;EAGR,gBAAc;IAAA;IAAA;IACZ,IAAI,CAACC,IAAI,GAAG,IAAI;EAClB;EAAC;IAAA;IAAA,OAED,oBAAWC,IAAY,EAAEC,OAAuB,EAAE;MAAA;MAChD,OAAO,IAAIC,OAAO,CAAC,UAACC,GAAG,EAAK;QAC1B,IAAMC,MAAM,GAAG,IAAIR,UAAU,EAAE;QAC/BQ,MAAM,CAACC,IAAI,CAAC,aAAa,EAAE,UAACN,IAAI,EAAK;UAAA;UACnC,KAAI,CAACA,IAAI,GAAGA,IAAI;UAEhB,IAAMO,QAAQ,GAAG,IAAIT,YAAY,CAACG,IAAI,EAAE;YACtCD,IAAI,EAAE,KAAI,CAACA,IAAI;YACfQ,IAAI,mBAAEN,OAAO,CAACM,IAAI,yDAAI,EAAE;YACxBC,MAAM,EAAE;UACV,CAAC,CAAC;UAEF,IAAMC,IAAI,GAAG,IAAIhB,IAAI,CAACa,QAAQ,EAAE,IAAIZ,iBAAiB,CAAC;YACpDgB,SAAS,EAAE,IAAI;YACfC,KAAK,EAAE,IAAInB,KAAK,CAAC,MAAM;UACzB,CAAC,CAAC,CAAC;UAEHiB,IAAI,CAACG,QAAQ,CAACC,IAAI,CAACZ,OAAO,CAACW,QAAQ,CAAC;UACpCT,GAAG,CAACM,IAAI,CAAC;QACX,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ;EAAC;EAAA;AAAA;AAGH,IAAMV,IAAI,GAAG,IAAID,IAAI,EAAE;AAEvB,IAAMgB,cAAc,GAAG,SAAjBA,cAAc,CAAId,IAAY,EAAEC,OAAuB,EAAK;EAChE,OAAOF,IAAI,CAACgB,UAAU,CAACf,IAAI,EAAEC,OAAO,CAAC;AACvC,CAAC;AAED,eAAea,cAAc"}
1
+ {"version":3,"names":["Color","Mesh","MeshBasicMaterial","lib","FontLoader","TextGeometry","Font","font","text","options","Promise","res","loader","load","geometry","size","height","mesh","depthTest","color","position","copy","createFontMesh","createText"],"sources":["../../../src/factory/utils/fontMesh.ts"],"sourcesContent":["import type { Vector3 } from '@anov/3d-core'\nimport { Color, Mesh, MeshBasicMaterial, lib } from '@anov/3d-core'\n\nconst { FontLoader, TextGeometry } = lib\n\ntype FontMeshOption = {\n position: Vector3\n color?: Color\n size?: number\n rotate?: number\n}\n\nclass Font {\n font: lib.Font | null\n\n constructor() {\n this.font = null\n }\n\n createText(text: string, options: FontMeshOption) {\n return new Promise((res) => {\n const loader = new FontLoader()\n loader.load('./font.json', (font) => {\n this.font = font\n\n const geometry = new TextGeometry(text, {\n font: this.font,\n size: options.size ?? 10,\n height: 1,\n })\n\n const mesh = new Mesh(geometry, new MeshBasicMaterial({\n depthTest: true,\n color: new Color('#fff'),\n }))\n\n mesh.position.copy(options.position)\n res(mesh)\n })\n })\n }\n}\n\nconst font = new Font()\n\nconst createFontMesh = (text: string, options: FontMeshOption) => {\n return font.createText(text, options) as Promise<Mesh>\n}\n\nexport default createFontMesh\n"],"mappings":";;;;;;;AACA,SAASA,KAAK,EAAEC,IAAI,EAAEC,iBAAiB,EAAEC,GAAG,QAAQ,eAAe;AAEnE,IAAQC,UAAU,GAAmBD,GAAG,CAAhCC,UAAU;EAAEC,YAAY,GAAKF,GAAG,CAApBE,YAAY;AAAQ,IASlCC,IAAI;EAGR,gBAAc;IAAA;IAAA;IACZ,IAAI,CAACC,IAAI,GAAG,IAAI;EAClB;EAAC;IAAA;IAAA,OAED,oBAAWC,IAAY,EAAEC,OAAuB,EAAE;MAAA;MAChD,OAAO,IAAIC,OAAO,CAAC,UAACC,GAAG,EAAK;QAC1B,IAAMC,MAAM,GAAG,IAAIR,UAAU,EAAE;QAC/BQ,MAAM,CAACC,IAAI,CAAC,aAAa,EAAE,UAACN,IAAI,EAAK;UAAA;UACnC,KAAI,CAACA,IAAI,GAAGA,IAAI;UAEhB,IAAMO,QAAQ,GAAG,IAAIT,YAAY,CAACG,IAAI,EAAE;YACtCD,IAAI,EAAE,KAAI,CAACA,IAAI;YACfQ,IAAI,mBAAEN,OAAO,CAACM,IAAI,yDAAI,EAAE;YACxBC,MAAM,EAAE;UACV,CAAC,CAAC;UAEF,IAAMC,IAAI,GAAG,IAAIhB,IAAI,CAACa,QAAQ,EAAE,IAAIZ,iBAAiB,CAAC;YACpDgB,SAAS,EAAE,IAAI;YACfC,KAAK,EAAE,IAAInB,KAAK,CAAC,MAAM;UACzB,CAAC,CAAC,CAAC;UAEHiB,IAAI,CAACG,QAAQ,CAACC,IAAI,CAACZ,OAAO,CAACW,QAAQ,CAAC;UACpCT,GAAG,CAACM,IAAI,CAAC;QACX,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ;EAAC;EAAA;AAAA;AAGH,IAAMV,IAAI,GAAG,IAAID,IAAI,EAAE;AAEvB,IAAMgB,cAAc,GAAG,SAAjBA,cAAc,CAAId,IAAY,EAAEC,OAAuB,EAAK;EAChE,OAAOF,IAAI,CAACgB,UAAU,CAACf,IAAI,EAAEC,OAAO,CAAC;AACvC,CAAC;AAED,eAAea,cAAc"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anov/3d",
3
- "version": "0.0.4-alpha25",
3
+ "version": "0.0.4-alpha26",
4
4
  "description": "",
5
5
  "author": "",
6
6
  "license": "MIT",
@@ -20,7 +20,7 @@
20
20
  "@tweenjs/tween.js": "^21.0.0",
21
21
  "localforage": "^1.10.0",
22
22
  "uuid": "^9.0.1",
23
- "@anov/3d-ability": "^0.0.4-alpha8",
23
+ "@anov/3d-ability": "^0.0.4-alpha9",
24
24
  "@anov/3d-core": "^0.0.4-alpha19"
25
25
  },
26
26
  "devDependencies": {