@vived/app 2.20.1 → 2.21.0

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 (153) hide show
  1. package/lib/Core/BaseApp/Boundary.d.ts +49 -0
  2. package/lib/Core/BaseApp/Boundary.js +2 -0
  3. package/lib/Core/BaseApp/Entity.d.ts +11 -0
  4. package/lib/Core/BaseApp/Entity.js +2 -0
  5. package/lib/Core/BaseApp/Errors/ErrorDuplicateSystemName.d.ts +3 -0
  6. package/lib/Core/BaseApp/Errors/ErrorDuplicateSystemName.js +12 -0
  7. package/lib/Core/BaseApp/Errors/ErrorNoHostHandler.d.ts +3 -0
  8. package/lib/Core/BaseApp/Errors/ErrorNoHostHandler.js +10 -0
  9. package/lib/Core/BaseApp/Errors/ErrorUnsupportedVersionNumber.d.ts +3 -0
  10. package/lib/Core/BaseApp/Errors/ErrorUnsupportedVersionNumber.js +10 -0
  11. package/lib/Core/BaseApp/Errors/index.d.ts +3 -0
  12. package/lib/Core/BaseApp/Errors/index.js +15 -0
  13. package/lib/Core/BaseApp/UseCase.d.ts +43 -0
  14. package/lib/Core/BaseApp/UseCase.js +250 -0
  15. package/lib/Core/BaseAppState/Boundary.d.ts +14 -0
  16. package/lib/Core/BaseAppState/Boundary.js +2 -0
  17. package/lib/Core/BaseAppState/Entity.d.ts +5 -0
  18. package/lib/Core/BaseAppState/Entity.js +2 -0
  19. package/lib/Core/BaseAppState/UseCase.d.ts +16 -0
  20. package/lib/Core/BaseAppState/UseCase.js +54 -0
  21. package/lib/Core/BaseAppState/UseCase_Imp.d.ts +16 -0
  22. package/lib/Core/BaseAppState/UseCase_Imp.js +54 -0
  23. package/lib/Core/DevicePreview/DevicePreviewUC_Imp.d.ts +16 -0
  24. package/lib/Core/DevicePreview/DevicePreviewUC_Imp.js +56 -0
  25. package/lib/Core/DevicePreview/boundary.d.ts +14 -0
  26. package/lib/Core/DevicePreview/boundary.js +2 -0
  27. package/lib/Core/DevicePreview/entity.d.ts +5 -0
  28. package/lib/Core/DevicePreview/entity.js +2 -0
  29. package/lib/Core/DispatchToHost/Entity.d.ts +4 -0
  30. package/lib/Core/DispatchToHost/Entity.js +2 -0
  31. package/lib/Core/DispatchToHost/UseCase.d.ts +12 -0
  32. package/lib/Core/DispatchToHost/UseCase.js +70 -0
  33. package/lib/Core/DispatchToHost/boundary.d.ts +9 -0
  34. package/lib/Core/DispatchToHost/boundary.js +2 -0
  35. package/lib/Core/Serilization/Boundary.d.ts +20 -0
  36. package/lib/Core/Serilization/Boundary.js +2 -0
  37. package/lib/Core/Serilization/Entity.d.ts +3 -0
  38. package/lib/Core/Serilization/Entity.js +2 -0
  39. package/lib/Core/Serilization/ErrorDuplicateSystemName.d.ts +3 -0
  40. package/lib/Core/Serilization/ErrorDuplicateSystemName.js +12 -0
  41. package/lib/Core/Serilization/ErrorUnsupportedVersionNumber.d.ts +3 -0
  42. package/lib/Core/Serilization/ErrorUnsupportedVersionNumber.js +10 -0
  43. package/lib/Core/Serilization/Errors.d.ts +6 -0
  44. package/lib/Core/Serilization/Errors.js +19 -0
  45. package/lib/Core/Serilization/UseCase.d.ts +10 -0
  46. package/lib/Core/Serilization/UseCase.js +52 -0
  47. package/lib/Core/Serilization/UseCase_Imp.d.ts +10 -0
  48. package/lib/Core/Serilization/UseCase_Imp.js +51 -0
  49. package/lib/Core/index.d.ts +3 -0
  50. package/lib/Core/index.js +19 -0
  51. package/lib/Entities/Color.d.ts +20 -0
  52. package/lib/Entities/Color.js +59 -0
  53. package/lib/Entities/LineSegment2D.d.ts +11 -0
  54. package/lib/Entities/LineSegment2D.js +70 -0
  55. package/lib/Entities/MouseSceneInput.d.ts +15 -0
  56. package/lib/Entities/MouseSceneInput.js +109 -0
  57. package/lib/Entities/OrbitCamera.d.ts +76 -0
  58. package/lib/Entities/OrbitCamera.js +243 -0
  59. package/lib/Entities/ParametricLine.d.ts +29 -0
  60. package/lib/Entities/ParametricLine.js +79 -0
  61. package/lib/Entities/ParametricPlane.d.ts +20 -0
  62. package/lib/Entities/ParametricPlane.js +63 -0
  63. package/lib/Entities/SceneRoot.d.ts +69 -0
  64. package/lib/Entities/SceneRoot.js +77 -0
  65. package/lib/Entities/TransformNode.d.ts +78 -0
  66. package/lib/Entities/TransformNode.js +217 -0
  67. package/lib/Entities/Vector2.d.ts +21 -0
  68. package/lib/Entities/Vector2.js +83 -0
  69. package/lib/Entities/Vector3.d.ts +19 -0
  70. package/lib/Entities/Vector3.js +75 -0
  71. package/lib/Entities/WorkPlane.d.ts +49 -0
  72. package/lib/Entities/WorkPlane.js +122 -0
  73. package/lib/Entities/index.d.ts +3 -0
  74. package/lib/Entities/index.js +3 -0
  75. package/lib/Interface/Controllers/appHandler.d.ts +12 -0
  76. package/lib/Interface/Controllers/appHandler.js +94 -0
  77. package/lib/Interface/Controllers/defaultAppHanlderFunctions.d.ts +3 -0
  78. package/lib/Interface/Controllers/defaultAppHanlderFunctions.js +31 -0
  79. package/lib/Interface/Controllers/dispatchStateChange.d.ts +2 -0
  80. package/lib/Interface/Controllers/dispatchStateChange.js +10 -0
  81. package/lib/Interface/Controllers/index.d.ts +9 -0
  82. package/lib/Interface/Controllers/index.js +21 -0
  83. package/lib/Interface/Controllers/makeAppHandler.d.ts +12 -0
  84. package/lib/Interface/Controllers/makeAppHandler.js +96 -0
  85. package/lib/Interface/Controllers/setDevicePreview.d.ts +2 -0
  86. package/lib/Interface/Controllers/setDevicePreview.js +14 -0
  87. package/lib/Interface/Controllers/setIsAuthoring.d.ts +2 -0
  88. package/lib/Interface/Controllers/setIsAuthoring.js +14 -0
  89. package/lib/Interface/Controllers/setState.d.ts +2 -0
  90. package/lib/Interface/Controllers/setState.js +21 -0
  91. package/lib/Interface/Controllers/showBabylonInspector.d.ts +2 -0
  92. package/lib/Interface/Controllers/showBabylonInspector.js +9 -0
  93. package/lib/Interface/Controllers/startApp.d.ts +1 -0
  94. package/lib/Interface/Controllers/startApp.js +9 -0
  95. package/lib/Interface/Controllers/stopApp.d.ts +2 -0
  96. package/lib/Interface/Controllers/stopApp.js +10 -0
  97. package/lib/Interface/PresentationManagers/DevicePreviewPM.d.ts +13 -0
  98. package/lib/Interface/PresentationManagers/DevicePreviewPM.js +25 -0
  99. package/lib/Interface/PresentationManagers/IsAuthoringPM.d.ts +10 -0
  100. package/lib/Interface/PresentationManagers/IsAuthoringPM.js +23 -0
  101. package/lib/Interface/PresentationManagers/ShowBabylonInspectorPM.d.ts +10 -0
  102. package/lib/Interface/PresentationManagers/ShowBabylonInspectorPM.js +23 -0
  103. package/lib/Interface/PresentationManagers/index.d.ts +3 -0
  104. package/lib/Interface/PresentationManagers/index.js +15 -0
  105. package/lib/Interface/appHandler.d.ts +12 -0
  106. package/lib/Interface/appHandler.js +94 -0
  107. package/lib/Interface/index.d.ts +2 -0
  108. package/lib/Interface/index.js +14 -0
  109. package/lib/PresentationManagers/OrbitCameraPM.d.ts +14 -0
  110. package/lib/PresentationManagers/OrbitCameraPM.js +31 -0
  111. package/lib/PresentationManagers/TransformNodePM.d.ts +14 -0
  112. package/lib/PresentationManagers/TransformNodePM.js +23 -0
  113. package/lib/PresentationManagers/index.d.ts +1 -0
  114. package/lib/PresentationManagers/index.js +1 -0
  115. package/lib/UseCases/LerpOrbitCamera.d.ts +36 -0
  116. package/lib/UseCases/LerpOrbitCamera.js +71 -0
  117. package/lib/UseCases/OrbitCamera/LerpOrbitCamera.d.ts +36 -0
  118. package/lib/UseCases/OrbitCamera/LerpOrbitCamera.js +71 -0
  119. package/lib/UseCases/OrbitCamera/PixelDolly_OrbitCamera.d.ts +9 -0
  120. package/lib/UseCases/OrbitCamera/PixelDolly_OrbitCamera.js +31 -0
  121. package/lib/UseCases/OrbitCamera/PixelPlanePan_OrbitCamera.d.ts +10 -0
  122. package/lib/UseCases/OrbitCamera/PixelPlanePan_OrbitCamera.js +31 -0
  123. package/lib/UseCases/OrbitCamera/SerializeOrbitCamera.d.ts +22 -0
  124. package/lib/UseCases/OrbitCamera/SerializeOrbitCamera.js +81 -0
  125. package/lib/UseCases/OrbitCamera/index.d.ts +4 -0
  126. package/lib/UseCases/OrbitCamera/index.js +16 -0
  127. package/lib/UseCases/SceneRoot/SerializeSceneRoot.d.ts +18 -0
  128. package/lib/UseCases/SceneRoot/SerializeSceneRoot.js +48 -0
  129. package/lib/UseCases/SceneRoot/index.d.ts +1 -0
  130. package/lib/UseCases/SceneRoot/index.js +13 -0
  131. package/lib/UseCases/SerializeCamera.d.ts +21 -0
  132. package/lib/UseCases/SerializeCamera.js +59 -0
  133. package/lib/UseCases/SerializeOrbitCamera.d.ts +21 -0
  134. package/lib/UseCases/SerializeOrbitCamera.js +59 -0
  135. package/lib/UseCases/SerializedCamDemo.d.ts +0 -0
  136. package/lib/UseCases/SerializedCamDemo.js +1 -0
  137. package/lib/UseCases/index.d.ts +1 -0
  138. package/lib/UseCases/index.js +1 -0
  139. package/lib/ValueObjects/Angle.d.ts +18 -0
  140. package/lib/ValueObjects/Angle.js +26 -2
  141. package/lib/ValueObjects/Color.d.ts +46 -0
  142. package/lib/ValueObjects/Color.js +46 -0
  143. package/lib/ValueObjects/Matrix.d.ts +120 -0
  144. package/lib/ValueObjects/Matrix.js +423 -0
  145. package/lib/ValueObjects/Quaternion.d.ts +94 -0
  146. package/lib/ValueObjects/Quaternion.js +243 -0
  147. package/lib/ValueObjects/Vector2.d.ts +82 -0
  148. package/lib/ValueObjects/Vector2.js +82 -0
  149. package/lib/ValueObjects/Vector3.d.ts +107 -0
  150. package/lib/ValueObjects/Vector3.js +116 -0
  151. package/lib/ValueObjects/index.d.ts +2 -0
  152. package/lib/ValueObjects/index.js +2 -0
  153. package/package.json +1 -1
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeWorkPlane = exports.WorkplaneShape = exports.WorkPlaneUnits = void 0;
4
+ const ValueObjects_1 = require("../ValueObjects");
5
+ const TransformNode_1 = require("./TransformNode");
6
+ var WorkPlaneUnits;
7
+ (function (WorkPlaneUnits) {
8
+ WorkPlaneUnits[WorkPlaneUnits["INCHES"] = 0] = "INCHES";
9
+ WorkPlaneUnits[WorkPlaneUnits["METERS"] = 1] = "METERS";
10
+ WorkPlaneUnits[WorkPlaneUnits["FEET"] = 2] = "FEET";
11
+ })(WorkPlaneUnits = exports.WorkPlaneUnits || (exports.WorkPlaneUnits = {}));
12
+ var WorkplaneShape;
13
+ (function (WorkplaneShape) {
14
+ WorkplaneShape[WorkplaneShape["RECTANGE"] = 0] = "RECTANGE";
15
+ WorkplaneShape[WorkplaneShape["CIRCLE"] = 1] = "CIRCLE";
16
+ WorkplaneShape[WorkplaneShape["UNKNOWN"] = 2] = "UNKNOWN";
17
+ })(WorkplaneShape = exports.WorkplaneShape || (exports.WorkplaneShape = {}));
18
+ function makeWorkPlane() {
19
+ return new WorkPlaneImp();
20
+ }
21
+ exports.makeWorkPlane = makeWorkPlane;
22
+ class WorkPlaneImp {
23
+ constructor() {
24
+ this._workPlaneHalfSize = ValueObjects_1.Vector2.One();
25
+ this.showWorkPlane = true;
26
+ this.transform = TransformNode_1.makeTransformNode();
27
+ this.id = "workplane";
28
+ this._units = WorkPlaneUnits.METERS;
29
+ this._workplaneShape = WorkplaneShape.UNKNOWN;
30
+ this.setWorkplaneSize = (size) => {
31
+ this._workPlaneSize = size;
32
+ this._workPlaneHalfSize = new ValueObjects_1.Vector2(0.5 * size.x, 0.5 * size.y);
33
+ this._workplaneShape = WorkplaneShape.RECTANGE;
34
+ };
35
+ this.setWorkplaneRadius = (radius) => {
36
+ this._workPlaneRadius = radius;
37
+ this._workplaneShape = WorkplaneShape.CIRCLE;
38
+ };
39
+ this.pickOnWorkplane = (ray, unconstrained = false) => {
40
+ const worldPos = this.transform.worldPosition;
41
+ const worldUp = this.transform.localDirectionToWorld(ValueObjects_1.Vector3.Up());
42
+ const pickPlane = ValueObjects_1.ParametricPlane.FromPointNormal(worldPos, worldUp);
43
+ const worldPick = pickPlane.intersectLine(ray);
44
+ if (worldPick === undefined) {
45
+ return undefined;
46
+ }
47
+ const localPick = this.transform.worldPointToLocal(worldPick);
48
+ const workPlanePick = new ValueObjects_1.Vector2(localPick.x, localPick.z);
49
+ if (unconstrained) {
50
+ return workPlanePick;
51
+ }
52
+ if (this._workplaneShape === WorkplaneShape.CIRCLE) {
53
+ return this.constrainToRadius(workPlanePick);
54
+ }
55
+ else if (this._workplaneShape === WorkplaneShape.RECTANGE) {
56
+ return this.constrainToSize(workPlanePick);
57
+ }
58
+ else {
59
+ return workPlanePick;
60
+ }
61
+ };
62
+ }
63
+ get workPlaneRadius() {
64
+ return this._workPlaneRadius;
65
+ }
66
+ get workPlaneSize() {
67
+ return this._workPlaneSize;
68
+ }
69
+ get units() {
70
+ return this._units;
71
+ }
72
+ set units(val) {
73
+ if (val === this._units)
74
+ return;
75
+ this._units = val;
76
+ const scale = 1 / this.conversionFactor;
77
+ this.transform.localScale = new ValueObjects_1.Vector3(scale, scale, scale);
78
+ }
79
+ get workplaneShape() {
80
+ return this._workplaneShape;
81
+ }
82
+ get conversionFactor() {
83
+ switch (this.units) {
84
+ case WorkPlaneUnits.FEET:
85
+ return 3.28084;
86
+ case WorkPlaneUnits.INCHES:
87
+ return 39.3701;
88
+ case WorkPlaneUnits.METERS:
89
+ return 1;
90
+ default:
91
+ console.warn("[WorkPlane] Unknown units " + this.units);
92
+ return 1;
93
+ }
94
+ }
95
+ constrainToRadius(workPlanePick) {
96
+ if (!this.workPlaneRadius)
97
+ return workPlanePick;
98
+ const pickRadius = workPlanePick.magnitued;
99
+ if (pickRadius <= this.workPlaneRadius) {
100
+ return workPlanePick;
101
+ }
102
+ else {
103
+ return undefined;
104
+ }
105
+ }
106
+ constrainToSize(workPlanePick) {
107
+ if (!this._workPlaneHalfSize)
108
+ return workPlanePick;
109
+ const x = workPlanePick.x;
110
+ const maxX = this._workPlaneHalfSize.x;
111
+ const minX = -this._workPlaneHalfSize.x;
112
+ const y = workPlanePick.y;
113
+ const maxY = this._workPlaneHalfSize.y;
114
+ const minY = -this._workPlaneHalfSize.y;
115
+ if (x >= minX && x <= maxX && y >= minY && y <= maxY) {
116
+ return workPlanePick;
117
+ }
118
+ else {
119
+ return undefined;
120
+ }
121
+ }
122
+ }
@@ -10,8 +10,11 @@ export * from "./MemoizedVector3";
10
10
  export * from "./ObserverList";
11
11
  export * from "./FocusCamera";
12
12
  export * from "./StateMachine";
13
+ export * from "./TransformNode";
13
14
  export * from "./UndoRedo";
14
15
  export * from "./MouseInput";
15
16
  export * from "./TouchInput";
16
17
  export * from "./QuestionChallengeAnswer";
17
18
  export * from "./QuestionChallenge";
19
+ export * from "./SceneRoot";
20
+ export * from "./WorkPlane";
@@ -22,8 +22,11 @@ __exportStar(require("./MemoizedVector3"), exports);
22
22
  __exportStar(require("./ObserverList"), exports);
23
23
  __exportStar(require("./FocusCamera"), exports);
24
24
  __exportStar(require("./StateMachine"), exports);
25
+ __exportStar(require("./TransformNode"), exports);
25
26
  __exportStar(require("./UndoRedo"), exports);
26
27
  __exportStar(require("./MouseInput"), exports);
27
28
  __exportStar(require("./TouchInput"), exports);
28
29
  __exportStar(require("./QuestionChallengeAnswer"), exports);
29
30
  __exportStar(require("./QuestionChallenge"), exports);
31
+ __exportStar(require("./SceneRoot"), exports);
32
+ __exportStar(require("./WorkPlane"), exports);
@@ -0,0 +1,12 @@
1
+ import { AppPayloadVersions, Handler } from "@vived/app-host-boundary";
2
+ export declare const appPayloadVersions: AppPayloadVersions;
3
+ export interface AppHandlerFunctions {
4
+ showBabylonInspector: (show: boolean) => void;
5
+ setIsAuthoring: (isAuthoring: boolean) => void;
6
+ disposeApp: () => void;
7
+ stopApp: () => void;
8
+ startApp: (container: HTMLElement) => void;
9
+ setState: (finalState: string, duration?: number) => void;
10
+ setDevicePreview: (x: number, y: number) => void;
11
+ }
12
+ export declare function makeAppHandler(functions: AppHandlerFunctions): Handler;
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeAppHandler = exports.appPayloadVersions = void 0;
4
+ const app_host_boundary_1 = require("@vived/app-host-boundary");
5
+ const verbose = false;
6
+ exports.appPayloadVersions = {
7
+ disposeApp: 1,
8
+ setDevicePreview: 1,
9
+ setIsAuthoring: 1,
10
+ showBabylonInspector: 1,
11
+ startApp: 2,
12
+ stopApp: 1,
13
+ setState: 2,
14
+ };
15
+ function makeAppHandler(functions) {
16
+ const handler = (request) => {
17
+ switch (request.type) {
18
+ case app_host_boundary_1.SHOW_BABYLON_INSPECTOR:
19
+ if (request.version === exports.appPayloadVersions.showBabylonInspector) {
20
+ const payload = request.payload;
21
+ functions.showBabylonInspector(payload.showBabylonInspector);
22
+ }
23
+ else {
24
+ throw new app_host_boundary_1.UnsupportedRequestVerion(request.type, request.version);
25
+ }
26
+ break;
27
+ case app_host_boundary_1.SET_IS_AUTHORING:
28
+ if (request.version === exports.appPayloadVersions.setIsAuthoring) {
29
+ const payload = request.payload;
30
+ functions.setIsAuthoring(payload.isAuthoring);
31
+ }
32
+ else {
33
+ throw new app_host_boundary_1.UnsupportedRequestVerion(request.type, request.version);
34
+ }
35
+ break;
36
+ case app_host_boundary_1.DISPOSE_APP:
37
+ if (request.version === exports.appPayloadVersions.disposeApp) {
38
+ functions.disposeApp();
39
+ }
40
+ else {
41
+ throw new app_host_boundary_1.UnsupportedRequestVerion(request.type, request.version);
42
+ }
43
+ break;
44
+ case app_host_boundary_1.STOP_APP:
45
+ if (request.version === exports.appPayloadVersions.stopApp) {
46
+ functions.stopApp();
47
+ }
48
+ else {
49
+ throw new app_host_boundary_1.UnsupportedRequestVerion(request.type, request.version);
50
+ }
51
+ break;
52
+ case app_host_boundary_1.SET_DEVICE_PREVIEW:
53
+ if (request.version === exports.appPayloadVersions.setDevicePreview) {
54
+ const payload = request.payload;
55
+ functions.setDevicePreview(payload.x, payload.y);
56
+ }
57
+ else {
58
+ throw new app_host_boundary_1.UnsupportedRequestVerion(request.type, request.version);
59
+ }
60
+ break;
61
+ case app_host_boundary_1.START_APP:
62
+ if (request.version === exports.appPayloadVersions.startApp) {
63
+ const payload = request.payload;
64
+ functions.startApp(payload.container);
65
+ }
66
+ else {
67
+ throw new app_host_boundary_1.UnsupportedRequestVerion(request.type, request.version);
68
+ }
69
+ break;
70
+ case app_host_boundary_1.SET_APP_STATE:
71
+ if (request.version === exports.appPayloadVersions.setState) {
72
+ const payload = request.payload;
73
+ functions.setState(payload.finalState, payload.duration);
74
+ }
75
+ else {
76
+ throw new app_host_boundary_1.UnsupportedRequestVerion(request.type, request.version);
77
+ }
78
+ break;
79
+ case app_host_boundary_1.GET_APP_PAYLOAD_VERSIONS:
80
+ if (request.version === 1) {
81
+ const payload = request.payload;
82
+ payload.callback(exports.appPayloadVersions);
83
+ }
84
+ else {
85
+ throw new app_host_boundary_1.UnsupportedRequestVerion(request.type, request.version);
86
+ }
87
+ break;
88
+ default:
89
+ throw new app_host_boundary_1.UnsupportedRequestTypeError(request.type);
90
+ }
91
+ };
92
+ return handler;
93
+ }
94
+ exports.makeAppHandler = makeAppHandler;
@@ -0,0 +1,3 @@
1
+ import { BaseAppUC } from "../../Core";
2
+ import { AppHandlerFunctions } from "./makeAppHandler";
3
+ export declare function defaultAppHandlerFunctions(baseApp: BaseAppUC, startRendering: (container: HTMLElement) => void, stopRendering: () => void): AppHandlerFunctions;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultAppHandlerFunctions = void 0;
4
+ const setDevicePreview_1 = require("./setDevicePreview");
5
+ const setIsAuthoring_1 = require("./setIsAuthoring");
6
+ const setState_1 = require("./setState");
7
+ const showBabylonInspector_1 = require("./showBabylonInspector");
8
+ const startApp_1 = require("./startApp");
9
+ const stopApp_1 = require("./stopApp");
10
+ function defaultAppHandlerFunctions(baseApp, startRendering, stopRendering) {
11
+ const showBabylonInspector = showBabylonInspector_1.makeShowBabylonInspector(baseApp);
12
+ const disposeApp = () => {
13
+ // Todo, override this in your app if you have something to dispose.
14
+ };
15
+ const setDevicePreview = setDevicePreview_1.makeSetDevicePreview(baseApp);
16
+ const setIsAuthoring = setIsAuthoring_1.makeSetIsAuthoring(baseApp);
17
+ const startApp = startApp_1.makeStartApp(startRendering);
18
+ const stopApp = stopApp_1.makeStopApp(baseApp, stopRendering);
19
+ const setState = setState_1.makeSetState(baseApp);
20
+ const appHandlerFunctions = {
21
+ showBabylonInspector,
22
+ disposeApp,
23
+ setDevicePreview,
24
+ setIsAuthoring,
25
+ startApp,
26
+ stopApp,
27
+ setState,
28
+ };
29
+ return appHandlerFunctions;
30
+ }
31
+ exports.defaultAppHandlerFunctions = defaultAppHandlerFunctions;
@@ -0,0 +1,2 @@
1
+ import { BaseAppUC } from "../../Core";
2
+ export declare function makeDispatchStateChange(baseApp: BaseAppUC): () => void;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeDispatchStateChange = void 0;
4
+ function makeDispatchStateChange(baseApp) {
5
+ return function dispatchStateChange() {
6
+ const state = baseApp.getSerializedState();
7
+ baseApp.dispatchOnStateChange(state);
8
+ };
9
+ }
10
+ exports.makeDispatchStateChange = makeDispatchStateChange;
@@ -0,0 +1,9 @@
1
+ export * from "./dispatchStateChange";
2
+ export * from "./setDevicePreview";
3
+ export * from "./setIsAuthoring";
4
+ export * from "./showBabylonInspector";
5
+ export * from "./startApp";
6
+ export * from "./stopApp";
7
+ export * from "./makeAppHandler";
8
+ export * from "./defaultAppHanlderFunctions";
9
+ export * from "./setState";
@@ -0,0 +1,21 @@
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("./dispatchStateChange"), exports);
14
+ __exportStar(require("./setDevicePreview"), exports);
15
+ __exportStar(require("./setIsAuthoring"), exports);
16
+ __exportStar(require("./showBabylonInspector"), exports);
17
+ __exportStar(require("./startApp"), exports);
18
+ __exportStar(require("./stopApp"), exports);
19
+ __exportStar(require("./makeAppHandler"), exports);
20
+ __exportStar(require("./defaultAppHanlderFunctions"), exports);
21
+ __exportStar(require("./setState"), exports);
@@ -0,0 +1,12 @@
1
+ import { AppPayloadVersions, Handler } from "@vived/app-host-boundary";
2
+ export declare const appPayloadVersions: AppPayloadVersions;
3
+ export interface AppHandlerFunctions {
4
+ showBabylonInspector: (show: boolean) => void;
5
+ setIsAuthoring: (isAuthoring: boolean) => void;
6
+ disposeApp: () => void;
7
+ stopApp: () => void;
8
+ startApp: (container: HTMLElement) => void;
9
+ setState: (finalState: string, duration?: number) => void;
10
+ setDevicePreview: (x: number, y: number) => void;
11
+ }
12
+ export declare function makeAppHandler(functions: AppHandlerFunctions, verbose?: boolean): Handler;
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeAppHandler = exports.appPayloadVersions = void 0;
4
+ const app_host_boundary_1 = require("@vived/app-host-boundary");
5
+ exports.appPayloadVersions = {
6
+ disposeApp: 1,
7
+ setDevicePreview: 1,
8
+ setIsAuthoring: 1,
9
+ showBabylonInspector: 1,
10
+ startApp: 2,
11
+ stopApp: 1,
12
+ setState: 2,
13
+ };
14
+ function makeAppHandler(functions, verbose = false) {
15
+ const handler = (request) => {
16
+ if (verbose) {
17
+ console.log(request);
18
+ }
19
+ switch (request.type) {
20
+ case 'SHOW_BABYLON_INSPECTOR':
21
+ if (request.version === exports.appPayloadVersions.showBabylonInspector) {
22
+ const payload = request.payload;
23
+ functions.showBabylonInspector(payload.showBabylonInspector);
24
+ }
25
+ else {
26
+ throw new app_host_boundary_1.UnsupportedRequestVerion(request.type, request.version);
27
+ }
28
+ break;
29
+ case 'SET_IS_AUTHORING':
30
+ if (request.version === exports.appPayloadVersions.setIsAuthoring) {
31
+ const payload = request.payload;
32
+ functions.setIsAuthoring(payload.isAuthoring);
33
+ }
34
+ else {
35
+ throw new app_host_boundary_1.UnsupportedRequestVerion(request.type, request.version);
36
+ }
37
+ break;
38
+ case 'DISPOSE_APP':
39
+ if (request.version === exports.appPayloadVersions.disposeApp) {
40
+ functions.disposeApp();
41
+ }
42
+ else {
43
+ throw new app_host_boundary_1.UnsupportedRequestVerion(request.type, request.version);
44
+ }
45
+ break;
46
+ case 'STOP_APP':
47
+ if (request.version === exports.appPayloadVersions.stopApp) {
48
+ functions.stopApp();
49
+ }
50
+ else {
51
+ throw new app_host_boundary_1.UnsupportedRequestVerion(request.type, request.version);
52
+ }
53
+ break;
54
+ case 'SET_DEVICE_PREVIEW':
55
+ if (request.version === exports.appPayloadVersions.setDevicePreview) {
56
+ const payload = request.payload;
57
+ functions.setDevicePreview(payload.x, payload.y);
58
+ }
59
+ else {
60
+ throw new app_host_boundary_1.UnsupportedRequestVerion(request.type, request.version);
61
+ }
62
+ break;
63
+ case 'START_APP':
64
+ if (request.version === exports.appPayloadVersions.startApp) {
65
+ const payload = request.payload;
66
+ functions.startApp(payload.container);
67
+ }
68
+ else {
69
+ throw new app_host_boundary_1.UnsupportedRequestVerion(request.type, request.version);
70
+ }
71
+ break;
72
+ case 'SET_APP_STATE':
73
+ if (request.version === exports.appPayloadVersions.setState) {
74
+ const payload = request.payload;
75
+ functions.setState(payload.finalState, payload.duration);
76
+ }
77
+ else {
78
+ throw new app_host_boundary_1.UnsupportedRequestVerion(request.type, request.version);
79
+ }
80
+ break;
81
+ case 'GET_APP_PAYLOAD_VERSION':
82
+ if (request.version === 1) {
83
+ const payload = request.payload;
84
+ payload.callback(exports.appPayloadVersions);
85
+ }
86
+ else {
87
+ throw new app_host_boundary_1.UnsupportedRequestVerion(request.type, request.version);
88
+ }
89
+ break;
90
+ default:
91
+ throw new app_host_boundary_1.UnsupportedRequestTypeError(request.type);
92
+ }
93
+ };
94
+ return handler;
95
+ }
96
+ exports.makeAppHandler = makeAppHandler;
@@ -0,0 +1,2 @@
1
+ import { BaseAppUC } from "../../Core";
2
+ export declare function makeSetDevicePreview(devicePreviewUC: BaseAppUC): (x: number, y: number) => void;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeSetDevicePreview = void 0;
4
+ function makeSetDevicePreview(devicePreviewUC) {
5
+ return function setDevicePreview(x, y) {
6
+ if (x < 0 || y < 0) {
7
+ devicePreviewUC.clearDevicePreview();
8
+ }
9
+ else {
10
+ devicePreviewUC.setDevicePreview(x, y);
11
+ }
12
+ };
13
+ }
14
+ exports.makeSetDevicePreview = makeSetDevicePreview;
@@ -0,0 +1,2 @@
1
+ import { BaseAppUC } from "../../Core";
2
+ export declare function makeSetIsAuthoring(appStateUC: BaseAppUC): (isAuthoring: boolean) => void;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeSetIsAuthoring = void 0;
4
+ const dispatchStateChange_1 = require("./dispatchStateChange");
5
+ function makeSetIsAuthoring(appStateUC) {
6
+ const dispatchStateChange = dispatchStateChange_1.makeDispatchStateChange(appStateUC);
7
+ return function setIsAuthoring(isAuthoring) {
8
+ appStateUC.setIsAuthoring(isAuthoring);
9
+ if (isAuthoring) {
10
+ dispatchStateChange();
11
+ }
12
+ };
13
+ }
14
+ exports.makeSetIsAuthoring = makeSetIsAuthoring;
@@ -0,0 +1,2 @@
1
+ import { BaseAppUC } from "../../Core";
2
+ export declare function makeSetState(baseApp: BaseAppUC): (state: string | null, duration?: number) => void;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeSetState = void 0;
4
+ function makeSetState(baseApp) {
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
+ }
19
+ };
20
+ }
21
+ exports.makeSetState = makeSetState;
@@ -0,0 +1,2 @@
1
+ import { BaseAppUC } from "../../Core";
2
+ export declare function makeShowBabylonInspector(appStateUC: BaseAppUC): (showInspector: boolean) => void;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeShowBabylonInspector = void 0;
4
+ function makeShowBabylonInspector(appStateUC) {
5
+ return function showBabylonInspector(showInspector) {
6
+ appStateUC.setShowBabylonInspector(showInspector);
7
+ };
8
+ }
9
+ exports.makeShowBabylonInspector = makeShowBabylonInspector;
@@ -0,0 +1 @@
1
+ export declare function makeStartApp(startRendering: (container: HTMLElement) => void): (container: HTMLElement) => void;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeStartApp = void 0;
4
+ function makeStartApp(startRendering) {
5
+ return function startApp(container) {
6
+ startRendering(container);
7
+ };
8
+ }
9
+ exports.makeStartApp = makeStartApp;
@@ -0,0 +1,2 @@
1
+ import { BaseAppUC } from "../../Core";
2
+ export declare function makeStopApp(appStateUC: BaseAppUC, stopRendering: () => void): () => void;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeStopApp = void 0;
4
+ function makeStopApp(appStateUC, stopRendering) {
5
+ return function stopApp() {
6
+ stopRendering();
7
+ appStateUC.setIsAuthoring(false);
8
+ };
9
+ }
10
+ exports.makeStopApp = makeStopApp;
@@ -0,0 +1,13 @@
1
+ import { BaseAppStateObserver, BaseAppUC } from "../../Core";
2
+ export interface DevicePreviewVM {
3
+ x: number;
4
+ y: number;
5
+ useDevicePreview: boolean;
6
+ }
7
+ export declare class DevicePreviewPM implements BaseAppStateObserver {
8
+ devicePreviewUC: BaseAppUC;
9
+ updateView: (vm: DevicePreviewVM) => void;
10
+ constructor(baseAppUC: BaseAppUC, updateView: (vm: DevicePreviewVM) => void);
11
+ onBaseAppChange: () => void;
12
+ dispose(): 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(baseAppUC, updateView) {
6
+ this.onBaseAppChange = () => {
7
+ const useDevicePreview = this.devicePreviewUC.getUseDevicePreview();
8
+ const x = this.devicePreviewUC.getDevicePreviewSize().x;
9
+ const y = this.devicePreviewUC.getDevicePreviewSize().y;
10
+ this.updateView({
11
+ x,
12
+ y,
13
+ useDevicePreview,
14
+ });
15
+ };
16
+ this.devicePreviewUC = baseAppUC;
17
+ this.updateView = updateView;
18
+ this.onBaseAppChange();
19
+ this.devicePreviewUC.addObserver(this);
20
+ }
21
+ dispose() {
22
+ this.devicePreviewUC.removeObserver(this);
23
+ }
24
+ }
25
+ exports.DevicePreviewPM = DevicePreviewPM;
@@ -0,0 +1,10 @@
1
+ import { BaseAppStateObserver, BaseAppUC } from "../../Core";
2
+ export declare class IsAuthoringPM implements BaseAppStateObserver {
3
+ private appStateUC;
4
+ private updateView;
5
+ private lastSetState?;
6
+ constructor(baseAppStateUC: BaseAppUC, updateView: (isAuthoring: boolean) => void);
7
+ dispose(): void;
8
+ onBaseAppChange: () => void;
9
+ private doUpdateView;
10
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IsAuthoringPM = void 0;
4
+ class IsAuthoringPM {
5
+ constructor(baseAppStateUC, updateView) {
6
+ this.onBaseAppChange = this.doUpdateView;
7
+ this.appStateUC = baseAppStateUC;
8
+ this.updateView = updateView;
9
+ this.doUpdateView();
10
+ this.appStateUC.addObserver(this);
11
+ }
12
+ dispose() {
13
+ this.appStateUC.removeObserver(this);
14
+ }
15
+ doUpdateView() {
16
+ const isAuthoring = this.appStateUC.getIsAuthoring();
17
+ if (isAuthoring === this.lastSetState)
18
+ return;
19
+ this.updateView(isAuthoring);
20
+ this.lastSetState = isAuthoring;
21
+ }
22
+ }
23
+ exports.IsAuthoringPM = IsAuthoringPM;
@@ -0,0 +1,10 @@
1
+ import { BaseAppStateObserver, BaseAppUC } from "../../Core";
2
+ export declare class ShowBabylonInspectorPM implements BaseAppStateObserver {
3
+ private appStateUC;
4
+ private updateView;
5
+ private lastSetState?;
6
+ constructor(baseAppStateUC: BaseAppUC, updateView: (showInspector: boolean) => void);
7
+ dispose(): void;
8
+ onBaseAppChange: () => void;
9
+ private doUpdateView;
10
+ }