@vived/app 2.45.0 → 2.46.1
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/Entities/ModelMesh.d.ts +53 -0
- package/lib/Entities/ModelMesh.js +106 -0
- package/lib/Entities/SceneModel.d.ts +7 -7
- package/lib/Entities/SceneModel.js +16 -14
- package/lib/Entities/SceneModelMesh.d.ts +65 -0
- package/lib/Entities/SceneModelMesh.js +159 -0
- package/lib/Entities/SceneObject.d.ts +1 -4
- package/lib/Entities/SceneObject.js +0 -17
- package/lib/Entities/SceneRoot.d.ts +19 -59
- package/lib/Entities/SceneRoot.js +94 -26
- package/lib/Entities/index.d.ts +1 -1
- package/lib/Entities/index.js +1 -1
- package/lib/PresentationManagers/SceneObject/SceneObjectPM.d.ts +17 -0
- package/lib/PresentationManagers/SceneObject/SceneObjectPM.js +40 -0
- package/lib/PresentationManagers/SceneObject/index.d.ts +1 -0
- package/lib/PresentationManagers/SceneObject/index.js +13 -0
- package/lib/PresentationManagers/index.d.ts +1 -0
- package/lib/PresentationManagers/index.js +1 -0
- package/lib/UseCases/SceneModel/PeelSceneMeshBase.d.ts +20 -0
- package/lib/UseCases/SceneModel/PeelSceneMeshBase.js +66 -0
- package/lib/UseCases/SceneModel/SerializeActiveModel.d.ts +18 -0
- package/lib/UseCases/SceneModel/SerializeActiveModel.js +74 -0
- package/lib/UseCases/SceneModel/SetMeshesEnabledHook.d.ts +7 -0
- package/lib/UseCases/SceneModel/SetMeshesEnabledHook.js +22 -0
- package/lib/UseCases/SceneModel/index.d.ts +4 -2
- package/lib/UseCases/SceneModel/index.js +3 -1
- package/lib/UseCases/SceneModel/loadNewModel.d.ts +2 -0
- package/lib/UseCases/SceneModel/loadNewModel.js +84 -0
- package/lib/UseCases/SceneModel/setActiveSceneModel.js +4 -3
- package/lib/UseCases/SceneModel/setupSceneModelFromData.d.ts +2 -0
- package/lib/UseCases/SceneModel/setupSceneModelFromData.js +72 -0
- package/lib/UseCases/SceneObjects/PeelSceneObject.d.ts +18 -0
- package/lib/UseCases/SceneObjects/PeelSceneObject.js +61 -0
- package/lib/UseCases/SceneObjects/index.d.ts +1 -0
- package/lib/UseCases/SceneObjects/index.js +13 -0
- package/lib/UseCases/SceneRoot/SerializeSceneRoot.d.ts +15 -0
- package/lib/UseCases/SceneRoot/SerializeSceneRoot.js +26 -7
- package/lib/UseCases/SceneRoot/index.d.ts +1 -0
- package/lib/UseCases/SceneRoot/index.js +1 -0
- package/lib/UseCases/SceneRoot/initializeSceneRoot.d.ts +2 -0
- package/lib/UseCases/SceneRoot/initializeSceneRoot.js +9 -0
- package/lib/UseCases/SceneRoot/setupSceneRoot.d.ts +2 -0
- package/lib/UseCases/SceneRoot/setupSceneRoot.js +11 -0
- package/lib/UseCases/index.d.ts +1 -1
- package/lib/UseCases/index.js +1 -1
- package/lib/ValueObjects/Quaternion.d.ts +9 -13
- package/lib/ValueObjects/Quaternion.js +2 -1
- package/lib/ValueObjects/Vector3.d.ts +7 -10
- package/lib/ValueObjects/Vector3.js +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.makeSetupSceneModelFromData = void 0;
|
|
4
|
+
const Entities_1 = require("../../Entities");
|
|
5
|
+
const ValueObjects_1 = require("../../ValueObjects");
|
|
6
|
+
function makeSetupSceneModelFromData(sceneObjectRepo) {
|
|
7
|
+
return function setupSceneModelFromData(sceneModel, data) {
|
|
8
|
+
if (data.version === 1) {
|
|
9
|
+
applyDataV1(sceneModel, data, sceneObjectRepo);
|
|
10
|
+
}
|
|
11
|
+
else if (data.version === 0) {
|
|
12
|
+
const mappedData = mapV0DataToV1(data);
|
|
13
|
+
applyDataV1(sceneModel, mappedData, sceneObjectRepo);
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
console.warn("[setupSceneModelFromData] Unsupported version number");
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
exports.makeSetupSceneModelFromData = makeSetupSceneModelFromData;
|
|
21
|
+
function mapV0DataToV1(dataV0) {
|
|
22
|
+
const { bounds_max, bounds_min, defaultPosition, defaultRotation, defaultScale, name, objects: objectsV0, } = dataV0;
|
|
23
|
+
const objects = objectsV0.map((objV0) => {
|
|
24
|
+
return Object.assign(Object.assign({}, objV0), { version: 1 });
|
|
25
|
+
});
|
|
26
|
+
return {
|
|
27
|
+
bounds_max,
|
|
28
|
+
bounds_min,
|
|
29
|
+
defaultPosition,
|
|
30
|
+
defaultRotation,
|
|
31
|
+
defaultScale,
|
|
32
|
+
name,
|
|
33
|
+
version: 1,
|
|
34
|
+
objects,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
function applyDataV1(sceneModel, data, sceneObjectRepo) {
|
|
38
|
+
sceneModel.name = data.name;
|
|
39
|
+
sceneModel.bounds_min = ValueObjects_1.Vector3.FromDTO(data.bounds_min);
|
|
40
|
+
sceneModel.bounds_max = ValueObjects_1.Vector3.FromDTO(data.bounds_max);
|
|
41
|
+
sceneModel.defaultPosition = ValueObjects_1.Vector3.FromDTO(data.defaultPosition);
|
|
42
|
+
sceneModel.defaultScale = data.defaultScale;
|
|
43
|
+
sceneModel.defaultRotation = ValueObjects_1.Quaternion.FromDTO(data.defaultRotation);
|
|
44
|
+
const objectsToKeep = [];
|
|
45
|
+
data.objects.forEach((objectDTO) => {
|
|
46
|
+
const existingObj = sceneModel.getObjectById(objectDTO.id);
|
|
47
|
+
if (existingObj) {
|
|
48
|
+
console.log("EXISTING");
|
|
49
|
+
existingObj.applyData(objectDTO);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
console.log("NEW");
|
|
53
|
+
let so = sceneObjectRepo.get(objectDTO.id);
|
|
54
|
+
if (!so) {
|
|
55
|
+
so = Entities_1.makeSceneObject(objectDTO.id);
|
|
56
|
+
sceneObjectRepo.add(objectDTO.id, so);
|
|
57
|
+
}
|
|
58
|
+
const newObj = Entities_1.makeModelMesh(objectDTO, so);
|
|
59
|
+
sceneModel.addObject(newObj);
|
|
60
|
+
}
|
|
61
|
+
objectsToKeep.push(objectDTO.id);
|
|
62
|
+
});
|
|
63
|
+
const allObjects = sceneModel.getAllObjects().map((modelMesh) => {
|
|
64
|
+
return modelMesh.id;
|
|
65
|
+
});
|
|
66
|
+
allObjects.forEach((obj) => {
|
|
67
|
+
if (!objectsToKeep.includes(obj)) {
|
|
68
|
+
sceneModel.removeObject(obj);
|
|
69
|
+
sceneObjectRepo.remove(obj);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
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;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./PeelSceneObject";
|
|
@@ -0,0 +1,13 @@
|
|
|
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("./PeelSceneObject"), exports);
|
|
@@ -8,6 +8,7 @@ export declare class SerializeSceneRoot implements SerializedSystem {
|
|
|
8
8
|
getSystemState(): object;
|
|
9
9
|
applySystemState(serializedState: object, version: number, transitionTime: number): void;
|
|
10
10
|
applyDefaultState(transitionDuration: number): void;
|
|
11
|
+
private applyV2Data;
|
|
11
12
|
private applyV1Data;
|
|
12
13
|
constructor(sceneRoot: SceneRoot, stateMachine: StateMachine);
|
|
13
14
|
}
|
|
@@ -16,3 +17,17 @@ export interface SceneRootDataV1 {
|
|
|
16
17
|
rotation: [number, number, number, number];
|
|
17
18
|
scale: [number, number, number];
|
|
18
19
|
}
|
|
20
|
+
export interface SceneRootDataV2 {
|
|
21
|
+
position: {
|
|
22
|
+
x: number;
|
|
23
|
+
y: number;
|
|
24
|
+
z: number;
|
|
25
|
+
};
|
|
26
|
+
rotation: {
|
|
27
|
+
x: number;
|
|
28
|
+
y: number;
|
|
29
|
+
z: number;
|
|
30
|
+
w: number;
|
|
31
|
+
};
|
|
32
|
+
scale: number;
|
|
33
|
+
}
|
|
@@ -5,17 +5,16 @@ const ValueObjects_1 = require("../../ValueObjects");
|
|
|
5
5
|
class SerializeSceneRoot {
|
|
6
6
|
constructor(sceneRoot, stateMachine) {
|
|
7
7
|
this.name = "sceneRoot";
|
|
8
|
-
this.seriliziationVersion =
|
|
8
|
+
this.seriliziationVersion = 2;
|
|
9
9
|
this.sceneRoot = sceneRoot;
|
|
10
10
|
this.stateMachine = stateMachine;
|
|
11
11
|
stateMachine.registerSerializedSystem(this);
|
|
12
12
|
}
|
|
13
13
|
getSystemState() {
|
|
14
|
-
const rootTransform = this.sceneRoot.transform;
|
|
15
14
|
const data = {
|
|
16
|
-
position:
|
|
17
|
-
rotation:
|
|
18
|
-
scale:
|
|
15
|
+
position: this.sceneRoot.position.dto,
|
|
16
|
+
rotation: this.sceneRoot.rotation.dto,
|
|
17
|
+
scale: this.sceneRoot.scale,
|
|
19
18
|
};
|
|
20
19
|
return data;
|
|
21
20
|
}
|
|
@@ -25,6 +24,10 @@ class SerializeSceneRoot {
|
|
|
25
24
|
const castState = serializedState;
|
|
26
25
|
this.applyV1Data(castState, transitionTime);
|
|
27
26
|
}
|
|
27
|
+
else if (version === 2) {
|
|
28
|
+
const castState = serializedState;
|
|
29
|
+
this.applyV2Data(castState, transitionTime);
|
|
30
|
+
}
|
|
28
31
|
else {
|
|
29
32
|
console.warn(`[SerializeSceneRoot] Unsupported version number ${version}. Defaulting`);
|
|
30
33
|
this.applyDefaultState(transitionTime);
|
|
@@ -36,13 +39,29 @@ class SerializeSceneRoot {
|
|
|
36
39
|
}
|
|
37
40
|
}
|
|
38
41
|
applyDefaultState(transitionDuration) {
|
|
39
|
-
this.sceneRoot.
|
|
42
|
+
this.sceneRoot.lerpToDefault(transitionDuration * 1000, this.stateMachine.transitionEaseFunction);
|
|
43
|
+
}
|
|
44
|
+
applyV2Data(data, transitionTime) {
|
|
45
|
+
if (!this.sceneRoot.sceneObject) {
|
|
46
|
+
console.warn("[SerializeSceneRoot] scene root does not have a scene object");
|
|
47
|
+
return {};
|
|
48
|
+
}
|
|
49
|
+
const pos = ValueObjects_1.Vector3.FromDTO(data.position);
|
|
50
|
+
const rot = ValueObjects_1.Quaternion.FromDTO(data.rotation);
|
|
51
|
+
const scale = new ValueObjects_1.Vector3(data.scale, data.scale, data.scale);
|
|
52
|
+
const rootTransform = this.sceneRoot.sceneObject.transform;
|
|
53
|
+
rootTransform.lerp(transitionTime * 1000, this.stateMachine.transitionEaseFunction, pos, rot, scale);
|
|
40
54
|
}
|
|
41
55
|
applyV1Data(data, transitionTime) {
|
|
56
|
+
if (!this.sceneRoot.sceneObject) {
|
|
57
|
+
console.warn("[SerializeSceneRoot] scene root does not have a scene object");
|
|
58
|
+
return {};
|
|
59
|
+
}
|
|
42
60
|
const pos = ValueObjects_1.Vector3.FromArray(data.position);
|
|
43
61
|
const rot = ValueObjects_1.Quaternion.FromArray(data.rotation);
|
|
44
62
|
const scale = ValueObjects_1.Vector3.FromArray(data.scale);
|
|
45
|
-
|
|
63
|
+
const rootTransform = this.sceneRoot.sceneObject.transform;
|
|
64
|
+
rootTransform.lerp(transitionTime * 1000, this.stateMachine.transitionEaseFunction, pos, rot, scale);
|
|
46
65
|
}
|
|
47
66
|
}
|
|
48
67
|
exports.SerializeSceneRoot = SerializeSceneRoot;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.initializeSceneRoot = void 0;
|
|
4
|
+
const Entities_1 = require("../../Entities");
|
|
5
|
+
function initializeSceneRoot(defaultData, sceneRoot, sceneObjectRepo) {
|
|
6
|
+
sceneRoot.applyDefaultData(defaultData);
|
|
7
|
+
sceneObjectRepo.add(Entities_1.SCENE_ROOT_ID, sceneRoot.sceneObject);
|
|
8
|
+
}
|
|
9
|
+
exports.initializeSceneRoot = initializeSceneRoot;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setupSceneRoot = void 0;
|
|
4
|
+
const Entities_1 = require("../../Entities");
|
|
5
|
+
function setupSceneRoot(defaultData, sceneRoot, sceneObjectRepo) {
|
|
6
|
+
sceneRoot.applyDefaultData(defaultData);
|
|
7
|
+
const so = Entities_1.makeSceneObject(Entities_1.SCENE_ROOT_ID);
|
|
8
|
+
sceneRoot.sceneObject = so;
|
|
9
|
+
sceneObjectRepo.add(Entities_1.SCENE_ROOT_ID, so);
|
|
10
|
+
}
|
|
11
|
+
exports.setupSceneRoot = setupSceneRoot;
|
package/lib/UseCases/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ export * from "./setDevicePreview";
|
|
|
2
2
|
export * from "./Handlers";
|
|
3
3
|
export * from "./QuestionChallenge";
|
|
4
4
|
export * from "./SceneModel";
|
|
5
|
-
export * from "./
|
|
5
|
+
export * from "./SceneObjects";
|
|
6
6
|
export * from "./LerpVector3";
|
|
7
7
|
export * from "./SceneRoot";
|
|
8
8
|
export * from "./HoverLabels/trySetHoverLabel";
|
package/lib/UseCases/index.js
CHANGED
|
@@ -14,7 +14,7 @@ __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("./
|
|
17
|
+
__exportStar(require("./SceneObjects"), exports);
|
|
18
18
|
__exportStar(require("./LerpVector3"), exports);
|
|
19
19
|
__exportStar(require("./SceneRoot"), exports);
|
|
20
20
|
__exportStar(require("./HoverLabels/trySetHoverLabel"), exports);
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import { Angle } from "./Angle";
|
|
2
2
|
import { Matrix } from "./Matrix";
|
|
3
3
|
import { Vector3 } from "./Vector3";
|
|
4
|
+
export interface QuaterionDTO {
|
|
5
|
+
x: number;
|
|
6
|
+
y: number;
|
|
7
|
+
z: number;
|
|
8
|
+
w: number;
|
|
9
|
+
}
|
|
4
10
|
export declare class Quaternion {
|
|
5
11
|
/**
|
|
6
12
|
* Checks to see if two Quaternions are equal
|
|
@@ -35,12 +41,7 @@ export declare class Quaternion {
|
|
|
35
41
|
* @param dto The Data Transfer Object
|
|
36
42
|
* @returns The Quaternion
|
|
37
43
|
*/
|
|
38
|
-
static FromDTO(dto:
|
|
39
|
-
x: number;
|
|
40
|
-
y: number;
|
|
41
|
-
z: number;
|
|
42
|
-
w: number;
|
|
43
|
-
}): Quaternion;
|
|
44
|
+
static FromDTO(dto: QuaterionDTO): Quaternion;
|
|
44
45
|
/**
|
|
45
46
|
* Creates an Identity Quaternion
|
|
46
47
|
* @returns An Identity Quaternion
|
|
@@ -98,14 +99,9 @@ export declare class Quaternion {
|
|
|
98
99
|
get angle(): Angle;
|
|
99
100
|
get axis(): Vector3;
|
|
100
101
|
/**
|
|
101
|
-
* Get the
|
|
102
|
+
* Get the quaternion as a Data Transfer Object
|
|
102
103
|
*/
|
|
103
|
-
get dto():
|
|
104
|
-
x: number;
|
|
105
|
-
y: number;
|
|
106
|
-
z: number;
|
|
107
|
-
w: number;
|
|
108
|
-
};
|
|
104
|
+
get dto(): QuaterionDTO;
|
|
109
105
|
readonly x: number;
|
|
110
106
|
readonly y: number;
|
|
111
107
|
readonly z: number;
|
|
@@ -4,6 +4,7 @@ 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
|
+
;
|
|
7
8
|
class Quaternion {
|
|
8
9
|
constructor(x, y, z, w) {
|
|
9
10
|
this.x = x;
|
|
@@ -248,7 +249,7 @@ class Quaternion {
|
|
|
248
249
|
return new Vector3_1.Vector3(x, y, z);
|
|
249
250
|
}
|
|
250
251
|
/**
|
|
251
|
-
* Get the
|
|
252
|
+
* Get the quaternion as a Data Transfer Object
|
|
252
253
|
*/
|
|
253
254
|
get dto() {
|
|
254
255
|
return { x: this.x, y: this.y, z: this.z, w: this.w };
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { Matrix } from "./Matrix";
|
|
2
|
+
export interface Vector3DTO {
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
z: number;
|
|
6
|
+
}
|
|
2
7
|
export declare class Vector3 {
|
|
3
8
|
/**
|
|
4
9
|
* Creates a zero vector
|
|
@@ -57,11 +62,7 @@ export declare class Vector3 {
|
|
|
57
62
|
* @param dto The Data Transfer Object
|
|
58
63
|
* @returns The Vector
|
|
59
64
|
*/
|
|
60
|
-
static FromDTO(dto:
|
|
61
|
-
x: number;
|
|
62
|
-
y: number;
|
|
63
|
-
z: number;
|
|
64
|
-
}): Vector3;
|
|
65
|
+
static FromDTO(dto: Vector3DTO): Vector3;
|
|
65
66
|
/**
|
|
66
67
|
* Adds Vector B to Vector A
|
|
67
68
|
* @param a Vector A
|
|
@@ -142,10 +143,6 @@ export declare class Vector3 {
|
|
|
142
143
|
/**
|
|
143
144
|
* Get the vector as a Data Transfer Object
|
|
144
145
|
*/
|
|
145
|
-
get dto():
|
|
146
|
-
x: number;
|
|
147
|
-
y: number;
|
|
148
|
-
z: number;
|
|
149
|
-
};
|
|
146
|
+
get dto(): Vector3DTO;
|
|
150
147
|
constructor(x: number, y: number, z: number);
|
|
151
148
|
}
|