@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.
- package/lib/AppObject/AppObject.d.ts +15 -0
- package/lib/AppObject/AppObject.js +65 -0
- package/lib/AppObject/AppObjectComponent.d.ts +6 -0
- package/lib/AppObject/AppObjectComponent.js +2 -0
- package/lib/AppObject/AppObjectEntity.d.ts +16 -0
- package/lib/AppObject/AppObjectEntity.js +40 -0
- package/lib/AppObject/AppObjectEntityRepo.d.ts +15 -0
- package/lib/AppObject/AppObjectEntityRepo.js +54 -0
- package/lib/AppObject/AppObjectPM.d.ts +15 -0
- package/lib/AppObject/AppObjectPM.js +38 -0
- package/lib/AppObject/AppObjectRepo.d.ts +19 -0
- package/lib/AppObject/AppObjectRepo.js +95 -0
- package/lib/AppObject/AppObjectUC.d.ts +8 -0
- package/lib/AppObject/AppObjectUC.js +17 -0
- package/lib/AppObject/IsEnabledPM.d.ts +11 -0
- package/lib/AppObject/IsEnabledPM.js +29 -0
- package/lib/AppObject/index.d.ts +7 -0
- package/lib/{UseCases/FocusCamera → AppObject}/index.js +7 -7
- package/lib/AppObjectComponents/ChannelModel/Entities/ChannelModel.d.ts +42 -0
- package/lib/AppObjectComponents/ChannelModel/Entities/ChannelModel.js +99 -0
- package/lib/AppObjectComponents/ChannelModel/Entities/ChannelModelRepo.d.ts +12 -0
- package/lib/AppObjectComponents/ChannelModel/Entities/ChannelModelRepo.js +45 -0
- package/lib/AppObjectComponents/ChannelModel/index.d.ts +2 -0
- package/lib/AppObjectComponents/ChannelModel/index.js +14 -0
- package/lib/AppObjectComponents/Hideable/Entities/Hideable.d.ts +10 -0
- package/lib/AppObjectComponents/Hideable/Entities/Hideable.js +31 -0
- package/lib/AppObjectComponents/Hideable/PresentationManagers/IsHiddenPM.d.ts +12 -0
- package/lib/AppObjectComponents/Hideable/PresentationManagers/IsHiddenPM.js +42 -0
- package/lib/AppObjectComponents/Hideable/index.d.ts +2 -0
- package/lib/AppObjectComponents/Hideable/index.js +14 -0
- package/lib/AppObjectComponents/Label/Entities/Label.d.ts +17 -0
- package/lib/AppObjectComponents/Label/Entities/Label.js +58 -0
- package/lib/AppObjectComponents/Label/PresentationManagers/LabelPM.d.ts +19 -0
- package/lib/AppObjectComponents/Label/PresentationManagers/LabelPM.js +62 -0
- package/lib/AppObjectComponents/Label/index.d.ts +2 -0
- package/lib/AppObjectComponents/Label/index.js +14 -0
- package/lib/AppObjectComponents/Mesh/Entities/Mesh.d.ts +21 -0
- package/lib/AppObjectComponents/Mesh/Entities/Mesh.js +45 -0
- package/lib/AppObjectComponents/Mesh/index.d.ts +1 -0
- package/lib/{UseCases/SceneObjects → AppObjectComponents/Mesh}/index.js +1 -1
- package/lib/AppObjectComponents/OverlayColor/Entities/OverlayColor.d.ts +25 -0
- package/lib/AppObjectComponents/OverlayColor/Entities/OverlayColor.js +59 -0
- package/lib/AppObjectComponents/OverlayColor/PresentationManagers/OverlayColorPM.d.ts +13 -0
- package/lib/AppObjectComponents/OverlayColor/PresentationManagers/OverlayColorPM.js +42 -0
- package/lib/AppObjectComponents/OverlayColor/index.d.ts +2 -0
- package/lib/AppObjectComponents/OverlayColor/index.js +14 -0
- package/lib/AppObjectComponents/Transform3D/Entities/Transform3D.d.ts +44 -0
- package/lib/AppObjectComponents/Transform3D/Entities/Transform3D.js +221 -0
- package/lib/AppObjectComponents/Transform3D/PresentationManagers/CanBeStuckPM.d.ts +12 -0
- package/lib/AppObjectComponents/Transform3D/PresentationManagers/CanBeStuckPM.js +45 -0
- package/lib/AppObjectComponents/Transform3D/PresentationManagers/Transform3DPM.d.ts +19 -0
- package/lib/AppObjectComponents/Transform3D/PresentationManagers/Transform3DPM.js +59 -0
- package/lib/AppObjectComponents/Transform3D/UseCases/PeelTransform3D.d.ts +20 -0
- package/lib/AppObjectComponents/Transform3D/UseCases/PeelTransform3D.js +67 -0
- package/lib/AppObjectComponents/Transform3D/UseCases/StickTransform3D.d.ts +14 -0
- package/lib/AppObjectComponents/Transform3D/UseCases/StickTransform3D.js +45 -0
- package/lib/AppObjectComponents/Transform3D/UseCases/getStickUC.d.ts +3 -0
- package/lib/AppObjectComponents/Transform3D/UseCases/getStickUC.js +8 -0
- package/lib/AppObjectComponents/Transform3D/index.d.ts +5 -0
- package/lib/AppObjectComponents/Transform3D/index.js +17 -0
- package/lib/AppObjectComponents/index.d.ts +6 -0
- package/lib/AppObjectComponents/index.js +18 -0
- package/lib/Entities/Babylon.d.ts +1 -0
- package/lib/Entities/ObserverList.d.ts +1 -0
- package/lib/Entities/ObserverList.js +3 -0
- package/lib/Entities/SceneModel.d.ts +1 -1
- package/lib/Entities/SceneModelMesh.d.ts +3 -44
- package/lib/Entities/SceneModelMesh.js +7 -114
- package/lib/Types/ChannelModelData.d.ts +68 -0
- package/lib/Types/ChannelModelData.js +21 -0
- package/lib/Types/EaseFn.d.ts +1 -0
- package/lib/Types/EaseFn.js +2 -0
- package/lib/Types/index.d.ts +2 -0
- package/lib/Types/index.js +14 -0
- package/lib/UseCases/SceneModel/index.d.ts +0 -3
- package/lib/UseCases/SceneModel/index.js +0 -3
- package/lib/UseCases/SceneModel/loadNewModel.d.ts +2 -2
- package/lib/UseCases/SceneModel/loadNewModel.js +15 -17
- package/lib/UseCases/index.d.ts +1 -1
- package/lib/UseCases/index.js +1 -1
- package/lib/UseCases/setupStandardAppObjects.d.ts +2 -0
- package/lib/UseCases/setupStandardAppObjects.js +10 -0
- package/lib/ValueObjects/Quaternion.d.ts +1 -0
- package/lib/ValueObjects/Quaternion.js +21 -1
- package/lib/index.d.ts +3 -0
- package/lib/index.js +4 -1
- package/package.json +1 -1
- package/lib/Entities/FocusCamera.d.ts +0 -70
- package/lib/Entities/FocusCamera.js +0 -272
- package/lib/Entities/MemoizedBoolean.d.ts +0 -8
- package/lib/Entities/MemoizedBoolean.js +0 -22
- package/lib/Entities/MemoizedNumber.d.ts +0 -8
- package/lib/Entities/MemoizedNumber.js +0 -22
- package/lib/Entities/MemoizedQuaternion.d.ts +0 -9
- package/lib/Entities/MemoizedQuaternion.js +0 -23
- package/lib/Entities/MemoizedString.d.ts +0 -8
- package/lib/Entities/MemoizedString.js +0 -22
- package/lib/Entities/MemoizedVector2.d.ts +0 -9
- package/lib/Entities/MemoizedVector2.js +0 -23
- package/lib/Entities/MemoizedVector3.d.ts +0 -9
- package/lib/Entities/MemoizedVector3.js +0 -23
- package/lib/Entities/MeshModel.d.ts +0 -68
- package/lib/Entities/MeshModel.js +0 -174
- package/lib/Entities/ModelObject.d.ts +0 -10
- package/lib/Entities/ModelObject.js +0 -42
- package/lib/PresentationManagers/FocusCameraPM.d.ts +0 -15
- package/lib/PresentationManagers/FocusCameraPM.js +0 -31
- package/lib/PresentationManagers/FocusCameraPosRotPM.d.ts +0 -13
- package/lib/PresentationManagers/FocusCameraPosRotPM.js +0 -28
- package/lib/PresentationManagers/SceneModel/SceneMeshOverlayPM.d.ts +0 -15
- package/lib/PresentationManagers/SceneModel/SceneMeshOverlayPM.js +0 -34
- package/lib/UseCases/FocusCamera/BumpDollyFocusCamera.d.ts +0 -17
- package/lib/UseCases/FocusCamera/BumpDollyFocusCamera.js +0 -64
- package/lib/UseCases/FocusCamera/LerpFocusCamera.d.ts +0 -36
- package/lib/UseCases/FocusCamera/LerpFocusCamera.js +0 -71
- package/lib/UseCases/FocusCamera/PinchDollyFocusCamera.d.ts +0 -11
- package/lib/UseCases/FocusCamera/PinchDollyFocusCamera.js +0 -36
- package/lib/UseCases/FocusCamera/PixelDollyFocusCamera.d.ts +0 -11
- package/lib/UseCases/FocusCamera/PixelDollyFocusCamera.js +0 -36
- package/lib/UseCases/FocusCamera/PixelOrbitFocusCamera.d.ts +0 -11
- package/lib/UseCases/FocusCamera/PixelOrbitFocusCamera.js +0 -26
- package/lib/UseCases/FocusCamera/PixelPlanePanFocusCamera.d.ts +0 -11
- package/lib/UseCases/FocusCamera/PixelPlanePanFocusCamera.js +0 -33
- package/lib/UseCases/FocusCamera/SerializeFocusCamera.d.ts +0 -22
- package/lib/UseCases/FocusCamera/SerializeFocusCamera.js +0 -81
- package/lib/UseCases/FocusCamera/index.d.ts +0 -7
- package/lib/UseCases/SceneModel/SerializeActiveModel.d.ts +0 -18
- package/lib/UseCases/SceneModel/SerializeActiveModel.js +0 -74
- package/lib/UseCases/SceneModel/SetMeshesEnabledHook.d.ts +0 -7
- package/lib/UseCases/SceneModel/SetMeshesEnabledHook.js +0 -22
- package/lib/UseCases/SceneModel/SetSceneModelMeshOverlayColor.d.ts +0 -2
- package/lib/UseCases/SceneModel/SetSceneModelMeshOverlayColor.js +0 -13
- package/lib/UseCases/SceneObjects/PeelSceneObject.d.ts +0 -18
- package/lib/UseCases/SceneObjects/PeelSceneObject.js +0 -61
- package/lib/UseCases/SceneObjects/index.d.ts +0 -1
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PixelOrbitFocusCamera = void 0;
|
|
4
|
-
const ValueObjects_1 = require("../../ValueObjects");
|
|
5
|
-
class PixelOrbitFocusCamera {
|
|
6
|
-
constructor(focusCamera) {
|
|
7
|
-
this.focusCamera = focusCamera;
|
|
8
|
-
this.sensitivity = 0.5;
|
|
9
|
-
this.doOrbit = (pixelPosition) => {
|
|
10
|
-
if (!this.previousPixelPos) {
|
|
11
|
-
console.error("[PixelOrbitFocusCamera] You must initialize first!");
|
|
12
|
-
return;
|
|
13
|
-
}
|
|
14
|
-
const pixelChange = ValueObjects_1.Vector2.Subtract(pixelPosition, this.previousPixelPos);
|
|
15
|
-
this.focusCamera.alpha += pixelChange.x * this.sensitivity;
|
|
16
|
-
this.focusCamera.beta += pixelChange.y * this.sensitivity;
|
|
17
|
-
this.previousPixelPos = pixelPosition;
|
|
18
|
-
};
|
|
19
|
-
this.initializeOrbit = (initialPixelPos, pickPoint) => {
|
|
20
|
-
this.previousPixelPos = initialPixelPos;
|
|
21
|
-
this.pickPoint = pickPoint;
|
|
22
|
-
this.focusCamera.cancelLerp();
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
exports.PixelOrbitFocusCamera = PixelOrbitFocusCamera;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { Babylon, FocusCamera } from "../../Entities";
|
|
2
|
-
import { ParametricPlane, Vector2 } from "../../ValueObjects";
|
|
3
|
-
export declare class PixelPlanePanFocusCamera {
|
|
4
|
-
private focusCamera;
|
|
5
|
-
private babylon;
|
|
6
|
-
private plane?;
|
|
7
|
-
private previousPixelPos?;
|
|
8
|
-
doPan: (pixelPosition: Vector2) => void;
|
|
9
|
-
initializePan: (initialPixelPos: Vector2, panPlane: ParametricPlane) => void;
|
|
10
|
-
constructor(focusCamera: FocusCamera, babylon: Babylon);
|
|
11
|
-
}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PixelPlanePanFocusCamera = void 0;
|
|
4
|
-
const ValueObjects_1 = require("../../ValueObjects");
|
|
5
|
-
class PixelPlanePanFocusCamera {
|
|
6
|
-
constructor(focusCamera, babylon) {
|
|
7
|
-
this.focusCamera = focusCamera;
|
|
8
|
-
this.babylon = babylon;
|
|
9
|
-
this.doPan = (pixelPosition) => {
|
|
10
|
-
if (!this.plane || !this.previousPixelPos) {
|
|
11
|
-
console.error("[PixelPlanePan_OrbitCamera] You must initialize first!");
|
|
12
|
-
return;
|
|
13
|
-
}
|
|
14
|
-
const initialRay = this.babylon.sceneRay(this.previousPixelPos);
|
|
15
|
-
const finalRay = this.babylon.sceneRay(pixelPosition);
|
|
16
|
-
const p1 = this.plane.intersectLine(initialRay);
|
|
17
|
-
const p2 = this.plane.intersectLine(finalRay);
|
|
18
|
-
if (!p1 || !p2)
|
|
19
|
-
return;
|
|
20
|
-
const delta = ValueObjects_1.Vector3.Subtract(p2, p1);
|
|
21
|
-
const currentTarget = this.focusCamera.target;
|
|
22
|
-
const newTarget = new ValueObjects_1.Vector3(currentTarget.x - delta.x, currentTarget.y - delta.y, currentTarget.z - delta.z);
|
|
23
|
-
this.focusCamera.target = new ValueObjects_1.Vector3(newTarget.x, newTarget.y, newTarget.z);
|
|
24
|
-
this.previousPixelPos = pixelPosition;
|
|
25
|
-
};
|
|
26
|
-
this.initializePan = (initialPixelPos, panPlane) => {
|
|
27
|
-
this.plane = panPlane;
|
|
28
|
-
this.previousPixelPos = initialPixelPos;
|
|
29
|
-
this.focusCamera.cancelLerp();
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
exports.PixelPlanePanFocusCamera = PixelPlanePanFocusCamera;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { FocusCamera, SerializedSystem, StateMachine } from "../../Entities";
|
|
2
|
-
export declare class SerializeFocusCamera implements SerializedSystem {
|
|
3
|
-
name: string;
|
|
4
|
-
seriliziationVersion: number;
|
|
5
|
-
private focusCamera;
|
|
6
|
-
private stateMachine;
|
|
7
|
-
getSystemState(): object;
|
|
8
|
-
applySystemState(serializedState: object, version: number, transitionTime: number): void;
|
|
9
|
-
applyDefaultState(transitionDuration: number): void;
|
|
10
|
-
private applyV1Data;
|
|
11
|
-
private applyImmediate;
|
|
12
|
-
private applyLerp;
|
|
13
|
-
constructor(focusCamera: FocusCamera, stateMachine: StateMachine);
|
|
14
|
-
}
|
|
15
|
-
export interface FocusCameraDataV1 {
|
|
16
|
-
alpha: number;
|
|
17
|
-
beta: number;
|
|
18
|
-
radius: number;
|
|
19
|
-
target_x: number;
|
|
20
|
-
target_y: number;
|
|
21
|
-
target_z: number;
|
|
22
|
-
}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SerializeFocusCamera = void 0;
|
|
4
|
-
const _1 = require(".");
|
|
5
|
-
const ValueObjects_1 = require("../../ValueObjects");
|
|
6
|
-
class SerializeFocusCamera {
|
|
7
|
-
constructor(focusCamera, stateMachine) {
|
|
8
|
-
this.name = "focusCamera";
|
|
9
|
-
this.seriliziationVersion = 1;
|
|
10
|
-
this.focusCamera = focusCamera;
|
|
11
|
-
this.stateMachine = stateMachine;
|
|
12
|
-
stateMachine.registerSerializedSystem(this);
|
|
13
|
-
}
|
|
14
|
-
getSystemState() {
|
|
15
|
-
const data = {
|
|
16
|
-
alpha: this.focusCamera.alpha,
|
|
17
|
-
beta: this.focusCamera.beta,
|
|
18
|
-
radius: this.focusCamera.radius,
|
|
19
|
-
target_x: this.focusCamera.target.x,
|
|
20
|
-
target_y: this.focusCamera.target.y,
|
|
21
|
-
target_z: this.focusCamera.target.z,
|
|
22
|
-
};
|
|
23
|
-
return data;
|
|
24
|
-
}
|
|
25
|
-
applySystemState(serializedState, version, transitionTime) {
|
|
26
|
-
try {
|
|
27
|
-
if (version === 1) {
|
|
28
|
-
const castState = serializedState;
|
|
29
|
-
this.applyV1Data(castState, transitionTime);
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
console.warn(`[SerializeFocusCamera] Unsupported version number ${version}. Defaulting`);
|
|
33
|
-
this.applyDefaultState(transitionTime);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
catch (e) {
|
|
37
|
-
console.warn(`[SerializeFocusCamera] Caught when deserializing ${e}. Defaulting`);
|
|
38
|
-
this.applyDefaultState(transitionTime);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
applyDefaultState(transitionDuration) {
|
|
42
|
-
const alpha = this.focusCamera.defaultAlpha;
|
|
43
|
-
const beta = this.focusCamera.defaultBeta;
|
|
44
|
-
const radius = this.focusCamera.defaultRadius;
|
|
45
|
-
const target = this.focusCamera.defaultTarget;
|
|
46
|
-
if (transitionDuration === 0) {
|
|
47
|
-
this.applyImmediate(alpha, beta, radius, target);
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
this.applyLerp(alpha, beta, radius, target, transitionDuration);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
applyV1Data(data, transitionTime) {
|
|
54
|
-
const { alpha, beta, radius, target_x, target_y, target_z } = data;
|
|
55
|
-
const target = new ValueObjects_1.Vector3(target_x, target_y, target_z);
|
|
56
|
-
if (transitionTime === 0) {
|
|
57
|
-
this.applyImmediate(alpha, beta, radius, target);
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
this.applyLerp(alpha, beta, radius, target, transitionTime);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
applyImmediate(alpha, beta, radius, target) {
|
|
64
|
-
this.focusCamera.cancelLerp();
|
|
65
|
-
this.focusCamera.alpha = alpha;
|
|
66
|
-
this.focusCamera.beta = beta;
|
|
67
|
-
this.focusCamera.radius = radius;
|
|
68
|
-
this.focusCamera.target = target;
|
|
69
|
-
}
|
|
70
|
-
applyLerp(alpha, beta, radius, target, transitionTime) {
|
|
71
|
-
const lerpParams = {
|
|
72
|
-
duration: transitionTime,
|
|
73
|
-
finalRadius: radius,
|
|
74
|
-
finalBeta: beta,
|
|
75
|
-
finalAlpha: alpha,
|
|
76
|
-
finalTarget: target,
|
|
77
|
-
};
|
|
78
|
-
new _1.LerpFocusCamera(this.focusCamera, this.stateMachine.transitionEaseFunction, lerpParams);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
exports.SerializeFocusCamera = SerializeFocusCamera;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export * from "./PixelPlanePanFocusCamera";
|
|
2
|
-
export * from "./LerpFocusCamera";
|
|
3
|
-
export * from "./SerializeFocusCamera";
|
|
4
|
-
export * from "./PixelDollyFocusCamera";
|
|
5
|
-
export * from "./BumpDollyFocusCamera";
|
|
6
|
-
export * from "./PinchDollyFocusCamera";
|
|
7
|
-
export * from "./PixelOrbitFocusCamera";
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { StateMachine, SceneModelMeshStateDTO, SerializedSystem, SceneModelRepo } from "../../Entities";
|
|
2
|
-
export declare class SerializeActiveModel implements SerializedSystem {
|
|
3
|
-
private sceneModelRepo;
|
|
4
|
-
private easeFn;
|
|
5
|
-
name: string;
|
|
6
|
-
seriliziationVersion: number;
|
|
7
|
-
loadNewModel: (modelID: string, initialStateLookup: Map<string, SceneModelMeshStateDTO>) => void;
|
|
8
|
-
selectActiveModel: () => void;
|
|
9
|
-
getSystemState(): object;
|
|
10
|
-
applySystemState(state: object, version: number, transitionDurationSec: number): void;
|
|
11
|
-
private applyStateV1;
|
|
12
|
-
applyDefaultState: () => void;
|
|
13
|
-
constructor(sceneModelRepo: SceneModelRepo, easeFn: (normalizedTime: number) => number, stateMachine: StateMachine);
|
|
14
|
-
}
|
|
15
|
-
export interface SerializedActiveModelV1 {
|
|
16
|
-
modelID: string;
|
|
17
|
-
meshModelStates: SceneModelMeshStateDTO[];
|
|
18
|
-
}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SerializeActiveModel = void 0;
|
|
4
|
-
const ValueObjects_1 = require("../../ValueObjects");
|
|
5
|
-
class SerializeActiveModel {
|
|
6
|
-
constructor(sceneModelRepo, easeFn, stateMachine) {
|
|
7
|
-
this.sceneModelRepo = sceneModelRepo;
|
|
8
|
-
this.easeFn = easeFn;
|
|
9
|
-
this.name = "active-model";
|
|
10
|
-
this.seriliziationVersion = 1;
|
|
11
|
-
this.loadNewModel = () => {
|
|
12
|
-
throw new Error("setActiveModel has not been injected into SerializeActiveModel serializer");
|
|
13
|
-
};
|
|
14
|
-
this.selectActiveModel = () => {
|
|
15
|
-
throw new Error("selectActiveModel has not been injected into SerializeActiveModel serializer");
|
|
16
|
-
};
|
|
17
|
-
this.applyDefaultState = () => {
|
|
18
|
-
this.selectActiveModel();
|
|
19
|
-
};
|
|
20
|
-
stateMachine.registerSerializedSystem(this);
|
|
21
|
-
}
|
|
22
|
-
getSystemState() {
|
|
23
|
-
const modelStates = [];
|
|
24
|
-
if (this.sceneModelRepo.activeModel) {
|
|
25
|
-
this.sceneModelRepo.activeModel.getAllMeshes().forEach((mesh) => {
|
|
26
|
-
const meshState = mesh.getState();
|
|
27
|
-
if (meshState !== null) {
|
|
28
|
-
modelStates.push(meshState);
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
const state = {
|
|
33
|
-
modelID: this.sceneModelRepo.activeModelID,
|
|
34
|
-
meshModelStates: modelStates,
|
|
35
|
-
};
|
|
36
|
-
return state;
|
|
37
|
-
}
|
|
38
|
-
applySystemState(state, version, transitionDurationSec) {
|
|
39
|
-
if (version === 1) {
|
|
40
|
-
this.applyStateV1(state, transitionDurationSec);
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
this.applyDefaultState();
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
applyStateV1(state, transitionDurationSec) {
|
|
47
|
-
const { meshModelStates, modelID } = state;
|
|
48
|
-
if (meshModelStates === undefined || modelID === undefined) {
|
|
49
|
-
console.warn("[SerializeActiveModel] Unable to parse state: ", JSON.stringify(state));
|
|
50
|
-
this.applyDefaultState();
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
const stateLookup = new Map();
|
|
54
|
-
meshModelStates.forEach((mmState) => {
|
|
55
|
-
stateLookup.set(mmState.id, mmState);
|
|
56
|
-
});
|
|
57
|
-
const existingModel = this.sceneModelRepo.get(modelID);
|
|
58
|
-
if (existingModel) {
|
|
59
|
-
this.sceneModelRepo.activeModelID = modelID;
|
|
60
|
-
existingModel.getAllMeshes().forEach((meshModel) => {
|
|
61
|
-
const mmState = stateLookup.get(meshModel.id);
|
|
62
|
-
const pos = mmState
|
|
63
|
-
? ValueObjects_1.Vector3.FromDTO(mmState.position)
|
|
64
|
-
: ValueObjects_1.Vector3.Zero();
|
|
65
|
-
meshModel.moveTo(pos, transitionDurationSec * 1000, this.easeFn);
|
|
66
|
-
meshModel.shown = mmState ? mmState.shown : true;
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
this.loadNewModel(modelID, stateLookup);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
exports.SerializeActiveModel = SerializeActiveModel;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SetMeshesEnabledHook = void 0;
|
|
4
|
-
class SetMeshesEnabledHook {
|
|
5
|
-
constructor(sceneModelRepo) {
|
|
6
|
-
this.sceneModelRepo = sceneModelRepo;
|
|
7
|
-
this.onSceneModelRepoChange = () => {
|
|
8
|
-
if (this.lastActiveModelID === this.sceneModelRepo.activeModelID)
|
|
9
|
-
return;
|
|
10
|
-
this.lastActiveModelID = this.sceneModelRepo.activeModelID;
|
|
11
|
-
this.sceneModelRepo.getAll().forEach((sceneModel) => {
|
|
12
|
-
const enabled = sceneModel.id === this.sceneModelRepo.activeModelID;
|
|
13
|
-
sceneModel.getAllMeshes().forEach((mesh) => {
|
|
14
|
-
if (mesh.sceneObject)
|
|
15
|
-
mesh.sceneObject.enabled = enabled;
|
|
16
|
-
});
|
|
17
|
-
});
|
|
18
|
-
};
|
|
19
|
-
sceneModelRepo.addObserver(this.onSceneModelRepoChange);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
exports.SetMeshesEnabledHook = SetMeshesEnabledHook;
|
|
@@ -1,13 +0,0 @@
|
|
|
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;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { Babylon, SceneObject, SceneObjectsRepo } from "../../Entities";
|
|
2
|
-
import { ParametricLine } from "../../ValueObjects";
|
|
3
|
-
export declare class PeelSceneObject {
|
|
4
|
-
private babylon;
|
|
5
|
-
private sceneObjectRepo;
|
|
6
|
-
private _didPeel;
|
|
7
|
-
get didPeel(): boolean;
|
|
8
|
-
private _peelingSceneObject;
|
|
9
|
-
get peelingSceneObject(): SceneObject | undefined;
|
|
10
|
-
private _peelPlane;
|
|
11
|
-
private _rootPos;
|
|
12
|
-
private _allowPeel;
|
|
13
|
-
private _pickOffset;
|
|
14
|
-
tryInitializePeel: (pickRay: ParametricLine) => void;
|
|
15
|
-
updatePeel: (pickRay: ParametricLine) => void;
|
|
16
|
-
stopPeel: () => void;
|
|
17
|
-
constructor(babylon: Babylon, sceneObjectRepo: SceneObjectsRepo);
|
|
18
|
-
}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PeelSceneObject = void 0;
|
|
4
|
-
const ValueObjects_1 = require("../../ValueObjects");
|
|
5
|
-
class PeelSceneObject {
|
|
6
|
-
constructor(babylon, sceneObjectRepo) {
|
|
7
|
-
this.babylon = babylon;
|
|
8
|
-
this.sceneObjectRepo = sceneObjectRepo;
|
|
9
|
-
this._didPeel = false;
|
|
10
|
-
this._peelingSceneObject = undefined;
|
|
11
|
-
this._peelPlane = ValueObjects_1.ParametricPlane.XY();
|
|
12
|
-
this._allowPeel = false;
|
|
13
|
-
this._pickOffset = ValueObjects_1.Vector3.Zero();
|
|
14
|
-
this.tryInitializePeel = (pickRay) => {
|
|
15
|
-
var _a, _b;
|
|
16
|
-
this._allowPeel = false;
|
|
17
|
-
this._didPeel = false;
|
|
18
|
-
this._peelingSceneObject = undefined;
|
|
19
|
-
const sceneObjectID = this.babylon.sceneObjectRayPick(pickRay);
|
|
20
|
-
if (!sceneObjectID)
|
|
21
|
-
return;
|
|
22
|
-
const sceneObject = this.sceneObjectRepo.get(sceneObjectID);
|
|
23
|
-
if (!sceneObject)
|
|
24
|
-
return;
|
|
25
|
-
this._peelingSceneObject = sceneObject;
|
|
26
|
-
const scenePick = this.babylon.sceneRayPick(pickRay);
|
|
27
|
-
if (!scenePick)
|
|
28
|
-
return;
|
|
29
|
-
const pickPlaneDirection = ValueObjects_1.Vector3.Backward();
|
|
30
|
-
const planePickPos = (_a = scenePick.worldPickPoint) !== null && _a !== void 0 ? _a : ValueObjects_1.Vector3.Zero();
|
|
31
|
-
this._peelPlane = ValueObjects_1.ParametricPlane.FromPointNormal(planePickPos, pickPlaneDirection);
|
|
32
|
-
const pick = (_b = this._peelPlane.intersectLine(pickRay)) !== null && _b !== void 0 ? _b : ValueObjects_1.Vector3.Zero();
|
|
33
|
-
this._rootPos = this._peelingSceneObject.transform.worldPosition;
|
|
34
|
-
this._pickOffset = ValueObjects_1.Vector3.Subtract(this._rootPos, pick);
|
|
35
|
-
this._allowPeel = true;
|
|
36
|
-
};
|
|
37
|
-
this.updatePeel = (pickRay) => {
|
|
38
|
-
var _a;
|
|
39
|
-
if (!this._allowPeel)
|
|
40
|
-
return;
|
|
41
|
-
if (!this._peelingSceneObject)
|
|
42
|
-
return;
|
|
43
|
-
const pick = (_a = this._peelPlane.intersectLine(pickRay)) !== null && _a !== void 0 ? _a : ValueObjects_1.Vector3.Zero();
|
|
44
|
-
this._peelingSceneObject.transform.worldPosition = ValueObjects_1.Vector3.Add(pick, this._pickOffset);
|
|
45
|
-
this._didPeel = true;
|
|
46
|
-
};
|
|
47
|
-
this.stopPeel = () => {
|
|
48
|
-
this._allowPeel = false;
|
|
49
|
-
this._didPeel = false;
|
|
50
|
-
this._peelingSceneObject = undefined;
|
|
51
|
-
this._rootPos = undefined;
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
get didPeel() {
|
|
55
|
-
return this._didPeel;
|
|
56
|
-
}
|
|
57
|
-
get peelingSceneObject() {
|
|
58
|
-
return this._peelingSceneObject;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
exports.PeelSceneObject = PeelSceneObject;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./PeelSceneObject";
|