@vived/app 2.50.0 → 2.51.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.
@@ -5,6 +5,7 @@ export interface ScenePick {
5
5
  hit: boolean;
6
6
  worldPickPoint?: Vector3;
7
7
  objectPickMeta?: object;
8
+ normal?: Vector3;
8
9
  }
9
10
  export interface IScreenshotSize {
10
11
  /**
@@ -1,10 +1,22 @@
1
1
  import { Vector3, Vector3DTO } from "../ValueObjects";
2
2
  import { ObservableEntity } from "./ObservableEntity";
3
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
+ }
4
15
  export interface SceneModelMeshStateDTO {
5
16
  id: string;
6
17
  shown: boolean;
7
18
  position: Vector3DTO;
19
+ overlayColor: Color | undefined;
8
20
  }
9
21
  export declare abstract class SceneModelMesh extends ObservableEntity {
10
22
  abstract readonly id: string;
@@ -13,6 +25,7 @@ export declare abstract class SceneModelMesh extends ObservableEntity {
13
25
  abstract sceneObject: SceneObject | undefined;
14
26
  abstract shown: boolean;
15
27
  abstract position: Vector3;
28
+ abstract overlayColor: Color | undefined;
16
29
  abstract get canBeStuck(): boolean;
17
30
  abstract stick(durationMS: number, easeFn: (val: number) => number, onStickComplete?: () => void): void;
18
31
  abstract moveTo(position: Vector3, durationMS: number, easeFn: (val: number) => number, onStickComplete?: () => void): void;
@@ -31,6 +44,9 @@ declare class SceneModelMeshImp extends SceneModelMesh {
31
44
  set sceneObject(so: SceneObject | undefined);
32
45
  get position(): Vector3;
33
46
  set position(p: Vector3);
47
+ private _overlayColor;
48
+ get overlayColor(): Color | undefined;
49
+ set overlayColor(overlayColor: Color | undefined);
34
50
  get canBeStuck(): boolean;
35
51
  moveTo(position: Vector3, durationMS: number, easeFn: (val: number) => number, onMoveComplete?: () => void): void;
36
52
  stick: (durationMS: number, easeFn: (val: number) => number, onStickComplete?: (() => void) | undefined) => void;
@@ -1,9 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.makeSceneModelMesh = exports.SceneModelMesh = void 0;
3
+ exports.makeSceneModelMesh = exports.SceneModelMesh = exports.Color = void 0;
4
4
  const ValueObjects_1 = require("../ValueObjects");
5
5
  const MemoizedString_1 = require("./Memoized/MemoizedString");
6
6
  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 = {}));
7
19
  class SceneModelMesh extends ObservableEntity_1.ObservableEntity {
8
20
  }
9
21
  exports.SceneModelMesh = SceneModelMesh;
@@ -14,6 +26,7 @@ exports.makeSceneModelMesh = makeSceneModelMesh;
14
26
  class SceneModelMeshImp extends SceneModelMesh {
15
27
  constructor(id) {
16
28
  super();
29
+ this._overlayColor = undefined;
17
30
  this.stick = (durationMS, easeFn, onStickComplete) => {
18
31
  this.moveTo(ValueObjects_1.Vector3.Zero(), durationMS, easeFn, onStickComplete);
19
32
  };
@@ -78,6 +91,15 @@ class SceneModelMeshImp extends SceneModelMesh {
78
91
  }
79
92
  this._sceneObject.transform.localPosition = p;
80
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
+ }
81
103
  get canBeStuck() {
82
104
  if (!this._sceneObject) {
83
105
  console.warn("Scene Mesh doea not have a scene object");
@@ -153,6 +175,7 @@ class SceneModelMeshImp extends SceneModelMesh {
153
175
  id: this.id,
154
176
  position: this.position.dto,
155
177
  shown: this.shown,
178
+ overlayColor: this.overlayColor,
156
179
  };
157
180
  }
158
181
  }
@@ -0,0 +1,15 @@
1
+ import { Color, SceneModel } from "../../Entities";
2
+ import { PresentionManager } from "../PresentationManager";
3
+ export interface SceneMeshOverlayColorVM {
4
+ overlayColor: Color | undefined;
5
+ }
6
+ export declare class SceneMeshOverlayPM extends PresentionManager {
7
+ private sceneModel;
8
+ private id;
9
+ private updateView;
10
+ private previousVM?;
11
+ doUpdateView: () => void;
12
+ private vmHasChanged;
13
+ constructor(sceneModel: SceneModel, id: string, updateView: (vm: SceneMeshOverlayColorVM) => void);
14
+ }
15
+ export declare const defaultSceneMeshOverlayColorVM: SceneMeshOverlayColorVM;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultSceneMeshOverlayColorVM = exports.SceneMeshOverlayPM = void 0;
4
+ const PresentationManager_1 = require("../PresentationManager");
5
+ class SceneMeshOverlayPM extends PresentationManager_1.PresentionManager {
6
+ constructor(sceneModel, id, updateView) {
7
+ super(sceneModel);
8
+ this.sceneModel = sceneModel;
9
+ this.id = id;
10
+ this.updateView = updateView;
11
+ this.doUpdateView = () => {
12
+ const sceneModelMesh = this.sceneModel.getMeshById(this.id);
13
+ const vm = {
14
+ overlayColor: sceneModelMesh === null || sceneModelMesh === void 0 ? void 0 : sceneModelMesh.overlayColor,
15
+ };
16
+ if (!this.vmHasChanged(vm))
17
+ return;
18
+ this.updateView(vm);
19
+ this.previousVM = vm;
20
+ };
21
+ this.doUpdateView();
22
+ }
23
+ vmHasChanged(vm) {
24
+ if (this.previousVM === undefined)
25
+ return true;
26
+ if (this.previousVM.overlayColor !== vm.overlayColor)
27
+ return true;
28
+ return false;
29
+ }
30
+ }
31
+ exports.SceneMeshOverlayPM = SceneMeshOverlayPM;
32
+ exports.defaultSceneMeshOverlayColorVM = {
33
+ overlayColor: undefined,
34
+ };
@@ -0,0 +1,2 @@
1
+ import { Color, SceneModel } from "../../Entities";
2
+ export declare function makeSetSceneModelMeshOverlayColor(sceneModel: SceneModel): (id: string, color: Color | undefined) => void;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeSetSceneModelMeshOverlayColor = void 0;
4
+ function makeSetSceneModelMeshOverlayColor(sceneModel) {
5
+ return (id, color) => {
6
+ const sceneModelMesh = sceneModel.getMeshById(id);
7
+ if (!sceneModelMesh) {
8
+ return;
9
+ }
10
+ sceneModelMesh.overlayColor = color;
11
+ };
12
+ }
13
+ exports.makeSetSceneModelMeshOverlayColor = makeSetSceneModelMeshOverlayColor;
@@ -2,3 +2,4 @@ export * from "./modelDataLoader";
2
2
  export * from "./loadNewModel";
3
3
  export * from "./SerializeActiveModel";
4
4
  export * from "./SetMeshesEnabledHook";
5
+ export * from "./SetSceneModelMeshOverlayColor";
@@ -14,3 +14,4 @@ __exportStar(require("./modelDataLoader"), exports);
14
14
  __exportStar(require("./loadNewModel"), exports);
15
15
  __exportStar(require("./SerializeActiveModel"), exports);
16
16
  __exportStar(require("./SetMeshesEnabledHook"), exports);
17
+ __exportStar(require("./SetSceneModelMeshOverlayColor"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vived/app",
3
- "version": "2.50.0",
3
+ "version": "2.51.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",