@anov/3d 0.0.4-alpha16 → 0.0.4-alpha18
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/applicationApi.d.ts +47 -0
- package/dist/applicationApi.js +9 -6
- package/dist/applicationApi.js.map +1 -0
- package/dist/hooksManager.js +2 -1
- package/dist/hooksManager.js.map +1 -0
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -0
- package/dist/messageStatus.js +2 -1
- package/dist/messageStatus.js.map +1 -0
- package/dist/module/camera/index.d.ts +53 -0
- package/dist/module/camera/index.js +29 -23
- package/dist/module/camera/index.js.map +1 -0
- package/dist/module/environment/index.d.ts +38 -0
- package/dist/module/environment/index.js +35 -5
- package/dist/module/environment/index.js.map +1 -0
- package/dist/module/environment/time/index.js +2 -1
- package/dist/module/environment/time/index.js.map +1 -0
- package/dist/module/environment/weather/type.js +2 -1
- package/dist/module/environment/weather/type.js.map +1 -0
- package/dist/module/eventBus/index.d.ts +24 -0
- package/dist/module/eventBus/index.js +4 -3
- package/dist/module/eventBus/index.js.map +1 -0
- package/dist/module/scene/index.d.ts +8 -0
- package/dist/module/scene/index.js +77 -0
- package/dist/module/scene/index.js.map +1 -0
- package/dist/sdkEntry.d.ts +29 -0
- package/dist/sdkEntry.js +16 -5
- package/dist/sdkEntry.js.map +1 -0
- package/dist/utils/index.js +2 -1
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/messageFn.d.ts +12 -0
- package/dist/utils/messageFn.js +8 -9
- package/dist/utils/messageFn.js.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import Anov3D from './index';
|
|
2
|
+
declare type ApplicationOptions = {
|
|
3
|
+
el: HTMLElement;
|
|
4
|
+
};
|
|
5
|
+
export declare type InitOptions = {
|
|
6
|
+
camera?: {
|
|
7
|
+
fov?: number;
|
|
8
|
+
near?: number;
|
|
9
|
+
far?: number;
|
|
10
|
+
position?: [
|
|
11
|
+
number,
|
|
12
|
+
number,
|
|
13
|
+
number
|
|
14
|
+
];
|
|
15
|
+
target?: [
|
|
16
|
+
number,
|
|
17
|
+
number,
|
|
18
|
+
number
|
|
19
|
+
];
|
|
20
|
+
};
|
|
21
|
+
size?: {
|
|
22
|
+
width: number;
|
|
23
|
+
height: number;
|
|
24
|
+
};
|
|
25
|
+
environment?: {
|
|
26
|
+
weather?: string;
|
|
27
|
+
time?: number;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
declare class Application {
|
|
31
|
+
private container;
|
|
32
|
+
iEngine: Anov3D | undefined;
|
|
33
|
+
constructor(opts: ApplicationOptions);
|
|
34
|
+
private init;
|
|
35
|
+
sendMessage(req: {
|
|
36
|
+
name: string;
|
|
37
|
+
id: string;
|
|
38
|
+
params: any;
|
|
39
|
+
}): void;
|
|
40
|
+
receiveMessage(eventName: string, cb: (params: any) => void): void;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* createInstance
|
|
44
|
+
* @returns
|
|
45
|
+
*/
|
|
46
|
+
export declare const createInstance: (opts: ApplicationOptions) => Application;
|
|
47
|
+
export {};
|
package/dist/applicationApi.js
CHANGED
|
@@ -8,7 +8,7 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
|
|
|
8
8
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
9
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
10
|
import { utils } from '@anov/3d-core';
|
|
11
|
-
import { getFnByFnkey
|
|
11
|
+
import { getFnByFnkey } from "./utils/index";
|
|
12
12
|
import { MessageType, sendToMessage } from "./utils/messageFn";
|
|
13
13
|
import { EMessageStatus } from "./messageStatus";
|
|
14
14
|
import Anov3D, { defaultCameraParams } from "./index";
|
|
@@ -24,7 +24,7 @@ var Application = /*#__PURE__*/function () {
|
|
|
24
24
|
key: "init",
|
|
25
25
|
value: function init(params, id) {
|
|
26
26
|
try {
|
|
27
|
-
var _camera$fov, _camera$near, _camera$far,
|
|
27
|
+
var _camera$fov, _camera$near, _camera$far, _params$size$width, _params$size, _params$size$height, _params$size2;
|
|
28
28
|
var _ref = params || {},
|
|
29
29
|
_ref$camera = _ref.camera,
|
|
30
30
|
camera = _ref$camera === void 0 ? {} : _ref$camera;
|
|
@@ -32,8 +32,8 @@ var Application = /*#__PURE__*/function () {
|
|
|
32
32
|
fov: (_camera$fov = camera.fov) !== null && _camera$fov !== void 0 ? _camera$fov : defaultCameraParams.fov,
|
|
33
33
|
near: (_camera$near = camera.near) !== null && _camera$near !== void 0 ? _camera$near : defaultCameraParams.near,
|
|
34
34
|
far: (_camera$far = camera.far) !== null && _camera$far !== void 0 ? _camera$far : defaultCameraParams.far,
|
|
35
|
-
position:
|
|
36
|
-
lookAt:
|
|
35
|
+
position: camera.position,
|
|
36
|
+
lookAt: camera.target
|
|
37
37
|
};
|
|
38
38
|
var anov3D = new Anov3D({
|
|
39
39
|
container: this.container,
|
|
@@ -64,7 +64,9 @@ var Application = /*#__PURE__*/function () {
|
|
|
64
64
|
sendToMessage(MessageType.Api, req.name, EMessageStatus.Success, req.id, res);
|
|
65
65
|
});
|
|
66
66
|
} catch (error) {
|
|
67
|
-
sendToMessage(MessageType.Api, req.name, EMessageStatus.EventHandleFailed, req.id
|
|
67
|
+
sendToMessage(MessageType.Api, req.name, EMessageStatus.EventHandleFailed, req.id, {
|
|
68
|
+
failMessage: error.message
|
|
69
|
+
});
|
|
68
70
|
}
|
|
69
71
|
}
|
|
70
72
|
}, {
|
|
@@ -81,4 +83,5 @@ var Application = /*#__PURE__*/function () {
|
|
|
81
83
|
*/
|
|
82
84
|
export var createInstance = function createInstance(opts) {
|
|
83
85
|
return new Application(opts);
|
|
84
|
-
};
|
|
86
|
+
};
|
|
87
|
+
//# sourceMappingURL=applicationApi.js.map
|
|
@@ -0,0 +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","lookAt","target","anov3D","size","width","clientWidth","height","clientHeight","iEngine","error","EventHandleFailed","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 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 lookAt: camera.target,\n }\n\n const anov3D = new Anov3D({\n container: this.container,\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 })\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 }\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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"}
|
package/dist/hooksManager.js
CHANGED
|
@@ -18,4 +18,5 @@ var registerHooks = function registerHooks() {
|
|
|
18
18
|
(_utils$storeManagemen = utils.storeManagement.get('message')) === null || _utils$storeManagemen === void 0 ? void 0 : _utils$storeManagemen(res);
|
|
19
19
|
});
|
|
20
20
|
};
|
|
21
|
-
export default registerHooks;
|
|
21
|
+
export default registerHooks;
|
|
22
|
+
//# sourceMappingURL=hooksManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["utils","registerHooks","emitter","on","scene","res","eventBus","storeManagement","get","eventMap","name","emit"],"sources":["../src/hooksManager.ts"],"sourcesContent":["import { utils } from '@anov/3d-core'\nimport type EventBus from './module/eventBus'\n\nconst registerHooks = () => {\n // 应用级别\n utils.emitter.on('scene-completed', (scene) => {\n // console.log('场景编译完成', scene)\n })\n\n // 事件\n utils.emitter.on('event', (res: any) => {\n const eventBus = utils.storeManagement.get<EventBus | undefined>('event-bus')\n\n if (eventBus && eventBus.eventMap.get(res.name))\n utils.emitter.emit('message', res)\n })\n\n // 应用sdk\n utils.emitter.on('message', (res) => {\n // @ts-ignore\n utils.storeManagement.get('message')?.(res)\n })\n}\n\nexport default registerHooks\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,eAAe;AAGrC,IAAMC,aAAa,GAAG,SAAhBA,aAAa,GAAS;EAC1B;EACAD,KAAK,CAACE,OAAO,CAACC,EAAE,CAAC,iBAAiB,EAAE,UAACC,KAAK,EAAK;IAC7C;EAAA,CACD,CAAC;;EAEF;EACAJ,KAAK,CAACE,OAAO,CAACC,EAAE,CAAC,OAAO,EAAE,UAACE,GAAQ,EAAK;IACtC,IAAMC,QAAQ,GAAGN,KAAK,CAACO,eAAe,CAACC,GAAG,CAAuB,WAAW,CAAC;IAE7E,IAAIF,QAAQ,IAAIA,QAAQ,CAACG,QAAQ,CAACD,GAAG,CAACH,GAAG,CAACK,IAAI,CAAC,EAC7CV,KAAK,CAACE,OAAO,CAACS,IAAI,CAAC,SAAS,EAAEN,GAAG,CAAC;EACtC,CAAC,CAAC;;EAEF;EACAL,KAAK,CAACE,OAAO,CAACC,EAAE,CAAC,SAAS,EAAE,UAACE,GAAG,EAAK;IAAA;IACnC;IACA,yBAAAL,KAAK,CAACO,eAAe,CAACC,GAAG,CAAC,SAAS,CAAC,0DAApC,sBAAuCH,GAAG,CAAC;EAC7C,CAAC,CAAC;AACJ,CAAC;AAED,eAAeJ,aAAa"}
|
package/dist/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["registerHooks","Anov3D","defaultCameraParams","fov","near","far","position","x","y","z","lookAt","createInstance"],"sources":["../src/index.ts"],"sourcesContent":["import registerHooks from './hooksManager'\nimport Anov3D from './sdkEntry'\n\nexport const defaultCameraParams = {\n fov: 45,\n near: 0.1,\n far: 1000000,\n position: { x: 0, y: 100, z: 200 },\n lookAt: { x: 0, y: 0, z: 0 },\n}\n\nregisterHooks()\n\nexport { createInstance } from './applicationApi'\nexport default Anov3D\n"],"mappings":"AAAA,OAAOA,aAAa;AACpB,OAAOC,MAAM;AAEb,OAAO,IAAMC,mBAAmB,GAAG;EACjCC,GAAG,EAAE,EAAE;EACPC,IAAI,EAAE,GAAG;EACTC,GAAG,EAAE,OAAO;EACZC,QAAQ,EAAE;IAAEC,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE,GAAG;IAAEC,CAAC,EAAE;EAAI,CAAC;EAClCC,MAAM,EAAE;IAAEH,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE;EAAE;AAC7B,CAAC;AAEDT,aAAa,EAAE;AAEf,SAASW,cAAc;AACvB,eAAeV,MAAM"}
|
package/dist/messageStatus.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["messageStatus","Success","code","msg","SerializeFailed","NameNotFound","IDNotFound","ParamsNotFound","MissingKeyField","EventNotRegister","ModuleNotRegister","EventHandleFailed","EMessageStatus","codeMessageMap"],"sources":["../src/messageStatus.ts"],"sourcesContent":["export const messageStatus = {\n Success: {\n code: 200,\n msg: '成功响应',\n },\n SerializeFailed: {\n code: 500,\n msg: '序列化失败',\n },\n NameNotFound: {\n code: 400,\n msg: '未传入事件名称',\n },\n IDNotFound: {\n code: 400,\n msg: '未传入事件ID',\n },\n ParamsNotFound: {\n code: 400,\n msg: '事件参数错误',\n },\n MissingKeyField: {\n code: 400,\n msg: '缺少必选字段',\n },\n EventNotRegister: {\n code: 400,\n msg: '事件未注册',\n },\n ModuleNotRegister: {\n code: 404,\n msg: '模块未注册',\n },\n EventHandleFailed: {\n code: 422,\n msg: '事件处理失败',\n },\n}\n\nexport enum EMessageStatus {\n Success = 200,\n SerializeFailed = 500,\n NameNotFound = 400,\n IDNotFound = 400,\n ParamsNotFound = 400,\n MissingKeyField = 400,\n EventNotRegister = 400,\n ModuleNotRegister = 404,\n EventHandleFailed = 422,\n}\n\nexport const codeMessageMap = {\n 200: '成功响应',\n}"],"mappings":"AAAA,OAAO,IAAMA,aAAa,GAAG;EAC3BC,OAAO,EAAE;IACPC,IAAI,EAAE,GAAG;IACTC,GAAG,EAAE;EACP,CAAC;EACDC,eAAe,EAAE;IACfF,IAAI,EAAE,GAAG;IACTC,GAAG,EAAE;EACP,CAAC;EACDE,YAAY,EAAE;IACZH,IAAI,EAAE,GAAG;IACTC,GAAG,EAAE;EACP,CAAC;EACDG,UAAU,EAAE;IACVJ,IAAI,EAAE,GAAG;IACTC,GAAG,EAAE;EACP,CAAC;EACDI,cAAc,EAAE;IACdL,IAAI,EAAE,GAAG;IACTC,GAAG,EAAE;EACP,CAAC;EACDK,eAAe,EAAE;IACfN,IAAI,EAAE,GAAG;IACTC,GAAG,EAAE;EACP,CAAC;EACDM,gBAAgB,EAAE;IAChBP,IAAI,EAAE,GAAG;IACTC,GAAG,EAAE;EACP,CAAC;EACDO,iBAAiB,EAAE;IACjBR,IAAI,EAAE,GAAG;IACTC,GAAG,EAAE;EACP,CAAC;EACDQ,iBAAiB,EAAE;IACjBT,IAAI,EAAE,GAAG;IACTC,GAAG,EAAE;EACP;AACF,CAAC;AAED,WAAYS,cAAc;AAUzB,WAVWA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;AAAA,GAAdA,cAAc,KAAdA,cAAc;AAY1B,OAAO,IAAMC,cAAc,GAAG;EAC5B,GAAG,EAAE;AACP,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { OrbitControls, PerspectiveCamera } from '@anov/3d-core';
|
|
2
|
+
declare type vector3Array = [number, number, number];
|
|
3
|
+
declare class Camera {
|
|
4
|
+
private camera;
|
|
5
|
+
private controls;
|
|
6
|
+
private isTransitionPeriod;
|
|
7
|
+
constructor(camera: PerspectiveCamera, controls: OrbitControls);
|
|
8
|
+
/**
|
|
9
|
+
* caclCurrentPos
|
|
10
|
+
* @param currentPos
|
|
11
|
+
* @returns
|
|
12
|
+
*/
|
|
13
|
+
private caclCurrentPos;
|
|
14
|
+
/**
|
|
15
|
+
* handle camera changed
|
|
16
|
+
*/
|
|
17
|
+
private handleChanged;
|
|
18
|
+
/**
|
|
19
|
+
* focus On Position
|
|
20
|
+
* @param params
|
|
21
|
+
*/
|
|
22
|
+
focus(params: {
|
|
23
|
+
position: vector3Array | vector3Array[];
|
|
24
|
+
pitch?: number;
|
|
25
|
+
duration?: number;
|
|
26
|
+
}): Promise<unknown>;
|
|
27
|
+
/**
|
|
28
|
+
* set camera
|
|
29
|
+
* @param params
|
|
30
|
+
*/
|
|
31
|
+
set(params: {
|
|
32
|
+
position: vector3Array;
|
|
33
|
+
target: vector3Array;
|
|
34
|
+
isTrigger?: boolean;
|
|
35
|
+
duration?: number;
|
|
36
|
+
}): Promise<unknown>;
|
|
37
|
+
/**
|
|
38
|
+
* get Camera info
|
|
39
|
+
* @returns
|
|
40
|
+
*/
|
|
41
|
+
get(): {
|
|
42
|
+
position: number[];
|
|
43
|
+
target: number[];
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* interpolation move camera
|
|
47
|
+
* @param position
|
|
48
|
+
* @param target
|
|
49
|
+
* @param options
|
|
50
|
+
*/
|
|
51
|
+
private moveCameraTo;
|
|
52
|
+
}
|
|
53
|
+
export default Camera;
|
|
@@ -41,10 +41,6 @@ var Camera = /*#__PURE__*/function () {
|
|
|
41
41
|
|
|
42
42
|
var lastPosition = directionVector.multiplyScalar(cameraToCenterDistance).add(center);
|
|
43
43
|
var lastLookat = center;
|
|
44
|
-
|
|
45
|
-
// const box3helper = new Box3Helper(box, new Color(0xFFFF00))
|
|
46
|
-
// use.useScene().scene!.add(box3helper)
|
|
47
|
-
|
|
48
44
|
return {
|
|
49
45
|
lastPosition: lastPosition,
|
|
50
46
|
lastLookat: lastLookat
|
|
@@ -63,8 +59,8 @@ var Camera = /*#__PURE__*/function () {
|
|
|
63
59
|
var lookat = _this.controls.target;
|
|
64
60
|
var position = _this.camera.position;
|
|
65
61
|
sendToMessage(MessageType.Event, 'onCameraChanged', EMessageStatus.Success, undefined, {
|
|
66
|
-
position:
|
|
67
|
-
target:
|
|
62
|
+
position: position.toArray(),
|
|
63
|
+
target: lookat.toArray()
|
|
68
64
|
});
|
|
69
65
|
}
|
|
70
66
|
});
|
|
@@ -75,11 +71,10 @@ var Camera = /*#__PURE__*/function () {
|
|
|
75
71
|
* @param params
|
|
76
72
|
*/
|
|
77
73
|
}, {
|
|
78
|
-
key: "
|
|
79
|
-
value: function
|
|
74
|
+
key: "focus",
|
|
75
|
+
value: function focus(params) {
|
|
80
76
|
var _this2 = this;
|
|
81
|
-
|
|
82
|
-
return new Promise(function (res, _) {
|
|
77
|
+
return new Promise(function (res) {
|
|
83
78
|
var position = params.position,
|
|
84
79
|
pitch = params.pitch,
|
|
85
80
|
duration = params.duration;
|
|
@@ -91,13 +86,19 @@ var Camera = /*#__PURE__*/function () {
|
|
|
91
86
|
var position = _ref2.position,
|
|
92
87
|
lookat = _ref2.lookat;
|
|
93
88
|
sendToMessage(MessageType.Event, 'onCameraChanged', EMessageStatus.Success, undefined, {
|
|
94
|
-
position:
|
|
95
|
-
target:
|
|
89
|
+
position: position.toArray(),
|
|
90
|
+
target: lookat.toArray()
|
|
96
91
|
});
|
|
97
92
|
},
|
|
98
93
|
onComplate: function onComplate() {
|
|
94
|
+
var _params$duration;
|
|
99
95
|
res({
|
|
100
|
-
|
|
96
|
+
position: _this2.camera.position.toArray(),
|
|
97
|
+
target: _this2.controls.target.toArray(),
|
|
98
|
+
isTrigger: true,
|
|
99
|
+
duration: (_params$duration = params.duration) !== null && _params$duration !== void 0 ? _params$duration : 0,
|
|
100
|
+
userInput: true,
|
|
101
|
+
pitch: pitch !== null && pitch !== void 0 ? pitch : 0
|
|
101
102
|
});
|
|
102
103
|
}
|
|
103
104
|
};
|
|
@@ -110,7 +111,7 @@ var Camera = /*#__PURE__*/function () {
|
|
|
110
111
|
_this2.moveCameraTo(lastPosition, lastLookat, moveOptions());
|
|
111
112
|
} else {
|
|
112
113
|
var _currentPos = position;
|
|
113
|
-
_this2.moveCameraTo(_this2.camera.position, new Vector3(_currentPos
|
|
114
|
+
_this2.moveCameraTo(_this2.camera.position, new Vector3().fromArray(_currentPos), moveOptions());
|
|
114
115
|
}
|
|
115
116
|
});
|
|
116
117
|
}
|
|
@@ -120,10 +121,9 @@ var Camera = /*#__PURE__*/function () {
|
|
|
120
121
|
* @param params
|
|
121
122
|
*/
|
|
122
123
|
}, {
|
|
123
|
-
key: "
|
|
124
|
-
value: function
|
|
124
|
+
key: "set",
|
|
125
|
+
value: function set(params) {
|
|
125
126
|
var _this3 = this;
|
|
126
|
-
// eslint-disable-next-line promise/param-names
|
|
127
127
|
return new Promise(function (res, _) {
|
|
128
128
|
var _ref3;
|
|
129
129
|
_this3.moveCameraTo(new Vector3(params.position[0], params.position[1], params.position[2]), new Vector3(params.target[0], params.target[1], params.target[2]), {
|
|
@@ -132,13 +132,18 @@ var Camera = /*#__PURE__*/function () {
|
|
|
132
132
|
var position = _ref4.position,
|
|
133
133
|
lookat = _ref4.lookat;
|
|
134
134
|
params.isTrigger && sendToMessage(MessageType.Event, 'onCameraChanged', EMessageStatus.Success, undefined, {
|
|
135
|
-
position:
|
|
136
|
-
target:
|
|
135
|
+
position: position.toArray(),
|
|
136
|
+
target: lookat.toArray()
|
|
137
137
|
});
|
|
138
138
|
},
|
|
139
139
|
onComplate: function onComplate() {
|
|
140
|
+
var _params$duration2;
|
|
140
141
|
res({
|
|
141
|
-
|
|
142
|
+
position: _this3.camera.position.toArray(),
|
|
143
|
+
target: _this3.controls.target.toArray(),
|
|
144
|
+
isTrigger: true,
|
|
145
|
+
duration: (_params$duration2 = params.duration) !== null && _params$duration2 !== void 0 ? _params$duration2 : 0,
|
|
146
|
+
userInput: true
|
|
142
147
|
});
|
|
143
148
|
}
|
|
144
149
|
});
|
|
@@ -150,8 +155,8 @@ var Camera = /*#__PURE__*/function () {
|
|
|
150
155
|
* @returns
|
|
151
156
|
*/
|
|
152
157
|
}, {
|
|
153
|
-
key: "
|
|
154
|
-
value: function
|
|
158
|
+
key: "get",
|
|
159
|
+
value: function get() {
|
|
155
160
|
return {
|
|
156
161
|
position: [this.camera.position.x, this.camera.position.y, this.camera.position.z],
|
|
157
162
|
target: [this.controls.target.x, this.controls.target.y, this.controls.target.z]
|
|
@@ -207,4 +212,5 @@ var Camera = /*#__PURE__*/function () {
|
|
|
207
212
|
}]);
|
|
208
213
|
return Camera;
|
|
209
214
|
}();
|
|
210
|
-
export default Camera;
|
|
215
|
+
export default Camera;
|
|
216
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Box3","Vector3","TWEEN","MessageType","sendToMessage","EMessageStatus","Camera","camera","controls","handleChanged","currentPos","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","addEventListener","isTransitionPeriod","lookat","Event","Success","undefined","toArray","params","Promise","res","pitch","duration","moveOptions","onUpdate","onComplate","isTrigger","userInput","Array","isArray","caclCurrentPos","moveCameraTo","fromArray","_","x","y","z","options","currentPoition","currentPositionInterpolation","copy","Tween","t","to","onStart","enabled","easing","Easing","Quadratic","InOut","currentPosition","lerpVectors","onComplete","setTimeout","start"],"sources":["../../../src/module/camera/index.ts"],"sourcesContent":["import type { OrbitControls, PerspectiveCamera } from '@anov/3d-core'\nimport { Box3, 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[]) {\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 = center\n\n return {\n lastPosition,\n lastLookat,\n }\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: { position: vector3Array | vector3Array[]; pitch?: number; duration?: number }) {\n return new Promise((res) => {\n const { 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 ?? 0,\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)\n\n this.moveCameraTo(\n lastPosition,\n lastLookat,\n moveOptions(),\n )\n }\n else {\n const currentPos = position as vector3Array\n this.moveCameraTo(\n this.camera.position,\n new Vector3().fromArray(currentPos),\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 {\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, 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() }).to({ t: 1, lookat: target }, 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 }) => {\n this.controls.target.copy(lookat)\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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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
declare type EnvironmentOptions = {
|
|
2
|
+
weather?: string;
|
|
3
|
+
time?: number;
|
|
4
|
+
};
|
|
5
|
+
declare class Environment {
|
|
6
|
+
private opts?;
|
|
7
|
+
private setDate;
|
|
8
|
+
private snow;
|
|
9
|
+
private rain;
|
|
10
|
+
private cloudReturn;
|
|
11
|
+
private sky;
|
|
12
|
+
constructor(opts?: EnvironmentOptions);
|
|
13
|
+
private initConfigSet;
|
|
14
|
+
private setWeatherStrategy;
|
|
15
|
+
/**
|
|
16
|
+
* setTime
|
|
17
|
+
* @param newTime
|
|
18
|
+
* @param changeTime
|
|
19
|
+
*/
|
|
20
|
+
setTime(params: {
|
|
21
|
+
time: number;
|
|
22
|
+
duration?: number;
|
|
23
|
+
}): {
|
|
24
|
+
newTime: number;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* setWeather
|
|
28
|
+
* @param type
|
|
29
|
+
* @param changeTime
|
|
30
|
+
*/
|
|
31
|
+
setWeather(params: {
|
|
32
|
+
weatherType: string;
|
|
33
|
+
duration?: number;
|
|
34
|
+
}): {
|
|
35
|
+
weatherType: string;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
export default Environment;
|
|
@@ -1,4 +1,6 @@
|
|
|
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; }
|
|
2
4
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
3
5
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
4
6
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
@@ -14,9 +16,10 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
|
|
|
14
16
|
import { Rain as _Rain, Snow as _Snow, createSkyCloud } from '@anov/3d-ability';
|
|
15
17
|
import createTimeSkySystem from "./time";
|
|
16
18
|
var Environment = /*#__PURE__*/function () {
|
|
17
|
-
function Environment() {
|
|
19
|
+
function Environment(opts) {
|
|
18
20
|
var _this = this;
|
|
19
21
|
_classCallCheck(this, Environment);
|
|
22
|
+
_defineProperty(this, "opts", void 0);
|
|
20
23
|
_defineProperty(this, "setDate", void 0);
|
|
21
24
|
_defineProperty(this, "snow", null);
|
|
22
25
|
_defineProperty(this, "rain", null);
|
|
@@ -57,8 +60,28 @@ var Environment = /*#__PURE__*/function () {
|
|
|
57
60
|
sky = _createTimeSkySystem2[2];
|
|
58
61
|
this.setDate = setDate;
|
|
59
62
|
this.sky = sky;
|
|
63
|
+
this.opts = _objectSpread({
|
|
64
|
+
weather: 'Rain',
|
|
65
|
+
time: 1700
|
|
66
|
+
}, opts);
|
|
67
|
+
this.initConfigSet();
|
|
60
68
|
}
|
|
61
69
|
_createClass(Environment, [{
|
|
70
|
+
key: "initConfigSet",
|
|
71
|
+
value: function initConfigSet() {
|
|
72
|
+
var _ref = this.opts,
|
|
73
|
+
weather = _ref.weather,
|
|
74
|
+
time = _ref.time;
|
|
75
|
+
this.setWeather({
|
|
76
|
+
weatherType: weather,
|
|
77
|
+
duration: 0
|
|
78
|
+
});
|
|
79
|
+
this.setTime({
|
|
80
|
+
time: time,
|
|
81
|
+
duration: 0
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}, {
|
|
62
85
|
key: "setTime",
|
|
63
86
|
value:
|
|
64
87
|
/**
|
|
@@ -67,13 +90,16 @@ var Environment = /*#__PURE__*/function () {
|
|
|
67
90
|
* @param changeTime
|
|
68
91
|
*/
|
|
69
92
|
function setTime(params) {
|
|
70
|
-
if (params.
|
|
93
|
+
if (params.time === undefined || params.time > 2400 && params.time < 0) {
|
|
94
|
+
console.error('time must be between 0 and 2400');
|
|
95
|
+
throw new Error('time must be between 0 and 2400');
|
|
96
|
+
}
|
|
71
97
|
var date = new Date();
|
|
72
98
|
date.setHours(0, 0, 0, 0);
|
|
73
|
-
date.setTime(date.getTime() + Math.floor(86400000 * params.
|
|
99
|
+
date.setTime(date.getTime() + Math.floor(86400000 * params.time / 2400));
|
|
74
100
|
this.setDate(date);
|
|
75
101
|
return {
|
|
76
|
-
newTime: params.
|
|
102
|
+
newTime: params.time
|
|
77
103
|
};
|
|
78
104
|
}
|
|
79
105
|
|
|
@@ -87,8 +113,12 @@ var Environment = /*#__PURE__*/function () {
|
|
|
87
113
|
value: function setWeather(params) {
|
|
88
114
|
// @ts-ignore
|
|
89
115
|
this.setWeatherStrategy[params.weatherType]();
|
|
116
|
+
return {
|
|
117
|
+
weatherType: params.weatherType
|
|
118
|
+
};
|
|
90
119
|
}
|
|
91
120
|
}]);
|
|
92
121
|
return Environment;
|
|
93
122
|
}();
|
|
94
|
-
export default Environment;
|
|
123
|
+
export default Environment;
|
|
124
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Rain","Snow","createSkyCloud","createTimeSkySystem","Environment","opts","snow","continue","rain","Cloudy","cloudReturn","Clear_Skies","stop","_","clear","Date","setDate","sun","sky","weather","time","initConfigSet","setWeather","weatherType","duration","setTime","params","undefined","console","error","Error","date","setHours","getTime","Math","floor","newTime","setWeatherStrategy"],"sources":["../../../src/module/environment/index.ts"],"sourcesContent":["import type { Vector3, lib } from '@anov/3d-core'\nimport { use } from '@anov/3d-core'\nimport { Rain, Snow, createSkyCloud } 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: Snow | null = null\n private rain: Rain | null = null\n private cloudReturn: ReturnType<typeof createSkyCloud> | null = null\n private sky: lib.Sky\n\n constructor(opts?: EnvironmentOptions) {\n const [setDate, sun, sky] = createTimeSkySystem(new Date(), 40, 116, 100)\n\n this.setDate = setDate as any\n this.sky = sky\n\n this.opts = {\n weather: 'Rain',\n time: 1700,\n ...opts,\n }\n\n this.initConfigSet()\n }\n\n private initConfigSet() {\n const { weather, time } = this.opts as Required<EnvironmentOptions>\n\n this.setWeather({ weatherType: weather, duration: 0 })\n this.setTime({ time, duration: 0 })\n }\n\n private setWeatherStrategy = {\n Snow: () => {\n !this.snow && (this.snow = new Snow())\n this.snow.continue()\n },\n Rain: () => {\n !this.rain && (this.rain = new Rain())\n this.rain.continue()\n\n // renderer.toneMappingExposure\n },\n Cloudy: () => {\n !this.cloudReturn && (this.cloudReturn = createSkyCloud())\n },\n Clear_Skies: () => {\n this.snow?.stop()\n this.rain?.stop()\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 console.error('time must be between 0 and 2400')\n throw new Error('time must be between 0 and 2400')\n }\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 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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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createSkySystem","createTimeSkySystem","date","latitude","longitude","sunRadius","setDate","sun","sky"],"sources":["../../../../src/module/environment/time/index.ts"],"sourcesContent":["import { createSkySystem } from '@anov/3d-ability'\n\n/**\n * create time sky system\n * @param date\n * @param latitude\n * @param longitude\n * @param sunRadius\n * @returns\n */\nconst createTimeSkySystem = (date: Date, latitude = 40, longitude = 116, sunRadius = 100) => {\n const [setDate, sun, sky] = createSkySystem(date, latitude, longitude, sunRadius)\n\n return [setDate, sun, sky]\n}\n\nexport default createTimeSkySystem"],"mappings":";;;;;;AAAA,SAASA,eAAe,QAAQ,kBAAkB;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmB,CAAIC,IAAU,EAAsD;EAAA,IAApDC,QAAQ,uEAAG,EAAE;EAAA,IAAEC,SAAS,uEAAG,GAAG;EAAA,IAAEC,SAAS,uEAAG,GAAG;EACtF,uBAA4BL,eAAe,CAACE,IAAI,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,SAAS,CAAC;IAAA;IAA1EC,OAAO;IAAEC,GAAG;IAAEC,GAAG;EAExB,OAAO,CAACF,OAAO,EAAEC,GAAG,EAAEC,GAAG,CAAC;AAC5B,CAAC;AAED,eAAeP,mBAAmB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["EWeatherType","Clear_Skies","Cloudy","Foggy","Overcast","Partly_Cloudy","Rain","Rain_Light","Rain_Thunderstorm","Sand_Dust_Calm","Sand_Dust_Storm","Snow","Snow_Blizzard","Snow_Light"],"sources":["../../../../src/module/environment/weather/type.ts"],"sourcesContent":["export const EWeatherType = {\n Clear_Skies: 'Clear_Skies', // 晴天\n Cloudy: 'Cloudy', // 多云\n Foggy: 'Foggy', // 有雾\n Overcast: 'Overcast', // 阴天\n Partly_Cloudy: 'Partly_Cloudy', // 少云\n Rain: 'Rain', // 雨\n Rain_Light: 'Rain_Light', // 小雨\n Rain_Thunderstorm: 'Rain_Thunderstorm', // 强雷阵雨\n Sand_Dust_Calm: 'Sand_Dust_Calm', // 沙尘暴\n Sand_Dust_Storm: 'Sand_Dust_Storm', // 强沙尘暴\n Snow: 'Snow', // 下雪\n Snow_Blizzard: 'Snow_Blizzard', // 暴雪\n Snow_Light: 'Snow_Light', // 小雪\n}\n"],"mappings":"AAAA,OAAO,IAAMA,YAAY,GAAG;EAC1BC,WAAW,EAAE,aAAa;EAAE;EAC5BC,MAAM,EAAE,QAAQ;EAAE;EAClBC,KAAK,EAAE,OAAO;EAAE;EAChBC,QAAQ,EAAE,UAAU;EAAE;EACtBC,aAAa,EAAE,eAAe;EAAE;EAChCC,IAAI,EAAE,MAAM;EAAE;EACdC,UAAU,EAAE,YAAY;EAAE;EAC1BC,iBAAiB,EAAE,mBAAmB;EAAE;EACxCC,cAAc,EAAE,gBAAgB;EAAE;EAClCC,eAAe,EAAE,iBAAiB;EAAE;EACpCC,IAAI,EAAE,MAAM;EAAE;EACdC,aAAa,EAAE,eAAe;EAAE;EAChCC,UAAU,EAAE,YAAY,CAAE;AAC5B,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* notes: 区别于前端概念,3端统一API特定
|
|
3
|
+
*/
|
|
4
|
+
declare class EventBus {
|
|
5
|
+
eventMap: Map<string, boolean>;
|
|
6
|
+
constructor();
|
|
7
|
+
/**
|
|
8
|
+
* open event
|
|
9
|
+
* @param params
|
|
10
|
+
*/
|
|
11
|
+
on(params: {
|
|
12
|
+
eventName: string;
|
|
13
|
+
entityId?: string;
|
|
14
|
+
}): {
|
|
15
|
+
eventName: string;
|
|
16
|
+
};
|
|
17
|
+
off(params: {
|
|
18
|
+
eventName: string;
|
|
19
|
+
entityId?: string;
|
|
20
|
+
}): {
|
|
21
|
+
eventName: string;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export default EventBus;
|
|
@@ -21,7 +21,7 @@ var EventBus = /*#__PURE__*/function () {
|
|
|
21
21
|
_createClass(EventBus, [{
|
|
22
22
|
key: "on",
|
|
23
23
|
value: function on(params) {
|
|
24
|
-
this.eventMap.set("
|
|
24
|
+
this.eventMap.set("".concat(params.eventName), true);
|
|
25
25
|
return {
|
|
26
26
|
eventName: params.eventName
|
|
27
27
|
};
|
|
@@ -29,7 +29,7 @@ var EventBus = /*#__PURE__*/function () {
|
|
|
29
29
|
}, {
|
|
30
30
|
key: "off",
|
|
31
31
|
value: function off(params) {
|
|
32
|
-
this.eventMap.set("
|
|
32
|
+
this.eventMap.set("".concat(params.eventName), false);
|
|
33
33
|
return {
|
|
34
34
|
eventName: params.eventName
|
|
35
35
|
};
|
|
@@ -37,4 +37,5 @@ var EventBus = /*#__PURE__*/function () {
|
|
|
37
37
|
}]);
|
|
38
38
|
return EventBus;
|
|
39
39
|
}();
|
|
40
|
-
export default EventBus;
|
|
40
|
+
export default EventBus;
|
|
41
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["EventBus","Map","params","eventMap","set","eventName"],"sources":["../../../src/module/eventBus/index.ts"],"sourcesContent":["/**\n * notes: 区别于前端概念,3端统一API特定\n */\n\nclass EventBus {\n eventMap: Map<string, boolean> = new Map()\n\n constructor() {}\n\n /**\n * open event\n * @param params\n */\n on(params: { eventName: string; entityId?: string }) {\n this.eventMap.set(`${params.eventName}`, true)\n\n return {\n eventName: params.eventName,\n }\n }\n\n off(params: { eventName: string; entityId?: string }) {\n this.eventMap.set(`${params.eventName}`, false)\n\n return {\n eventName: params.eventName,\n }\n }\n}\n\nexport default EventBus"],"mappings":";;;;;;;AAAA;AACA;AACA;AAFA,IAIMA,QAAQ;EAGZ,oBAAc;IAAA;IAAA,kCAFmB,IAAIC,GAAG,EAAE;EAE3B;;EAEf;AACF;AACA;AACA;EAHE;IAAA;IAAA,OAIA,YAAGC,MAAgD,EAAE;MACnD,IAAI,CAACC,QAAQ,CAACC,GAAG,WAAIF,MAAM,CAACG,SAAS,GAAI,IAAI,CAAC;MAE9C,OAAO;QACLA,SAAS,EAAEH,MAAM,CAACG;MACpB,CAAC;IACH;EAAC;IAAA;IAAA,OAED,aAAIH,MAAgD,EAAE;MACpD,IAAI,CAACC,QAAQ,CAACC,GAAG,WAAIF,MAAM,CAACG,SAAS,GAAI,KAAK,CAAC;MAE/C,OAAO;QACLA,SAAS,EAAEH,MAAM,CAACG;MACpB,CAAC;IACH;EAAC;EAAA;AAAA;AAGH,eAAeL,QAAQ"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
2
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
3
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
4
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
5
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
7
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
8
|
+
import { Grow } from '@anov/3d-ability';
|
|
9
|
+
import { MessageType, sendToMessage } from "../../utils/messageFn";
|
|
10
|
+
import { EMessageStatus } from "../../messageStatus";
|
|
11
|
+
export var Scene = /*#__PURE__*/function () {
|
|
12
|
+
function Scene() {
|
|
13
|
+
_classCallCheck(this, Scene);
|
|
14
|
+
_defineProperty(this, "grow", void 0);
|
|
15
|
+
_defineProperty(this, "opt", void 0);
|
|
16
|
+
this.grow = null;
|
|
17
|
+
this.opt = null;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// [API:场景进出场动画]
|
|
21
|
+
_createClass(Scene, [{
|
|
22
|
+
key: "growIn",
|
|
23
|
+
value: function growIn(opt) {
|
|
24
|
+
var _this = this;
|
|
25
|
+
return new Promise(function (res, _) {
|
|
26
|
+
Object.assign(_this.opt, opt, {
|
|
27
|
+
onGrowInStart: function onGrowInStart() {
|
|
28
|
+
opt.onGrowInStart && opt.onGrowInStart();
|
|
29
|
+
sendToMessage(MessageType.Event, 'onGrowInStart', EMessageStatus.Success);
|
|
30
|
+
},
|
|
31
|
+
onGrowInCompleted: function onGrowInCompleted() {
|
|
32
|
+
opt.onGrowInCompleted && opt.onGrowInCompleted();
|
|
33
|
+
sendToMessage(MessageType.Event, 'onGrowInCompleted', EMessageStatus.Success);
|
|
34
|
+
res({
|
|
35
|
+
success: true
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
_this.grow = new Grow(_this.opt);
|
|
40
|
+
_this.grow.in();
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// [API:场景进出场动画]
|
|
45
|
+
}, {
|
|
46
|
+
key: "growOut",
|
|
47
|
+
value: function growOut(opt) {
|
|
48
|
+
var _this2 = this;
|
|
49
|
+
return new Promise(function (res, _) {
|
|
50
|
+
// 未设置进场,不处理
|
|
51
|
+
if (_this2.grow) {
|
|
52
|
+
Object.assign(_this2.opt, opt, {
|
|
53
|
+
onGrowOutStart: function onGrowOutStart() {
|
|
54
|
+
opt.onGrowOutStart && opt.onGrowOutStart();
|
|
55
|
+
sendToMessage(MessageType.Event, 'onGrowOutStart', EMessageStatus.Success);
|
|
56
|
+
},
|
|
57
|
+
onGrowOutCompleted: function onGrowOutCompleted() {
|
|
58
|
+
opt.onGrowOutCompleted && opt.onGrowOutCompleted();
|
|
59
|
+
sendToMessage(MessageType.Event, 'onGrowOutCompleted', EMessageStatus.Success);
|
|
60
|
+
res({
|
|
61
|
+
success: true
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
_this2.grow.out();
|
|
66
|
+
} else {
|
|
67
|
+
// eslint-disable-next-line prefer-promise-reject-errors
|
|
68
|
+
_({
|
|
69
|
+
message: 'scene not gorwIn'
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}]);
|
|
75
|
+
return Scene;
|
|
76
|
+
}();
|
|
77
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Grow","MessageType","sendToMessage","EMessageStatus","Scene","grow","opt","Promise","res","_","Object","assign","onGrowInStart","Event","Success","onGrowInCompleted","success","in","onGrowOutStart","onGrowOutCompleted","out","message"],"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'\n\nexport class Scene {\n private grow: Grow\n private opt: GrowOption\n\n constructor() {\n this.grow = null\n this.opt = null\n }\n\n // [API:场景进出场动画]\n growIn(opt: GrowOption) {\n return new Promise ((res, _) => {\n Object.assign(this.opt, opt,\n {\n onGrowInStart: () => {\n opt.onGrowInStart && opt.onGrowInStart()\n sendToMessage(MessageType.Event, 'onGrowInStart', EMessageStatus.Success)\n },\n onGrowInCompleted: () => {\n opt.onGrowInCompleted && opt.onGrowInCompleted()\n sendToMessage(MessageType.Event, 'onGrowInCompleted', EMessageStatus.Success)\n res({ success: true })\n },\n })\n\n this.grow = new Grow(this.opt)\n this.grow.in()\n })\n }\n\n // [API:场景进出场动画]\n growOut(opt?: GrowOption) {\n return new Promise ((res, _) => {\n // 未设置进场,不处理\n if (this.grow) {\n Object.assign(this.opt, opt,\n {\n onGrowOutStart: () => {\n opt.onGrowOutStart && opt.onGrowOutStart()\n sendToMessage(MessageType.Event, 'onGrowOutStart', EMessageStatus.Success)\n },\n onGrowOutCompleted: () => {\n opt.onGrowOutCompleted && opt.onGrowOutCompleted()\n sendToMessage(MessageType.Event, 'onGrowOutCompleted', EMessageStatus.Success)\n res({ success: true })\n },\n })\n this.grow.out()\n }\n else {\n // eslint-disable-next-line prefer-promise-reject-errors\n _({ message: 'scene not gorwIn' })\n }\n })\n }\n}\n"],"mappings":";;;;;;;AAEA,SAAoCA,IAAI,QAAQ,kBAAkB;AAClE,SAASC,WAAW,EAAEC,aAAa;AACnC,SAASC,cAAc;AAEvB,WAAaC,KAAK;EAIhB,iBAAc;IAAA;IAAA;IAAA;IACZ,IAAI,CAACC,IAAI,GAAG,IAAI;IAChB,IAAI,CAACC,GAAG,GAAG,IAAI;EACjB;;EAEA;EAAA;IAAA;IAAA,OACA,gBAAOA,GAAe,EAAE;MAAA;MACtB,OAAO,IAAIC,OAAO,CAAE,UAACC,GAAG,EAAEC,CAAC,EAAK;QAC9BC,MAAM,CAACC,MAAM,CAAC,KAAI,CAACL,GAAG,EAAEA,GAAG,EACzB;UACEM,aAAa,EAAE,yBAAM;YACnBN,GAAG,CAACM,aAAa,IAAIN,GAAG,CAACM,aAAa,EAAE;YACxCV,aAAa,CAACD,WAAW,CAACY,KAAK,EAAE,eAAe,EAAEV,cAAc,CAACW,OAAO,CAAC;UAC3E,CAAC;UACDC,iBAAiB,EAAE,6BAAM;YACvBT,GAAG,CAACS,iBAAiB,IAAIT,GAAG,CAACS,iBAAiB,EAAE;YAChDb,aAAa,CAACD,WAAW,CAACY,KAAK,EAAE,mBAAmB,EAAEV,cAAc,CAACW,OAAO,CAAC;YAC7EN,GAAG,CAAC;cAAEQ,OAAO,EAAE;YAAK,CAAC,CAAC;UACxB;QACF,CAAC,CAAC;QAEJ,KAAI,CAACX,IAAI,GAAG,IAAIL,IAAI,CAAC,KAAI,CAACM,GAAG,CAAC;QAC9B,KAAI,CAACD,IAAI,CAACY,EAAE,EAAE;MAChB,CAAC,CAAC;IACJ;;IAEA;EAAA;IAAA;IAAA,OACA,iBAAQX,GAAgB,EAAE;MAAA;MACxB,OAAO,IAAIC,OAAO,CAAE,UAACC,GAAG,EAAEC,CAAC,EAAK;QAC9B;QACA,IAAI,MAAI,CAACJ,IAAI,EAAE;UACbK,MAAM,CAACC,MAAM,CAAC,MAAI,CAACL,GAAG,EAAEA,GAAG,EACzB;YACEY,cAAc,EAAE,0BAAM;cACpBZ,GAAG,CAACY,cAAc,IAAIZ,GAAG,CAACY,cAAc,EAAE;cAC1ChB,aAAa,CAACD,WAAW,CAACY,KAAK,EAAE,gBAAgB,EAAEV,cAAc,CAACW,OAAO,CAAC;YAC5E,CAAC;YACDK,kBAAkB,EAAE,8BAAM;cACxBb,GAAG,CAACa,kBAAkB,IAAIb,GAAG,CAACa,kBAAkB,EAAE;cAClDjB,aAAa,CAACD,WAAW,CAACY,KAAK,EAAE,oBAAoB,EAAEV,cAAc,CAACW,OAAO,CAAC;cAC9EN,GAAG,CAAC;gBAAEQ,OAAO,EAAE;cAAK,CAAC,CAAC;YACxB;UACF,CAAC,CAAC;UACJ,MAAI,CAACX,IAAI,CAACe,GAAG,EAAE;QACjB,CAAC,MACI;UACH;UACAX,CAAC,CAAC;YAAEY,OAAO,EAAE;UAAmB,CAAC,CAAC;QACpC;MACF,CAAC,CAAC;IACJ;EAAC;EAAA;AAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { SceneControl } from '@anov/3d-core';
|
|
2
|
+
import { Poi } from '@anov/3d-ability';
|
|
3
|
+
import Environment from './module/environment';
|
|
4
|
+
import EventBus from './module/eventBus';
|
|
5
|
+
import Camera from './module/camera';
|
|
6
|
+
import { EWeatherType } from './module/environment/weather/type';
|
|
7
|
+
import type { InitOptions } from './applicationApi';
|
|
8
|
+
import { Scene } from './module/scene';
|
|
9
|
+
export declare type Override<P, S> = Omit<P, keyof S> & S;
|
|
10
|
+
declare type Anov3DOptions = {
|
|
11
|
+
container: HTMLElement;
|
|
12
|
+
size?: {
|
|
13
|
+
width: number;
|
|
14
|
+
height: number;
|
|
15
|
+
};
|
|
16
|
+
camera?: InitOptions['camera'];
|
|
17
|
+
};
|
|
18
|
+
declare class Anov3D {
|
|
19
|
+
private opts;
|
|
20
|
+
sceneControl: SceneControl;
|
|
21
|
+
environment: Environment;
|
|
22
|
+
eventBus: EventBus;
|
|
23
|
+
EWeatherType: typeof EWeatherType;
|
|
24
|
+
poi: Poi;
|
|
25
|
+
camera: Camera;
|
|
26
|
+
scene: Scene;
|
|
27
|
+
constructor(opts: Anov3DOptions);
|
|
28
|
+
}
|
|
29
|
+
export default Anov3D;
|
package/dist/sdkEntry.js
CHANGED
|
@@ -7,22 +7,26 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
|
|
|
7
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
8
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
9
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 { SceneControl, utils } from '@anov/3d-core';
|
|
10
|
+
import { SceneControl, Vector3, use, utils } from '@anov/3d-core';
|
|
11
|
+
import { Poi } from '@anov/3d-ability';
|
|
11
12
|
import Environment from "./module/environment";
|
|
12
13
|
import EventBus from "./module/eventBus";
|
|
13
14
|
import Camera from "./module/camera";
|
|
14
15
|
import { EWeatherType } from "./module/environment/weather/type";
|
|
15
16
|
import { object2Vector3 } from "./utils/index";
|
|
17
|
+
import { Scene } from "./module/scene";
|
|
16
18
|
import { defaultCameraParams } from "./index";
|
|
17
19
|
var Anov3D = /*#__PURE__*/_createClass(function Anov3D(opts) {
|
|
18
|
-
var _camera$fov, _camera$near, _camera$far,
|
|
20
|
+
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;
|
|
19
21
|
_classCallCheck(this, Anov3D);
|
|
20
22
|
_defineProperty(this, "opts", void 0);
|
|
21
23
|
_defineProperty(this, "sceneControl", void 0);
|
|
22
24
|
_defineProperty(this, "environment", void 0);
|
|
23
25
|
_defineProperty(this, "eventBus", void 0);
|
|
24
26
|
_defineProperty(this, "EWeatherType", EWeatherType);
|
|
27
|
+
_defineProperty(this, "poi", void 0);
|
|
25
28
|
_defineProperty(this, "camera", void 0);
|
|
29
|
+
_defineProperty(this, "scene", void 0);
|
|
26
30
|
this.opts = opts;
|
|
27
31
|
var _ref = opts || {},
|
|
28
32
|
_ref$camera = _ref.camera,
|
|
@@ -31,7 +35,7 @@ var Anov3D = /*#__PURE__*/_createClass(function Anov3D(opts) {
|
|
|
31
35
|
fov: (_camera$fov = camera.fov) !== null && _camera$fov !== void 0 ? _camera$fov : defaultCameraParams.fov,
|
|
32
36
|
near: (_camera$near = camera.near) !== null && _camera$near !== void 0 ? _camera$near : defaultCameraParams.near,
|
|
33
37
|
far: (_camera$far = camera.far) !== null && _camera$far !== void 0 ? _camera$far : defaultCameraParams.far,
|
|
34
|
-
position:
|
|
38
|
+
position: camera.position ? new Vector3().fromArray(camera.position) : object2Vector3(defaultCameraParams.position)
|
|
35
39
|
};
|
|
36
40
|
var scene = new SceneControl({
|
|
37
41
|
orbitControls: true,
|
|
@@ -46,15 +50,22 @@ var Anov3D = /*#__PURE__*/_createClass(function Anov3D(opts) {
|
|
|
46
50
|
}
|
|
47
51
|
},
|
|
48
52
|
reset: true,
|
|
53
|
+
css3DRenderer: true,
|
|
49
54
|
ambientLight: true
|
|
50
55
|
});
|
|
51
56
|
scene.render(opts.container);
|
|
52
|
-
(
|
|
57
|
+
use.useframe(function () {
|
|
58
|
+
scene.renderer.render(scene.scene, scene.camera);
|
|
59
|
+
});
|
|
60
|
+
(_scene$controls = scene.controls) === null || _scene$controls === void 0 ? void 0 : _scene$controls.target.copy(camera.target ? new Vector3().fromArray(camera.target) : object2Vector3(defaultCameraParams.lookAt));
|
|
53
61
|
utils.emitter.emit('scene-completed', scene);
|
|
54
62
|
this.sceneControl = scene;
|
|
55
63
|
this.environment = new Environment();
|
|
64
|
+
this.poi = new Poi();
|
|
56
65
|
this.eventBus = new EventBus();
|
|
57
66
|
this.camera = new Camera(scene.camera, scene.controls);
|
|
67
|
+
this.scene = new Scene();
|
|
58
68
|
utils.storeManagement.set('event-bus', this.eventBus);
|
|
59
69
|
});
|
|
60
|
-
export default Anov3D;
|
|
70
|
+
export default Anov3D;
|
|
71
|
+
//# sourceMappingURL=sdkEntry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["SceneControl","Vector3","use","utils","Poi","Environment","EventBus","Camera","EWeatherType","object2Vector3","Scene","defaultCameraParams","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","useframe","renderer","controls","target","copy","lookAt","emitter","emit","sceneControl","environment","poi","eventBus","storeManagement","set"],"sources":["../src/sdkEntry.ts"],"sourcesContent":["import { SceneControl, Vector3, use, utils } from '@anov/3d-core'\nimport { Poi } from '@anov/3d-ability'\nimport 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 { 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}\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 camera: Camera\n scene: Scene\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 },\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 use.useframe(() => {\n scene.renderer!.render(scene.scene!, scene.camera!)\n })\n\n scene.controls?.target.copy(camera.target ? new Vector3().fromArray(camera.target) : object2Vector3(defaultCameraParams.lookAt))\n\n utils.emitter.emit('scene-completed', scene)\n\n this.sceneControl = scene\n this.environment = new Environment()\n this.poi = new Poi()\n this.eventBus = new EventBus()\n this.camera = new Camera(scene.camera!, scene.controls!)\n this.scene = new Scene()\n\n utils.storeManagement.set('event-bus', this.eventBus)\n }\n}\n\nexport default Anov3D"],"mappings":"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"}
|
package/dist/utils/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Vector3","messageStatus","MessageType","sendToMessage","getValueByKey","obj","key","undefined","keys","split","middleObj","index","length","currentKey","getFnByFnkey","iEngine","fnkey","id","handleFunction","Api","ModuleNotRegister","code","Error","fnkeyArrary","context","slice","join","bind","object2Vector3","x","y","z"],"sources":["../../src/utils/index.ts"],"sourcesContent":["import { Vector3 } from '@anov/3d-core'\nimport type Anov3D from '..'\nimport { messageStatus } from '../messageStatus'\nimport { MessageType, sendToMessage } from './messageFn'\n\ninterface ObjectType {\n [key: string]: any\n\n}\n\n/**\n * get value by key\n * notic: to mark proxy, so need take it layer by layer\n * @param obj\n * @param key\n */\nexport const getValueByKey = <T extends ObjectType>(obj: T, key: string) => {\n if (!key)\n return undefined\n\n const keys = key.split('.')\n let middleObj = obj\n\n for (let index = 0; index < keys.length; index++) {\n const currentKey = keys[index]\n\n if (typeof middleObj === 'object') {\n if (!(currentKey in (middleObj)))\n return undefined\n else\n middleObj = middleObj[currentKey]\n }\n else {\n return undefined\n }\n }\n\n return middleObj\n}\n\n/**\n * getFnByFnkey\n * @param iEngine\n * @param fnkey\n */\nexport const getFnByFnkey = (iEngine: Anov3D, fnkey: string, id: string) => {\n const handleFunction = getValueByKey(iEngine, fnkey) as any\n\n if (typeof handleFunction !== 'function') {\n sendToMessage(MessageType.Api, fnkey, messageStatus.ModuleNotRegister.code, id)\n throw new Error('this function is not exist')\n }\n\n const fnkeyArrary = fnkey.split('.')\n\n let context: any = iEngine\n\n if (fnkeyArrary.length > 1)\n context = getValueByKey(iEngine, fnkeyArrary.slice(0, fnkeyArrary.length - 1).join('.'))\n\n return handleFunction.bind(context)\n}\n\nexport const object2Vector3 = (obj: { x: number; y: number; z: number }) => {\n return new Vector3(obj.x, obj.y, obj.z)\n}"],"mappings":";AAAA,SAASA,OAAO,QAAQ,eAAe;AAEvC,SAASC,aAAa;AACtB,SAASC,WAAW,EAAEC,aAAa;AAOnC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,aAAa,GAAG,SAAhBA,aAAa,CAA0BC,GAAM,EAAEC,GAAW,EAAK;EAC1E,IAAI,CAACA,GAAG,EACN,OAAOC,SAAS;EAElB,IAAMC,IAAI,GAAGF,GAAG,CAACG,KAAK,CAAC,GAAG,CAAC;EAC3B,IAAIC,SAAS,GAAGL,GAAG;EAEnB,KAAK,IAAIM,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGH,IAAI,CAACI,MAAM,EAAED,KAAK,EAAE,EAAE;IAChD,IAAME,UAAU,GAAGL,IAAI,CAACG,KAAK,CAAC;IAE9B,IAAI,QAAOD,SAAS,MAAK,QAAQ,EAAE;MACjC,IAAI,EAAEG,UAAU,IAAKH,SAAU,CAAC,EAC9B,OAAOH,SAAS,MAEhBG,SAAS,GAAGA,SAAS,CAACG,UAAU,CAAC;IACrC,CAAC,MACI;MACH,OAAON,SAAS;IAClB;EACF;EAEA,OAAOG,SAAS;AAClB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMI,YAAY,GAAG,SAAfA,YAAY,CAAIC,OAAe,EAAEC,KAAa,EAAEC,EAAU,EAAK;EAC1E,IAAMC,cAAc,GAAGd,aAAa,CAACW,OAAO,EAAEC,KAAK,CAAQ;EAE3D,IAAI,OAAOE,cAAc,KAAK,UAAU,EAAE;IACxCf,aAAa,CAACD,WAAW,CAACiB,GAAG,EAAEH,KAAK,EAAEf,aAAa,CAACmB,iBAAiB,CAACC,IAAI,EAAEJ,EAAE,CAAC;IAC/E,MAAM,IAAIK,KAAK,CAAC,4BAA4B,CAAC;EAC/C;EAEA,IAAMC,WAAW,GAAGP,KAAK,CAACP,KAAK,CAAC,GAAG,CAAC;EAEpC,IAAIe,OAAY,GAAGT,OAAO;EAE1B,IAAIQ,WAAW,CAACX,MAAM,GAAG,CAAC,EACxBY,OAAO,GAAGpB,aAAa,CAACW,OAAO,EAAEQ,WAAW,CAACE,KAAK,CAAC,CAAC,EAAEF,WAAW,CAACX,MAAM,GAAG,CAAC,CAAC,CAACc,IAAI,CAAC,GAAG,CAAC,CAAC;EAE1F,OAAOR,cAAc,CAACS,IAAI,CAACH,OAAO,CAAC;AACrC,CAAC;AAED,OAAO,IAAMI,cAAc,GAAG,SAAjBA,cAAc,CAAIvB,GAAwC,EAAK;EAC1E,OAAO,IAAIL,OAAO,CAACK,GAAG,CAACwB,CAAC,EAAExB,GAAG,CAACyB,CAAC,EAAEzB,GAAG,CAAC0B,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare enum MessageType {
|
|
2
|
+
Event = 0,
|
|
3
|
+
Api = 1
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* sendToMessage
|
|
7
|
+
* @param messageName
|
|
8
|
+
* @param status
|
|
9
|
+
* @param res
|
|
10
|
+
* @returns
|
|
11
|
+
*/
|
|
12
|
+
export declare const sendToMessage: (messageType: MessageType, messageName: string, status: number, id?: string, res?: unknown) => void;
|
package/dist/utils/messageFn.js
CHANGED
|
@@ -14,6 +14,7 @@ export var MessageType;
|
|
|
14
14
|
})(MessageType || (MessageType = {}));
|
|
15
15
|
var getResponseMsg = function getResponseMsg(status) {
|
|
16
16
|
var _codeMessageMap$statu;
|
|
17
|
+
// @ts-ignore
|
|
17
18
|
return (_codeMessageMap$statu = codeMessageMap[status]) !== null && _codeMessageMap$statu !== void 0 ? _codeMessageMap$statu : '未知错误';
|
|
18
19
|
};
|
|
19
20
|
|
|
@@ -25,21 +26,19 @@ var getResponseMsg = function getResponseMsg(status) {
|
|
|
25
26
|
* @returns
|
|
26
27
|
*/
|
|
27
28
|
export var sendToMessage = function sendToMessage(messageType, messageName, status, id, res) {
|
|
28
|
-
var _ref;
|
|
29
|
+
var _res$failMessage, _ref;
|
|
29
30
|
var uid = uuidv4();
|
|
30
31
|
var responseMsg = getResponseMsg(status);
|
|
31
32
|
var response = {
|
|
32
33
|
id: id !== null && id !== void 0 ? id : uid,
|
|
33
34
|
name: messageName,
|
|
34
35
|
code: status,
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
engineType: 'WEBGL',
|
|
39
|
-
engineVersion: '0.0.4'
|
|
40
|
-
})
|
|
36
|
+
// @ts-ignore
|
|
37
|
+
msg: (_res$failMessage = res === null || res === void 0 ? void 0 : res.failMessage) !== null && _res$failMessage !== void 0 ? _res$failMessage : responseMsg,
|
|
38
|
+
result: _objectSpread({}, (_ref = res) !== null && _ref !== void 0 ? _ref : {})
|
|
41
39
|
};
|
|
42
40
|
if (messageType === MessageType.Api) utils.emitter.emit('message', response);else if (messageType === MessageType.Event) utils.emitter.emit('event', _objectSpread(_objectSpread({}, response), {}, {
|
|
43
|
-
name: "
|
|
41
|
+
name: "".concat(response.name)
|
|
44
42
|
}));
|
|
45
|
-
};
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=messageFn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["v4","uuidv4","utils","codeMessageMap","MessageType","getResponseMsg","status","sendToMessage","messageType","messageName","id","res","uid","responseMsg","response","name","code","msg","failMessage","result","Api","emitter","emit","Event"],"sources":["../../src/utils/messageFn.ts"],"sourcesContent":["import { v4 as uuidv4 } from 'uuid'\nimport { utils } from '@anov/3d-core'\nimport { codeMessageMap } from '../messageStatus'\n\nexport enum MessageType {\n Event,\n Api,\n}\n\nconst getResponseMsg = (status: number) => {\n // @ts-ignore\n return codeMessageMap[status] ?? '未知错误'\n}\n\n/**\n * sendToMessage\n * @param messageName\n * @param status\n * @param res\n * @returns\n */\nexport const sendToMessage = (messageType: MessageType, messageName: string, status: number, id?: string, res?: unknown) => {\n const uid = uuidv4()\n const responseMsg = getResponseMsg(status)\n\n const response = {\n id: id ?? uid,\n name: messageName,\n code: status,\n // @ts-ignore\n msg: res?.failMessage ?? responseMsg,\n result: {\n ...(res as any ?? {}),\n },\n }\n\n if (messageType === MessageType.Api)\n utils.emitter.emit('message', response)\n else if (messageType === MessageType.Event)\n utils.emitter.emit('event', { ...response, name: `${response.name}` })\n}"],"mappings":";;;;;;AAAA,SAASA,EAAE,IAAIC,MAAM,QAAQ,MAAM;AACnC,SAASC,KAAK,QAAQ,eAAe;AACrC,SAASC,cAAc;AAEvB,WAAYC,WAAW;AAGtB,WAHWA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;AAAA,GAAXA,WAAW,KAAXA,WAAW;AAKvB,IAAMC,cAAc,GAAG,SAAjBA,cAAc,CAAIC,MAAc,EAAK;EAAA;EACzC;EACA,gCAAOH,cAAc,CAACG,MAAM,CAAC,yEAAI,MAAM;AACzC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,aAAa,GAAG,SAAhBA,aAAa,CAAIC,WAAwB,EAAEC,WAAmB,EAAEH,MAAc,EAAEI,EAAW,EAAEC,GAAa,EAAK;EAAA;EAC1H,IAAMC,GAAG,GAAGX,MAAM,EAAE;EACpB,IAAMY,WAAW,GAAGR,cAAc,CAACC,MAAM,CAAC;EAE1C,IAAMQ,QAAQ,GAAG;IACfJ,EAAE,EAAEA,EAAE,aAAFA,EAAE,cAAFA,EAAE,GAAIE,GAAG;IACbG,IAAI,EAAEN,WAAW;IACjBO,IAAI,EAAEV,MAAM;IACZ;IACAW,GAAG,sBAAEN,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEO,WAAW,+DAAIL,WAAW;IACpCM,MAAM,4BACAR,GAAG,uCAAW,CAAC,CAAC;EAExB,CAAC;EAED,IAAIH,WAAW,KAAKJ,WAAW,CAACgB,GAAG,EACjClB,KAAK,CAACmB,OAAO,CAACC,IAAI,CAAC,SAAS,EAAER,QAAQ,CAAC,MACpC,IAAIN,WAAW,KAAKJ,WAAW,CAACmB,KAAK,EACxCrB,KAAK,CAACmB,OAAO,CAACC,IAAI,CAAC,OAAO,kCAAOR,QAAQ;IAAEC,IAAI,YAAKD,QAAQ,CAACC,IAAI;EAAE,GAAG;AAC1E,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-alpha18",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "",
|
|
6
6
|
"license": "MIT",
|
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"@tweenjs/tween.js": "^21.0.0",
|
|
20
20
|
"uuid": "^9.0.1",
|
|
21
|
-
"@anov/3d-
|
|
22
|
-
"@anov/3d-
|
|
21
|
+
"@anov/3d-core": "^0.0.4-alpha14",
|
|
22
|
+
"@anov/3d-ability": "^0.0.4-alpha2"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
25
|
"@types/uuid": "^9.0.7"
|