@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.
- package/dist/anov3d.d.ts +25 -0
- package/dist/anov3d.js +86 -0
- package/dist/anov3d.js.map +1 -0
- package/dist/applicationApi.d.ts +2 -0
- package/dist/applicationApi.js +20 -1
- package/dist/applicationApi.js.map +1 -1
- package/dist/factory/3d.js +2 -0
- package/dist/factory/3d.js.map +1 -1
- package/dist/factory/globalControl.d.ts +7 -0
- package/dist/factory/globalControl.js +22 -0
- package/dist/factory/globalControl.js.map +1 -0
- package/dist/module/camera/index.d.ts +7 -3
- package/dist/module/camera/index.js +26 -14
- package/dist/module/camera/index.js.map +1 -1
- package/dist/module/environment/index.d.ts +5 -6
- package/dist/module/environment/index.js +8 -4
- package/dist/module/environment/index.js.map +1 -1
- package/dist/module/scene/index.d.ts +1 -3
- package/dist/module/scene/index.js +3 -4
- package/dist/module/scene/index.js.map +1 -1
- package/dist/sdkEntry.d.ts +3 -36
- package/dist/sdkEntry.js +37 -100
- package/dist/sdkEntry.js.map +1 -1
- package/dist/utils/abstract.d.ts +6 -0
- package/dist/utils/abstract.js +24 -0
- package/dist/utils/abstract.js.map +1 -0
- package/package.json +3 -3
package/dist/anov3d.d.ts
ADDED
|
@@ -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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"}
|
package/dist/applicationApi.d.ts
CHANGED
|
@@ -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
|
package/dist/applicationApi.js
CHANGED
|
@@ -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
|
|
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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"}
|
package/dist/factory/3d.js
CHANGED
|
@@ -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
|
/**
|
package/dist/factory/3d.js.map
CHANGED
|
@@ -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,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 {
|
|
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
|
-
|
|
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(
|
|
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
|
|
19
|
-
this.
|
|
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.
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
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
|
-
|
|
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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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(
|
|
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(
|
|
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.
|
|
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","
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
101
|
+
factoryGlobalObject.factory3D.toggleTag(params.name);
|
|
103
102
|
}
|
|
104
103
|
}]);
|
|
105
104
|
return Scene;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Grow","MessageType","sendToMessage","EMessageStatus","
|
|
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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"}
|
package/dist/sdkEntry.d.ts
CHANGED
|
@@ -1,38 +1,5 @@
|
|
|
1
|
-
import
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
|
18
|
-
import
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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(
|
|
94
|
-
|
|
95
|
-
|
|
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
|
package/dist/sdkEntry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
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,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-
|
|
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-
|
|
24
|
-
"@anov/3d-
|
|
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"
|