@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.
@@ -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 {};
@@ -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, object2Vector3 } from "./utils/index";
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, _ref2, _ref3, _params$size$width, _params$size, _params$size$height, _params$size2;
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: object2Vector3((_ref2 = camera.position && {
36
- x: camera.position[0],
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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"}
@@ -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
@@ -17,4 +17,5 @@ export var defaultCameraParams = {
17
17
  };
18
18
  registerHooks();
19
19
  export { createInstance } from "./applicationApi";
20
- export default Anov3D;
20
+ export default Anov3D;
21
+ //# sourceMappingURL=index.js.map
@@ -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"}
@@ -50,4 +50,5 @@ export var EMessageStatus;
50
50
  })(EMessageStatus || (EMessageStatus = {}));
51
51
  export var codeMessageMap = {
52
52
  200: '成功响应'
53
- };
53
+ };
54
+ //# sourceMappingURL=messageStatus.js.map
@@ -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: [position.x, position.y, position.z],
67
- target: [lookat.x, lookat.y, lookat.z]
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: "focusOnPosition",
79
- value: function focusOnPosition(params) {
74
+ key: "focus",
75
+ value: function focus(params) {
80
76
  var _this2 = this;
81
- // eslint-disable-next-line promise/param-names
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: [position.x, position.y, position.z],
95
- target: [lookat.x, lookat.y, lookat.z]
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: [_this2.camera.position.x, _this2.camera.position.y, _this2.camera.position.z],
102
- target: [_this2.controls.target.x, _this2.controls.target.y, _this2.controls.target.z],
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[0], _currentPos[1], _currentPos[2]), moveOptions());
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: [position.x, position.y, position.z],
142
- target: [lookat.x, lookat.y, lookat.z]
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: [_this3.camera.position.x, _this3.camera.position.y, _this3.camera.position.z],
149
- target: [_this3.controls.target.x, _this3.controls.target.y, _this3.controls.target.z],
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.newTime > 2400 && params.newTime < 0) throw new Error('time must be between 0 and 2400');
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.newTime / 2400));
99
+ date.setTime(date.getTime() + Math.floor(86400000 * params.time / 2400));
74
100
  this.setDate(date);
75
101
  return {
76
- newTime: params.newTime
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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"}
@@ -25,4 +25,5 @@ var createTimeSkySystem = function createTimeSkySystem(date) {
25
25
  sky = _createSkySystem2[2];
26
26
  return [setDate, sun, sky];
27
27
  };
28
- export default createTimeSkySystem;
28
+ export default createTimeSkySystem;
29
+ //# sourceMappingURL=index.js.map
@@ -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"}
@@ -24,4 +24,5 @@ export var EWeatherType = {
24
24
  Snow_Blizzard: 'Snow_Blizzard',
25
25
  // 暴雪
26
26
  Snow_Light: 'Snow_Light' // 小雪
27
- };
27
+ };
28
+ //# sourceMappingURL=type.js.map
@@ -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("eventBus.".concat(params.eventName), true);
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("eventBus.".concat(params.eventName), false);
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,8 @@
1
+ import type { GrowOption } from '@anov/3d-ability';
2
+ export declare class Scene {
3
+ private grow;
4
+ private opt;
5
+ constructor();
6
+ growIn(opt: GrowOption): Promise<unknown>;
7
+ growOut(opt?: GrowOption): Promise<unknown>;
8
+ }
@@ -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, _camera$position, _opts$size$width, _opts$size, _opts$size$height, _opts$size2, _opts$size$width2, _opts$size3, _opts$size$height2, _opts$size4, _scene$controls, _camera$target;
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: object2Vector3((_camera$position = camera.position) !== null && _camera$position !== void 0 ? _camera$position : defaultCameraParams.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
- (_scene$controls = scene.controls) === null || _scene$controls === void 0 ? void 0 : _scene$controls.target.copy(object2Vector3((_camera$target = camera.target) !== null && _camera$target !== void 0 ? _camera$target : defaultCameraParams.lookAt));
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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"}
@@ -41,4 +41,5 @@ export var getFnByFnkey = function getFnByFnkey(iEngine, fnkey, id) {
41
41
  };
42
42
  export var object2Vector3 = function object2Vector3(obj) {
43
43
  return new Vector3(obj.x, obj.y, obj.z);
44
- };
44
+ };
45
+ //# sourceMappingURL=index.js.map
@@ -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;
@@ -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
- msg: responseMsg,
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: "eventBus.".concat(response.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-alpha17",
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-alpha2"
22
+ "@anov/3d-ability": "^0.0.4-alpha3"
23
23
  },
24
24
  "devDependencies": {
25
25
  "@types/uuid": "^9.0.7"