@vived/app 2.50.1 → 3.0.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 (135) hide show
  1. package/lib/AppObject/AppObject.d.ts +15 -0
  2. package/lib/AppObject/AppObject.js +65 -0
  3. package/lib/AppObject/AppObjectComponent.d.ts +6 -0
  4. package/lib/AppObject/AppObjectComponent.js +2 -0
  5. package/lib/AppObject/AppObjectEntity.d.ts +16 -0
  6. package/lib/AppObject/AppObjectEntity.js +40 -0
  7. package/lib/AppObject/AppObjectEntityRepo.d.ts +15 -0
  8. package/lib/AppObject/AppObjectEntityRepo.js +54 -0
  9. package/lib/AppObject/AppObjectPM.d.ts +15 -0
  10. package/lib/AppObject/AppObjectPM.js +38 -0
  11. package/lib/AppObject/AppObjectRepo.d.ts +19 -0
  12. package/lib/AppObject/AppObjectRepo.js +95 -0
  13. package/lib/AppObject/AppObjectUC.d.ts +8 -0
  14. package/lib/AppObject/AppObjectUC.js +17 -0
  15. package/lib/AppObject/IsEnabledPM.d.ts +11 -0
  16. package/lib/AppObject/IsEnabledPM.js +29 -0
  17. package/lib/AppObject/index.d.ts +7 -0
  18. package/lib/{UseCases/FocusCamera → AppObject}/index.js +7 -7
  19. package/lib/AppObjectComponents/ChannelModel/Entities/ChannelModel.d.ts +42 -0
  20. package/lib/AppObjectComponents/ChannelModel/Entities/ChannelModel.js +99 -0
  21. package/lib/AppObjectComponents/ChannelModel/Entities/ChannelModelRepo.d.ts +12 -0
  22. package/lib/AppObjectComponents/ChannelModel/Entities/ChannelModelRepo.js +45 -0
  23. package/lib/AppObjectComponents/ChannelModel/index.d.ts +2 -0
  24. package/lib/AppObjectComponents/ChannelModel/index.js +14 -0
  25. package/lib/AppObjectComponents/Hideable/Entities/Hideable.d.ts +10 -0
  26. package/lib/AppObjectComponents/Hideable/Entities/Hideable.js +31 -0
  27. package/lib/AppObjectComponents/Hideable/PresentationManagers/IsHiddenPM.d.ts +12 -0
  28. package/lib/AppObjectComponents/Hideable/PresentationManagers/IsHiddenPM.js +42 -0
  29. package/lib/AppObjectComponents/Hideable/index.d.ts +2 -0
  30. package/lib/AppObjectComponents/Hideable/index.js +14 -0
  31. package/lib/AppObjectComponents/Label/Entities/Label.d.ts +17 -0
  32. package/lib/AppObjectComponents/Label/Entities/Label.js +58 -0
  33. package/lib/AppObjectComponents/Label/PresentationManagers/LabelPM.d.ts +19 -0
  34. package/lib/AppObjectComponents/Label/PresentationManagers/LabelPM.js +62 -0
  35. package/lib/AppObjectComponents/Label/index.d.ts +2 -0
  36. package/lib/AppObjectComponents/Label/index.js +14 -0
  37. package/lib/AppObjectComponents/Mesh/Entities/Mesh.d.ts +21 -0
  38. package/lib/AppObjectComponents/Mesh/Entities/Mesh.js +45 -0
  39. package/lib/AppObjectComponents/Mesh/index.d.ts +1 -0
  40. package/lib/{UseCases/SceneObjects → AppObjectComponents/Mesh}/index.js +1 -1
  41. package/lib/AppObjectComponents/OverlayColor/Entities/OverlayColor.d.ts +25 -0
  42. package/lib/AppObjectComponents/OverlayColor/Entities/OverlayColor.js +59 -0
  43. package/lib/AppObjectComponents/OverlayColor/PresentationManagers/OverlayColorPM.d.ts +13 -0
  44. package/lib/AppObjectComponents/OverlayColor/PresentationManagers/OverlayColorPM.js +42 -0
  45. package/lib/AppObjectComponents/OverlayColor/index.d.ts +2 -0
  46. package/lib/AppObjectComponents/OverlayColor/index.js +14 -0
  47. package/lib/AppObjectComponents/Transform3D/Entities/Transform3D.d.ts +44 -0
  48. package/lib/AppObjectComponents/Transform3D/Entities/Transform3D.js +221 -0
  49. package/lib/AppObjectComponents/Transform3D/PresentationManagers/CanBeStuckPM.d.ts +12 -0
  50. package/lib/AppObjectComponents/Transform3D/PresentationManagers/CanBeStuckPM.js +45 -0
  51. package/lib/AppObjectComponents/Transform3D/PresentationManagers/Transform3DPM.d.ts +19 -0
  52. package/lib/AppObjectComponents/Transform3D/PresentationManagers/Transform3DPM.js +59 -0
  53. package/lib/AppObjectComponents/Transform3D/UseCases/PeelTransform3D.d.ts +20 -0
  54. package/lib/AppObjectComponents/Transform3D/UseCases/PeelTransform3D.js +67 -0
  55. package/lib/AppObjectComponents/Transform3D/UseCases/StickTransform3D.d.ts +14 -0
  56. package/lib/AppObjectComponents/Transform3D/UseCases/StickTransform3D.js +45 -0
  57. package/lib/AppObjectComponents/Transform3D/UseCases/getStickUC.d.ts +3 -0
  58. package/lib/AppObjectComponents/Transform3D/UseCases/getStickUC.js +8 -0
  59. package/lib/AppObjectComponents/Transform3D/index.d.ts +5 -0
  60. package/lib/AppObjectComponents/Transform3D/index.js +17 -0
  61. package/lib/AppObjectComponents/index.d.ts +6 -0
  62. package/lib/AppObjectComponents/index.js +18 -0
  63. package/lib/Entities/Babylon.d.ts +1 -0
  64. package/lib/Entities/ObserverList.d.ts +1 -0
  65. package/lib/Entities/ObserverList.js +3 -0
  66. package/lib/Entities/SceneModel.d.ts +1 -1
  67. package/lib/Entities/SceneModelMesh.d.ts +3 -44
  68. package/lib/Entities/SceneModelMesh.js +7 -114
  69. package/lib/Types/ChannelModelData.d.ts +68 -0
  70. package/lib/Types/ChannelModelData.js +21 -0
  71. package/lib/Types/EaseFn.d.ts +1 -0
  72. package/lib/Types/EaseFn.js +2 -0
  73. package/lib/Types/index.d.ts +2 -0
  74. package/lib/Types/index.js +14 -0
  75. package/lib/UseCases/SceneModel/index.d.ts +0 -3
  76. package/lib/UseCases/SceneModel/index.js +0 -3
  77. package/lib/UseCases/SceneModel/loadNewModel.d.ts +2 -2
  78. package/lib/UseCases/SceneModel/loadNewModel.js +15 -17
  79. package/lib/UseCases/index.d.ts +1 -1
  80. package/lib/UseCases/index.js +1 -1
  81. package/lib/UseCases/setupStandardAppObjects.d.ts +2 -0
  82. package/lib/UseCases/setupStandardAppObjects.js +10 -0
  83. package/lib/ValueObjects/Quaternion.d.ts +1 -0
  84. package/lib/ValueObjects/Quaternion.js +21 -1
  85. package/lib/index.d.ts +3 -0
  86. package/lib/index.js +4 -1
  87. package/package.json +1 -1
  88. package/lib/Entities/FocusCamera.d.ts +0 -70
  89. package/lib/Entities/FocusCamera.js +0 -272
  90. package/lib/Entities/MemoizedBoolean.d.ts +0 -8
  91. package/lib/Entities/MemoizedBoolean.js +0 -22
  92. package/lib/Entities/MemoizedNumber.d.ts +0 -8
  93. package/lib/Entities/MemoizedNumber.js +0 -22
  94. package/lib/Entities/MemoizedQuaternion.d.ts +0 -9
  95. package/lib/Entities/MemoizedQuaternion.js +0 -23
  96. package/lib/Entities/MemoizedString.d.ts +0 -8
  97. package/lib/Entities/MemoizedString.js +0 -22
  98. package/lib/Entities/MemoizedVector2.d.ts +0 -9
  99. package/lib/Entities/MemoizedVector2.js +0 -23
  100. package/lib/Entities/MemoizedVector3.d.ts +0 -9
  101. package/lib/Entities/MemoizedVector3.js +0 -23
  102. package/lib/Entities/MeshModel.d.ts +0 -68
  103. package/lib/Entities/MeshModel.js +0 -174
  104. package/lib/Entities/ModelObject.d.ts +0 -10
  105. package/lib/Entities/ModelObject.js +0 -42
  106. package/lib/PresentationManagers/FocusCameraPM.d.ts +0 -15
  107. package/lib/PresentationManagers/FocusCameraPM.js +0 -31
  108. package/lib/PresentationManagers/FocusCameraPosRotPM.d.ts +0 -13
  109. package/lib/PresentationManagers/FocusCameraPosRotPM.js +0 -28
  110. package/lib/PresentationManagers/SceneModel/SceneMeshOverlayPM.d.ts +0 -15
  111. package/lib/PresentationManagers/SceneModel/SceneMeshOverlayPM.js +0 -34
  112. package/lib/UseCases/FocusCamera/BumpDollyFocusCamera.d.ts +0 -17
  113. package/lib/UseCases/FocusCamera/BumpDollyFocusCamera.js +0 -64
  114. package/lib/UseCases/FocusCamera/LerpFocusCamera.d.ts +0 -36
  115. package/lib/UseCases/FocusCamera/LerpFocusCamera.js +0 -71
  116. package/lib/UseCases/FocusCamera/PinchDollyFocusCamera.d.ts +0 -11
  117. package/lib/UseCases/FocusCamera/PinchDollyFocusCamera.js +0 -36
  118. package/lib/UseCases/FocusCamera/PixelDollyFocusCamera.d.ts +0 -11
  119. package/lib/UseCases/FocusCamera/PixelDollyFocusCamera.js +0 -36
  120. package/lib/UseCases/FocusCamera/PixelOrbitFocusCamera.d.ts +0 -11
  121. package/lib/UseCases/FocusCamera/PixelOrbitFocusCamera.js +0 -26
  122. package/lib/UseCases/FocusCamera/PixelPlanePanFocusCamera.d.ts +0 -11
  123. package/lib/UseCases/FocusCamera/PixelPlanePanFocusCamera.js +0 -33
  124. package/lib/UseCases/FocusCamera/SerializeFocusCamera.d.ts +0 -22
  125. package/lib/UseCases/FocusCamera/SerializeFocusCamera.js +0 -81
  126. package/lib/UseCases/FocusCamera/index.d.ts +0 -7
  127. package/lib/UseCases/SceneModel/SerializeActiveModel.d.ts +0 -18
  128. package/lib/UseCases/SceneModel/SerializeActiveModel.js +0 -74
  129. package/lib/UseCases/SceneModel/SetMeshesEnabledHook.d.ts +0 -7
  130. package/lib/UseCases/SceneModel/SetMeshesEnabledHook.js +0 -22
  131. package/lib/UseCases/SceneModel/SetSceneModelMeshOverlayColor.d.ts +0 -2
  132. package/lib/UseCases/SceneModel/SetSceneModelMeshOverlayColor.js +0 -13
  133. package/lib/UseCases/SceneObjects/PeelSceneObject.d.ts +0 -18
  134. package/lib/UseCases/SceneObjects/PeelSceneObject.js +0 -61
  135. package/lib/UseCases/SceneObjects/index.d.ts +0 -1
@@ -1,64 +1,23 @@
1
- import { Vector3, Vector3DTO } from "../ValueObjects";
2
1
  import { ObservableEntity } from "./ObservableEntity";
3
- import { SceneObject } from "./SceneObject";
4
- export declare enum Color {
5
- GREEN = "Green",
6
- PINK = "Pink",
7
- YELLOW = "Yellow",
8
- RED = "Red",
9
- BLUE = "Blue",
10
- WHITE = "White",
11
- PURPLE = "Purple",
12
- BLACK = "Black",
13
- ORANGE = "Orange"
14
- }
15
- export interface SceneModelMeshStateDTO {
16
- id: string;
17
- shown: boolean;
18
- position: Vector3DTO;
19
- overlayColor: Color | undefined;
20
- }
21
2
  export declare abstract class SceneModelMesh extends ObservableEntity {
22
3
  abstract readonly id: string;
23
4
  abstract label: string;
24
5
  abstract meshPaths: string[];
25
- abstract sceneObject: SceneObject | undefined;
26
- abstract shown: boolean;
27
- abstract position: Vector3;
28
- abstract overlayColor: Color | undefined;
29
- abstract get canBeStuck(): boolean;
30
- abstract stick(durationMS: number, easeFn: (val: number) => number, onStickComplete?: () => void): void;
31
- abstract moveTo(position: Vector3, durationMS: number, easeFn: (val: number) => number, onStickComplete?: () => void): void;
32
6
  abstract addMeshPath(path: string): void;
33
7
  abstract hasMeshPath(path: string): boolean;
34
8
  abstract removeMeshPath(path: string): void;
35
9
  abstract toData(): SceneModelObjectDTO;
36
10
  abstract applyData(data: SceneModelObjectDTO): void;
37
- abstract getState(): SceneModelMeshStateDTO | null;
38
11
  }
39
12
  export declare function makeSceneModelMesh(id: string): SceneModelMeshImp;
40
13
  declare class SceneModelMeshImp extends SceneModelMesh {
41
14
  readonly id: string;
42
- private _sceneObject;
43
- get sceneObject(): SceneObject | undefined;
44
- set sceneObject(so: SceneObject | undefined);
45
- get position(): Vector3;
46
- set position(p: Vector3);
47
- private _overlayColor;
48
- get overlayColor(): Color | undefined;
49
- set overlayColor(overlayColor: Color | undefined);
50
- get canBeStuck(): boolean;
51
- moveTo(position: Vector3, durationMS: number, easeFn: (val: number) => number, onMoveComplete?: () => void): void;
52
- stick: (durationMS: number, easeFn: (val: number) => number, onStickComplete?: (() => void) | undefined) => void;
53
- get shown(): boolean;
54
- set shown(s: boolean);
55
- private _label;
56
- get label(): string;
57
- set label(label: string);
58
15
  private _meshPaths;
59
16
  get meshPaths(): string[];
60
17
  set meshPaths(paths: string[]);
61
- getState(): SceneModelMeshStateDTO | null;
18
+ private memoizedLabel;
19
+ get label(): string;
20
+ set label(val: string);
62
21
  addMeshPath: (path: string) => void;
63
22
  hasMeshPath: (path: string) => boolean;
64
23
  removeMeshPath: (path: string) => void;
@@ -1,21 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.makeSceneModelMesh = exports.SceneModelMesh = exports.Color = void 0;
4
- const ValueObjects_1 = require("../ValueObjects");
3
+ exports.makeSceneModelMesh = exports.SceneModelMesh = void 0;
5
4
  const MemoizedString_1 = require("./Memoized/MemoizedString");
6
5
  const ObservableEntity_1 = require("./ObservableEntity");
7
- var Color;
8
- (function (Color) {
9
- Color["GREEN"] = "Green";
10
- Color["PINK"] = "Pink";
11
- Color["YELLOW"] = "Yellow";
12
- Color["RED"] = "Red";
13
- Color["BLUE"] = "Blue";
14
- Color["WHITE"] = "White";
15
- Color["PURPLE"] = "Purple";
16
- Color["BLACK"] = "Black";
17
- Color["ORANGE"] = "Orange";
18
- })(Color = exports.Color || (exports.Color = {}));
19
6
  class SceneModelMesh extends ObservableEntity_1.ObservableEntity {
20
7
  }
21
8
  exports.SceneModelMesh = SceneModelMesh;
@@ -26,12 +13,8 @@ exports.makeSceneModelMesh = makeSceneModelMesh;
26
13
  class SceneModelMeshImp extends SceneModelMesh {
27
14
  constructor(id) {
28
15
  super();
29
- this._overlayColor = undefined;
30
- this.stick = (durationMS, easeFn, onStickComplete) => {
31
- this.moveTo(ValueObjects_1.Vector3.Zero(), durationMS, easeFn, onStickComplete);
32
- };
33
- this._label = new MemoizedString_1.MemoizedString("", this.notify);
34
16
  this._meshPaths = [];
17
+ this.memoizedLabel = new MemoizedString_1.MemoizedString("", this.notify);
35
18
  this.addMeshPath = (path) => {
36
19
  if (this._meshPaths.includes(path))
37
20
  return;
@@ -63,89 +46,6 @@ class SceneModelMeshImp extends SceneModelMesh {
63
46
  };
64
47
  this.id = id;
65
48
  }
66
- get sceneObject() {
67
- return this._sceneObject;
68
- }
69
- set sceneObject(so) {
70
- if (this._sceneObject) {
71
- this._sceneObject.removeObserver(this.notify);
72
- }
73
- this._sceneObject = so;
74
- if (this._sceneObject) {
75
- this._sceneObject.addObserver(this.notify);
76
- }
77
- }
78
- get position() {
79
- if (!this._sceneObject) {
80
- console.warn("Scene Mesh doea not have a scene object");
81
- return ValueObjects_1.Vector3.Zero();
82
- }
83
- else {
84
- return this._sceneObject.transform.localPosition;
85
- }
86
- }
87
- set position(p) {
88
- if (!this._sceneObject) {
89
- console.warn("Scene Mesh doea not have a scene object");
90
- return;
91
- }
92
- this._sceneObject.transform.localPosition = p;
93
- }
94
- get overlayColor() {
95
- return this._overlayColor;
96
- }
97
- set overlayColor(overlayColor) {
98
- if (this._overlayColor !== overlayColor) {
99
- this._overlayColor = overlayColor;
100
- this.notify();
101
- }
102
- }
103
- get canBeStuck() {
104
- if (!this._sceneObject) {
105
- console.warn("Scene Mesh doea not have a scene object");
106
- return false;
107
- }
108
- if (ValueObjects_1.Vector3.Equal(this._sceneObject.transform.localPosition, ValueObjects_1.Vector3.Zero())) {
109
- return false;
110
- }
111
- else {
112
- return true;
113
- }
114
- }
115
- moveTo(position, durationMS, easeFn, onMoveComplete) {
116
- if (!this._sceneObject) {
117
- console.warn("Scene Mesh doea not have a scene object");
118
- return;
119
- }
120
- if (ValueObjects_1.Vector3.Equal(position, this.position)) {
121
- if (onMoveComplete)
122
- onMoveComplete();
123
- return;
124
- }
125
- this._sceneObject.transform.lerp(durationMS, easeFn, position, undefined, undefined, onMoveComplete);
126
- }
127
- get shown() {
128
- if (!this._sceneObject) {
129
- console.warn("Scene Mesh doea not have a scene object");
130
- return false;
131
- }
132
- else {
133
- return this._sceneObject.shown;
134
- }
135
- }
136
- set shown(s) {
137
- if (!this._sceneObject) {
138
- console.warn("Scene Mesh doea not have a scene object");
139
- return;
140
- }
141
- this._sceneObject.shown = s;
142
- }
143
- get label() {
144
- return this._label.val;
145
- }
146
- set label(label) {
147
- this._label.val = label;
148
- }
149
49
  get meshPaths() {
150
50
  return [...this._meshPaths];
151
51
  }
@@ -166,17 +66,10 @@ class SceneModelMeshImp extends SceneModelMesh {
166
66
  this._meshPaths = paths;
167
67
  this.notify();
168
68
  }
169
- getState() {
170
- if (ValueObjects_1.Vector3.Equal(this.position, ValueObjects_1.Vector3.Zero()) && this.shown) {
171
- return null;
172
- }
173
- else {
174
- return {
175
- id: this.id,
176
- position: this.position.dto,
177
- shown: this.shown,
178
- overlayColor: this.overlayColor,
179
- };
180
- }
69
+ get label() {
70
+ return this.memoizedLabel.val;
71
+ }
72
+ set label(val) {
73
+ this.memoizedLabel.val = val;
181
74
  }
182
75
  }
@@ -0,0 +1,68 @@
1
+ export interface ChannelModelDataMeshDTOv1 {
2
+ version: number;
3
+ id: string;
4
+ meshPaths: string[];
5
+ label: string;
6
+ }
7
+ export interface ChannelModelDataMeshDTOv0 {
8
+ id: string;
9
+ meshPaths: string[];
10
+ label: string;
11
+ }
12
+ export declare type ChannelModelDTO = ChannelModelDTOv0 | ChannelModelDTOv1;
13
+ export interface ChannelModelDTOv0 {
14
+ version: number;
15
+ objects: ChannelModelDataMeshDTOv0[];
16
+ name: string;
17
+ description: string;
18
+ bounds_min: {
19
+ x: number;
20
+ y: number;
21
+ z: number;
22
+ };
23
+ bounds_max: {
24
+ x: number;
25
+ y: number;
26
+ z: number;
27
+ };
28
+ defaultPosition: {
29
+ x: number;
30
+ y: number;
31
+ z: number;
32
+ };
33
+ defaultRotation: {
34
+ x: number;
35
+ y: number;
36
+ z: number;
37
+ w: number;
38
+ };
39
+ defaultScale: number;
40
+ }
41
+ export interface ChannelModelDTOv1 {
42
+ version: number;
43
+ objects: ChannelModelDataMeshDTOv1[];
44
+ name: string;
45
+ bounds_min: {
46
+ x: number;
47
+ y: number;
48
+ z: number;
49
+ };
50
+ bounds_max: {
51
+ x: number;
52
+ y: number;
53
+ z: number;
54
+ };
55
+ defaultPosition: {
56
+ x: number;
57
+ y: number;
58
+ z: number;
59
+ };
60
+ defaultRotation: {
61
+ x: number;
62
+ y: number;
63
+ z: number;
64
+ w: number;
65
+ };
66
+ defaultScale: number;
67
+ }
68
+ export declare function convertChannelModelDataV0toV1(v0: ChannelModelDTOv0): ChannelModelDTOv1;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.convertChannelModelDataV0toV1 = void 0;
4
+ function convertChannelModelDataV0toV1(v0) {
5
+ const { objects, name, bounds_max, bounds_min, defaultPosition, defaultRotation, defaultScale } = v0;
6
+ const objectsV2 = objects.map(obj => {
7
+ const { id, label, meshPaths } = obj;
8
+ return {
9
+ version: 1,
10
+ id, label, meshPaths
11
+ };
12
+ });
13
+ return {
14
+ version: 1,
15
+ objects: objectsV2,
16
+ name,
17
+ bounds_max,
18
+ bounds_min, defaultPosition, defaultRotation, defaultScale
19
+ };
20
+ }
21
+ exports.convertChannelModelDataV0toV1 = convertChannelModelDataV0toV1;
@@ -0,0 +1 @@
1
+ export declare type EaseFn = (p: number) => number;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ export * from "./EaseFn";
2
+ export * from "./ChannelModelData";
@@ -0,0 +1,14 @@
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("./EaseFn"), exports);
14
+ __exportStar(require("./ChannelModelData"), exports);
@@ -1,5 +1,2 @@
1
1
  export * from "./modelDataLoader";
2
2
  export * from "./loadNewModel";
3
- export * from "./SerializeActiveModel";
4
- export * from "./SetMeshesEnabledHook";
5
- export * from "./SetSceneModelMeshOverlayColor";
@@ -12,6 +12,3 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  __exportStar(require("./modelDataLoader"), exports);
14
14
  __exportStar(require("./loadNewModel"), exports);
15
- __exportStar(require("./SerializeActiveModel"), exports);
16
- __exportStar(require("./SetMeshesEnabledHook"), exports);
17
- __exportStar(require("./SetSceneModelMeshOverlayColor"), exports);
@@ -1,2 +1,2 @@
1
- import { AppDispatcher, SceneModel, SceneModelMeshStateDTO, SceneModelRepo, SceneObjectsRepo, SceneRoot } from "../../Entities";
2
- export declare function makeLoadNewModel(sceneModelRepo: SceneModelRepo, sceneObjectRepo: SceneObjectsRepo, sceneRoot: SceneRoot, appDispatcher: AppDispatcher): (modelID: string, initialStateLookup: Map<string, SceneModelMeshStateDTO>) => Promise<SceneModel>;
1
+ import { AppDispatcher, SceneModel, SceneModelRepo, SceneObjectsRepo, SceneRoot } from "../../Entities";
2
+ export declare function makeLoadNewModel(sceneModelRepo: SceneModelRepo, sceneObjectRepo: SceneObjectsRepo, sceneRoot: SceneRoot, appDispatcher: AppDispatcher): (modelID: string) => Promise<SceneModel>;
@@ -11,9 +11,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.makeLoadNewModel = void 0;
13
13
  const Entities_1 = require("../../Entities");
14
- const ValueObjects_1 = require("../../ValueObjects");
15
14
  function makeLoadNewModel(sceneModelRepo, sceneObjectRepo, sceneRoot, appDispatcher) {
16
- return function loadNewModel(modelID, initialStateLookup) {
15
+ return function loadNewModel(modelID) {
17
16
  return __awaiter(this, void 0, void 0, function* () {
18
17
  let sceneModel = sceneModelRepo.get(modelID);
19
18
  if (sceneModel === undefined) {
@@ -39,21 +38,20 @@ function makeLoadNewModel(sceneModelRepo, sceneObjectRepo, sceneRoot, appDispatc
39
38
  const dataDTO = yield sceneModelRepo.dataLoader(modelID);
40
39
  sceneModel.applyData(dataDTO);
41
40
  sceneModel.getAllMeshes().forEach((meshObject) => {
42
- var _a;
43
- let so = sceneObjectRepo.get(meshObject.id);
44
- if (!so) {
45
- so = Entities_1.makeSceneObject(meshObject.id);
46
- sceneObjectRepo.add(meshObject.id, so);
47
- }
48
- so.transform.parent = (_a = sceneRoot.sceneObject) === null || _a === void 0 ? void 0 : _a.transform;
49
- meshObject.sceneObject = so;
50
- const initialState = initialStateLookup.get(meshObject.id);
51
- meshObject.position = initialState
52
- ? ValueObjects_1.Vector3.FromDTO(initialState.position)
53
- : ValueObjects_1.Vector3.Zero();
54
- meshObject.shown = initialState ? initialState.shown : true;
55
- so.transform.localRotation = ValueObjects_1.Quaternion.Identity();
56
- so.transform.localScale = ValueObjects_1.Vector3.One();
41
+ // let so = sceneObjectRepo.get(meshObject.id);
42
+ // if (!so) {
43
+ // so = makeSceneObject(meshObject.id);
44
+ // sceneObjectRepo.add(meshObject.id, so);
45
+ // }
46
+ // so.transform.parent = sceneRoot.sceneObject?.transform;
47
+ // meshObject.sceneObject = so;
48
+ // const initialState = initialStateLookup.get(meshObject.id);
49
+ // meshObject.position = initialState
50
+ // ? Vector3.FromDTO(initialState.position)
51
+ // : Vector3.Zero();
52
+ // meshObject.shown = initialState ? initialState.shown : true;
53
+ // so.transform.localRotation = Quaternion.Identity();
54
+ // so.transform.localScale = Vector3.One();
57
55
  });
58
56
  yield sceneModelRepo.modelLoader(modelID);
59
57
  sceneModel.state = Entities_1.SceneModelState.READY;
@@ -2,8 +2,8 @@ export * from "./setDevicePreview";
2
2
  export * from "./Handlers";
3
3
  export * from "./QuestionChallenge";
4
4
  export * from "./SceneModel";
5
- export * from "./SceneObjects";
6
5
  export * from "./LerpVector3";
7
6
  export * from "./SceneRoot";
8
7
  export * from "./HoverLabels/trySetHoverLabel";
9
8
  export * from "./HoverLabels/SerializeAllowHoverLabel";
9
+ export * from "./setupStandardAppObjects";
@@ -14,8 +14,8 @@ __exportStar(require("./setDevicePreview"), exports);
14
14
  __exportStar(require("./Handlers"), exports);
15
15
  __exportStar(require("./QuestionChallenge"), exports);
16
16
  __exportStar(require("./SceneModel"), exports);
17
- __exportStar(require("./SceneObjects"), exports);
18
17
  __exportStar(require("./LerpVector3"), exports);
19
18
  __exportStar(require("./SceneRoot"), exports);
20
19
  __exportStar(require("./HoverLabels/trySetHoverLabel"), exports);
21
20
  __exportStar(require("./HoverLabels/SerializeAllowHoverLabel"), exports);
21
+ __exportStar(require("./setupStandardAppObjects"), exports);
@@ -0,0 +1,2 @@
1
+ import { AppObject, AppObjectRepo } from "../AppObject";
2
+ export declare function setupStandardAppObjects(appObjects: AppObjectRepo): AppObject;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setupStandardAppObjects = void 0;
4
+ const ChannelModel_1 = require("../AppObjectComponents/ChannelModel");
5
+ function setupStandardAppObjects(appObjects) {
6
+ const appObj = appObjects.getOrCreate("StandardAppObjects");
7
+ ChannelModel_1.ChannelModelRepo.addToAO(appObj);
8
+ return appObj;
9
+ }
10
+ exports.setupStandardAppObjects = setupStandardAppObjects;
@@ -54,6 +54,7 @@ export declare class Quaternion {
54
54
  * @returns The resulting Quaterion
55
55
  */
56
56
  static FromAngleAxis(axis: Vector3, angle: Angle): Quaternion;
57
+ static FromDirectionVector(direction: Vector3): Quaternion;
57
58
  /**
58
59
  * Froms up a Quaternion from the Yaw-Pitch-Roll (Tait-Bryan) convetion
59
60
  * @param yaw defines the rotation around the y axis
@@ -4,7 +4,6 @@ exports.Quaternion = void 0;
4
4
  const Angle_1 = require("./Angle");
5
5
  const Matrix_1 = require("./Matrix");
6
6
  const Vector3_1 = require("./Vector3");
7
- ;
8
7
  class Quaternion {
9
8
  constructor(x, y, z, w) {
10
9
  this.x = x;
@@ -100,6 +99,27 @@ class Quaternion {
100
99
  const z = axisUnit.z * sin;
101
100
  return new Quaternion(x, y, z, w);
102
101
  }
102
+ static FromDirectionVector(direction) {
103
+ if (direction.magnitued === 0) {
104
+ return Quaternion.Identity();
105
+ }
106
+ const dirUnit = direction.unit;
107
+ if (dirUnit.x === 0 && dirUnit.z === 0) {
108
+ if (dirUnit.y > 0) {
109
+ return Quaternion.FromYawPitchRoll(Angle_1.Angle.FromDegrees(0), Angle_1.Angle.FromDegrees(-90), Angle_1.Angle.FromDegrees(0));
110
+ }
111
+ else {
112
+ return Quaternion.FromYawPitchRoll(Angle_1.Angle.FromDegrees(0), Angle_1.Angle.FromDegrees(90), Angle_1.Angle.FromDegrees(0));
113
+ }
114
+ }
115
+ const yawRadians = -Math.atan2(dirUnit.z, dirUnit.x) + Math.PI / 2;
116
+ const len = Math.sqrt(dirUnit.x * dirUnit.x + dirUnit.z * dirUnit.z);
117
+ const pitchRadians = -Math.atan2(dirUnit.y, len);
118
+ const yaw = Angle_1.Angle.FromRadians(yawRadians);
119
+ const pitch = Angle_1.Angle.FromRadians(pitchRadians);
120
+ const roll = Angle_1.Angle.FromRadians(0);
121
+ return Quaternion.FromYawPitchRoll(yaw, pitch, roll);
122
+ }
103
123
  /**
104
124
  * Froms up a Quaternion from the Yaw-Pitch-Roll (Tait-Bryan) convetion
105
125
  * @param yaw defines the rotation around the y axis
package/lib/index.d.ts CHANGED
@@ -7,3 +7,6 @@ export { AppEntities };
7
7
  import * as AppValueObjects from "./ValueObjects";
8
8
  export { AppValueObjects };
9
9
  export * from "./Utilities";
10
+ import * as AOComponents from "./AppObjectComponents";
11
+ export { AOComponents };
12
+ export * from "./AppObject";
package/lib/index.js CHANGED
@@ -10,7 +10,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
10
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.AppValueObjects = exports.AppEntities = exports.AppUCs = exports.AppPMs = void 0;
13
+ exports.AOComponents = exports.AppValueObjects = exports.AppEntities = exports.AppUCs = exports.AppPMs = void 0;
14
14
  const AppPMs = require("./PresentationManagers");
15
15
  exports.AppPMs = AppPMs;
16
16
  const AppUCs = require("./UseCases");
@@ -20,3 +20,6 @@ exports.AppEntities = AppEntities;
20
20
  const AppValueObjects = require("./ValueObjects");
21
21
  exports.AppValueObjects = AppValueObjects;
22
22
  __exportStar(require("./Utilities"), exports);
23
+ const AOComponents = require("./AppObjectComponents");
24
+ exports.AOComponents = AOComponents;
25
+ __exportStar(require("./AppObject"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vived/app",
3
- "version": "2.50.1",
3
+ "version": "3.0.0",
4
4
  "description": "Public package for the VIVED Learning App system",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -1,70 +0,0 @@
1
- import { Vector3 } from "../ValueObjects";
2
- export declare type OnFocusCameraChange = () => void;
3
- export interface FocusCameraLerper {
4
- cancelLerp: () => void;
5
- }
6
- export interface FocusCameraData {
7
- defaultAlpha?: number;
8
- defaultBeta?: number;
9
- defaultRadius?: number;
10
- defaultTarget?: {
11
- x: number;
12
- y: number;
13
- z: number;
14
- };
15
- nearClip?: number;
16
- farClip?: number;
17
- alphaLimit?: {
18
- min: number;
19
- max: number;
20
- };
21
- betaLimit?: {
22
- min: number;
23
- max: number;
24
- };
25
- radiusLimit?: {
26
- min: number;
27
- max: number;
28
- };
29
- targetLimit?: {
30
- min: {
31
- x: number;
32
- y: number;
33
- z: number;
34
- };
35
- max: {
36
- x: number;
37
- y: number;
38
- z: number;
39
- };
40
- };
41
- }
42
- export interface FocusCamera {
43
- alpha: number;
44
- beta: number;
45
- radius: number;
46
- target: Vector3;
47
- direction: Vector3;
48
- cameraPosition: Vector3;
49
- nearClip: number;
50
- farClip: number;
51
- defaultAlpha: number;
52
- defaultBeta: number;
53
- defaultRadius: number;
54
- defaultTarget: Vector3;
55
- setAlphaLimits: (min: number, max: number) => void;
56
- clearAlphaLimits: () => void;
57
- setBetaLimits: (min: number, max: number) => void;
58
- clearBetaLimits: () => void;
59
- setRadiusLimits: (min: number, max: number) => void;
60
- clearRadiusLimits: () => void;
61
- setTargetLimits: (min: Vector3, max: Vector3) => void;
62
- clearTargetLimits: () => void;
63
- registerLerp: (lerper: FocusCameraLerper) => void;
64
- lerpCompleted: () => void;
65
- cancelLerp: () => void;
66
- applyData: (data: FocusCameraData) => void;
67
- addObserver: (observer: OnFocusCameraChange) => void;
68
- removeObserver: (observer: OnFocusCameraChange) => void;
69
- }
70
- export declare function makeFocusCamera(): FocusCamera;