@anov/3d 0.0.4-alpha33 → 0.0.4-alpha35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/anov3d.d.ts CHANGED
@@ -12,6 +12,7 @@ declare type Anov3DOptions = {
12
12
  camera?: InitOptions['camera'];
13
13
  environment?: InitOptions['environment'];
14
14
  model?: InitOptions['model'];
15
+ controls?: InitOptions['controls'];
15
16
  };
16
17
  declare class Anov3D {
17
18
  opts: Anov3DOptions;
package/dist/anov3d.js CHANGED
@@ -34,7 +34,9 @@ var Anov3D = /*#__PURE__*/function () {
34
34
  position: camera.position ? new Vector3().fromArray(camera.position) : object2Vector3(defaultCameraParams.position)
35
35
  };
36
36
  var scene = new SceneControl({
37
- orbitControls: true,
37
+ orbitControls: opts.controls || {
38
+ use: true
39
+ },
38
40
  defCameraOps: _objectSpread(_objectSpread({
39
41
  aspect: ((_opts$size$width = opts === null || opts === void 0 ? void 0 : (_opts$size = opts.size) === null || _opts$size === void 0 ? void 0 : _opts$size.width) !== null && _opts$size$width !== void 0 ? _opts$size$width : opts.container.clientWidth) / ((_opts$size$height = opts === null || opts === void 0 ? void 0 : (_opts$size2 = opts.size) === null || _opts$size2 === void 0 ? void 0 : _opts$size2.height) !== null && _opts$size$height !== void 0 ? _opts$size$height : opts.container.clientHeight)
40
42
  }, cameraParams), {}, {
@@ -1 +1 @@
1
- {"version":3,"names":["PMREMGenerator","SceneControl","Vector3","lib","use","utils","EventBus","EWeatherType","object2Vector3","Model","defaultCameraParams","RoomEnvironment","Anov3D","opts","camera","cameraParams","fov","near","far","position","fromArray","scene","orbitControls","defCameraOps","aspect","size","width","container","clientWidth","height","clientHeight","rendererOps","shadowMap","reset","css2DRenderer","ambientLight","render","controls","addEventListener","renderer","target","copy","lookAt","emitter","emit","sceneControl","eventBus","model","load","changeSceneEnvironment","storeManagement","set","openFlag","useScene","pmremGenerator","compileEquirectangularShader","roomEnvironment","environment","fromScene","texture"],"sources":["../src/anov3d.ts"],"sourcesContent":["import { PMREMGenerator, SceneControl, Vector3, lib, use, utils } from '@anov/3d-core'\nimport EventBus from './module/eventBus'\nimport { EWeatherType } from './module/environment/weather/type'\nimport type { InitOptions } from './applicationApi'\nimport { object2Vector3 } from './utils/index'\nimport Model from './module/model'\nimport { defaultCameraParams } from './index'\n\ntype Anov3DOptions = {\n container: HTMLElement\n size?: {\n width: number\n height: number\n }\n camera?: InitOptions['camera']\n environment?: InitOptions['environment']\n model?: InitOptions['model']\n}\n\nconst { RoomEnvironment } = lib\n\nclass Anov3D {\n opts: Anov3DOptions\n sceneControl: SceneControl\n eventBus: EventBus\n EWeatherType: typeof EWeatherType = EWeatherType\n model: Model\n\n constructor(opts: Anov3DOptions) {\n this.opts = opts\n const { camera = {} } = opts || {}\n\n const cameraParams = {\n fov: camera.fov ?? defaultCameraParams.fov,\n near: camera.near ?? defaultCameraParams.near,\n far: camera.far ?? defaultCameraParams.far,\n position: camera.position ? new Vector3().fromArray(camera.position) : object2Vector3(defaultCameraParams.position),\n }\n\n const scene = new SceneControl({\n orbitControls: true,\n defCameraOps: {\n aspect: (opts?.size?.width ?? opts.container.clientWidth) / (opts?.size?.height ?? opts.container.clientHeight),\n ...cameraParams,\n fov: 60,\n },\n rendererOps: {\n shadowMap: true,\n size: {\n width: opts?.size?.width ?? opts.container.clientWidth,\n height: opts?.size?.height ?? opts.container.clientHeight,\n },\n },\n reset: true,\n css2DRenderer: true,\n ambientLight: true,\n })\n\n scene.render(opts.container)\n\n scene.controls?.addEventListener('change', () => scene.renderer!.render(scene.scene!, scene.camera!))\n\n scene.controls?.target.copy(opts.camera?.target ? new Vector3().fromArray(opts.camera.target) : object2Vector3(defaultCameraParams.lookAt))\n\n utils.emitter.emit('scene-completed', scene)\n\n // 不考虑 tree-shaking\n this.sceneControl = scene\n\n this.eventBus = new EventBus()\n this.model = new Model()\n this.opts.model && (this.model.load(this.opts.model))\n this.changeSceneEnvironment()\n utils.storeManagement.set('event-bus', this.eventBus)\n\n utils.emitter.emit('instantiation-completed', this)\n }\n\n changeSceneEnvironment(openFlag = true) {\n const { renderer, scene } = use.useScene()\n const pmremGenerator = new PMREMGenerator(renderer!)\n pmremGenerator.compileEquirectangularShader()\n const roomEnvironment = new (RoomEnvironment as any)()\n\n if (openFlag)\n scene!.environment = pmremGenerator.fromScene(roomEnvironment, 0.04).texture\n\n else\n scene!.environment = null\n }\n}\n\nexport default Anov3D"],"mappings":"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"}
1
+ {"version":3,"names":["PMREMGenerator","SceneControl","Vector3","lib","use","utils","EventBus","EWeatherType","object2Vector3","Model","defaultCameraParams","RoomEnvironment","Anov3D","opts","camera","cameraParams","fov","near","far","position","fromArray","scene","orbitControls","controls","defCameraOps","aspect","size","width","container","clientWidth","height","clientHeight","rendererOps","shadowMap","reset","css2DRenderer","ambientLight","render","addEventListener","renderer","target","copy","lookAt","emitter","emit","sceneControl","eventBus","model","load","changeSceneEnvironment","storeManagement","set","openFlag","useScene","pmremGenerator","compileEquirectangularShader","roomEnvironment","environment","fromScene","texture"],"sources":["../src/anov3d.ts"],"sourcesContent":["import { PMREMGenerator, SceneControl, Vector3, lib, use, utils } from '@anov/3d-core'\nimport EventBus from './module/eventBus'\nimport { EWeatherType } from './module/environment/weather/type'\nimport type { InitOptions } from './applicationApi'\nimport { object2Vector3 } from './utils/index'\nimport Model from './module/model'\nimport { defaultCameraParams } from './index'\n\ntype Anov3DOptions = {\n container: HTMLElement\n size?: {\n width: number\n height: number\n }\n camera?: InitOptions['camera']\n environment?: InitOptions['environment']\n model?: InitOptions['model']\n controls?: InitOptions['controls']\n}\n\nconst { RoomEnvironment } = lib\n\nclass Anov3D {\n opts: Anov3DOptions\n sceneControl: SceneControl\n eventBus: EventBus\n EWeatherType: typeof EWeatherType = EWeatherType\n model: Model\n\n constructor(opts: Anov3DOptions) {\n this.opts = opts\n const { camera = {} } = opts || {}\n\n const cameraParams = {\n fov: camera.fov ?? defaultCameraParams.fov,\n near: camera.near ?? defaultCameraParams.near,\n far: camera.far ?? defaultCameraParams.far,\n position: camera.position ? new Vector3().fromArray(camera.position) : object2Vector3(defaultCameraParams.position),\n }\n\n const scene = new SceneControl({\n orbitControls: opts.controls || { use: true },\n defCameraOps: {\n aspect: (opts?.size?.width ?? opts.container.clientWidth) / (opts?.size?.height ?? opts.container.clientHeight),\n ...cameraParams,\n fov: 60,\n },\n rendererOps: {\n shadowMap: true,\n size: {\n width: opts?.size?.width ?? opts.container.clientWidth,\n height: opts?.size?.height ?? opts.container.clientHeight,\n },\n },\n reset: true,\n css2DRenderer: true,\n ambientLight: true,\n })\n\n scene.render(opts.container)\n\n scene.controls?.addEventListener('change', () => scene.renderer!.render(scene.scene!, scene.camera!))\n\n scene.controls?.target.copy(opts.camera?.target ? new Vector3().fromArray(opts.camera.target) : object2Vector3(defaultCameraParams.lookAt))\n\n utils.emitter.emit('scene-completed', scene)\n\n // 不考虑 tree-shaking\n this.sceneControl = scene\n\n this.eventBus = new EventBus()\n this.model = new Model()\n this.opts.model && (this.model.load(this.opts.model))\n this.changeSceneEnvironment()\n utils.storeManagement.set('event-bus', this.eventBus)\n\n utils.emitter.emit('instantiation-completed', this)\n }\n\n changeSceneEnvironment(openFlag = true) {\n const { renderer, scene } = use.useScene()\n const pmremGenerator = new PMREMGenerator(renderer!)\n pmremGenerator.compileEquirectangularShader()\n const roomEnvironment = new (RoomEnvironment as any)()\n\n if (openFlag)\n scene!.environment = pmremGenerator.fromScene(roomEnvironment, 0.04).texture\n\n else\n scene!.environment = null\n }\n}\n\nexport default Anov3D"],"mappings":"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"}
@@ -33,6 +33,14 @@ export declare type InitOptions = {
33
33
  use?: boolean;
34
34
  imgBox?: Array<string> | string;
35
35
  };
36
+ controls: {
37
+ minDistance?: number;
38
+ maxDistance?: number;
39
+ minPolarAngle?: number;
40
+ maxPolarAngle?: number;
41
+ minAzimuthAngle?: number;
42
+ maxAzimuthAngle?: number;
43
+ };
36
44
  };
37
45
  declare class Application {
38
46
  private container;
@@ -48,7 +48,8 @@ var Application = /*#__PURE__*/function () {
48
48
  environment: {
49
49
  weather: params === null || params === void 0 ? void 0 : (_params$environment = params.environment) === null || _params$environment === void 0 ? void 0 : _params$environment.weather,
50
50
  time: params === null || params === void 0 ? void 0 : (_params$environment2 = params.environment) === null || _params$environment2 === void 0 ? void 0 : _params$environment2.time
51
- }
51
+ },
52
+ controls: params.controls
52
53
  });
53
54
  this.iEngine = anov3D;
54
55
  this.loadCase(anov3D, params);
@@ -94,7 +95,8 @@ var Application = /*#__PURE__*/function () {
94
95
  var factory = new Factory3D({
95
96
  model: option.model,
96
97
  environment: option.envMaps.imgBox,
97
- decoderPath: option.decoderPath
98
+ decoderPath: option.decoderPath,
99
+ controls: option.controls
98
100
  });
99
101
  factory.renderScene(anov3D.sceneControl);
100
102
  break;
@@ -1 +1 @@
1
- {"version":3,"names":["utils","getFnByFnkey","MessageType","sendToMessage","EMessageStatus","Factory3D","Anov3D","defaultCameraParams","Application","opts","container","el","Api","Success","params","id","camera","cameraParams","fov","near","far","position","target","anov3D","model","case","size","width","clientWidth","height","clientHeight","environment","weather","time","iEngine","loadCase","error","EventHandleFailed","console","req","name","init","Error","fn","res","Promise","resolve","then","failMessage","message","eventName","cb","storeManagement","set","option","factory","envMaps","imgBox","decoderPath","renderScene","sceneControl","createInstance"],"sources":["../src/applicationApi.ts"],"sourcesContent":["import { utils } from '@anov/3d-core'\nimport { getFnByFnkey } from './utils/index'\nimport { MessageType, sendToMessage } from './utils/messageFn'\nimport { EMessageStatus } from './messageStatus'\nimport Factory3D from './factory/3d'\nimport Anov3D, { defaultCameraParams } from './index'\n\ntype ApplicationOptions = {\n el: HTMLElement\n}\n\nexport type InitOptions = {\n case?: string // 案例名称,用于兼容init直接加载项目\n camera?: {\n fov?: number\n near?: number\n far?: number\n position?: [\n number,\n number,\n number,\n ]\n target?: [\n number,\n number,\n number,\n ]\n }\n model?: string\n decoderPath?: string // DRACO压缩 资源文件路径\n size?: {\n width: number\n height: number\n }\n environment?: {\n weather?: string\n time?: number\n }\n envMaps: {\n use?: boolean\n imgBox?: Array<string> | string\n }\n}\n\nclass Application {\n private container: HTMLElement\n iEngine: Anov3D | undefined\n\n constructor(opts: ApplicationOptions) {\n this.container = opts.el\n\n sendToMessage(MessageType.Api, 'engineReady', EMessageStatus.Success)\n }\n\n private init(params: InitOptions, id: string) {\n try {\n const { camera = {} } = params || {}\n\n const cameraParams = {\n fov: camera.fov ?? defaultCameraParams.fov,\n near: camera.near ?? defaultCameraParams.near,\n far: camera.far ?? defaultCameraParams.far,\n position: camera.position,\n target: camera.target,\n }\n\n const anov3D = new Anov3D({\n container: this.container,\n model: params.case ? '' : params?.model, // temporary solution by LM\n size: {\n width: params?.size?.width ?? this.container.clientWidth,\n height: params?.size?.height ?? this.container.clientHeight,\n },\n camera: {\n ...cameraParams,\n },\n environment: {\n weather: params?.environment?.weather,\n time: params?.environment?.time,\n },\n })\n this.iEngine = anov3D\n\n this.loadCase(anov3D, params)\n\n sendToMessage(MessageType.Api, 'core.init', EMessageStatus.Success, id)\n }\n catch (error) {\n sendToMessage(MessageType.Api, 'core.init', EMessageStatus.EventHandleFailed)\n console.error(error)\n }\n }\n\n sendMessage(req: { name: string; id: string; params: any }) {\n if (req.name === 'Core.init' || req.name === 'core.init') {\n this.init(req.params, req.id)\n return\n }\n\n if (!this.iEngine)\n throw new Error('please init first')\n\n const fn = getFnByFnkey(this.iEngine, req.name, req.id) as any\n\n try {\n const res = fn(req.params)\n\n Promise.resolve(res).then((res) => {\n sendToMessage(MessageType.Api, req.name, EMessageStatus.Success, req.id, res)\n })\n }\n catch (error: any) {\n sendToMessage(MessageType.Api, req.name, EMessageStatus.EventHandleFailed, req.id, {\n failMessage: error.message,\n })\n }\n }\n\n receiveMessage(eventName: string, cb: (params: any) => void) {\n utils.storeManagement.set(eventName, cb)\n }\n\n // 此方法 用于直接加载案例\n private loadCase(anov3D: Anov3D, option: InitOptions) {\n switch (option.case) {\n case 'factory':\n // eslint-disable-next-line no-case-declarations\n const factory = new Factory3D({ model: option.model, environment: option.envMaps.imgBox as string, decoderPath: option.decoderPath })\n factory.renderScene(anov3D.sceneControl)\n break\n }\n }\n}\n\n/**\n * createInstance\n * @returns\n */\nexport const createInstance = (opts: ApplicationOptions): Application => {\n return new Application(opts)\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["utils","getFnByFnkey","MessageType","sendToMessage","EMessageStatus","Factory3D","Anov3D","defaultCameraParams","Application","opts","container","el","Api","Success","params","id","camera","cameraParams","fov","near","far","position","target","anov3D","model","case","size","width","clientWidth","height","clientHeight","environment","weather","time","controls","iEngine","loadCase","error","EventHandleFailed","console","req","name","init","Error","fn","res","Promise","resolve","then","failMessage","message","eventName","cb","storeManagement","set","option","factory","envMaps","imgBox","decoderPath","renderScene","sceneControl","createInstance"],"sources":["../src/applicationApi.ts"],"sourcesContent":["import { utils } from '@anov/3d-core'\nimport { getFnByFnkey } from './utils/index'\nimport { MessageType, sendToMessage } from './utils/messageFn'\nimport { EMessageStatus } from './messageStatus'\nimport Factory3D from './factory/3d'\nimport Anov3D, { defaultCameraParams } from './index'\n\ntype ApplicationOptions = {\n el: HTMLElement\n}\n\nexport type InitOptions = {\n case?: string // 案例名称,用于兼容init直接加载项目\n camera?: {\n fov?: number\n near?: number\n far?: number\n position?: [\n number,\n number,\n number,\n ]\n target?: [\n number,\n number,\n number,\n ]\n }\n model?: string\n decoderPath?: string // DRACO压缩 资源文件路径\n size?: {\n width: number\n height: number\n }\n environment?: {\n weather?: string\n time?: number\n }\n envMaps: {\n use?: boolean\n imgBox?: Array<string> | string\n }\n controls: {\n // 相机缩放范围\n minDistance?: number\n maxDistance?: number\n // 上下旋转范围\n minPolarAngle?: number// 默认值0\n maxPolarAngle?: number\n // 左右旋转范围\n minAzimuthAngle?: number\n maxAzimuthAngle?: number\n }\n}\n\nclass Application {\n private container: HTMLElement\n iEngine: Anov3D | undefined\n\n constructor(opts: ApplicationOptions) {\n this.container = opts.el\n\n sendToMessage(MessageType.Api, 'engineReady', EMessageStatus.Success)\n }\n\n private init(params: InitOptions, id: string) {\n try {\n const { camera = {} } = params || {}\n\n const cameraParams = {\n fov: camera.fov ?? defaultCameraParams.fov,\n near: camera.near ?? defaultCameraParams.near,\n far: camera.far ?? defaultCameraParams.far,\n position: camera.position,\n target: camera.target,\n }\n\n const anov3D = new Anov3D({\n container: this.container,\n model: params.case ? '' : params?.model, // temporary solution by LM\n size: {\n width: params?.size?.width ?? this.container.clientWidth,\n height: params?.size?.height ?? this.container.clientHeight,\n },\n camera: {\n ...cameraParams,\n },\n environment: {\n weather: params?.environment?.weather,\n time: params?.environment?.time,\n },\n controls: params.controls,\n })\n this.iEngine = anov3D\n\n this.loadCase(anov3D, params)\n\n sendToMessage(MessageType.Api, 'core.init', EMessageStatus.Success, id)\n }\n catch (error) {\n sendToMessage(MessageType.Api, 'core.init', EMessageStatus.EventHandleFailed)\n console.error(error)\n }\n }\n\n sendMessage(req: { name: string; id: string; params: any }) {\n if (req.name === 'Core.init' || req.name === 'core.init') {\n this.init(req.params, req.id)\n return\n }\n\n if (!this.iEngine)\n throw new Error('please init first')\n\n const fn = getFnByFnkey(this.iEngine, req.name, req.id) as any\n\n try {\n const res = fn(req.params)\n\n Promise.resolve(res).then((res) => {\n sendToMessage(MessageType.Api, req.name, EMessageStatus.Success, req.id, res)\n })\n }\n catch (error: any) {\n sendToMessage(MessageType.Api, req.name, EMessageStatus.EventHandleFailed, req.id, {\n failMessage: error.message,\n })\n }\n }\n\n receiveMessage(eventName: string, cb: (params: any) => void) {\n utils.storeManagement.set(eventName, cb)\n }\n\n // 此方法 用于直接加载案例\n private loadCase(anov3D: Anov3D, option: InitOptions) {\n switch (option.case) {\n case 'factory':\n // eslint-disable-next-line no-case-declarations\n const factory = new Factory3D({ model: option.model, environment: option.envMaps.imgBox as string, decoderPath: option.decoderPath, controls: option.controls })\n factory.renderScene(anov3D.sceneControl)\n break\n }\n }\n}\n\n/**\n * createInstance\n * @returns\n */\nexport const createInstance = (opts: ApplicationOptions): Application => {\n return new Application(opts)\n}\n"],"mappings":"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"}
@@ -1,12 +1,14 @@
1
1
  import type { OrbitControls, SceneControl } from '@anov/3d-core';
2
2
  import { InteractionManager, Vector3 } from '@anov/3d-core';
3
3
  import { Camera } from '@anov/3d-ability';
4
+ import type { InitOptions } from '../applicationApi';
4
5
  import { SceneStyle, SceneTag } from './utils/constant';
5
6
  import type AreaBoundingBoxManage from './unit/areaBoundingBox';
6
7
  declare type factory3dOption = {
7
8
  model?: string;
8
9
  environment: string;
9
10
  decoderPath?: string;
11
+ controls: InitOptions['controls'];
10
12
  };
11
13
  declare class Factory3D {
12
14
  position: Vector3;
@@ -15,7 +17,7 @@ declare class Factory3D {
15
17
  cameraUtil: Camera;
16
18
  tag: SceneTag;
17
19
  style: SceneStyle;
18
- private option;
20
+ option: factory3dOption;
19
21
  private wall;
20
22
  private line;
21
23
  private cylinder;
@@ -28,6 +30,7 @@ declare class Factory3D {
28
30
  private toggleState;
29
31
  private boxSkeyTexture;
30
32
  interactionManager: InteractionManager;
33
+ maxDistance: number;
31
34
  constructor(option: factory3dOption);
32
35
  /**
33
36
  * render factory 3d scene
@@ -38,6 +38,7 @@ var Factory3D = /*#__PURE__*/function () {
38
38
  _defineProperty(this, "toggleState", true);
39
39
  _defineProperty(this, "boxSkeyTexture", void 0);
40
40
  _defineProperty(this, "interactionManager", void 0);
41
+ _defineProperty(this, "maxDistance", 1200);
41
42
  this.option = option;
42
43
  this.globalEventsAgent();
43
44
  factoryGlobalObject.setFactory(this);
@@ -1 +1 @@
1
- {"version":3,"names":["EquirectangularReflectionMapping","InteractionManager","ModelLoader","Vector3","lib","use","utils","Camera","SceneStyle","SceneTag","finirMaterialV1","handleUnit","toggleTag","globalEvents","switchMaterial","factoryGlobalObject","load","rgbeLoader","RGBELoader","emitter","Factory3D","option","overview","real","Map","globalEventsAgent","setFactory","scene","cameraUtil","camera","controls","control","model","loadGLTF","decoderPath","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","environment","setPath","texture","mapping","boxSkeyTexture","background","params","tag","apply","forEach","eventKey","on","args","eventHandleFn","get","fn","cutoutCamera","setMainCamera","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 { SceneStyle, SceneTag } from './utils/constant'\nimport { finirMaterialV1 } from './utils/finirMaterial'\nimport handleUnit, { toggleTag } from './unit'\nimport type WallManage from './unit/wall'\nimport type LineManage from './unit/line'\nimport type CylinderManage from './unit/cylinder'\nimport type PoiManage from './unit/poi'\nimport type CircleManage from './unit/circle'\nimport type AreaBoundingBoxManage from './unit/areaBoundingBox'\nimport { globalEvents } from './globalData'\nimport switchMaterial from './utils/switchMaterial'\nimport factoryGlobalObject from './globalControl'\n\ntype factory3dOption = {\n model?: string\n environment: string\n decoderPath?: string\n}\nconst load = new ModelLoader()\nconst rgbeLoader = new lib.RGBELoader()\nconst { emitter } = utils\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 factoryGlobalObject.setFactory(this)\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, this.option.decoderPath, (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 this.option.environment && rgbeLoader.setPath('').load(this.option.environment, (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 = () => {\n if (this.style === SceneStyle.tech) {\n this.realModl.visible = false\n this.toggleState = true\n }\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 /**\n * toggle SceneStyle\n * @param params\n */\n toggleSceneStyle(params: SceneStyle) {\n if (this.style === params)\n return\n\n this.style = params\n\n if (this.style === SceneStyle.tech) {\n this.techModel.visible = true\n this.realModl.visible = false\n this.scene.scene.background = null\n }\n\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 if (params === SceneStyle.real) {\n this.techModel.visible = false\n this.realModl.visible = true\n this.scene.scene.background = this.boxSkeyTexture\n }\n }\n\n public toggleTag(tag: SceneTag) {\n if (this.tag === tag)\n return\n\n toggleTag[tag].apply(this, [this])\n }\n\n private globalEventsAgent() {\n globalEvents.forEach((eventKey) => {\n emitter.on(eventKey, (args) => {\n this.eventHandleFn.get(eventKey)?.forEach((fn) => {\n fn(args)\n })\n })\n })\n }\n\n /**\n * toggle view\n */\n toggleView() {\n const cutoutCamera = this.scene.cutoutCamera\n\n this.scene.cutoutCamera = this.scene.camera\n this.scene.setMainCamera(cutoutCamera)\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","SceneStyle","SceneTag","finirMaterialV1","handleUnit","toggleTag","globalEvents","switchMaterial","factoryGlobalObject","load","rgbeLoader","RGBELoader","emitter","Factory3D","option","overview","real","Map","globalEventsAgent","setFactory","scene","cameraUtil","camera","controls","control","model","loadGLTF","decoderPath","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","environment","setPath","texture","mapping","boxSkeyTexture","background","params","tag","apply","forEach","eventKey","on","args","eventHandleFn","get","fn","cutoutCamera","setMainCamera","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 type { InitOptions } from '../applicationApi'\nimport { SceneStyle, SceneTag } from './utils/constant'\nimport { finirMaterialV1 } from './utils/finirMaterial'\nimport handleUnit, { toggleTag } from './unit'\nimport type WallManage from './unit/wall'\nimport type LineManage from './unit/line'\nimport type CylinderManage from './unit/cylinder'\nimport type PoiManage from './unit/poi'\nimport type CircleManage from './unit/circle'\nimport type AreaBoundingBoxManage from './unit/areaBoundingBox'\nimport { globalEvents } from './globalData'\nimport switchMaterial from './utils/switchMaterial'\nimport factoryGlobalObject from './globalControl'\n\ntype factory3dOption = {\n model?: string\n environment: string\n decoderPath?: string\n controls: InitOptions['controls']\n}\nconst load = new ModelLoader()\nconst rgbeLoader = new lib.RGBELoader()\nconst { emitter } = utils\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 public 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 public maxDistance = 1200\n\n constructor(option: factory3dOption) {\n this.option = option\n this.globalEventsAgent()\n factoryGlobalObject.setFactory(this)\n }\n\n /**\n * render factory 3d scene\n */\n renderScene(scene: SceneControl) {\n 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, this.option.decoderPath, (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 this.option.environment && rgbeLoader.setPath('').load(this.option.environment, (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 = () => {\n if (this.style === SceneStyle.tech) {\n this.realModl.visible = false\n this.toggleState = true\n }\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 /**\n * toggle SceneStyle\n * @param params\n */\n toggleSceneStyle(params: SceneStyle) {\n if (this.style === params)\n return\n\n this.style = params\n\n if (this.style === SceneStyle.tech) {\n this.techModel.visible = true\n this.realModl.visible = false\n this.scene.scene.background = null\n }\n\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 if (params === SceneStyle.real) {\n this.techModel.visible = false\n this.realModl.visible = true\n this.scene.scene.background = this.boxSkeyTexture\n }\n }\n\n public toggleTag(tag: SceneTag) {\n if (this.tag === tag)\n return\n\n toggleTag[tag].apply(this, [this])\n }\n\n private globalEventsAgent() {\n globalEvents.forEach((eventKey) => {\n emitter.on(eventKey, (args) => {\n this.eventHandleFn.get(eventKey)?.forEach((fn) => {\n fn(args)\n })\n })\n })\n }\n\n /**\n * toggle view\n */\n toggleView() {\n const cutoutCamera = this.scene.cutoutCamera\n\n this.scene.cutoutCamera = this.scene.camera\n this.scene.setMainCamera(cutoutCamera)\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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"}
@@ -8,6 +8,7 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
8
8
  import { Mesh, MeshPhysicalMaterial, SphereGeometry, Vector3, utils } from '@anov/3d-core';
9
9
  import { EPoiType, Poi } from '@anov/3d-ability';
10
10
  import { regionMap } from "../regionData";
11
+ var emitter = utils.emitter;
11
12
  var CircleManage = /*#__PURE__*/function () {
12
13
  function CircleManage(gobal) {
13
14
  _classCallCheck(this, CircleManage);
@@ -75,7 +76,7 @@ var CircleManage = /*#__PURE__*/function () {
75
76
  var poi = new Poi(EPoiType.Base);
76
77
  _this2.peoplePoi = poi.create(data.name);
77
78
  _this2.peoplePoi.position.copy(mesh.position.clone().add(skewing));
78
- _this2.scene.add(_this2.peoplePoi);
79
+ emitter.emit('peoplemanagement-person-click', data);
79
80
  });
80
81
  mesh.addEventListener('mouseout', function () {
81
82
  if (_this2.peoplePoi) {
@@ -1 +1 @@
1
- {"version":3,"names":["Mesh","MeshPhysicalMaterial","SphereGeometry","Vector3","utils","EPoiType","Poi","regionMap","CircleManage","gobal","Map","scene","interactionManager","storeManagement","get","belongTo","geometry","material","color","metalness","roughness","circle","data","getData","forEach","people","mesh","clone","position","fromArray","add","bindEvent","circleMesh","set","id","removeFromParent","clear","visible","poi","skewing","addEventListener","cameraUtil","target","then","peoplePoi","Base","create","name","copy","regionKey","Object","keys","find","key"],"sources":["../../../src/factory/unit/circle.ts"],"sourcesContent":["import { DoubleSide, Mesh, MeshBasicMaterial, MeshPhongMaterial, MeshPhysicalMaterial, 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 gobal: Factory3D\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.gobal = gobal\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 MeshPhysicalMaterial({ color: 0xFED602, metalness: 0.1, roughness: 0.5 })\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, 3.5, -2.5) // 偏移量\n\n mesh.addEventListener('click', () => {\n this.gobal.cameraUtil.set({\n position: [data.position[0], data.position[1] + 10, data.position[2] + 30],\n target: [data.position[0], data.position[1], data.position[2]],\n }).then(() => {\n })\n })\n mesh.addEventListener('mouseover', () => {\n if (this.peoplePoi)\n return\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","MeshPhysicalMaterial","SphereGeometry","Vector3","utils","EPoiType","Poi","regionMap","emitter","CircleManage","gobal","Map","scene","interactionManager","storeManagement","get","belongTo","geometry","material","color","metalness","roughness","circle","data","getData","forEach","people","mesh","clone","position","fromArray","add","bindEvent","circleMesh","set","id","removeFromParent","clear","visible","poi","skewing","addEventListener","cameraUtil","target","then","peoplePoi","Base","create","name","copy","emit","regionKey","Object","keys","find","key"],"sources":["../../../src/factory/unit/circle.ts"],"sourcesContent":["import { DoubleSide, Mesh, MeshBasicMaterial, MeshPhongMaterial, MeshPhysicalMaterial, 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'\nimport { MessageType, sendToMessage } from '../../utils/messageFn'\nimport { EMessageStatus } from '../../messageStatus'\n\nconst { emitter } = utils\n\nclass CircleManage {\n private gobal: Factory3D\n private scene: Scene\n readonly circleMesh: Map<string, Object3D> = new Map()\n private interactionManager\n private peoplePoi: Object3D\n\n constructor(gobal: Factory3D) {\n this.gobal = gobal\n this.scene = gobal.scene.scene\n this.interactionManager = utils.storeManagement.get<InteractionManager>('interactionManager')\n }\n\n generateCircle(belongTo: string) {\n const geometry = new SphereGeometry(2, 32, 16)\n const material = new MeshPhysicalMaterial({ color: 0xFED602, metalness: 0.1, roughness: 0.5 })\n const circle = new Mesh(geometry, material)\n\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, 3.5, -2.5) // 偏移量\n\n mesh.addEventListener('click', () => {\n this.gobal.cameraUtil.set({\n position: [data.position[0], data.position[1] + 10, data.position[2] + 30],\n target: [data.position[0], data.position[1], data.position[2]],\n }).then(() => {\n })\n })\n mesh.addEventListener('mouseover', () => {\n if (this.peoplePoi)\n return\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\n emitter.emit('peoplemanagement-person-click', data)\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,6 +13,7 @@ declare class CylinderManage {
13
13
  generateCylinder(): void;
14
14
  private cameraListenerHandle;
15
15
  private cameraAddListener;
16
+ private controlAddListener;
16
17
  private cameraRemoveListener;
17
18
  }
18
19
  export default CylinderManage;
@@ -15,6 +15,7 @@ var emitter = utils.emitter;
15
15
  var cylinderData = [{
16
16
  label: '8人',
17
17
  id: '1',
18
+ title: regionMap.reform.title,
18
19
  belongTo: regionMap.reform.id,
19
20
  color: new Color('#FED602').getHex(),
20
21
  points: regionMap.reform.poi.position,
@@ -22,6 +23,7 @@ var cylinderData = [{
22
23
  }, {
23
24
  label: '7人',
24
25
  id: '2',
26
+ title: regionMap.reduction.title,
25
27
  belongTo: regionMap.reduction.id,
26
28
  color: new Color('#FED602').getHex(),
27
29
  points: regionMap.reduction.poi.position,
@@ -29,6 +31,7 @@ var cylinderData = [{
29
31
  }, {
30
32
  label: '4人',
31
33
  id: '3',
34
+ title: regionMap.crudeOil.title,
32
35
  belongTo: regionMap.crudeOil.id,
33
36
  color: new Color('#FED602').getHex(),
34
37
  points: regionMap.crudeOil.poi.position,
@@ -36,6 +39,7 @@ var cylinderData = [{
36
39
  }, {
37
40
  label: '10人',
38
41
  id: '4',
42
+ title: regionMap.catalyticCracking.title,
39
43
  belongTo: regionMap.catalyticCracking.id,
40
44
  color: new Color('#FED602').getHex(),
41
45
  points: regionMap.catalyticCracking.poi.position,
@@ -43,6 +47,7 @@ var cylinderData = [{
43
47
  }, {
44
48
  label: '3人',
45
49
  id: '5',
50
+ title: regionMap.hydrocrackingUnit.title,
46
51
  belongTo: regionMap.hydrocrackingUnit.id,
47
52
  color: new Color('#FED602').getHex(),
48
53
  points: regionMap.hydrocrackingUnit.poi.position,
@@ -50,6 +55,7 @@ var cylinderData = [{
50
55
  }, {
51
56
  label: '8人',
52
57
  id: '6',
58
+ title: regionMap.cokingUnit.title,
53
59
  belongTo: regionMap.cokingUnit.id,
54
60
  color: new Color('#FED602').getHex(),
55
61
  points: regionMap.cokingUnit.poi.position,
@@ -57,6 +63,7 @@ var cylinderData = [{
57
63
  }, {
58
64
  label: '20人',
59
65
  id: '7',
66
+ title: regionMap.administrative.title,
60
67
  belongTo: regionMap.administrative.id,
61
68
  color: new Color('#FED602').getHex(),
62
69
  points: regionMap.administrative.poi.position,
@@ -70,7 +77,7 @@ var CylinderManage = /*#__PURE__*/function () {
70
77
  _defineProperty(this, "cylinderMesh", new Map());
71
78
  _defineProperty(this, "option", void 0);
72
79
  _defineProperty(this, "gobal", void 0);
73
- _defineProperty(this, "currentoperate", void 0);
80
+ _defineProperty(this, "currentoperate", cylinderData[0].belongTo);
74
81
  _defineProperty(this, "cameraListenerHandle", function () {
75
82
  var currentCameraPosition = _this.gobal.control.object.position;
76
83
  var box = _this.gobal.areaBoundingBox.boundingBoxMap.get(_this.currentoperate);
@@ -142,12 +149,22 @@ var CylinderManage = /*#__PURE__*/function () {
142
149
  _this2.scene.add(group);
143
150
  });
144
151
  });
152
+ this.controlAddListener();
145
153
  }
146
154
  }, {
147
155
  key: "cameraAddListener",
148
156
  value: function cameraAddListener() {
149
157
  this.gobal.control.addEventListener('change', this.cameraListenerHandle);
150
158
  }
159
+ }, {
160
+ key: "controlAddListener",
161
+ value: function controlAddListener() {
162
+ var _this3 = this;
163
+ var maxDistance = this.gobal.option.controls.maxDistance;
164
+ maxDistance && this.gobal.control.addEventListener('change', function () {
165
+ if (_this3.gobal.control.getDistance() >= maxDistance - 5) emitter.emit('peoplemanagement-control-maxDistance', null);
166
+ });
167
+ }
151
168
  }, {
152
169
  key: "cameraRemoveListener",
153
170
  value: function cameraRemoveListener() {
@@ -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","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 '../utils/constant'\nimport regionMap from '../regionData'\nimport { collisionDetection } from '../utils/areaBoundingBox'\n\nimport { lookAtOnYAxis } from '../utils'\n\nconst { emitter } = utils\n\nconst cylinderData = [\n {\n label: '8人',\n id: '1',\n 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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"}
1
+ {"version":3,"names":["BoxGeometry","Color","Group","Mesh","ShaderMaterial","Vector3","globalObjectManage","use","utils","createFontMesh","SceneStyle","regionMap","collisionDetection","lookAtOnYAxis","emitter","cylinderData","label","id","title","reform","belongTo","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","controlAddListener","cameraListenerHandle","maxDistance","controls","getDistance","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 '../utils/constant'\nimport regionMap from '../regionData'\nimport { collisionDetection } from '../utils/areaBoundingBox'\n\nimport { lookAtOnYAxis } from '../utils'\n\nconst { emitter } = utils\n\nconst cylinderData = [\n {\n label: '8人',\n id: '1',\n title: regionMap.reform.title,\n belongTo: regionMap.reform.id,\n color: new Color('#FED602').getHex(),\n points: regionMap.reform.poi.position,\n height: 80,\n },\n {\n label: '7人',\n id: '2',\n title: regionMap.reduction.title,\n belongTo: regionMap.reduction.id,\n color: new Color('#FED602').getHex(),\n points: regionMap.reduction.poi.position,\n height: 70,\n },\n {\n label: '4人',\n id: '3',\n title: regionMap.crudeOil.title,\n belongTo: regionMap.crudeOil.id,\n color: new Color('#FED602').getHex(),\n points: regionMap.crudeOil.poi.position,\n height: 40,\n },\n {\n label: '10人',\n id: '4',\n title: regionMap.catalyticCracking.title,\n belongTo: regionMap.catalyticCracking.id,\n color: new Color('#FED602').getHex(),\n points: regionMap.catalyticCracking.poi.position,\n height: 100,\n },\n {\n label: '3人',\n id: '5',\n title: regionMap.hydrocrackingUnit.title,\n belongTo: regionMap.hydrocrackingUnit.id,\n color: new Color('#FED602').getHex(),\n points: regionMap.hydrocrackingUnit.poi.position,\n height: 30,\n },\n {\n label: '8人',\n id: '6',\n title: regionMap.cokingUnit.title,\n belongTo: regionMap.cokingUnit.id,\n color: new Color('#FED602').getHex(),\n points: regionMap.cokingUnit.poi.position,\n height: 80,\n },\n {\n label: '20人',\n id: '7',\n title: regionMap.administrative.title,\n belongTo: regionMap.administrative.id,\n color: new Color('#FED602').getHex(),\n points: regionMap.administrative.poi.position,\n height: 150,\n },\n]\n\ntype CylinderManageOption = {\n visible?: boolean\n}\n\nclass CylinderManage {\n private scene: Scene\n readonly cylinderMesh: Map<string, Object3D> = new Map()\n private option: CylinderManageOption\n private gobal: Factory3D\n private currentoperate: string = cylinderData[0].belongTo\n\n constructor(gobal: Factory3D, options?: CylinderManageOption) {\n this.scene = gobal.scene.scene\n this.gobal = gobal\n this.option = options || {}\n }\n\n generateCylinder() {\n cylinderData.forEach((item) => {\n const geometry = new BoxGeometry(10, item.height, 10)\n const material = new ShaderMaterial({\n transparent: true,\n depthWrite: false,\n depthTest: false,\n uniforms: {\n uHeight: {\n value: item.height,\n },\n uColor: {\n value: new Color(item.color),\n },\n },\n vertexShader: `\n uniform float uHeight;\n varying float vOpacity;\n void main() {\n vOpacity = (position.y + uHeight/2.0) / uHeight;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position,1.0);\n }\n `,\n fragmentShader: `\n uniform vec3 uColor;\n varying float vOpacity;\n void main() {\n gl_FragColor = vec4(uColor,0.3+vOpacity/10.0*7.0);\n }\n `,\n })\n const cylinder = new Mesh(geometry, material)\n const 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 this.cylinderMesh.set(item.belongTo, group)\n group.add(cylinder)\n\n const font = createFontMesh(item.label, {\n position: new Vector3().fromArray([item.points[0], item.points[1] + item.height + 10, item.points[2]]),\n })\n\n font.then((mesh) => {\n mesh.geometry.center()\n\n group.add(mesh)\n\n use.useframe(() => {\n lookAtOnYAxis(mesh, globalObjectManage.camera.position)\n })\n this.scene.add(group)\n })\n })\n this.controlAddListener()\n }\n\n private cameraListenerHandle = () => {\n const currentCameraPosition = this.gobal.control.object.position\n const box = this.gobal.areaBoundingBox.boundingBoxMap.get(this.currentoperate)\n const iscollision = collisionDetection(box, currentCameraPosition)\n if (!iscollision) {\n emitter.emit('peoplemanagement-camera-out', {\n belongTo: this.currentoperate,\n })\n\n this.cameraRemoveListener()\n }\n }\n\n private cameraAddListener() {\n this.gobal.control.addEventListener('change', this.cameraListenerHandle)\n }\n\n private controlAddListener() {\n const maxDistance = this.gobal.option.controls.maxDistance\n maxDistance && this.gobal.control.addEventListener('change', () => {\n if (this.gobal.control.getDistance() >= maxDistance - 5)\n emitter.emit('peoplemanagement-control-maxDistance', null)\n })\n }\n\n private cameraRemoveListener() {\n this.gobal.control.removeEventListener('change', this.cameraListenerHandle)\n }\n}\n\nexport default CylinderManage"],"mappings":"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"}
@@ -1,17 +1,20 @@
1
1
  var _toggleTag;
2
2
  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); }
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; }
3
5
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
4
6
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
5
7
  function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
6
8
  import { utils } from '@anov/3d-core';
7
9
  import { SceneStyle, SceneTag } from "../utils/constant";
10
+ import { MessageType, sendToMessage } from "../../utils/messageFn";
11
+ import { EMessageStatus } from "../../messageStatus";
8
12
  import WallManage from "./wall";
9
13
  import CylinderManage from "./cylinder";
10
14
  import PoiManage from "./poi";
11
15
  import CircleManage from "./circle";
12
16
  import AreaBoundingBoxManage from "./areaBoundingBox";
13
17
  import Inspection from "./inspection";
14
- import CameraPoi from "./CameraPoi";
15
18
  var emitter = utils.emitter;
16
19
 
17
20
  // 临时优化
@@ -123,8 +126,16 @@ var handleUnit = function handleUnit() {
123
126
  var circle = new CircleManage(this);
124
127
  this.circle = circle;
125
128
  emitter.on('peoplemanagement-camera-enter', function (data) {
129
+ sendToMessage(MessageType.Event, 'onClick', EMessageStatus.Success, undefined, _objectSpread({
130
+ type: 'Bar'
131
+ }, data));
126
132
  _this.circle.generateCircle(data === null || data === void 0 ? void 0 : data.belongTo);
127
133
  });
134
+ emitter.on('peoplemanagement-person-click', function (data) {
135
+ sendToMessage(MessageType.Event, 'onClick', EMessageStatus.Success, undefined, _objectSpread({
136
+ type: 'POI'
137
+ }, data));
138
+ });
128
139
 
129
140
  // boundingBox
130
141
  var areaBoundingBox = new AreaBoundingBoxManage();
@@ -132,8 +143,9 @@ var handleUnit = function handleUnit() {
132
143
  this.areaBoundingBox = areaBoundingBox;
133
144
  var inspection = new Inspection(this);
134
145
  this.inspection = inspection;
135
- var cameraPoi = new CameraPoi(this);
136
- this.cameraPoi = cameraPoi;
146
+
147
+ // const cameraPoi = new CameraPoi(this)
148
+ // this.cameraPoi = cameraPoi
137
149
 
138
150
  // some global events handle
139
151
  this.addEventListener('peoplemanagement-camera-out', function (args) {
@@ -143,6 +155,11 @@ var handleUnit = function handleUnit() {
143
155
  });
144
156
  _this.circle.remove();
145
157
  });
158
+
159
+ //
160
+ emitter.on('peoplemanagement-control-maxDistance', function () {
161
+ sendToMessage(MessageType.Event, 'onCancel', EMessageStatus.Success, undefined, {});
162
+ });
146
163
  };
147
164
  export default handleUnit;
148
165
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["utils","SceneStyle","SceneTag","WallManage","CylinderManage","PoiManage","CircleManage","AreaBoundingBoxManage","Inspection","CameraPoi","emitter","showOverview","poi","generatePoi","closeOverview","wall","wallMesh","forEach","mesh","visible","remove","showPeopleManagemen","cylinder","cylinderMesh","closePeopleManagemen","circle","showSmartInspection","inspection","show","closeSmartInspection","hide","toggleOverview","apply","togglePeopleManagemen","toggleSmartInspection","toggleSecurityOperation","toggleTag","overview","tag","toggleSceneStyle","real","tech","cameraUtil","set","position","target","duration","handleUnit","generateWall","generateCylinder","on","data","generateCircle","belongTo","areaBoundingBox","generateBoundingBox","cameraPoi","addEventListener","args","item"],"sources":["../../../src/factory/unit/index.ts"],"sourcesContent":["import { utils } from '@anov/3d-core'\nimport { SceneStyle, SceneTag } from '../utils/constant'\nimport WallManage from './wall'\nimport CylinderManage from './cylinder'\nimport PoiManage from './poi'\nimport CircleManage from './circle'\nimport AreaBoundingBoxManage from './areaBoundingBox'\nimport Inspection from './inspection'\nimport CameraPoi from './CameraPoi'\n\nconst { emitter } = utils\n\n// 临时优化\n\nconst showOverview = function () {\n this.poi.generatePoi()\n}\n\nconst closeOverview = function () {\n this.wall.wallMesh.forEach((mesh) => {\n mesh.visible = false\n })\n\n this.poi.remove()\n}\n\nconst showPeopleManagemen = function () {\n this.cylinder.cylinderMesh.forEach((mesh) => {\n mesh.visible = true\n })\n}\n\nconst closePeopleManagemen = function () {\n this.cylinder.cylinderMesh.forEach((mesh) => {\n mesh.visible = false\n })\n\n this.circle.remove()\n}\n\nconst showSmartInspection = function () {\n this.inspection.show()\n}\n\nconst closeSmartInspection = function () {\n this.inspection.hide()\n}\n\nconst toggleOverview = function () {\n showOverview.apply(this)\n closePeopleManagemen.apply(this)\n closeSmartInspection.apply(this)\n}\n\nconst togglePeopleManagemen = function () {\n showPeopleManagemen.apply(this)\n closeOverview.apply(this)\n closeSmartInspection.apply(this)\n}\n\nconst toggleSmartInspection = function () {\n showSmartInspection.apply(this)\n closeOverview.apply(this)\n closePeopleManagemen.apply(this)\n}\n\nconst toggleSecurityOperation = function () {\n closeOverview.apply(this)\n closePeopleManagemen.apply(this)\n closeSmartInspection.apply(this)\n}\n\nexport const toggleTag = {\n [SceneTag.overview]() {\n this.tag = SceneTag.overview\n this.toggleSceneStyle(SceneStyle.real)\n // this.cameraUtil.set({\n // position: [0, 200, 400],\n // target: [0, 0, 0],\n // })\n\n toggleOverview.apply(this)\n },\n [SceneTag['people-management']]() {\n this.tag = SceneTag['people-management']\n this.toggleSceneStyle(SceneStyle.tech)\n // this.cameraUtil.set({\n // position: [150, 300, 400],\n // target: [0, 0, 0],\n // })\n\n togglePeopleManagemen.apply(this)\n },\n [SceneTag['smart-inspection']]() {\n this.tag = SceneTag['smart-inspection']\n this.toggleSceneStyle(SceneStyle.real)\n this.cameraUtil.set({\n position: [0, 200, 400],\n target: [0, 0, 0],\n })\n\n toggleSmartInspection.apply(this)\n },\n [SceneTag['security-operation']]() {\n this.tag = SceneTag['security-operation']\n this.toggleSceneStyle(SceneStyle.real)\n this.cameraUtil.set({\n position: [350.99, 39.07, 194.30],\n target: [401.89, -52.54, 3.04],\n duration: 2,\n })\n\n toggleSecurityOperation.apply(this)\n },\n}\n\nconst handleUnit = function () {\n // 围栏\n const wall = new WallManage(this, { visible: false })\n wall.generateWall()\n this.wall = wall\n\n // 圆柱\n const cylinder = new CylinderManage(this, {\n visible: false,\n })\n cylinder.generateCylinder()\n\n this.cylinder = cylinder\n\n // POI\n const poi = new PoiManage(this)\n poi.generatePoi()\n this.poi = poi\n\n // people\n const circle = new CircleManage(this)\n this.circle = circle\n\n emitter.on('peoplemanagement-camera-enter', (data: any) => {\n this.circle.generateCircle(data?.belongTo)\n })\n\n // boundingBox\n const areaBoundingBox = new AreaBoundingBoxManage()\n areaBoundingBox.generateBoundingBox()\n this.areaBoundingBox = areaBoundingBox\n\n const inspection = new Inspection(this)\n this.inspection = inspection\n\n const cameraPoi = new CameraPoi(this)\n this.cameraPoi = cameraPoi\n\n // some global events handle\n this.addEventListener('peoplemanagement-camera-out', (args) => {\n if (this.tag !== SceneTag['people-management'])\n return\n cylinder.cylinderMesh.forEach((item) => {\n item.visible = true\n })\n this.circle.remove()\n })\n}\n\nexport default handleUnit\n"],"mappings":"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"}
1
+ {"version":3,"names":["utils","SceneStyle","SceneTag","MessageType","sendToMessage","EMessageStatus","WallManage","CylinderManage","PoiManage","CircleManage","AreaBoundingBoxManage","Inspection","emitter","showOverview","poi","generatePoi","closeOverview","wall","wallMesh","forEach","mesh","visible","remove","showPeopleManagemen","cylinder","cylinderMesh","closePeopleManagemen","circle","showSmartInspection","inspection","show","closeSmartInspection","hide","toggleOverview","apply","togglePeopleManagemen","toggleSmartInspection","toggleSecurityOperation","toggleTag","overview","tag","toggleSceneStyle","real","tech","cameraUtil","set","position","target","duration","handleUnit","generateWall","generateCylinder","on","data","Event","Success","undefined","type","generateCircle","belongTo","areaBoundingBox","generateBoundingBox","addEventListener","args","item"],"sources":["../../../src/factory/unit/index.ts"],"sourcesContent":["import { utils } from '@anov/3d-core'\nimport { SceneStyle, SceneTag } from '../utils/constant'\nimport { MessageType, sendToMessage } from '../../utils/messageFn'\nimport { EMessageStatus } from '../../messageStatus'\nimport WallManage from './wall'\nimport CylinderManage from './cylinder'\nimport PoiManage from './poi'\nimport CircleManage from './circle'\nimport AreaBoundingBoxManage from './areaBoundingBox'\nimport Inspection from './inspection'\nimport CameraPoi from './CameraPoi'\n\nconst { emitter } = utils\n\n// 临时优化\n\nconst showOverview = function () {\n this.poi.generatePoi()\n}\n\nconst closeOverview = function () {\n this.wall.wallMesh.forEach((mesh) => {\n mesh.visible = false\n })\n\n this.poi.remove()\n}\n\nconst showPeopleManagemen = function () {\n this.cylinder.cylinderMesh.forEach((mesh) => {\n mesh.visible = true\n })\n}\n\nconst closePeopleManagemen = function () {\n this.cylinder.cylinderMesh.forEach((mesh) => {\n mesh.visible = false\n })\n\n this.circle.remove()\n}\n\nconst showSmartInspection = function () {\n this.inspection.show()\n}\n\nconst closeSmartInspection = function () {\n this.inspection.hide()\n}\n\nconst toggleOverview = function () {\n showOverview.apply(this)\n closePeopleManagemen.apply(this)\n closeSmartInspection.apply(this)\n}\n\nconst togglePeopleManagemen = function () {\n showPeopleManagemen.apply(this)\n closeOverview.apply(this)\n closeSmartInspection.apply(this)\n}\n\nconst toggleSmartInspection = function () {\n showSmartInspection.apply(this)\n closeOverview.apply(this)\n closePeopleManagemen.apply(this)\n}\n\nconst toggleSecurityOperation = function () {\n closeOverview.apply(this)\n closePeopleManagemen.apply(this)\n closeSmartInspection.apply(this)\n}\n\nexport const toggleTag = {\n [SceneTag.overview]() {\n this.tag = SceneTag.overview\n this.toggleSceneStyle(SceneStyle.real)\n // this.cameraUtil.set({\n // position: [0, 200, 400],\n // target: [0, 0, 0],\n // })\n\n toggleOverview.apply(this)\n },\n [SceneTag['people-management']]() {\n this.tag = SceneTag['people-management']\n this.toggleSceneStyle(SceneStyle.tech)\n // this.cameraUtil.set({\n // position: [150, 300, 400],\n // target: [0, 0, 0],\n // })\n\n togglePeopleManagemen.apply(this)\n },\n [SceneTag['smart-inspection']]() {\n this.tag = SceneTag['smart-inspection']\n this.toggleSceneStyle(SceneStyle.real)\n this.cameraUtil.set({\n position: [0, 200, 400],\n target: [0, 0, 0],\n })\n\n toggleSmartInspection.apply(this)\n },\n [SceneTag['security-operation']]() {\n this.tag = SceneTag['security-operation']\n this.toggleSceneStyle(SceneStyle.real)\n this.cameraUtil.set({\n position: [350.99, 39.07, 194.30],\n target: [401.89, -52.54, 3.04],\n duration: 2,\n })\n\n toggleSecurityOperation.apply(this)\n },\n}\n\nconst handleUnit = function () {\n // 围栏\n const wall = new WallManage(this, { visible: false })\n wall.generateWall()\n this.wall = wall\n\n // 圆柱\n const cylinder = new CylinderManage(this, {\n visible: false,\n })\n cylinder.generateCylinder()\n\n this.cylinder = cylinder\n\n // POI\n const poi = new PoiManage(this)\n poi.generatePoi()\n this.poi = poi\n\n // people\n const circle = new CircleManage(this)\n this.circle = circle\n\n emitter.on('peoplemanagement-camera-enter', (data: any) => {\n sendToMessage(MessageType.Event, 'onClick', EMessageStatus.Success, undefined, {\n type: 'Bar',\n ...data,\n })\n this.circle.generateCircle(data?.belongTo)\n })\n\n emitter.on('peoplemanagement-person-click', (data: any) => {\n sendToMessage(MessageType.Event, 'onClick', EMessageStatus.Success, undefined, {\n type: 'POI',\n ...data,\n })\n })\n\n // boundingBox\n const areaBoundingBox = new AreaBoundingBoxManage()\n areaBoundingBox.generateBoundingBox()\n this.areaBoundingBox = areaBoundingBox\n\n const inspection = new Inspection(this)\n this.inspection = inspection\n\n // const cameraPoi = new CameraPoi(this)\n // this.cameraPoi = cameraPoi\n\n // some global events handle\n this.addEventListener('peoplemanagement-camera-out', (args) => {\n if (this.tag !== SceneTag['people-management'])\n return\n cylinder.cylinderMesh.forEach((item) => {\n item.visible = true\n })\n this.circle.remove()\n })\n\n //\n emitter.on('peoplemanagement-control-maxDistance', () => {\n sendToMessage(MessageType.Event, 'onCancel', EMessageStatus.Success, undefined, { })\n })\n}\n\nexport default handleUnit\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anov/3d",
3
- "version": "0.0.4-alpha33",
3
+ "version": "0.0.4-alpha35",
4
4
  "description": "",
5
5
  "author": "",
6
6
  "license": "MIT",
@@ -20,8 +20,8 @@
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-alpha12",
24
- "@anov/3d-core": "^0.0.4-alpha22"
23
+ "@anov/3d-ability": "^0.0.4-alpha14",
24
+ "@anov/3d-core": "^0.0.4-alpha23"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@types/uuid": "^9.0.7"