@anov/3d 0.0.4-alpha27 → 0.0.4-alpha28

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.
@@ -0,0 +1,25 @@
1
+ import { SceneControl } from '@anov/3d-core';
2
+ import EventBus from './module/eventBus';
3
+ import { EWeatherType } from './module/environment/weather/type';
4
+ import type { InitOptions } from './applicationApi';
5
+ import Model from './module/model';
6
+ declare type Anov3DOptions = {
7
+ container: HTMLElement;
8
+ size?: {
9
+ width: number;
10
+ height: number;
11
+ };
12
+ camera?: InitOptions['camera'];
13
+ environment?: InitOptions['environment'];
14
+ model?: InitOptions['model'];
15
+ };
16
+ declare class Anov3D {
17
+ opts: Anov3DOptions;
18
+ sceneControl: SceneControl;
19
+ eventBus: EventBus;
20
+ EWeatherType: typeof EWeatherType;
21
+ model: Model;
22
+ constructor(opts: Anov3DOptions);
23
+ changeSceneEnvironment(openFlag?: boolean): void;
24
+ }
25
+ export default Anov3D;
package/dist/anov3d.js ADDED
@@ -0,0 +1,86 @@
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 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; }
3
+ 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; }
4
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
5
+ 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); } }
6
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
7
+ 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; }
8
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
9
+ 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); }
10
+ import { PMREMGenerator, SceneControl, Vector3, lib, use, utils } from '@anov/3d-core';
11
+ import EventBus from "./module/eventBus";
12
+ import { EWeatherType } from "./module/environment/weather/type";
13
+ import { object2Vector3 } from "./utils/index";
14
+ import Model from "./module/model";
15
+ import { defaultCameraParams } from "./index";
16
+ var RoomEnvironment = lib.RoomEnvironment;
17
+ var Anov3D = /*#__PURE__*/function () {
18
+ function Anov3D(opts) {
19
+ var _camera$fov, _camera$near, _camera$far, _opts$size$width, _opts$size, _opts$size$height, _opts$size2, _opts$size$width2, _opts$size3, _opts$size$height2, _opts$size4, _scene$controls, _scene$controls2, _opts$camera;
20
+ _classCallCheck(this, Anov3D);
21
+ _defineProperty(this, "opts", void 0);
22
+ _defineProperty(this, "sceneControl", void 0);
23
+ _defineProperty(this, "eventBus", void 0);
24
+ _defineProperty(this, "EWeatherType", EWeatherType);
25
+ _defineProperty(this, "model", void 0);
26
+ this.opts = opts;
27
+ var _ref = opts || {},
28
+ _ref$camera = _ref.camera,
29
+ camera = _ref$camera === void 0 ? {} : _ref$camera;
30
+ var cameraParams = {
31
+ fov: (_camera$fov = camera.fov) !== null && _camera$fov !== void 0 ? _camera$fov : defaultCameraParams.fov,
32
+ near: (_camera$near = camera.near) !== null && _camera$near !== void 0 ? _camera$near : defaultCameraParams.near,
33
+ far: (_camera$far = camera.far) !== null && _camera$far !== void 0 ? _camera$far : defaultCameraParams.far,
34
+ position: camera.position ? new Vector3().fromArray(camera.position) : object2Vector3(defaultCameraParams.position)
35
+ };
36
+ var scene = new SceneControl({
37
+ orbitControls: true,
38
+ defCameraOps: _objectSpread(_objectSpread({
39
+ 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
+ }, cameraParams), {}, {
41
+ fov: 60
42
+ }),
43
+ rendererOps: {
44
+ shadowMap: true,
45
+ size: {
46
+ width: (_opts$size$width2 = opts === null || opts === void 0 ? void 0 : (_opts$size3 = opts.size) === null || _opts$size3 === void 0 ? void 0 : _opts$size3.width) !== null && _opts$size$width2 !== void 0 ? _opts$size$width2 : opts.container.clientWidth,
47
+ height: (_opts$size$height2 = opts === null || opts === void 0 ? void 0 : (_opts$size4 = opts.size) === null || _opts$size4 === void 0 ? void 0 : _opts$size4.height) !== null && _opts$size$height2 !== void 0 ? _opts$size$height2 : opts.container.clientHeight
48
+ }
49
+ },
50
+ reset: true,
51
+ css3DRenderer: true,
52
+ ambientLight: true
53
+ });
54
+ scene.render(opts.container);
55
+ (_scene$controls = scene.controls) === null || _scene$controls === void 0 ? void 0 : _scene$controls.addEventListener('change', function () {
56
+ scene.renderer.render(scene.scene, scene.camera);
57
+ });
58
+ (_scene$controls2 = scene.controls) === null || _scene$controls2 === void 0 ? void 0 : _scene$controls2.target.copy((_opts$camera = opts.camera) !== null && _opts$camera !== void 0 && _opts$camera.target ? new Vector3().fromArray(opts.camera.target) : object2Vector3(defaultCameraParams.lookAt));
59
+ utils.emitter.emit('scene-completed', scene);
60
+
61
+ // 不考虑 tree-shaking
62
+ this.sceneControl = scene;
63
+ this.eventBus = new EventBus();
64
+ this.model = new Model();
65
+ this.opts.model && this.model.load(this.opts.model);
66
+ this.changeSceneEnvironment();
67
+ utils.storeManagement.set('event-bus', this.eventBus);
68
+ utils.emitter.emit('instantiation-completed', this);
69
+ }
70
+ _createClass(Anov3D, [{
71
+ key: "changeSceneEnvironment",
72
+ value: function changeSceneEnvironment() {
73
+ var openFlag = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
74
+ var _use$useScene = use.useScene(),
75
+ renderer = _use$useScene.renderer,
76
+ scene = _use$useScene.scene;
77
+ var pmremGenerator = new PMREMGenerator(renderer);
78
+ pmremGenerator.compileEquirectangularShader();
79
+ var roomEnvironment = new RoomEnvironment();
80
+ if (openFlag) scene.environment = pmremGenerator.fromScene(roomEnvironment, 0.04).texture;else scene.environment = null;
81
+ }
82
+ }]);
83
+ return Anov3D;
84
+ }();
85
+ export default Anov3D;
86
+ //# sourceMappingURL=anov3d.js.map
@@ -0,0 +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","css3DRenderer","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 css3DRenderer: true,\n ambientLight: true,\n })\n\n scene.render(opts.container)\n\n scene.controls?.addEventListener('change', () => {\n scene.renderer!.render(scene.scene!, scene.camera!)\n })\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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"}
@@ -3,6 +3,7 @@ declare type ApplicationOptions = {
3
3
  el: HTMLElement;
4
4
  };
5
5
  export declare type InitOptions = {
6
+ case?: string;
6
7
  camera?: {
7
8
  fov?: number;
8
9
  near?: number;
@@ -39,6 +40,7 @@ declare class Application {
39
40
  params: any;
40
41
  }): void;
41
42
  receiveMessage(eventName: string, cb: (params: any) => void): void;
43
+ private loadCase;
42
44
  }
43
45
  /**
44
46
  * createInstance
@@ -11,6 +11,7 @@ import { utils } from '@anov/3d-core';
11
11
  import { getFnByFnkey } from "./utils/index";
12
12
  import { MessageType, sendToMessage } from "./utils/messageFn";
13
13
  import { EMessageStatus } from "./messageStatus";
14
+ import Factory3D from "./factory/3d";
14
15
  import Anov3D, { defaultCameraParams } from "./index";
15
16
  var Application = /*#__PURE__*/function () {
16
17
  function Application(opts) {
@@ -37,7 +38,8 @@ var Application = /*#__PURE__*/function () {
37
38
  };
38
39
  var anov3D = new Anov3D({
39
40
  container: this.container,
40
- model: params === null || params === void 0 ? void 0 : params.model,
41
+ model: params.case ? '' : params === null || params === void 0 ? void 0 : params.model,
42
+ // temporary solution by LM
41
43
  size: {
42
44
  width: (_params$size$width = params === null || params === void 0 ? void 0 : (_params$size = params.size) === null || _params$size === void 0 ? void 0 : _params$size.width) !== null && _params$size$width !== void 0 ? _params$size$width : this.container.clientWidth,
43
45
  height: (_params$size$height = params === null || params === void 0 ? void 0 : (_params$size2 = params.size) === null || _params$size2 === void 0 ? void 0 : _params$size2.height) !== null && _params$size$height !== void 0 ? _params$size$height : this.container.clientHeight
@@ -49,6 +51,7 @@ var Application = /*#__PURE__*/function () {
49
51
  }
50
52
  });
51
53
  this.iEngine = anov3D;
54
+ this.loadCase(anov3D, params);
52
55
  sendToMessage(MessageType.Api, 'core.init', EMessageStatus.Success, id);
53
56
  } catch (error) {
54
57
  sendToMessage(MessageType.Api, 'core.init', EMessageStatus.EventHandleFailed);
@@ -80,6 +83,22 @@ var Application = /*#__PURE__*/function () {
80
83
  value: function receiveMessage(eventName, cb) {
81
84
  utils.storeManagement.set(eventName, cb);
82
85
  }
86
+
87
+ // 此方法 用于直接加载案例
88
+ }, {
89
+ key: "loadCase",
90
+ value: function loadCase(anov3D, option) {
91
+ switch (option.case) {
92
+ case 'factory':
93
+ // eslint-disable-next-line no-case-declarations
94
+ var factory = new Factory3D({
95
+ model: option.model,
96
+ environment: 'quarry_01_1k.hdr'
97
+ });
98
+ factory.renderScene(anov3D.sceneControl);
99
+ break;
100
+ }
101
+ }
83
102
  }]);
84
103
  return Application;
85
104
  }();
@@ -1 +1 @@
1
- {"version":3,"names":["utils","getFnByFnkey","MessageType","sendToMessage","EMessageStatus","Anov3D","defaultCameraParams","Application","opts","container","el","Api","Success","params","id","camera","cameraParams","fov","near","far","position","target","anov3D","model","size","width","clientWidth","height","clientHeight","environment","weather","time","iEngine","error","EventHandleFailed","console","req","name","init","Error","fn","res","Promise","resolve","then","failMessage","message","eventName","cb","storeManagement","set","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 Anov3D, { defaultCameraParams } from './index'\n\ntype ApplicationOptions = {\n el: HTMLElement\n}\n\nexport type InitOptions = {\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 size?: {\n width: number\n height: number\n }\n environment?: {\n weather?: string\n time?: 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?.model,\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 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/**\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","iEngine","loadCase","error","EventHandleFailed","console","req","name","init","Error","fn","res","Promise","resolve","then","failMessage","message","eventName","cb","storeManagement","set","option","factory","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 size?: {\n width: number\n height: number\n }\n environment?: {\n weather?: string\n time?: 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 })\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: 'quarry_01_1k.hdr' })\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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"}
@@ -12,6 +12,7 @@ import handleUnit from "./unit";
12
12
  import { globalEvents } from "./globalData";
13
13
  import switchMaterial from "./utils/switchMaterial";
14
14
  import { debounce } from "./utils";
15
+ import factoryGlobalObject from "./globalControl";
15
16
  var load = new ModelLoader();
16
17
  var rgbeLoader = new lib.RGBELoader();
17
18
  var emitter = utils.emitter;
@@ -49,6 +50,7 @@ var Factory3D = /*#__PURE__*/function () {
49
50
  _defineProperty(this, "interactionManager", void 0);
50
51
  this.option = option;
51
52
  this.globalEventsAgent();
53
+ factoryGlobalObject.setFactory(this);
52
54
  }
53
55
 
54
56
  /**
@@ -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' = '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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"}
1
+ {"version":3,"names":["EquirectangularReflectionMapping","InteractionManager","ModelLoader","Vector3","lib","use","utils","Camera","finirMaterialV1","handleUnit","globalEvents","switchMaterial","debounce","factoryGlobalObject","load","rgbeLoader","RGBELoader","emitter","SceneStyle","SceneTag","Factory3D","option","overview","real","Map","globalEventsAgent","setFactory","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'\nimport factoryGlobalObject from './globalControl'\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 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, './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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"}
@@ -0,0 +1,7 @@
1
+ import type Factory3D from './3d';
2
+ export declare class FactoryGlobalObject {
3
+ factory3D: Factory3D;
4
+ setFactory(factory3D: Factory3D): void;
5
+ }
6
+ declare const _default: FactoryGlobalObject;
7
+ export default _default;
@@ -0,0 +1,22 @@
1
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
3
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
4
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
5
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
7
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
8
+ export var FactoryGlobalObject = /*#__PURE__*/function () {
9
+ function FactoryGlobalObject() {
10
+ _classCallCheck(this, FactoryGlobalObject);
11
+ _defineProperty(this, "factory3D", void 0);
12
+ }
13
+ _createClass(FactoryGlobalObject, [{
14
+ key: "setFactory",
15
+ value: function setFactory(factory3D) {
16
+ this.factory3D = factory3D;
17
+ }
18
+ }]);
19
+ return FactoryGlobalObject;
20
+ }();
21
+ export default new FactoryGlobalObject();
22
+ //# sourceMappingURL=globalControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["FactoryGlobalObject","factory3D"],"sources":["../../src/factory/globalControl.ts"],"sourcesContent":["import type Factory3D from './3d'\n\nexport class FactoryGlobalObject {\n public factory3D!: Factory3D\n\n public setFactory(factory3D: Factory3D) {\n this.factory3D = factory3D\n }\n}\n\nexport default new FactoryGlobalObject()"],"mappings":";;;;;;;AAEA,WAAaA,mBAAmB;EAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA,OAG9B,oBAAkBC,SAAoB,EAAE;MACtC,IAAI,CAACA,SAAS,GAAGA,SAAS;IAC5B;EAAC;EAAA;AAAA;AAGH,eAAe,IAAID,mBAAmB,EAAE"}
@@ -1,10 +1,13 @@
1
- import type { OrbitControls, PerspectiveCamera } from '@anov/3d-core';
1
+ import type { BaseModule } from '../../utils/abstract';
2
+ import type Anov3D from '../../sdkEntry';
2
3
  declare type vector3Array = [number, number, number];
3
- declare class Camera {
4
+ declare class Camera implements BaseModule {
5
+ app: Anov3D;
4
6
  private camera;
5
7
  private controls;
6
8
  private isTransitionPeriod;
7
- constructor(camera: PerspectiveCamera, controls: OrbitControls);
9
+ private isTrigger;
10
+ constructor(app: Anov3D);
8
11
  /**
9
12
  * caclCurrentPos
10
13
  * @param currentPos
@@ -39,6 +42,7 @@ declare class Camera {
39
42
  target: vector3Array | vector3Array[];
40
43
  pitch?: number;
41
44
  duration?: number;
45
+ isTrigger?: boolean;
42
46
  }): Promise<unknown>;
43
47
  /**
44
48
  * set camera
@@ -10,13 +10,17 @@ import * as TWEEN from '@tweenjs/tween.js';
10
10
  import { MessageType, sendToMessage } from "../../utils/messageFn";
11
11
  import { EMessageStatus } from "../../messageStatus";
12
12
  var Camera = /*#__PURE__*/function () {
13
- function Camera(camera, controls) {
13
+ function Camera(app) {
14
14
  _classCallCheck(this, Camera);
15
+ _defineProperty(this, "app", void 0);
15
16
  _defineProperty(this, "camera", void 0);
16
17
  _defineProperty(this, "controls", void 0);
17
18
  _defineProperty(this, "isTransitionPeriod", false);
18
- this.camera = camera;
19
- this.controls = controls;
19
+ _defineProperty(this, "isTrigger", true);
20
+ this.app = app;
21
+ this.camera = app.sceneControl.camera;
22
+ this.controls = app.sceneControl.controls;
23
+ this.isTrigger = false;
20
24
  this.handleChanged();
21
25
  }
22
26
 
@@ -87,16 +91,18 @@ var Camera = /*#__PURE__*/function () {
87
91
  key: "handleChanged",
88
92
  value: function handleChanged() {
89
93
  var _this = this;
90
- this.controls.addEventListener('change', function () {
91
- if (!_this.isTransitionPeriod) {
92
- var lookat = _this.controls.target;
93
- var position = _this.camera.position;
94
- sendToMessage(MessageType.Event, 'onCameraChanged', EMessageStatus.Success, undefined, {
95
- position: position.toArray(),
96
- target: lookat.toArray()
97
- });
98
- }
99
- });
94
+ if (!this.isTrigger) {
95
+ this.controls.addEventListener('change', function () {
96
+ if (!_this.isTransitionPeriod) {
97
+ var lookat = _this.controls.target;
98
+ var position = _this.camera.position;
99
+ sendToMessage(MessageType.Event, 'onCameraChanged', EMessageStatus.Success, undefined, {
100
+ position: position.toArray(),
101
+ target: lookat.toArray()
102
+ });
103
+ }
104
+ });
105
+ }
100
106
  }
101
107
 
102
108
  /**
@@ -116,15 +122,18 @@ var Camera = /*#__PURE__*/function () {
116
122
  return {
117
123
  duration: (_ref = duration && duration * 1000) !== null && _ref !== void 0 ? _ref : 1000,
118
124
  onUpdate: function onUpdate(_ref2) {
125
+ var _params$isTrigger;
119
126
  var position = _ref2.position,
120
127
  lookat = _ref2.lookat;
121
- sendToMessage(MessageType.Event, 'onCameraChanged', EMessageStatus.Success, undefined, {
128
+ _this2.isTrigger = (_params$isTrigger = params.isTrigger) !== null && _params$isTrigger !== void 0 ? _params$isTrigger : true;
129
+ params.isTrigger && sendToMessage(MessageType.Event, 'onCameraChanged', EMessageStatus.Success, undefined, {
122
130
  position: position.toArray(),
123
131
  target: lookat.toArray()
124
132
  });
125
133
  },
126
134
  onComplate: function onComplate() {
127
135
  var _params$duration;
136
+ _this2.isTrigger = false;
128
137
  res({
129
138
  position: _this2.camera.position.toArray(),
130
139
  target: _this2.controls.target.toArray(),
@@ -164,8 +173,10 @@ var Camera = /*#__PURE__*/function () {
164
173
  _this3.moveCameraTo(new Vector3(params.position[0], params.position[1], params.position[2]), new Vector3(params.target[0], params.target[1], params.target[2]), 0, {
165
174
  duration: (_ref3 = params.duration && params.duration * 1000) !== null && _ref3 !== void 0 ? _ref3 : 1000,
166
175
  onUpdate: function onUpdate(_ref4) {
176
+ var _params$isTrigger2;
167
177
  var position = _ref4.position,
168
178
  lookat = _ref4.lookat;
179
+ _this3.isTrigger = (_params$isTrigger2 = params.isTrigger) !== null && _params$isTrigger2 !== void 0 ? _params$isTrigger2 : true;
169
180
  params.isTrigger && sendToMessage(MessageType.Event, 'onCameraChanged', EMessageStatus.Success, undefined, {
170
181
  position: position.toArray(),
171
182
  target: lookat.toArray()
@@ -173,6 +184,7 @@ var Camera = /*#__PURE__*/function () {
173
184
  },
174
185
  onComplate: function onComplate() {
175
186
  var _params$duration2;
187
+ _this3.isTrigger = false;
176
188
  res({
177
189
  position: _this3.camera.position.toArray(),
178
190
  target: _this3.controls.target.toArray(),
@@ -1 +1 @@
1
- {"version":3,"names":["Box3","MathUtils","Vector3","TWEEN","MessageType","sendToMessage","EMessageStatus","Camera","camera","controls","handleChanged","currentPos","pitch","box","setFromPoints","map","item","center","getCenter","size","getSize","halfDiagonal","length","maxDistance","Math","tan","fov","PI","cameraToCenterDistance","directionVector","position","clone","sub","target","normalize","lastPosition","multiplyScalar","add","lastLookat","caclTargetByPitch","subVectors","upVector","localPitchAxis","crossVectors","applyAxisAngle","degToRad","distance","distanceTo","newTarget","prevTarget","prevPosition","lastTarget","addEventListener","isTransitionPeriod","lookat","Event","Success","undefined","toArray","params","Promise","res","duration","moveOptions","onUpdate","onComplate","isTrigger","userInput","Array","isArray","caclCurrentPos","moveCameraTo","caclSingleCoordinate","fromArray","_","x","y","z","options","currentPoition","currentPositionInterpolation","copy","Tween","t","p","to","rotation","onStart","enabled","easing","Easing","Quadratic","InOut","rotationParent","currentPosition","lerpVectors","onComplete","setTimeout","start"],"sources":["../../../src/module/camera/index.ts"],"sourcesContent":["import type { OrbitControls, PerspectiveCamera } from '@anov/3d-core'\nimport { Box3, MathUtils, Vector3 } from '@anov/3d-core'\nimport * as TWEEN from '@tweenjs/tween.js'\nimport { MessageType, sendToMessage } from '../../utils/messageFn'\nimport { EMessageStatus } from '../../messageStatus'\n\ntype vector3Array = [number, number, number]\ninterface ChangeCameraPresetOptions {\n duration?: number\n onUpdate?: (params: { position: Vector3; lookat: Vector3 }) => void\n onStart?: () => void\n onComplate?: () => void\n}\n\nclass Camera {\n private camera: PerspectiveCamera\n private controls: OrbitControls\n private isTransitionPeriod = false\n\n constructor(camera: PerspectiveCamera, controls: OrbitControls) {\n this.camera = camera\n this.controls = controls\n\n this.handleChanged()\n }\n\n /**\n * caclCurrentPos\n * @param currentPos\n * @returns\n */\n private caclCurrentPos(currentPos: vector3Array[], pitch: number) {\n const box = new Box3()\n\n box.setFromPoints(currentPos.map(item => new Vector3(item[0], item[1], item[2])))\n\n const center = box.getCenter(new Vector3())\n const size = box.getSize(new Vector3())\n const halfDiagonal = size.length() * 0.5\n\n const maxDistance = halfDiagonal / Math.tan(this.camera.fov / 2 * Math.PI / 180)\n const cameraToCenterDistance = maxDistance\n const directionVector = (this.camera.position.clone()).sub(this.controls.target).normalize() // 相机指向物体中心的向量\n\n const lastPosition = directionVector.multiplyScalar(cameraToCenterDistance).add(center)\n const lastLookat = this.caclTargetByPitch(pitch, center, lastPosition)\n\n return {\n lastPosition,\n lastLookat,\n }\n }\n\n /**\n * caclTargetByPitch\n * @param pitch\n * @param target\n * @param position\n * @returns\n */\n private caclTargetByPitch(pitch: number, target: Vector3, position: Vector3) {\n const directionVector = new Vector3().subVectors(target, position)\n const upVector = new Vector3(0, 1, 0)\n const localPitchAxis = new Vector3().crossVectors(directionVector, upVector).normalize()\n\n directionVector.applyAxisAngle(localPitchAxis, MathUtils.degToRad(pitch))\n\n const distance = position.distanceTo(target)\n const newTarget = position.clone().add(directionVector.normalize().multiplyScalar(distance))\n\n return newTarget\n }\n\n /**\n * caclSingleCoordinate\n * @param prevTarget\n * @param prevPosition\n * @param lastTarget\n * @returns\n */\n private caclSingleCoordinate(prevTarget: Vector3, prevPosition: Vector3, lastTarget: Vector3) {\n const directionVector = lastTarget.clone().sub(prevTarget).normalize()\n return directionVector.multiplyScalar(lastTarget.distanceTo(prevTarget)).add(prevPosition)\n }\n\n /**\n * handle camera changed\n */\n private handleChanged() {\n this.controls.addEventListener('change', () => {\n if (!this.isTransitionPeriod) {\n const lookat = this.controls.target\n const position = this.camera.position\n\n sendToMessage(MessageType.Event, 'onCameraChanged', EMessageStatus.Success, undefined, {\n position: position.toArray(),\n target: lookat.toArray(),\n })\n }\n })\n }\n\n /**\n * focus On Position\n * @param params\n */\n focus(params: { target: vector3Array | vector3Array[]; pitch?: number; duration?: number }) {\n return new Promise((res) => {\n const { target: position, pitch, duration } = params\n const moveOptions = () => ({\n duration: (duration && duration * 1000) ?? 1000,\n onUpdate: ({ position, lookat }) => {\n sendToMessage(MessageType.Event, 'onCameraChanged', EMessageStatus.Success, undefined, {\n position: position.toArray(),\n target: lookat.toArray(),\n })\n },\n onComplate: () => {\n res({\n position: this.camera.position.toArray(),\n target: this.controls.target.toArray(),\n isTrigger: true,\n duration: params.duration ?? 0,\n userInput: true,\n pitch: pitch ?? 40,\n })\n },\n }) as ChangeCameraPresetOptions\n\n if (Array.isArray(position[0])) {\n const currentPos = position as vector3Array[]\n const { lastPosition, lastLookat } = this.caclCurrentPos(currentPos, 0)\n\n this.moveCameraTo(\n lastPosition,\n lastLookat,\n pitch,\n moveOptions(),\n )\n }\n else {\n const currentPos = position as vector3Array\n const lastPosition = this.caclSingleCoordinate(this.controls.target, this.camera.position, new Vector3().fromArray(currentPos))\n const lastLookat = this.caclTargetByPitch(0, new Vector3().fromArray(currentPos), lastPosition)\n\n this.moveCameraTo(\n lastPosition,\n lastLookat,\n pitch,\n moveOptions(),\n )\n }\n })\n }\n\n /**\n * set camera\n * @param params\n */\n set(params: { position: vector3Array; target: vector3Array; isTrigger?: boolean; duration?: number }) {\n return new Promise ((res, _) => {\n this.moveCameraTo(\n new Vector3(params.position[0], params.position[1], params.position[2]),\n new Vector3(params.target[0], params.target[1], params.target[2]),\n 0,\n {\n duration: (params.duration && params.duration * 1000) ?? 1000,\n onUpdate: ({ position, lookat }) => {\n params.isTrigger\n && sendToMessage(MessageType.Event, 'onCameraChanged', EMessageStatus.Success, undefined, {\n position: position.toArray(),\n target: lookat.toArray(),\n })\n },\n onComplate: () => {\n res({\n position: this.camera.position.toArray(),\n target: this.controls.target.toArray(),\n isTrigger: true,\n duration: params.duration ?? 0,\n userInput: true,\n })\n },\n })\n })\n }\n\n /**\n * get Camera info\n * @returns\n */\n get() {\n return {\n position: [this.camera.position.x, this.camera.position.y, this.camera.position.z],\n target: [this.controls.target.x, this.controls.target.y, this.controls.target.z],\n }\n }\n\n /**\n * interpolation move camera\n * @param position\n * @param target\n * @param options\n */\n private moveCameraTo(position: Vector3, target: Vector3, pitch = 0, options?: ChangeCameraPresetOptions) {\n const currentPoition = this.camera.position.clone()\n const currentPositionInterpolation = new Vector3()\n\n if (options?.duration === 0) {\n this.camera.position.copy(position)\n this.controls.target.copy(target)\n\n options?.onComplate && options.onComplate()\n return\n }\n\n new TWEEN.Tween({ t: 0, lookat: this.controls.target.clone(), p: 0 }).to({ t: 1, lookat: target, p: (-this.camera.rotation.x + (pitch ? MathUtils.degToRad(-pitch) : 0)) }, options?.duration || 1000)\n .onStart(() => {\n options?.onStart && options.onStart()\n this.controls.enabled = false\n this.isTransitionPeriod = true\n })\n .easing(TWEEN.Easing.Quadratic.InOut)\n .onUpdate(({ t, lookat, p }) => {\n this.controls.target.copy(lookat)\n\n if (pitch)\n // @ts-ignore\n this.camera.rotationParent.x = p\n\n const currentPosition = currentPositionInterpolation.lerpVectors(currentPoition, position, t)\n this.camera.position.copy(currentPosition)\n options?.onUpdate && options.onUpdate({ position: currentPosition, lookat })\n })\n .onComplete(() => {\n options?.onComplate && options.onComplate()\n this.controls.enabled = true\n\n setTimeout(() => {\n this.isTransitionPeriod = false\n })\n })\n .start()\n }\n}\n\nexport default Camera"],"mappings":"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"}
1
+ {"version":3,"names":["Box3","MathUtils","Vector3","TWEEN","MessageType","sendToMessage","EMessageStatus","Camera","app","camera","sceneControl","controls","isTrigger","handleChanged","currentPos","pitch","box","setFromPoints","map","item","center","getCenter","size","getSize","halfDiagonal","length","maxDistance","Math","tan","fov","PI","cameraToCenterDistance","directionVector","position","clone","sub","target","normalize","lastPosition","multiplyScalar","add","lastLookat","caclTargetByPitch","subVectors","upVector","localPitchAxis","crossVectors","applyAxisAngle","degToRad","distance","distanceTo","newTarget","prevTarget","prevPosition","lastTarget","addEventListener","isTransitionPeriod","lookat","Event","Success","undefined","toArray","params","Promise","res","duration","moveOptions","onUpdate","onComplate","userInput","Array","isArray","caclCurrentPos","moveCameraTo","caclSingleCoordinate","fromArray","_","x","y","z","options","currentPoition","currentPositionInterpolation","copy","Tween","t","p","to","rotation","onStart","enabled","easing","Easing","Quadratic","InOut","rotationParent","currentPosition","lerpVectors","onComplete","setTimeout","start"],"sources":["../../../src/module/camera/index.ts"],"sourcesContent":["import type { OrbitControls, PerspectiveCamera } from '@anov/3d-core'\nimport { Box3, MathUtils, Vector3 } from '@anov/3d-core'\nimport * as TWEEN from '@tweenjs/tween.js'\nimport { MessageType, sendToMessage } from '../../utils/messageFn'\nimport type { BaseModule } from '../../utils/abstract'\nimport { EMessageStatus } from '../../messageStatus'\nimport type Anov3D from '../../sdkEntry'\n\ntype vector3Array = [number, number, number]\ninterface ChangeCameraPresetOptions {\n duration?: number\n onUpdate?: (params: { position: Vector3; lookat: Vector3 }) => void\n onStart?: () => void\n onComplate?: () => void\n}\n\nclass Camera implements BaseModule {\n app: Anov3D\n private camera: PerspectiveCamera\n private controls: OrbitControls\n private isTransitionPeriod = false\n private isTrigger = true\n\n constructor(app: Anov3D) {\n this.app = app\n this.camera = app.sceneControl.camera!\n this.controls = app.sceneControl.controls!\n this.isTrigger = false\n this.handleChanged()\n }\n\n /**\n * caclCurrentPos\n * @param currentPos\n * @returns\n */\n private caclCurrentPos(currentPos: vector3Array[], pitch: number) {\n const box = new Box3()\n\n box.setFromPoints(currentPos.map(item => new Vector3(item[0], item[1], item[2])))\n\n const center = box.getCenter(new Vector3())\n const size = box.getSize(new Vector3())\n const halfDiagonal = size.length() * 0.5\n\n const maxDistance = halfDiagonal / Math.tan(this.camera.fov / 2 * Math.PI / 180)\n const cameraToCenterDistance = maxDistance\n const directionVector = (this.camera.position.clone()).sub(this.controls.target).normalize() // 相机指向物体中心的向量\n\n const lastPosition = directionVector.multiplyScalar(cameraToCenterDistance).add(center)\n const lastLookat = this.caclTargetByPitch(pitch, center, lastPosition)\n\n return {\n lastPosition,\n lastLookat,\n }\n }\n\n /**\n * caclTargetByPitch\n * @param pitch\n * @param target\n * @param position\n * @returns\n */\n private caclTargetByPitch(pitch: number, target: Vector3, position: Vector3) {\n const directionVector = new Vector3().subVectors(target, position)\n const upVector = new Vector3(0, 1, 0)\n const localPitchAxis = new Vector3().crossVectors(directionVector, upVector).normalize()\n\n directionVector.applyAxisAngle(localPitchAxis, MathUtils.degToRad(pitch))\n\n const distance = position.distanceTo(target)\n const newTarget = position.clone().add(directionVector.normalize().multiplyScalar(distance))\n\n return newTarget\n }\n\n /**\n * caclSingleCoordinate\n * @param prevTarget\n * @param prevPosition\n * @param lastTarget\n * @returns\n */\n private caclSingleCoordinate(prevTarget: Vector3, prevPosition: Vector3, lastTarget: Vector3) {\n const directionVector = lastTarget.clone().sub(prevTarget).normalize()\n return directionVector.multiplyScalar(lastTarget.distanceTo(prevTarget)).add(prevPosition)\n }\n\n /**\n * handle camera changed\n */\n private handleChanged() {\n if (!this.isTrigger) {\n this.controls.addEventListener('change', () => {\n if (!this.isTransitionPeriod) {\n const lookat = this.controls.target\n const position = this.camera.position\n\n sendToMessage(MessageType.Event, 'onCameraChanged', EMessageStatus.Success, undefined, {\n position: position.toArray(),\n target: lookat.toArray(),\n })\n }\n })\n }\n }\n\n /**\n * focus On Position\n * @param params\n */\n focus(params: { target: vector3Array | vector3Array[]; pitch?: number; duration?: number; isTrigger?: boolean }) {\n return new Promise((res) => {\n const { target: position, pitch, duration } = params\n const moveOptions = () => ({\n duration: (duration && duration * 1000) ?? 1000,\n onUpdate: ({ position, lookat }) => {\n this.isTrigger = params.isTrigger ?? true\n params.isTrigger\n && sendToMessage(MessageType.Event, 'onCameraChanged', EMessageStatus.Success, undefined, {\n position: position.toArray(),\n target: lookat.toArray(),\n })\n },\n onComplate: () => {\n this.isTrigger = false\n res({\n position: this.camera.position.toArray(),\n target: this.controls.target.toArray(),\n isTrigger: true,\n duration: params.duration ?? 0,\n userInput: true,\n pitch: pitch ?? 40,\n })\n },\n }) as ChangeCameraPresetOptions\n\n if (Array.isArray(position[0])) {\n const currentPos = position as vector3Array[]\n const { lastPosition, lastLookat } = this.caclCurrentPos(currentPos, 0)\n\n this.moveCameraTo(\n lastPosition,\n lastLookat,\n pitch,\n moveOptions(),\n )\n }\n else {\n const currentPos = position as vector3Array\n const lastPosition = this.caclSingleCoordinate(this.controls.target, this.camera.position, new Vector3().fromArray(currentPos))\n const lastLookat = this.caclTargetByPitch(0, new Vector3().fromArray(currentPos), lastPosition)\n\n this.moveCameraTo(\n lastPosition,\n lastLookat,\n pitch,\n moveOptions(),\n )\n }\n })\n }\n\n /**\n * set camera\n * @param params\n */\n set(params: { position: vector3Array; target: vector3Array; isTrigger?: boolean; duration?: number }) {\n return new Promise ((res, _) => {\n this.moveCameraTo(\n new Vector3(params.position[0], params.position[1], params.position[2]),\n new Vector3(params.target[0], params.target[1], params.target[2]),\n 0,\n {\n duration: (params.duration && params.duration * 1000) ?? 1000,\n onUpdate: ({ position, lookat }) => {\n this.isTrigger = params.isTrigger ?? true\n params.isTrigger\n && sendToMessage(MessageType.Event, 'onCameraChanged', EMessageStatus.Success, undefined, {\n position: position.toArray(),\n target: lookat.toArray(),\n })\n },\n onComplate: () => {\n this.isTrigger = false\n res({\n position: this.camera.position.toArray(),\n target: this.controls.target.toArray(),\n isTrigger: true,\n duration: params.duration ?? 0,\n userInput: true,\n })\n },\n })\n })\n }\n\n /**\n * get Camera info\n * @returns\n */\n get() {\n return {\n position: [this.camera.position.x, this.camera.position.y, this.camera.position.z],\n target: [this.controls.target.x, this.controls.target.y, this.controls.target.z],\n }\n }\n\n /**\n * interpolation move camera\n * @param position\n * @param target\n * @param options\n */\n private moveCameraTo(position: Vector3, target: Vector3, pitch = 0, options?: ChangeCameraPresetOptions) {\n const currentPoition = this.camera.position.clone()\n const currentPositionInterpolation = new Vector3()\n\n if (options?.duration === 0) {\n this.camera.position.copy(position)\n this.controls.target.copy(target)\n\n options?.onComplate && options.onComplate()\n return\n }\n\n new TWEEN.Tween({ t: 0, lookat: this.controls.target.clone(), p: 0 }).to({ t: 1, lookat: target, p: (-this.camera.rotation.x + (pitch ? MathUtils.degToRad(-pitch) : 0)) }, options?.duration || 1000)\n .onStart(() => {\n options?.onStart && options.onStart()\n this.controls.enabled = false\n this.isTransitionPeriod = true\n })\n .easing(TWEEN.Easing.Quadratic.InOut)\n .onUpdate(({ t, lookat, p }) => {\n this.controls.target.copy(lookat)\n\n if (pitch)\n // @ts-ignore\n this.camera.rotationParent.x = p\n\n const currentPosition = currentPositionInterpolation.lerpVectors(currentPoition, position, t)\n this.camera.position.copy(currentPosition)\n options?.onUpdate && options.onUpdate({ position: currentPosition, lookat })\n })\n .onComplete(() => {\n options?.onComplate && options.onComplate()\n this.controls.enabled = true\n\n setTimeout(() => {\n this.isTransitionPeriod = false\n })\n })\n .start()\n }\n}\n\nexport default Camera"],"mappings":"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"}
@@ -1,9 +1,8 @@
1
1
  import type { Vector3 } from '@anov/3d-core';
2
- declare type EnvironmentOptions = {
3
- weather?: string;
4
- time?: number;
5
- };
6
- declare class Environment {
2
+ import type { BaseModule } from '../../utils/abstract';
3
+ import type Anov3D from '../../sdkEntry';
4
+ declare class Environment implements BaseModule {
5
+ app: Anov3D;
7
6
  private opts?;
8
7
  private setDate;
9
8
  private snow;
@@ -13,7 +12,7 @@ declare class Environment {
13
12
  private renderer;
14
13
  private changeSceneEnvironment;
15
14
  sunPosition: Vector3;
16
- constructor(changeSceneEnvironment: (openFlag?: boolean) => void, opts?: EnvironmentOptions);
15
+ constructor(app: Anov3D);
17
16
  private initConfigSet;
18
17
  private setWeatherStrategy;
19
18
  /**
@@ -15,9 +15,11 @@ import { use } from '@anov/3d-core';
15
15
  import { createRain, createSkyCloud, createSnow } from '@anov/3d-ability';
16
16
  import createTimeSkySystem from "./time";
17
17
  var Environment = /*#__PURE__*/function () {
18
- function Environment(changeSceneEnvironment, opts) {
19
- var _this = this;
18
+ function Environment(app) {
19
+ var _this = this,
20
+ _app$opts$environment;
20
21
  _classCallCheck(this, Environment);
22
+ _defineProperty(this, "app", void 0);
21
23
  _defineProperty(this, "opts", void 0);
22
24
  _defineProperty(this, "setDate", void 0);
23
25
  _defineProperty(this, "snow", null);
@@ -63,7 +65,8 @@ var Environment = /*#__PURE__*/function () {
63
65
  }
64
66
  }
65
67
  });
66
- this.changeSceneEnvironment = changeSceneEnvironment;
68
+ this.app = app;
69
+ this.changeSceneEnvironment = app.changeSceneEnvironment;
67
70
  var _createTimeSkySystem = createTimeSkySystem(new Date(), 40, 116, 100),
68
71
  _createTimeSkySystem2 = _slicedToArray(_createTimeSkySystem, 3),
69
72
  setDate = _createTimeSkySystem2[0],
@@ -73,7 +76,7 @@ var Environment = /*#__PURE__*/function () {
73
76
  this.sunPosition = sun.position;
74
77
  this.setDate = setDate;
75
78
  this.sky = sky;
76
- this.opts = opts;
79
+ this.opts = (_app$opts$environment = app.opts.environment) !== null && _app$opts$environment !== void 0 ? _app$opts$environment : {};
77
80
  this.initConfigSet();
78
81
  }
79
82
  _createClass(Environment, [{
@@ -82,6 +85,7 @@ var Environment = /*#__PURE__*/function () {
82
85
  var _ref = this.opts,
83
86
  weather = _ref.weather,
84
87
  time = _ref.time;
88
+ if (!weather) return;
85
89
  this.setWeather({
86
90
  weatherType: weather !== null && weather !== void 0 ? weather : 'Snow',
87
91
  duration: 0
@@ -1 +1 @@
1
- {"version":3,"names":["use","createRain","createSkyCloud","createSnow","createTimeSkySystem","Environment","changeSceneEnvironment","opts","Snow","snow","x","y","z","renderer","toneMappingExposure","Rain","rain","Cloudy","cloudReturn","Clear_Skies","_","clear","Date","setDate","sun","sky","useScene","sunPosition","position","initConfigSet","weather","time","setWeather","weatherType","duration","setTime","params","undefined","Error","date","setHours","getTime","Math","floor","newTime","setWeatherStrategy"],"sources":["../../../src/module/environment/index.ts"],"sourcesContent":["import type { Vector3, WebGLRenderer, lib } from '@anov/3d-core'\nimport { use } from '@anov/3d-core'\nimport { createRain, createSkyCloud, createSnow } from '@anov/3d-ability'\nimport createTimeSkySystem from './time'\n\ntype EnvironmentOptions = {\n weather?: string\n time?: number\n}\n\nclass Environment {\n private opts?: EnvironmentOptions\n private setDate: (currentDate?: Date | undefined) => Vector3\n private snow: any = null\n private rain: any = null\n private cloudReturn: ReturnType<typeof createSkyCloud> | null = null\n private sky: lib.Sky\n private renderer: WebGLRenderer\n private changeSceneEnvironment: (openFlag?: boolean) => void\n sunPosition: Vector3\n\n constructor(changeSceneEnvironment: (openFlag?: boolean) => void, opts?: EnvironmentOptions) {\n this.changeSceneEnvironment = changeSceneEnvironment\n const [setDate, sun, sky] = createTimeSkySystem(new Date(), 40, 116, 100)\n this.renderer = use.useScene().renderer!\n this.sunPosition = sun.position\n this.setDate = setDate as any\n this.sky = sky\n\n this.opts = opts\n this.initConfigSet()\n }\n\n private initConfigSet() {\n const { weather, time } = this.opts as Required<EnvironmentOptions>\n\n this.setWeather({ weatherType: weather ?? 'Snow', duration: 0 })\n this.setTime({ time: time ?? 1700, duration: 0 })\n }\n\n private setWeatherStrategy = {\n Snow: () => {\n !this.snow && (this.snow = createSnow(15, 10000, { x: 0, y: 3, z: 0 }, 0.5, 50000))\n this.snow[0]()\n this.renderer.toneMappingExposure = 0.3\n },\n Rain: () => {\n !this.rain && (this.rain = createRain(4, 10000, { x: 0, y: 10, z: 0 }, 0.8, 100000))\n this.rain[0]()\n this.renderer.toneMappingExposure = 0.3\n },\n Cloudy: () => {\n !this.cloudReturn && (this.cloudReturn = createSkyCloud())\n },\n Clear_Skies: () => {\n this.snow?.[1]()\n this.rain?.[1]()\n this.renderer.toneMappingExposure = 0.6\n\n if (this.cloudReturn) {\n const [_, clear] = this.cloudReturn\n clear()\n this.cloudReturn = null\n }\n },\n }\n\n /**\n * setTime\n * @param newTime\n * @param changeTime\n */\n setTime(params: { time: number; duration?: number }) {\n if (params.time === undefined || (params.time > 2400 && params.time < 0))\n throw new Error('time must be between 0 and 2400')\n\n const date = new Date()\n date.setHours(0, 0, 0, 0)\n date.setTime(date.getTime() + Math.floor(86400000 * params.time / 2400))\n this.setDate(date)\n\n if (this.sunPosition.y <= 0)\n this.changeSceneEnvironment(false)\n\n else\n this.changeSceneEnvironment(true)\n\n return {\n newTime: params.time,\n }\n }\n\n /**\n * setWeather\n * @param type\n * @param changeTime\n */\n setWeather(params: { weatherType: string; duration?: number }) {\n // @ts-ignore\n this.setWeatherStrategy[params.weatherType]()\n\n return {\n weatherType: params.weatherType,\n }\n }\n}\n\nexport default Environment"],"mappings":";;;;;;;;;;;;;AACA,SAASA,GAAG,QAAQ,eAAe;AACnC,SAASC,UAAU,EAAEC,cAAc,EAAEC,UAAU,QAAQ,kBAAkB;AACzE,OAAOC,mBAAmB;AAAc,IAOlCC,WAAW;EAWf,qBAAYC,sBAAoD,EAAEC,IAAyB,EAAE;IAAA;IAAA;IAAA;IAAA;IAAA,8BARzE,IAAI;IAAA,8BACJ,IAAI;IAAA,qCACwC,IAAI;IAAA;IAAA;IAAA;IAAA;IAAA,4CAyBvC;MAC3BC,IAAI,EAAE,gBAAM;QACV,CAAC,KAAI,CAACC,IAAI,KAAK,KAAI,CAACA,IAAI,GAAGN,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE;UAAEO,CAAC,EAAE,CAAC;UAAEC,CAAC,EAAE,CAAC;UAAEC,CAAC,EAAE;QAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACnF,KAAI,CAACH,IAAI,CAAC,CAAC,CAAC,EAAE;QACd,KAAI,CAACI,QAAQ,CAACC,mBAAmB,GAAG,GAAG;MACzC,CAAC;MACDC,IAAI,EAAE,gBAAM;QACV,CAAC,KAAI,CAACC,IAAI,KAAK,KAAI,CAACA,IAAI,GAAGf,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE;UAAES,CAAC,EAAE,CAAC;UAAEC,CAAC,EAAE,EAAE;UAAEC,CAAC,EAAE;QAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QACpF,KAAI,CAACI,IAAI,CAAC,CAAC,CAAC,EAAE;QACd,KAAI,CAACH,QAAQ,CAACC,mBAAmB,GAAG,GAAG;MACzC,CAAC;MACDG,MAAM,EAAE,kBAAM;QACZ,CAAC,KAAI,CAACC,WAAW,KAAK,KAAI,CAACA,WAAW,GAAGhB,cAAc,EAAE,CAAC;MAC5D,CAAC;MACDiB,WAAW,EAAE,uBAAM;QAAA;QACjB,mBAAI,CAACV,IAAI,+CAAT,WAAY,CAAC,CAAC,EAAE;QAChB,mBAAI,CAACO,IAAI,+CAAT,WAAY,CAAC,CAAC,EAAE;QAChB,KAAI,CAACH,QAAQ,CAACC,mBAAmB,GAAG,GAAG;QAEvC,IAAI,KAAI,CAACI,WAAW,EAAE;UACpB,uCAAmB,KAAI,CAACA,WAAW;YAA5BE,CAAC;YAAEC,KAAK;UACfA,KAAK,EAAE;UACP,KAAI,CAACH,WAAW,GAAG,IAAI;QACzB;MACF;IACF,CAAC;IA3CC,IAAI,CAACZ,sBAAsB,GAAGA,sBAAsB;IACpD,2BAA4BF,mBAAmB,CAAC,IAAIkB,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;MAAA;MAAlEC,OAAO;MAAEC,GAAG;MAAEC,GAAG;IACxB,IAAI,CAACZ,QAAQ,GAAGb,GAAG,CAAC0B,QAAQ,EAAE,CAACb,QAAS;IACxC,IAAI,CAACc,WAAW,GAAGH,GAAG,CAACI,QAAQ;IAC/B,IAAI,CAACL,OAAO,GAAGA,OAAc;IAC7B,IAAI,CAACE,GAAG,GAAGA,GAAG;IAEd,IAAI,CAAClB,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACsB,aAAa,EAAE;EACtB;EAAC;IAAA;IAAA,OAED,yBAAwB;MACtB,WAA0B,IAAI,CAACtB,IAAI;QAA3BuB,OAAO,QAAPA,OAAO;QAAEC,IAAI,QAAJA,IAAI;MAErB,IAAI,CAACC,UAAU,CAAC;QAAEC,WAAW,EAAEH,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAI,MAAM;QAAEI,QAAQ,EAAE;MAAE,CAAC,CAAC;MAChE,IAAI,CAACC,OAAO,CAAC;QAAEJ,IAAI,EAAEA,IAAI,aAAJA,IAAI,cAAJA,IAAI,GAAI,IAAI;QAAEG,QAAQ,EAAE;MAAE,CAAC,CAAC;IACnD;EAAC;IAAA;IAAA;IA6BD;AACF;AACA;AACA;AACA;IACE,iBAAQE,MAA2C,EAAE;MACnD,IAAIA,MAAM,CAACL,IAAI,KAAKM,SAAS,IAAKD,MAAM,CAACL,IAAI,GAAG,IAAI,IAAIK,MAAM,CAACL,IAAI,GAAG,CAAE,EACtE,MAAM,IAAIO,KAAK,CAAC,iCAAiC,CAAC;MAEpD,IAAMC,IAAI,GAAG,IAAIjB,IAAI,EAAE;MACvBiB,IAAI,CAACC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;MACzBD,IAAI,CAACJ,OAAO,CAACI,IAAI,CAACE,OAAO,EAAE,GAAGC,IAAI,CAACC,KAAK,CAAC,QAAQ,GAAGP,MAAM,CAACL,IAAI,GAAG,IAAI,CAAC,CAAC;MACxE,IAAI,CAACR,OAAO,CAACgB,IAAI,CAAC;MAElB,IAAI,IAAI,CAACZ,WAAW,CAAChB,CAAC,IAAI,CAAC,EACzB,IAAI,CAACL,sBAAsB,CAAC,KAAK,CAAC,MAGlC,IAAI,CAACA,sBAAsB,CAAC,IAAI,CAAC;MAEnC,OAAO;QACLsC,OAAO,EAAER,MAAM,CAACL;MAClB,CAAC;IACH;;IAEA;AACF;AACA;AACA;AACA;EAJE;IAAA;IAAA,OAKA,oBAAWK,MAAkD,EAAE;MAC7D;MACA,IAAI,CAACS,kBAAkB,CAACT,MAAM,CAACH,WAAW,CAAC,EAAE;MAE7C,OAAO;QACLA,WAAW,EAAEG,MAAM,CAACH;MACtB,CAAC;IACH;EAAC;EAAA;AAAA;AAGH,eAAe5B,WAAW"}
1
+ {"version":3,"names":["use","createRain","createSkyCloud","createSnow","createTimeSkySystem","Environment","app","Snow","snow","x","y","z","renderer","toneMappingExposure","Rain","rain","Cloudy","cloudReturn","Clear_Skies","_","clear","changeSceneEnvironment","Date","setDate","sun","sky","useScene","sunPosition","position","opts","environment","initConfigSet","weather","time","setWeather","weatherType","duration","setTime","params","undefined","Error","date","setHours","getTime","Math","floor","newTime","setWeatherStrategy"],"sources":["../../../src/module/environment/index.ts"],"sourcesContent":["import type { Vector3, WebGLRenderer, lib } from '@anov/3d-core'\nimport { use } from '@anov/3d-core'\nimport { createRain, createSkyCloud, createSnow } from '@anov/3d-ability'\nimport type { BaseModule } from '../../utils/abstract'\nimport type Anov3D from '../../sdkEntry'\nimport createTimeSkySystem from './time'\n\ntype EnvironmentOptions = {\n weather?: string\n time?: number\n}\n\nclass Environment implements BaseModule {\n app: Anov3D\n private opts?: EnvironmentOptions\n private setDate: (currentDate?: Date | undefined) => Vector3\n private snow: any = null\n private rain: any = null\n private cloudReturn: ReturnType<typeof createSkyCloud> | null = null\n private sky: lib.Sky\n private renderer: WebGLRenderer\n private changeSceneEnvironment: (openFlag?: boolean) => void\n sunPosition: Vector3\n\n constructor(app: Anov3D) {\n this.app = app\n this.changeSceneEnvironment = app.changeSceneEnvironment\n const [setDate, sun, sky] = createTimeSkySystem(new Date(), 40, 116, 100)\n this.renderer = use.useScene().renderer!\n this.sunPosition = sun.position\n this.setDate = setDate as any\n this.sky = sky\n this.opts = app.opts.environment ?? {}\n this.initConfigSet()\n }\n\n private initConfigSet() {\n const { weather, time } = this.opts as Required<EnvironmentOptions>\n\n if (!weather)\n return\n this.setWeather({ weatherType: weather ?? 'Snow', duration: 0 })\n this.setTime({ time: time ?? 1700, duration: 0 })\n }\n\n private setWeatherStrategy = {\n Snow: () => {\n !this.snow && (this.snow = createSnow(15, 10000, { x: 0, y: 3, z: 0 }, 0.5, 50000))\n this.snow[0]()\n this.renderer.toneMappingExposure = 0.3\n },\n Rain: () => {\n !this.rain && (this.rain = createRain(4, 10000, { x: 0, y: 10, z: 0 }, 0.8, 100000))\n this.rain[0]()\n this.renderer.toneMappingExposure = 0.3\n },\n Cloudy: () => {\n !this.cloudReturn && (this.cloudReturn = createSkyCloud())\n },\n Clear_Skies: () => {\n this.snow?.[1]()\n this.rain?.[1]()\n this.renderer.toneMappingExposure = 0.6\n\n if (this.cloudReturn) {\n const [_, clear] = this.cloudReturn\n clear()\n this.cloudReturn = null\n }\n },\n }\n\n /**\n * setTime\n * @param newTime\n * @param changeTime\n */\n setTime(params: { time: number; duration?: number }) {\n if (params.time === undefined || (params.time > 2400 && params.time < 0))\n throw new Error('time must be between 0 and 2400')\n\n const date = new Date()\n date.setHours(0, 0, 0, 0)\n date.setTime(date.getTime() + Math.floor(86400000 * params.time / 2400))\n this.setDate(date)\n\n if (this.sunPosition.y <= 0)\n this.changeSceneEnvironment(false)\n\n else\n this.changeSceneEnvironment(true)\n\n return {\n newTime: params.time,\n }\n }\n\n /**\n * setWeather\n * @param type\n * @param changeTime\n */\n setWeather(params: { weatherType: string; duration?: number }) {\n // @ts-ignore\n this.setWeatherStrategy[params.weatherType]()\n\n return {\n weatherType: params.weatherType,\n }\n }\n}\n\nexport default Environment"],"mappings":"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"}
@@ -1,10 +1,8 @@
1
1
  import type { GrowOption } from '@anov/3d-ability';
2
- import type Factory3D from '../../factory/3d';
3
2
  export declare class Scene {
4
3
  private grow;
5
4
  private opt;
6
- private factory;
7
- constructor(factory: Factory3D);
5
+ constructor();
8
6
  growInit(opt?: GrowOption): Promise<unknown>;
9
7
  growIn(): Promise<unknown>;
10
8
  growOut(): Promise<unknown>;
@@ -8,13 +8,12 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
8
8
  import { Grow } from '@anov/3d-ability';
9
9
  import { MessageType, sendToMessage } from "../../utils/messageFn";
10
10
  import { EMessageStatus } from "../../messageStatus";
11
+ import factoryGlobalObject from "../../factory/globalControl";
11
12
  export var Scene = /*#__PURE__*/function () {
12
- function Scene(factory) {
13
+ function Scene() {
13
14
  _classCallCheck(this, Scene);
14
15
  _defineProperty(this, "grow", void 0);
15
16
  _defineProperty(this, "opt", void 0);
16
- _defineProperty(this, "factory", void 0);
17
- this.factory = factory;
18
17
  this.grow = null;
19
18
  this.opt = {};
20
19
  }
@@ -99,7 +98,7 @@ export var Scene = /*#__PURE__*/function () {
99
98
  key: "toPage",
100
99
  value: function toPage(params) {
101
100
  console.log('params:', params);
102
- this.factory.toggleTag(params.name);
101
+ factoryGlobalObject.factory3D.toggleTag(params.name);
103
102
  }
104
103
  }]);
105
104
  return Scene;
@@ -1 +1 @@
1
- {"version":3,"names":["Grow","MessageType","sendToMessage","EMessageStatus","Scene","factory","grow","opt","Promise","res","Object","assign","onGrowInitCompleted","console","log","Event","Success","onGrowInStart","onGrowInCompleted","onGrowOutStart","onGrowOutCompleted","success","in","message","out","params","toggleTag","name"],"sources":["../../../src/module/scene/index.ts"],"sourcesContent":["import type { Vector3 } from '@anov/3d-core'\nimport type { GrowOption } from '@anov/3d-ability'\nimport { EEaseType, ESceneGrowType, Grow } from '@anov/3d-ability'\nimport { MessageType, sendToMessage } from '../../utils/messageFn'\nimport { EMessageStatus } from '../../messageStatus'\nimport type Factory3D from '../../factory/3d'\n\nexport class Scene {\n private grow: Grow\n private opt: GrowOption\n private factory: Factory3D\n\n constructor(factory: Factory3D) {\n this.factory = factory\n this.grow = null\n this.opt = {}\n }\n\n // [API:场景进出场初始化]\n growInit(opt?: GrowOption) {\n return new Promise ((res) => {\n Object.assign(this.opt, opt || {},\n {\n onGrowInitCompleted: () => {\n console.log('------:onGrowInitCompleted')\n sendToMessage(MessageType.Event, 'onGrowInitCompleted', EMessageStatus.Success)\n },\n onGrowInStart: () => {\n console.log('------:onGrowInStart')\n\n // opt.onGrowInStart && opt.onGrowInStart()\n sendToMessage(MessageType.Event, 'onGrowInStart', EMessageStatus.Success)\n },\n onGrowInCompleted: () => {\n console.log('------:onGrowInCompleted')\n\n // opt.onGrowInCompleted && opt.onGrowInCompleted()\n sendToMessage(MessageType.Event, 'onGrowInCompleted', EMessageStatus.Success)\n },\n onGrowOutStart: () => {\n // opt.onGrowOutStart && opt.onGrowOutStart()\n console.log('------:onGrowOutStart')\n sendToMessage(MessageType.Event, 'onGrowOutStart', EMessageStatus.Success)\n },\n onGrowOutCompleted: () => {\n // opt.onGrowOutCompleted && opt.onGrowOutCompleted()\n console.log('------:onGrowOutCompleted')\n sendToMessage(MessageType.Event, 'onGrowOutCompleted', EMessageStatus.Success)\n },\n })\n this.grow = new Grow(this.opt)\n res({ success: true })\n })\n }\n\n // [API:场景进出场动画]\n growIn() {\n return new Promise ((res) => {\n // 未初始化,不处理\n if (this.grow)\n this.grow.in(() => { res({ success: true }) })\n else res({ message: ' not scene grow init' })\n })\n }\n\n // [API:场景进出场动画]\n growOut() {\n return new Promise ((res) => {\n // 未初始化,不处理\n if (this.grow)\n this.grow.out(() => { res({ success: true }) })\n else res({ message: ' not scene grow init' })\n })\n }\n\n // temporary solution by lM\n toPage(params: any) {\n console.log('params:', params)\n this.factory.toggleTag(params.name)\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["Grow","MessageType","sendToMessage","EMessageStatus","factoryGlobalObject","Scene","grow","opt","Promise","res","Object","assign","onGrowInitCompleted","console","log","Event","Success","onGrowInStart","onGrowInCompleted","onGrowOutStart","onGrowOutCompleted","success","in","message","out","params","factory3D","toggleTag","name"],"sources":["../../../src/module/scene/index.ts"],"sourcesContent":["import type { Vector3 } from '@anov/3d-core'\nimport type { GrowOption } from '@anov/3d-ability'\nimport { EEaseType, ESceneGrowType, Grow } from '@anov/3d-ability'\nimport { MessageType, sendToMessage } from '../../utils/messageFn'\nimport { EMessageStatus } from '../../messageStatus'\nimport factoryGlobalObject from '../../factory/globalControl'\n\nexport class Scene {\n private grow: Grow\n private opt: GrowOption\n\n constructor() {\n this.grow = null\n this.opt = {}\n }\n\n // [API:场景进出场初始化]\n growInit(opt?: GrowOption) {\n return new Promise ((res) => {\n Object.assign(this.opt, opt || {},\n {\n onGrowInitCompleted: () => {\n console.log('------:onGrowInitCompleted')\n sendToMessage(MessageType.Event, 'onGrowInitCompleted', EMessageStatus.Success)\n },\n onGrowInStart: () => {\n console.log('------:onGrowInStart')\n\n // opt.onGrowInStart && opt.onGrowInStart()\n sendToMessage(MessageType.Event, 'onGrowInStart', EMessageStatus.Success)\n },\n onGrowInCompleted: () => {\n console.log('------:onGrowInCompleted')\n\n // opt.onGrowInCompleted && opt.onGrowInCompleted()\n sendToMessage(MessageType.Event, 'onGrowInCompleted', EMessageStatus.Success)\n },\n onGrowOutStart: () => {\n // opt.onGrowOutStart && opt.onGrowOutStart()\n console.log('------:onGrowOutStart')\n sendToMessage(MessageType.Event, 'onGrowOutStart', EMessageStatus.Success)\n },\n onGrowOutCompleted: () => {\n // opt.onGrowOutCompleted && opt.onGrowOutCompleted()\n console.log('------:onGrowOutCompleted')\n sendToMessage(MessageType.Event, 'onGrowOutCompleted', EMessageStatus.Success)\n },\n })\n this.grow = new Grow(this.opt)\n res({ success: true })\n })\n }\n\n // [API:场景进出场动画]\n growIn() {\n return new Promise ((res) => {\n // 未初始化,不处理\n if (this.grow)\n this.grow.in(() => { res({ success: true }) })\n else res({ message: ' not scene grow init' })\n })\n }\n\n // [API:场景进出场动画]\n growOut() {\n return new Promise ((res) => {\n // 未初始化,不处理\n if (this.grow)\n this.grow.out(() => { res({ success: true }) })\n else res({ message: ' not scene grow init' })\n })\n }\n\n // temporary solution by lM\n toPage(params: any) {\n console.log('params:', params)\n factoryGlobalObject.factory3D.toggleTag(params.name)\n }\n}\n"],"mappings":"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"}
@@ -1,38 +1,5 @@
1
- import { SceneControl } from '@anov/3d-core';
2
- import type { Poi } from '@anov/3d-ability';
3
- import { HeatMap } from '@anov/3d-ability';
4
- import type Environment from './module/environment';
5
- import EventBus from './module/eventBus';
6
- import Camera from './module/camera';
7
- import { EWeatherType } from './module/environment/weather/type';
8
- import type { InitOptions } from './applicationApi';
9
- import { Scene } from './module/scene';
10
- import Model from './module/model';
11
- import HandleManage from './factory/unit/handle';
1
+ import Anov3DCore from './anov3d';
12
2
  export declare type Override<P, S> = Omit<P, keyof S> & S;
13
- declare type Anov3DOptions = {
14
- container: HTMLElement;
15
- size?: {
16
- width: number;
17
- height: number;
18
- };
19
- camera?: InitOptions['camera'];
20
- environment?: InitOptions['environment'];
21
- model?: InitOptions['model'];
22
- };
23
- declare class Anov3D {
24
- private opts;
25
- sceneControl: SceneControl;
26
- environment: Environment;
27
- eventBus: EventBus;
28
- EWeatherType: typeof EWeatherType;
29
- poi: Poi;
30
- heatMap: HeatMap;
31
- camera: Camera;
32
- scene: Scene;
33
- model: Model;
34
- factory: HandleManage;
35
- constructor(opts: Anov3DOptions);
36
- changeSceneEnvironment(openFlag?: boolean): void;
3
+ declare class App extends Anov3DCore {
37
4
  }
38
- export default Anov3D;
5
+ export default App;
package/dist/sdkEntry.js CHANGED
@@ -1,109 +1,46 @@
1
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 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; }
3
- 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; }
4
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
2
+ var _dec, _class;
5
3
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
6
4
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
7
- 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; }
8
5
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
9
6
  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); }
10
- import { PMREMGenerator, SceneControl, Vector3, lib, use, utils } from '@anov/3d-core';
11
- import { HeatMap } from '@anov/3d-ability';
12
- import EventBus from "./module/eventBus";
7
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
8
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
9
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
10
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
11
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
12
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
13
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
14
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
15
+ import { HeatMap, Poi } from '@anov/3d-ability';
16
+ import Environment from "./module/environment";
13
17
  import Camera from "./module/camera";
14
- import { EWeatherType } from "./module/environment/weather/type";
15
- import { object2Vector3 } from "./utils/index";
16
18
  import { Scene } from "./module/scene";
17
- import Model from "./module/model";
18
- import Factory3D from "./factory/3d";
19
- import HandleManage from "./factory/unit/handle";
20
- import { defaultCameraParams } from "./index";
21
- var RoomEnvironment = lib.RoomEnvironment;
22
- var Anov3D = /*#__PURE__*/function () {
23
- function Anov3D(opts) {
24
- var _camera$fov, _camera$near, _camera$far, _opts$size$width, _opts$size, _opts$size$height, _opts$size2, _opts$size$width2, _opts$size3, _opts$size$height2, _opts$size4, _scene$controls, _opts$camera;
25
- _classCallCheck(this, Anov3D);
26
- _defineProperty(this, "opts", void 0);
27
- _defineProperty(this, "sceneControl", void 0);
28
- _defineProperty(this, "environment", void 0);
29
- _defineProperty(this, "eventBus", void 0);
30
- _defineProperty(this, "EWeatherType", EWeatherType);
31
- _defineProperty(this, "poi", void 0);
32
- _defineProperty(this, "heatMap", void 0);
33
- _defineProperty(this, "camera", void 0);
34
- _defineProperty(this, "scene", void 0);
35
- _defineProperty(this, "model", void 0);
36
- _defineProperty(this, "factory", void 0);
37
- this.opts = opts;
38
- var _ref = opts || {},
39
- _ref$camera = _ref.camera,
40
- camera = _ref$camera === void 0 ? {} : _ref$camera;
41
- var cameraParams = {
42
- fov: (_camera$fov = camera.fov) !== null && _camera$fov !== void 0 ? _camera$fov : defaultCameraParams.fov,
43
- near: (_camera$near = camera.near) !== null && _camera$near !== void 0 ? _camera$near : defaultCameraParams.near,
44
- far: (_camera$far = camera.far) !== null && _camera$far !== void 0 ? _camera$far : defaultCameraParams.far,
45
- position: camera.position ? new Vector3().fromArray(camera.position) : object2Vector3(defaultCameraParams.position)
46
- };
47
- var scene = new SceneControl({
48
- orbitControls: true,
49
- defCameraOps: _objectSpread(_objectSpread({
50
- 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)
51
- }, cameraParams), {}, {
52
- fov: 60
53
- }),
54
- rendererOps: {
55
- shadowMap: true,
56
- size: {
57
- width: (_opts$size$width2 = opts === null || opts === void 0 ? void 0 : (_opts$size3 = opts.size) === null || _opts$size3 === void 0 ? void 0 : _opts$size3.width) !== null && _opts$size$width2 !== void 0 ? _opts$size$width2 : opts.container.clientWidth,
58
- height: (_opts$size$height2 = opts === null || opts === void 0 ? void 0 : (_opts$size4 = opts.size) === null || _opts$size4 === void 0 ? void 0 : _opts$size4.height) !== null && _opts$size$height2 !== void 0 ? _opts$size$height2 : opts.container.clientHeight
59
- }
60
- },
61
- reset: true,
62
- css2DRenderer: true,
63
- ambientLight: true
64
- });
65
- scene.render(opts.container);
66
-
67
- // temporary solution by LM
68
- var factory = new Factory3D({
69
- model: this.opts.model,
70
- environment: 'quarry_01_1k.hdr'
71
- });
72
- factory.renderScene(scene);
73
- use.useframe(function () {
74
- scene.renderer.render(scene.scene, scene.camera);
75
- });
76
- (_scene$controls = scene.controls) === null || _scene$controls === void 0 ? void 0 : _scene$controls.target.copy((_opts$camera = opts.camera) !== null && _opts$camera !== void 0 && _opts$camera.target ? new Vector3().fromArray(opts.camera.target) : object2Vector3(defaultCameraParams.lookAt));
77
- utils.emitter.emit('scene-completed', scene);
78
-
79
- // 不考虑 tree-shaking
80
- this.sceneControl = scene;
81
- // this.environment = new Environment(this.changeSceneEnvironment, opts.environment) // temporary solution by LM
82
- // this.poi = new Poi()
83
- this.heatMap = new HeatMap();
84
- this.eventBus = new EventBus();
85
- this.camera = new Camera(scene.camera, scene.controls);
86
- this.scene = new Scene(factory);
87
- this.model = new Model();
88
- this.factory = new HandleManage(this.camera);
89
- // this.opts.model && (this.model.load(this.opts.model))
90
- // this.changeSceneEnvironment()
91
- utils.storeManagement.set('event-bus', this.eventBus);
19
+ import { provide } from "./utils/abstract";
20
+ import Anov3DCore from "./anov3d";
21
+ var App = (_dec = provide([{
22
+ name: 'camera',
23
+ module: Camera
24
+ }, {
25
+ name: 'environment',
26
+ module: Environment
27
+ }, {
28
+ name: 'scene',
29
+ module: Scene
30
+ }, {
31
+ name: 'poi',
32
+ module: Poi
33
+ }, {
34
+ name: 'heatMap',
35
+ module: HeatMap
36
+ }]), _dec(_class = /*#__PURE__*/function (_Anov3DCore) {
37
+ _inherits(App, _Anov3DCore);
38
+ var _super = _createSuper(App);
39
+ function App() {
40
+ _classCallCheck(this, App);
41
+ return _super.apply(this, arguments);
92
42
  }
93
- _createClass(Anov3D, [{
94
- key: "changeSceneEnvironment",
95
- value: function changeSceneEnvironment() {
96
- var openFlag = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
97
- var _use$useScene = use.useScene(),
98
- renderer = _use$useScene.renderer,
99
- scene = _use$useScene.scene;
100
- var pmremGenerator = new PMREMGenerator(renderer);
101
- pmremGenerator.compileEquirectangularShader();
102
- var roomEnvironment = new RoomEnvironment();
103
- if (openFlag) scene.environment = pmremGenerator.fromScene(roomEnvironment, 0.04).texture;else scene.environment = null;
104
- }
105
- }]);
106
- return Anov3D;
107
- }();
108
- export default Anov3D;
43
+ return _createClass(App);
44
+ }(Anov3DCore)) || _class);
45
+ export default App;
109
46
  //# sourceMappingURL=sdkEntry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["PMREMGenerator","SceneControl","Vector3","lib","use","utils","HeatMap","EventBus","Camera","EWeatherType","object2Vector3","Scene","Model","Factory3D","HandleManage","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","factory","model","environment","renderScene","useframe","renderer","controls","target","copy","lookAt","emitter","emit","sceneControl","heatMap","eventBus","storeManagement","set","openFlag","useScene","pmremGenerator","compileEquirectangularShader","roomEnvironment","fromScene","texture"],"sources":["../src/sdkEntry.ts"],"sourcesContent":["import { PMREMGenerator, SceneControl, Vector3, lib, use, utils } from '@anov/3d-core'\nimport type { Poi } from '@anov/3d-ability'\nimport { HeatMap } from '@anov/3d-ability'\nimport type Environment from './module/environment'\nimport EventBus from './module/eventBus'\nimport Camera from './module/camera'\nimport { EWeatherType } from './module/environment/weather/type'\nimport type { InitOptions } from './applicationApi'\nimport { object2Vector3 } from './utils/index'\nimport { Scene } from './module/scene'\nimport Model from './module/model'\nimport Factory3D from './factory/3d'\nimport HandleManage from './factory/unit/handle'\nimport { defaultCameraParams } from './index'\n\nexport type Override<P, S> = Omit<P, keyof S> & S\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 private opts: Anov3DOptions\n sceneControl: SceneControl\n environment: Environment\n eventBus: EventBus\n EWeatherType: typeof EWeatherType = EWeatherType\n poi: Poi\n heatMap: HeatMap\n camera: Camera\n scene: Scene\n model: Model\n factory: HandleManage\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 // temporary solution by LM\n const factory = new Factory3D({ model: this.opts.model, environment: 'quarry_01_1k.hdr' })\n factory.renderScene(scene)\n\n use.useframe(() => {\n scene.renderer!.render(scene.scene!, scene.camera!)\n })\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 // this.environment = new Environment(this.changeSceneEnvironment, opts.environment) // temporary solution by LM\n // this.poi = new Poi()\n this.heatMap = new HeatMap()\n this.eventBus = new EventBus()\n this.camera = new Camera(scene.camera!, scene.controls!)\n this.scene = new Scene(factory)\n this.model = new Model()\n this.factory = new HandleManage(this.camera)\n // this.opts.model && (this.model.load(this.opts.model))\n // this.changeSceneEnvironment()\n utils.storeManagement.set('event-bus', this.eventBus)\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":["HeatMap","Poi","Environment","Camera","Scene","provide","Anov3DCore","App","name","module"],"sources":["../src/sdkEntry.ts"],"sourcesContent":["import { HeatMap, Poi } from '@anov/3d-ability'\nimport Environment from './module/environment'\nimport Camera from './module/camera'\nimport { Scene } from './module/scene'\nimport { provide } from './utils/abstract'\nimport Anov3DCore from './anov3d'\n\nexport type Override<P, S> = Omit<P, keyof S> & S\n\n@provide(\n [\n {\n name: 'camera',\n module: Camera,\n },\n {\n name: 'environment',\n module: Environment,\n },\n {\n name: 'scene',\n module: Scene,\n },\n {\n name: 'poi',\n module: Poi,\n },\n {\n name: 'heatMap',\n module: HeatMap,\n },\n ],\n)\nclass App extends Anov3DCore {}\n\nexport default App\n"],"mappings":";;;;;;;;;;;;;;AAAA,SAASA,OAAO,EAAEC,GAAG,QAAQ,kBAAkB;AAC/C,OAAOC,WAAW;AAClB,OAAOC,MAAM;AACb,SAASC,KAAK;AACd,SAASC,OAAO;AAChB,OAAOC,UAAU;AAAgB,IA4B3BC,GAAG,WAxBRF,OAAO,CACN,CACE;EACEG,IAAI,EAAE,QAAQ;EACdC,MAAM,EAAEN;AACV,CAAC,EACD;EACEK,IAAI,EAAE,aAAa;EACnBC,MAAM,EAAEP;AACV,CAAC,EACD;EACEM,IAAI,EAAE,OAAO;EACbC,MAAM,EAAEL;AACV,CAAC,EACD;EACEI,IAAI,EAAE,KAAK;EACXC,MAAM,EAAER;AACV,CAAC,EACD;EACEO,IAAI,EAAE,SAAS;EACfC,MAAM,EAAET;AACV,CAAC,CACF,CACF;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;AAAA,EACiBM,UAAU;AAE5B,eAAeC,GAAG"}
@@ -0,0 +1,6 @@
1
+ import type Anov3D from '../sdkEntry';
2
+ export declare const provide: (modules: any) => any;
3
+ export declare class BaseModule {
4
+ app: Anov3D;
5
+ constructor(app: Anov3D);
6
+ }
@@ -0,0 +1,24 @@
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 _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); } }
3
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
4
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
5
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
7
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
8
+ /* eslint-disable new-cap */
9
+ import { utils } from '@anov/3d-core';
10
+ export var provide = function provide(modules) {
11
+ return function (targetClass) {
12
+ utils.emitter.on('instantiation-completed', function (app) {
13
+ modules.forEach(function (module) {
14
+ targetClass.prototype[module.name] = new module.module(app);
15
+ });
16
+ });
17
+ };
18
+ };
19
+ export var BaseModule = /*#__PURE__*/_createClass(function BaseModule(app) {
20
+ _classCallCheck(this, BaseModule);
21
+ _defineProperty(this, "app", void 0);
22
+ this.app = app;
23
+ });
24
+ //# sourceMappingURL=abstract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["utils","provide","modules","targetClass","emitter","on","app","forEach","module","prototype","name","BaseModule"],"sources":["../../src/utils/abstract.ts"],"sourcesContent":["/* eslint-disable new-cap */\nimport { utils } from '@anov/3d-core'\nimport type Anov3D from '../sdkEntry'\n\nexport const provide = (modules: any): any => {\n return (targetClass: any) => {\n utils.emitter.on('instantiation-completed', (app) => {\n modules.forEach((module: any) => {\n targetClass.prototype[module.name] = new module.module(app)\n })\n })\n }\n}\n\nexport class BaseModule {\n app: Anov3D\n constructor(app: Anov3D) {\n this.app = app\n }\n}\n"],"mappings":";;;;;;;AAAA;AACA,SAASA,KAAK,QAAQ,eAAe;AAGrC,OAAO,IAAMC,OAAO,GAAG,SAAVA,OAAO,CAAIC,OAAY,EAAU;EAC5C,OAAO,UAACC,WAAgB,EAAK;IAC3BH,KAAK,CAACI,OAAO,CAACC,EAAE,CAAC,yBAAyB,EAAE,UAACC,GAAG,EAAK;MACnDJ,OAAO,CAACK,OAAO,CAAC,UAACC,MAAW,EAAK;QAC/BL,WAAW,CAACM,SAAS,CAACD,MAAM,CAACE,IAAI,CAAC,GAAG,IAAIF,MAAM,CAACA,MAAM,CAACF,GAAG,CAAC;MAC7D,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC;AACH,CAAC;AAED,WAAaK,UAAU,6BAErB,oBAAYL,GAAW,EAAE;EAAA;EAAA;EACvB,IAAI,CAACA,GAAG,GAAGA,GAAG;AAChB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anov/3d",
3
- "version": "0.0.4-alpha27",
3
+ "version": "0.0.4-alpha28",
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-alpha9",
24
- "@anov/3d-core": "^0.0.4-alpha19"
23
+ "@anov/3d-core": "^0.0.4-alpha20",
24
+ "@anov/3d-ability": "^0.0.4-alpha10"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@types/uuid": "^9.0.7"