@anov/3d 0.0.4-alpha17 → 0.0.4-alpha19
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 +14 -15
- 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 +16 -21
- package/dist/module/camera/index.js.map +1 -0
- package/dist/module/environment/index.d.ts +38 -0
- package/dist/module/environment/index.js +32 -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 +30 -0
- package/dist/sdkEntry.js +17 -6
- 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 +7 -4
- package/dist/utils/messageFn.js.map +1 -0
- package/package.json +2 -2
|
@@ -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, _params$environment, _params$environment2;
|
|
28
28
|
var _ref = params || {},
|
|
29
29
|
_ref$camera = _ref.camera,
|
|
30
30
|
camera = _ref$camera === void 0 ? {} : _ref$camera;
|
|
@@ -32,16 +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
|
-
|
|
37
|
-
y: camera.position[1],
|
|
38
|
-
z: camera.position[2]
|
|
39
|
-
}) !== null && _ref2 !== void 0 ? _ref2 : defaultCameraParams.position),
|
|
40
|
-
lookAt: object2Vector3((_ref3 = camera.target && {
|
|
41
|
-
x: camera.target[0],
|
|
42
|
-
y: camera.target[1],
|
|
43
|
-
z: camera.target[2]
|
|
44
|
-
}) !== null && _ref3 !== void 0 ? _ref3 : defaultCameraParams.lookAt)
|
|
35
|
+
position: camera.position,
|
|
36
|
+
lookAt: camera.target
|
|
45
37
|
};
|
|
46
38
|
var anov3D = new Anov3D({
|
|
47
39
|
container: this.container,
|
|
@@ -49,7 +41,11 @@ var Application = /*#__PURE__*/function () {
|
|
|
49
41
|
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,
|
|
50
42
|
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
|
|
51
43
|
},
|
|
52
|
-
camera: _objectSpread({}, cameraParams)
|
|
44
|
+
camera: _objectSpread({}, cameraParams),
|
|
45
|
+
environment: {
|
|
46
|
+
weather: params === null || params === void 0 ? void 0 : (_params$environment = params.environment) === null || _params$environment === void 0 ? void 0 : _params$environment.weather,
|
|
47
|
+
time: params === null || params === void 0 ? void 0 : (_params$environment2 = params.environment) === null || _params$environment2 === void 0 ? void 0 : _params$environment2.time
|
|
48
|
+
}
|
|
53
49
|
});
|
|
54
50
|
this.iEngine = anov3D;
|
|
55
51
|
sendToMessage(MessageType.Api, 'core.init', EMessageStatus.Success, id);
|
|
@@ -72,7 +68,9 @@ var Application = /*#__PURE__*/function () {
|
|
|
72
68
|
sendToMessage(MessageType.Api, req.name, EMessageStatus.Success, req.id, res);
|
|
73
69
|
});
|
|
74
70
|
} catch (error) {
|
|
75
|
-
sendToMessage(MessageType.Api, req.name, EMessageStatus.EventHandleFailed, req.id
|
|
71
|
+
sendToMessage(MessageType.Api, req.name, EMessageStatus.EventHandleFailed, req.id, {
|
|
72
|
+
failMessage: error.message
|
|
73
|
+
});
|
|
76
74
|
}
|
|
77
75
|
}
|
|
78
76
|
}, {
|
|
@@ -89,4 +87,5 @@ var Application = /*#__PURE__*/function () {
|
|
|
89
87
|
*/
|
|
90
88
|
export var createInstance = function createInstance(opts) {
|
|
91
89
|
return new Application(opts);
|
|
92
|
-
};
|
|
90
|
+
};
|
|
91
|
+
//# 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","environment","weather","time","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 environment: {\n weather: params?.environment?.weather,\n time: params?.environment?.time,\n },\n })\n this.iEngine = anov3D\n\n sendToMessage(MessageType.Api, 'core.init', EMessageStatus.Success, id)\n }\n catch (error) {\n sendToMessage(MessageType.Api, 'core.init', EMessageStatus.EventHandleFailed)\n }\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,15 +86,15 @@ 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() {
|
|
99
94
|
var _params$duration;
|
|
100
95
|
res({
|
|
101
|
-
position:
|
|
102
|
-
target:
|
|
96
|
+
position: _this2.camera.position.toArray(),
|
|
97
|
+
target: _this2.controls.target.toArray(),
|
|
103
98
|
isTrigger: true,
|
|
104
99
|
duration: (_params$duration = params.duration) !== null && _params$duration !== void 0 ? _params$duration : 0,
|
|
105
100
|
userInput: true,
|
|
@@ -116,7 +111,7 @@ var Camera = /*#__PURE__*/function () {
|
|
|
116
111
|
_this2.moveCameraTo(lastPosition, lastLookat, moveOptions());
|
|
117
112
|
} else {
|
|
118
113
|
var _currentPos = position;
|
|
119
|
-
_this2.moveCameraTo(_this2.camera.position, new Vector3(_currentPos
|
|
114
|
+
_this2.moveCameraTo(_this2.camera.position, new Vector3().fromArray(_currentPos), moveOptions());
|
|
120
115
|
}
|
|
121
116
|
});
|
|
122
117
|
}
|
|
@@ -129,7 +124,6 @@ var Camera = /*#__PURE__*/function () {
|
|
|
129
124
|
key: "set",
|
|
130
125
|
value: function set(params) {
|
|
131
126
|
var _this3 = this;
|
|
132
|
-
// eslint-disable-next-line promise/param-names
|
|
133
127
|
return new Promise(function (res, _) {
|
|
134
128
|
var _ref3;
|
|
135
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]), {
|
|
@@ -138,15 +132,15 @@ var Camera = /*#__PURE__*/function () {
|
|
|
138
132
|
var position = _ref4.position,
|
|
139
133
|
lookat = _ref4.lookat;
|
|
140
134
|
params.isTrigger && sendToMessage(MessageType.Event, 'onCameraChanged', EMessageStatus.Success, undefined, {
|
|
141
|
-
position:
|
|
142
|
-
target:
|
|
135
|
+
position: position.toArray(),
|
|
136
|
+
target: lookat.toArray()
|
|
143
137
|
});
|
|
144
138
|
},
|
|
145
139
|
onComplate: function onComplate() {
|
|
146
140
|
var _params$duration2;
|
|
147
141
|
res({
|
|
148
|
-
position:
|
|
149
|
-
target:
|
|
142
|
+
position: _this3.camera.position.toArray(),
|
|
143
|
+
target: _this3.controls.target.toArray(),
|
|
150
144
|
isTrigger: true,
|
|
151
145
|
duration: (_params$duration2 = params.duration) !== null && _params$duration2 !== void 0 ? _params$duration2 : 0,
|
|
152
146
|
userInput: true
|
|
@@ -218,4 +212,5 @@ var Camera = /*#__PURE__*/function () {
|
|
|
218
212
|
}]);
|
|
219
213
|
return Camera;
|
|
220
214
|
}();
|
|
221
|
-
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
|
|
|
@@ -94,4 +120,5 @@ var Environment = /*#__PURE__*/function () {
|
|
|
94
120
|
}]);
|
|
95
121
|
return Environment;
|
|
96
122
|
}();
|
|
97
|
-
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,30 @@
|
|
|
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
|
+
environment?: InitOptions['environment'];
|
|
18
|
+
};
|
|
19
|
+
declare class Anov3D {
|
|
20
|
+
private opts;
|
|
21
|
+
sceneControl: SceneControl;
|
|
22
|
+
environment: Environment;
|
|
23
|
+
eventBus: EventBus;
|
|
24
|
+
EWeatherType: typeof EWeatherType;
|
|
25
|
+
poi: Poi;
|
|
26
|
+
camera: Camera;
|
|
27
|
+
scene: Scene;
|
|
28
|
+
constructor(opts: Anov3DOptions);
|
|
29
|
+
}
|
|
30
|
+
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
|
-
this.environment = new Environment();
|
|
63
|
+
this.environment = new Environment(opts.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 environment?: InitOptions['environment']\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(opts.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,17 +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
|
+
// @ts-ignore
|
|
37
|
+
msg: (_res$failMessage = res === null || res === void 0 ? void 0 : res.failMessage) !== null && _res$failMessage !== void 0 ? _res$failMessage : responseMsg,
|
|
36
38
|
result: _objectSpread({}, (_ref = res) !== null && _ref !== void 0 ? _ref : {})
|
|
37
39
|
};
|
|
38
40
|
if (messageType === MessageType.Api) utils.emitter.emit('message', response);else if (messageType === MessageType.Event) utils.emitter.emit('event', _objectSpread(_objectSpread({}, response), {}, {
|
|
39
|
-
name: "
|
|
41
|
+
name: "".concat(response.name)
|
|
40
42
|
}));
|
|
41
|
-
};
|
|
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-alpha19",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "",
|
|
6
6
|
"license": "MIT",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"@tweenjs/tween.js": "^21.0.0",
|
|
20
20
|
"uuid": "^9.0.1",
|
|
21
21
|
"@anov/3d-core": "^0.0.4-alpha14",
|
|
22
|
-
"@anov/3d-ability": "^0.0.4-
|
|
22
|
+
"@anov/3d-ability": "^0.0.4-alpha3"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
25
|
"@types/uuid": "^9.0.7"
|