@vived/app 2.4.0 → 2.6.2

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.
Files changed (86) hide show
  1. package/lib/Core/BaseApp/Boundary.d.ts +8 -2
  2. package/lib/Core/BaseApp/Entity.d.ts +2 -0
  3. package/lib/Core/BaseApp/UseCase.d.ts +29 -19
  4. package/lib/Core/BaseApp/UseCase.js +211 -135
  5. package/lib/Entities/Babylon.d.ts +31 -0
  6. package/lib/Entities/Babylon.js +99 -0
  7. package/lib/Entities/BaseApp.d.ts +7 -0
  8. package/lib/Entities/BaseApp.js +27 -0
  9. package/lib/Entities/Color.d.ts +20 -0
  10. package/lib/Entities/Color.js +59 -0
  11. package/lib/Entities/DevicePreview.d.ts +11 -0
  12. package/lib/Entities/DevicePreview.js +44 -0
  13. package/lib/Entities/KeyboardInput.d.ts +14 -0
  14. package/lib/Entities/KeyboardInput.js +76 -0
  15. package/lib/Entities/LineSegment2D.d.ts +11 -0
  16. package/lib/Entities/LineSegment2D.js +70 -0
  17. package/lib/Entities/MemoizedBoolean.d.ts +7 -0
  18. package/lib/Entities/MemoizedBoolean.js +19 -0
  19. package/lib/Entities/MemoizedNumber.d.ts +7 -0
  20. package/lib/Entities/MemoizedNumber.js +19 -0
  21. package/lib/Entities/MemoizedString.d.ts +7 -0
  22. package/lib/Entities/MemoizedString.js +19 -0
  23. package/lib/Entities/MemoizedVector2.d.ts +12 -0
  24. package/lib/Entities/MemoizedVector2.js +37 -0
  25. package/lib/Entities/MemoizedVector3.d.ts +14 -0
  26. package/lib/Entities/MemoizedVector3.js +46 -0
  27. package/lib/Entities/MouseInput.d.ts +15 -0
  28. package/lib/Entities/MouseInput.js +112 -0
  29. package/lib/Entities/MouseSceneInput.d.ts +15 -0
  30. package/lib/Entities/MouseSceneInput.js +109 -0
  31. package/lib/Entities/ObserverList.d.ts +6 -0
  32. package/lib/Entities/ObserverList.js +23 -0
  33. package/lib/Entities/OrbitCamera.d.ts +17 -0
  34. package/lib/Entities/OrbitCamera.js +74 -0
  35. package/lib/Entities/ParametricLine.d.ts +29 -0
  36. package/lib/Entities/ParametricLine.js +79 -0
  37. package/lib/Entities/ParametricPlane.d.ts +20 -0
  38. package/lib/Entities/ParametricPlane.js +63 -0
  39. package/lib/Entities/StateMachine.d.ts +25 -0
  40. package/lib/Entities/StateMachine.js +81 -0
  41. package/lib/Entities/TouchInput.d.ts +20 -0
  42. package/lib/Entities/TouchInput.js +111 -0
  43. package/lib/Entities/UndoRedo.d.ts +22 -0
  44. package/lib/Entities/UndoRedo.js +61 -0
  45. package/lib/Entities/Vector2.d.ts +21 -0
  46. package/lib/Entities/Vector2.js +83 -0
  47. package/lib/Entities/Vector3.d.ts +19 -0
  48. package/lib/Entities/Vector3.js +75 -0
  49. package/lib/Entities/index.d.ts +21 -0
  50. package/lib/Entities/index.js +33 -0
  51. package/lib/Interface/Controllers/makeAppHandler.d.ts +1 -1
  52. package/lib/Interface/Controllers/makeAppHandler.js +21 -10
  53. package/lib/Interface/Controllers/setState.d.ts +1 -1
  54. package/lib/Interface/Controllers/setState.js +14 -3
  55. package/lib/PresentationManagers/DevicePreviewPM.d.ts +13 -0
  56. package/lib/PresentationManagers/DevicePreviewPM.js +25 -0
  57. package/lib/PresentationManagers/HasRedoPM.d.ts +9 -0
  58. package/lib/PresentationManagers/HasRedoPM.js +22 -0
  59. package/lib/PresentationManagers/HasUndoPM.d.ts +9 -0
  60. package/lib/PresentationManagers/HasUndoPM.js +22 -0
  61. package/lib/PresentationManagers/IsAuthoringPM.d.ts +9 -0
  62. package/lib/PresentationManagers/IsAuthoringPM.js +22 -0
  63. package/lib/PresentationManagers/OrbitCameraPM.d.ts +14 -0
  64. package/lib/PresentationManagers/OrbitCameraPM.js +31 -0
  65. package/lib/PresentationManagers/ShowBabylonInspectorPM.d.ts +9 -0
  66. package/lib/PresentationManagers/ShowBabylonInspectorPM.js +22 -0
  67. package/lib/PresentationManagers/index.d.ts +6 -0
  68. package/lib/PresentationManagers/index.js +18 -0
  69. package/lib/UseCases/LerpOrbitCamera.d.ts +36 -0
  70. package/lib/UseCases/LerpOrbitCamera.js +71 -0
  71. package/lib/UseCases/SerializeCamera.d.ts +21 -0
  72. package/lib/UseCases/SerializeCamera.js +59 -0
  73. package/lib/UseCases/SerializeOrbitCamera.d.ts +21 -0
  74. package/lib/UseCases/SerializeOrbitCamera.js +59 -0
  75. package/lib/UseCases/SerializedCamDemo.d.ts +0 -0
  76. package/lib/UseCases/SerializedCamDemo.js +1 -0
  77. package/lib/UseCases/index.d.ts +3 -0
  78. package/lib/UseCases/index.js +15 -0
  79. package/lib/UseCases/setDevicePreview.d.ts +2 -0
  80. package/lib/UseCases/setDevicePreview.js +14 -0
  81. package/lib/Utilities/degreesToRadians.d.ts +1 -0
  82. package/lib/Utilities/degreesToRadians.js +7 -0
  83. package/lib/Utilities/index.d.ts +1 -0
  84. package/lib/Utilities/index.js +13 -0
  85. package/package.json +1 -1
  86. package/CHANGELOG.md +0 -51
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeUndoRedo = void 0;
4
+ const _1 = require(".");
5
+ function makeUndoRedo() {
6
+ return new UndoRedoImp();
7
+ }
8
+ exports.makeUndoRedo = makeUndoRedo;
9
+ class UndoRedoImp {
10
+ constructor() {
11
+ this.observers = new _1.ObserverList();
12
+ this.undoRedoers = [];
13
+ this.undoStack = [];
14
+ this.redoStack = [];
15
+ this.doUndo = () => {
16
+ const action = this.undoStack.pop();
17
+ if (!action) {
18
+ console.warn("[UndoRedo] nothing to undo");
19
+ return;
20
+ }
21
+ this.redoStack.push(action);
22
+ this.undoRedoers.forEach(undoers => undoers.undoAction(action));
23
+ this.observers.notify();
24
+ };
25
+ this.doRedo = () => {
26
+ const action = this.redoStack.pop();
27
+ if (!action) {
28
+ console.warn("[UndoRedo] nothing to redo");
29
+ return;
30
+ }
31
+ this.undoStack.push(action);
32
+ this.undoRedoers.forEach(redoers => redoers.redoAction(action));
33
+ this.observers.notify();
34
+ };
35
+ this.submitAction = (action) => {
36
+ this.undoStack.push(action);
37
+ this.redoStack = [];
38
+ this.observers.notify();
39
+ };
40
+ this.clearStack = () => {
41
+ this.redoStack = [];
42
+ this.undoStack = [];
43
+ this.observers.notify();
44
+ };
45
+ this.registerUndoRedoer = (undoredoer) => {
46
+ this.undoRedoers.push(undoredoer);
47
+ };
48
+ this.addObserver = (observer) => {
49
+ this.observers.add(observer);
50
+ };
51
+ this.removeObserver = (observer) => {
52
+ this.observers.remove(observer);
53
+ };
54
+ }
55
+ get hasUndo() {
56
+ return this.undoStack.length > 0;
57
+ }
58
+ get hasRedo() {
59
+ return this.redoStack.length > 0;
60
+ }
61
+ }
@@ -0,0 +1,21 @@
1
+ export declare class Vector2 {
2
+ static Zero(): Vector2;
3
+ static One(): Vector2;
4
+ x: number;
5
+ y: number;
6
+ get magnitued(): number;
7
+ get unit(): Vector2;
8
+ get theta(): number;
9
+ setLength: (length: number) => void;
10
+ add: (vector2: Vector2) => Vector2;
11
+ subtract: (vector2: Vector2) => Vector2;
12
+ equal: (a: Vector2) => boolean;
13
+ close: (vec: Vector2) => boolean;
14
+ copy: () => Vector2;
15
+ asArray: () => [number, number];
16
+ rotate: (theta: number) => Vector2;
17
+ dot: (vec: Vector2) => number;
18
+ angleTo: (vec: Vector2) => number;
19
+ cross: (vec: Vector2) => number;
20
+ constructor(x: number, y: number);
21
+ }
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Vector2 = void 0;
4
+ class Vector2 {
5
+ constructor(x, y) {
6
+ this.setLength = (length) => {
7
+ const unit = this.unit;
8
+ this.x = length * unit.x;
9
+ this.y = length * unit.y;
10
+ };
11
+ this.add = (vector2) => {
12
+ return new Vector2(this.x + vector2.x, this.y + vector2.y);
13
+ };
14
+ this.subtract = (vector2) => {
15
+ return new Vector2(this.x - vector2.x, this.y - vector2.y);
16
+ };
17
+ this.equal = (a) => {
18
+ if (a.x === this.x && a.y === this.y)
19
+ return true;
20
+ else
21
+ return false;
22
+ };
23
+ this.close = (vec) => {
24
+ const diff = this.subtract(vec);
25
+ const diffMag = diff.magnitued;
26
+ if (diffMag < 0.01)
27
+ return true;
28
+ else
29
+ return false;
30
+ };
31
+ this.copy = () => {
32
+ return new Vector2(this.x, this.y);
33
+ };
34
+ this.asArray = () => {
35
+ return [this.x, this.y];
36
+ };
37
+ this.rotate = (theta) => {
38
+ const thetaRadians = theta * Math.PI / 180;
39
+ const x = this.x * Math.cos(thetaRadians) - this.y * Math.sin(thetaRadians);
40
+ const y = this.x * Math.sin(thetaRadians) + this.y * Math.cos(thetaRadians);
41
+ return new Vector2(x, y);
42
+ };
43
+ this.dot = (vec) => {
44
+ return this.x * vec.x + this.y * vec.y;
45
+ };
46
+ this.angleTo = (vec) => {
47
+ const dot = this.dot(vec);
48
+ const magnitues = vec.magnitued * this.magnitued;
49
+ const angRadians = Math.acos(dot / magnitues);
50
+ return angRadians * 180 / Math.PI;
51
+ };
52
+ this.cross = (vec) => {
53
+ return (this.x * vec.y) - (this.y * vec.x);
54
+ };
55
+ this.x = x;
56
+ this.y = y;
57
+ }
58
+ static Zero() {
59
+ return new Vector2(0, 0);
60
+ }
61
+ static One() {
62
+ return new Vector2(1, 1);
63
+ }
64
+ get magnitued() {
65
+ const xSqr = this.x * this.x;
66
+ const ySqr = this.y * this.y;
67
+ const magnitude = Math.sqrt(xSqr + ySqr);
68
+ return magnitude;
69
+ }
70
+ get unit() {
71
+ const mag = this.magnitued;
72
+ if (mag === 0) {
73
+ return Vector2.Zero();
74
+ }
75
+ const unitX = this.x / mag;
76
+ const unitY = this.y / mag;
77
+ return new Vector2(unitX, unitY);
78
+ }
79
+ get theta() {
80
+ return (Math.atan2(this.y, this.x) * 180) / Math.PI;
81
+ }
82
+ }
83
+ exports.Vector2 = Vector2;
@@ -0,0 +1,19 @@
1
+ export declare class Vector3 {
2
+ static Zero(): Vector3;
3
+ static One(): Vector3;
4
+ x: number;
5
+ y: number;
6
+ z: number;
7
+ get magnitued(): number;
8
+ get unit(): Vector3;
9
+ setLength: (length: number) => void;
10
+ add: (a: Vector3) => Vector3;
11
+ subtract: (vector2: Vector3) => Vector3;
12
+ copy: () => Vector3;
13
+ equals: (vec: Vector3) => boolean;
14
+ close: (vec: Vector3) => boolean;
15
+ cross: (vec: Vector3) => Vector3;
16
+ dot: (vec: Vector3) => number;
17
+ asArray: () => [number, number, number];
18
+ constructor(x: number, y: number, z: number);
19
+ }
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Vector3 = void 0;
4
+ class Vector3 {
5
+ constructor(x, y, z) {
6
+ this.setLength = (length) => {
7
+ const unit = this.unit;
8
+ this.x = length * unit.x;
9
+ this.y = length * unit.y;
10
+ this.z = length * unit.z;
11
+ };
12
+ this.add = (a) => {
13
+ return new Vector3(this.x + a.x, this.y + a.y, this.z + a.z);
14
+ };
15
+ this.subtract = (vector2) => {
16
+ return new Vector3(this.x - vector2.x, this.y - vector2.y, this.z - vector2.z);
17
+ };
18
+ this.copy = () => {
19
+ return new Vector3(this.x, this.y, this.z);
20
+ };
21
+ this.equals = (vec) => {
22
+ if (vec.x === this.x && vec.y === this.y && vec.z === this.z)
23
+ return true;
24
+ else
25
+ return false;
26
+ };
27
+ this.close = (vec) => {
28
+ const diff = this.subtract(vec);
29
+ const diffMag = diff.magnitued;
30
+ if (diffMag < 0.01)
31
+ return true;
32
+ else
33
+ return false;
34
+ };
35
+ this.cross = (vec) => {
36
+ const x = this.y * vec.z - this.z * vec.y;
37
+ const y = this.z * vec.x - this.x * vec.z;
38
+ const z = this.x * vec.y - this.y * vec.x;
39
+ return new Vector3(x, y, z);
40
+ };
41
+ this.dot = (vec) => {
42
+ return this.x * vec.x + this.y * vec.y + this.z * vec.z;
43
+ };
44
+ this.asArray = () => {
45
+ return [this.x, this.y, this.z];
46
+ };
47
+ this.x = x;
48
+ this.y = y;
49
+ this.z = z;
50
+ }
51
+ static Zero() {
52
+ return new Vector3(0, 0, 0);
53
+ }
54
+ static One() {
55
+ return new Vector3(1, 1, 1);
56
+ }
57
+ get magnitued() {
58
+ const xSqr = this.x * this.x;
59
+ const ySqr = this.y * this.y;
60
+ const zSqr = this.z * this.z;
61
+ const magnitude = Math.sqrt(xSqr + ySqr + zSqr);
62
+ return magnitude;
63
+ }
64
+ get unit() {
65
+ const mag = this.magnitued;
66
+ if (mag === 0) {
67
+ return Vector3.Zero();
68
+ }
69
+ const unitX = this.x / mag;
70
+ const unitY = this.y / mag;
71
+ const unitZ = this.z / mag;
72
+ return new Vector3(unitX, unitY, unitZ);
73
+ }
74
+ }
75
+ exports.Vector3 = Vector3;
@@ -0,0 +1,21 @@
1
+ export * from "./Babylon";
2
+ export * from "./BaseApp";
3
+ export * from "./Color";
4
+ export * from "./DevicePreview";
5
+ export * from "./KeyboardInput";
6
+ export * from "./LineSegment2D";
7
+ export * from "./MemoizedBoolean";
8
+ export * from "./MemoizedNumber";
9
+ export * from "./MemoizedString";
10
+ export * from "./MemoizedVector2";
11
+ export * from "./MemoizedVector3";
12
+ export * from "./ObserverList";
13
+ export * from "./OrbitCamera";
14
+ export * from "./ParametricLine";
15
+ export * from "./ParametricPlane";
16
+ export * from "./StateMachine";
17
+ export * from "./UndoRedo";
18
+ export * from "./Vector2";
19
+ export * from "./Vector3";
20
+ export * from "./MouseInput";
21
+ export * from "./TouchInput";
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./Babylon"), exports);
14
+ __exportStar(require("./BaseApp"), exports);
15
+ __exportStar(require("./Color"), exports);
16
+ __exportStar(require("./DevicePreview"), exports);
17
+ __exportStar(require("./KeyboardInput"), exports);
18
+ __exportStar(require("./LineSegment2D"), exports);
19
+ __exportStar(require("./MemoizedBoolean"), exports);
20
+ __exportStar(require("./MemoizedNumber"), exports);
21
+ __exportStar(require("./MemoizedString"), exports);
22
+ __exportStar(require("./MemoizedVector2"), exports);
23
+ __exportStar(require("./MemoizedVector3"), exports);
24
+ __exportStar(require("./ObserverList"), exports);
25
+ __exportStar(require("./OrbitCamera"), exports);
26
+ __exportStar(require("./ParametricLine"), exports);
27
+ __exportStar(require("./ParametricPlane"), exports);
28
+ __exportStar(require("./StateMachine"), exports);
29
+ __exportStar(require("./UndoRedo"), exports);
30
+ __exportStar(require("./Vector2"), exports);
31
+ __exportStar(require("./Vector3"), exports);
32
+ __exportStar(require("./MouseInput"), exports);
33
+ __exportStar(require("./TouchInput"), exports);
@@ -9,4 +9,4 @@ export interface AppHandlerFunctions {
9
9
  setState: (finalState: string, duration?: number) => void;
10
10
  setDevicePreview: (x: number, y: number) => void;
11
11
  }
12
- export declare function makeAppHandler(functions: AppHandlerFunctions): Handler;
12
+ export declare function makeAppHandler(functions: AppHandlerFunctions, verbose?: boolean): Handler;
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeAppHandler = exports.appPayloadVersions = void 0;
4
4
  const app_host_boundary_1 = require("@vived/app-host-boundary");
5
- const verbose = false;
6
5
  exports.appPayloadVersions = {
7
6
  disposeApp: 1,
8
7
  setDevicePreview: 1,
@@ -12,10 +11,22 @@ exports.appPayloadVersions = {
12
11
  stopApp: 1,
13
12
  setState: 2,
14
13
  };
15
- function makeAppHandler(functions) {
14
+ // This is because I messed up and am trying to compare a string with a type
15
+ const showBabylonInspectorType = app_host_boundary_1.SHOW_BABYLON_INSPECTOR;
16
+ const setIsAuthoringType = app_host_boundary_1.SET_IS_AUTHORING;
17
+ const disposeAppType = app_host_boundary_1.DISPOSE_APP;
18
+ const stopAppType = app_host_boundary_1.STOP_APP;
19
+ const setDevicePreviewType = app_host_boundary_1.SET_DEVICE_PREVIEW;
20
+ const startAppType = app_host_boundary_1.START_APP;
21
+ const setAppStateType = app_host_boundary_1.SET_APP_STATE;
22
+ const getAppPayloadType = app_host_boundary_1.GET_APP_PAYLOAD_VERSIONS;
23
+ function makeAppHandler(functions, verbose = false) {
16
24
  const handler = (request) => {
25
+ if (verbose) {
26
+ console.log(request);
27
+ }
17
28
  switch (request.type) {
18
- case app_host_boundary_1.SHOW_BABYLON_INSPECTOR:
29
+ case showBabylonInspectorType:
19
30
  if (request.version === exports.appPayloadVersions.showBabylonInspector) {
20
31
  const payload = request.payload;
21
32
  functions.showBabylonInspector(payload.showBabylonInspector);
@@ -24,7 +35,7 @@ function makeAppHandler(functions) {
24
35
  throw new app_host_boundary_1.UnsupportedRequestVerion(request.type, request.version);
25
36
  }
26
37
  break;
27
- case app_host_boundary_1.SET_IS_AUTHORING:
38
+ case setIsAuthoringType:
28
39
  if (request.version === exports.appPayloadVersions.setIsAuthoring) {
29
40
  const payload = request.payload;
30
41
  functions.setIsAuthoring(payload.isAuthoring);
@@ -33,7 +44,7 @@ function makeAppHandler(functions) {
33
44
  throw new app_host_boundary_1.UnsupportedRequestVerion(request.type, request.version);
34
45
  }
35
46
  break;
36
- case app_host_boundary_1.DISPOSE_APP:
47
+ case disposeAppType:
37
48
  if (request.version === exports.appPayloadVersions.disposeApp) {
38
49
  functions.disposeApp();
39
50
  }
@@ -41,7 +52,7 @@ function makeAppHandler(functions) {
41
52
  throw new app_host_boundary_1.UnsupportedRequestVerion(request.type, request.version);
42
53
  }
43
54
  break;
44
- case app_host_boundary_1.STOP_APP:
55
+ case stopAppType:
45
56
  if (request.version === exports.appPayloadVersions.stopApp) {
46
57
  functions.stopApp();
47
58
  }
@@ -49,7 +60,7 @@ function makeAppHandler(functions) {
49
60
  throw new app_host_boundary_1.UnsupportedRequestVerion(request.type, request.version);
50
61
  }
51
62
  break;
52
- case app_host_boundary_1.SET_DEVICE_PREVIEW:
63
+ case setDevicePreviewType:
53
64
  if (request.version === exports.appPayloadVersions.setDevicePreview) {
54
65
  const payload = request.payload;
55
66
  functions.setDevicePreview(payload.x, payload.y);
@@ -58,7 +69,7 @@ function makeAppHandler(functions) {
58
69
  throw new app_host_boundary_1.UnsupportedRequestVerion(request.type, request.version);
59
70
  }
60
71
  break;
61
- case app_host_boundary_1.START_APP:
72
+ case startAppType:
62
73
  if (request.version === exports.appPayloadVersions.startApp) {
63
74
  const payload = request.payload;
64
75
  functions.startApp(payload.container);
@@ -67,7 +78,7 @@ function makeAppHandler(functions) {
67
78
  throw new app_host_boundary_1.UnsupportedRequestVerion(request.type, request.version);
68
79
  }
69
80
  break;
70
- case app_host_boundary_1.SET_APP_STATE:
81
+ case setAppStateType:
71
82
  if (request.version === exports.appPayloadVersions.setState) {
72
83
  const payload = request.payload;
73
84
  functions.setState(payload.finalState, payload.duration);
@@ -76,7 +87,7 @@ function makeAppHandler(functions) {
76
87
  throw new app_host_boundary_1.UnsupportedRequestVerion(request.type, request.version);
77
88
  }
78
89
  break;
79
- case app_host_boundary_1.GET_APP_PAYLOAD_VERSIONS:
90
+ case getAppPayloadType:
80
91
  if (request.version === 1) {
81
92
  const payload = request.payload;
82
93
  payload.callback(exports.appPayloadVersions);
@@ -1,2 +1,2 @@
1
1
  import { BaseAppUC } from "../../Core";
2
- export declare function makeSetState(baseApp: BaseAppUC): (state: string, duration?: number | undefined) => void;
2
+ export declare function makeSetState(baseApp: BaseAppUC): (state: string | null, duration?: number) => void;
@@ -2,9 +2,20 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeSetState = void 0;
4
4
  function makeSetState(baseApp) {
5
- return function setState(state, duration) {
6
- const stateObj = JSON.parse(state);
7
- baseApp.setSerializedState(stateObj);
5
+ return function setState(state, duration = 0) {
6
+ if (state) {
7
+ try {
8
+ const stateObj = JSON.parse(state);
9
+ baseApp.setSerializedState(stateObj, duration);
10
+ }
11
+ catch (e) {
12
+ baseApp.setDefaultState(duration);
13
+ console.warn("[setState] Failed to deserialize state string: " + e);
14
+ }
15
+ }
16
+ else {
17
+ baseApp.setDefaultState(duration);
18
+ }
8
19
  };
9
20
  }
10
21
  exports.makeSetState = makeSetState;
@@ -0,0 +1,13 @@
1
+ import { DevicePreview } from "../Entities";
2
+ export interface DevicePreviewVM {
3
+ x: number;
4
+ y: number;
5
+ useDevicePreview: boolean;
6
+ }
7
+ export declare class DevicePreviewPM {
8
+ devicePreview: DevicePreview;
9
+ updateView: (vm: DevicePreviewVM) => void;
10
+ doUpdateView: () => void;
11
+ dispose(): void;
12
+ constructor(devicePreview: DevicePreview, updateView: (vm: DevicePreviewVM) => void);
13
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DevicePreviewPM = void 0;
4
+ class DevicePreviewPM {
5
+ constructor(devicePreview, updateView) {
6
+ this.doUpdateView = () => {
7
+ const useDevicePreview = this.devicePreview.useDevicePreview;
8
+ const x = this.devicePreview.previewSize.x;
9
+ const y = this.devicePreview.previewSize.y;
10
+ this.updateView({
11
+ x,
12
+ y,
13
+ useDevicePreview,
14
+ });
15
+ };
16
+ this.devicePreview = devicePreview;
17
+ this.updateView = updateView;
18
+ this.doUpdateView();
19
+ this.devicePreview.addObserver(this.doUpdateView);
20
+ }
21
+ dispose() {
22
+ this.devicePreview.removeObserver(this.doUpdateView);
23
+ }
24
+ }
25
+ exports.DevicePreviewPM = DevicePreviewPM;
@@ -0,0 +1,9 @@
1
+ import { UndoRedo } from "../Entities";
2
+ export declare class HasRedoPM {
3
+ updateView: (hasRedo: boolean) => void;
4
+ private undoRedo;
5
+ private lastValue?;
6
+ private onChange;
7
+ dispose(): void;
8
+ constructor(undoRedo: UndoRedo, updateView: (hasRedo: boolean) => void);
9
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HasRedoPM = void 0;
4
+ class HasRedoPM {
5
+ constructor(undoRedo, updateView) {
6
+ this.updateView = updateView;
7
+ this.onChange = () => {
8
+ const currentVal = this.undoRedo.hasRedo;
9
+ if (this.lastValue === currentVal)
10
+ return;
11
+ this.updateView(currentVal);
12
+ this.lastValue = currentVal;
13
+ };
14
+ this.undoRedo = undoRedo;
15
+ this.onChange();
16
+ this.undoRedo.addObserver(this.onChange);
17
+ }
18
+ dispose() {
19
+ this.undoRedo.removeObserver(this.onChange);
20
+ }
21
+ }
22
+ exports.HasRedoPM = HasRedoPM;
@@ -0,0 +1,9 @@
1
+ import { UndoRedo } from "../Entities";
2
+ export declare class HasUndoPM {
3
+ updateView: (hasUndo: boolean) => void;
4
+ private undoRedo;
5
+ private lastValue?;
6
+ private onChange;
7
+ dispose(): void;
8
+ constructor(undoRedo: UndoRedo, updateView: (hasUndo: boolean) => void);
9
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HasUndoPM = void 0;
4
+ class HasUndoPM {
5
+ constructor(undoRedo, updateView) {
6
+ this.updateView = updateView;
7
+ this.onChange = () => {
8
+ const currentVal = this.undoRedo.hasUndo;
9
+ if (this.lastValue === currentVal)
10
+ return;
11
+ this.updateView(currentVal);
12
+ this.lastValue = currentVal;
13
+ };
14
+ this.undoRedo = undoRedo;
15
+ this.onChange();
16
+ this.undoRedo.addObserver(this.onChange);
17
+ }
18
+ dispose() {
19
+ this.undoRedo.removeObserver(this.onChange);
20
+ }
21
+ }
22
+ exports.HasUndoPM = HasUndoPM;
@@ -0,0 +1,9 @@
1
+ import { BaseApp } from "../Entities";
2
+ export declare class IsAuthoringPM {
3
+ private baseApp;
4
+ private updateView;
5
+ private lastSetState?;
6
+ private doUpdateView;
7
+ dispose(): void;
8
+ constructor(baseApp: BaseApp, updateView: (isAuthoring: boolean) => void);
9
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IsAuthoringPM = void 0;
4
+ class IsAuthoringPM {
5
+ constructor(baseApp, updateView) {
6
+ this.doUpdateView = () => {
7
+ const isAuthoring = this.baseApp.isAuthoring;
8
+ if (isAuthoring === this.lastSetState)
9
+ return;
10
+ this.updateView(isAuthoring);
11
+ this.lastSetState = isAuthoring;
12
+ };
13
+ this.baseApp = baseApp;
14
+ this.updateView = updateView;
15
+ this.doUpdateView();
16
+ this.baseApp.addObserver(this.doUpdateView);
17
+ }
18
+ dispose() {
19
+ this.baseApp.removeObserver(this.doUpdateView);
20
+ }
21
+ }
22
+ exports.IsAuthoringPM = IsAuthoringPM;
@@ -0,0 +1,14 @@
1
+ import { OrbitCamera, Vector3 } from "../Entities";
2
+ export interface OrbitCameraVM {
3
+ alphaEuler: Vector3;
4
+ betaEuler: Vector3;
5
+ cameraLocalPosition: Vector3;
6
+ target: Vector3;
7
+ }
8
+ export declare class OrbitCameraPM {
9
+ private orbitCam;
10
+ private view;
11
+ dispose(): void;
12
+ private doUpdateView;
13
+ constructor(orbitCamera: OrbitCamera, view: (vm: OrbitCameraVM) => void);
14
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OrbitCameraPM = void 0;
4
+ const Entities_1 = require("../Entities");
5
+ const Utilities_1 = require("../Utilities");
6
+ class OrbitCameraPM {
7
+ constructor(orbitCamera, view) {
8
+ this.doUpdateView = () => {
9
+ const { alpha, beta, radius, target } = this.orbitCam;
10
+ const alphaRadians = Utilities_1.degreesToRadians(alpha);
11
+ const alphaEuler = new Entities_1.Vector3(0, alphaRadians, 0);
12
+ const betaRadians = Utilities_1.degreesToRadians(beta);
13
+ const betaEuler = new Entities_1.Vector3(betaRadians, 0, 0);
14
+ const cameraLocalPosition = new Entities_1.Vector3(0, 0, -radius);
15
+ this.view({
16
+ alphaEuler,
17
+ betaEuler,
18
+ cameraLocalPosition,
19
+ target,
20
+ });
21
+ };
22
+ this.orbitCam = orbitCamera;
23
+ this.view = view;
24
+ this.doUpdateView();
25
+ this.orbitCam.addObserver(this.doUpdateView);
26
+ }
27
+ dispose() {
28
+ this.orbitCam.removeObserver(this.doUpdateView);
29
+ }
30
+ }
31
+ exports.OrbitCameraPM = OrbitCameraPM;
@@ -0,0 +1,9 @@
1
+ import { Babylon } from "../Entities";
2
+ export declare class ShowBabylonInspectorPM {
3
+ private babylon;
4
+ private updateView;
5
+ private lastSetState?;
6
+ private doUpdateView;
7
+ dispose(): void;
8
+ constructor(babylon: Babylon, updateView: (showInspector: boolean) => void);
9
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ShowBabylonInspectorPM = void 0;
4
+ class ShowBabylonInspectorPM {
5
+ constructor(babylon, updateView) {
6
+ this.doUpdateView = () => {
7
+ const showInspector = this.babylon.showInspector;
8
+ if (showInspector === this.lastSetState)
9
+ return;
10
+ this.updateView(showInspector);
11
+ this.lastSetState = showInspector;
12
+ };
13
+ this.babylon = babylon;
14
+ this.updateView = updateView;
15
+ this.doUpdateView();
16
+ this.babylon.addObserver(this.doUpdateView);
17
+ }
18
+ dispose() {
19
+ this.babylon.removeObserver(this.doUpdateView);
20
+ }
21
+ }
22
+ exports.ShowBabylonInspectorPM = ShowBabylonInspectorPM;