@vived/core 1.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/README.md +29 -0
- package/babel.config.js +12 -0
- package/dist/AppObject/AppObject.d.ts +15 -0
- package/dist/AppObject/AppObject.d.ts.map +1 -0
- package/dist/AppObject/AppObject.js +54 -0
- package/dist/AppObject/AppObject.js.map +1 -0
- package/dist/AppObject/AppObject.test.d.ts +7 -0
- package/dist/AppObject/AppObject.test.d.ts.map +1 -0
- package/dist/AppObject/AppObject.test.js +110 -0
- package/dist/AppObject/AppObject.test.js.map +1 -0
- package/dist/AppObject/AppObjectComponent.d.ts +26 -0
- package/dist/AppObject/AppObjectComponent.d.ts.map +1 -0
- package/dist/AppObject/AppObjectComponent.js +78 -0
- package/dist/AppObject/AppObjectComponent.js.map +1 -0
- package/dist/AppObject/AppObjectComponent.test.d.ts +2 -0
- package/dist/AppObject/AppObjectComponent.test.d.ts.map +1 -0
- package/dist/AppObject/AppObjectComponent.test.js +130 -0
- package/dist/AppObject/AppObjectComponent.test.js.map +1 -0
- package/dist/AppObject/AppObjectController.d.ts +5 -0
- package/dist/AppObject/AppObjectController.d.ts.map +1 -0
- package/dist/AppObject/AppObjectController.js +8 -0
- package/dist/AppObject/AppObjectController.js.map +1 -0
- package/dist/AppObject/AppObjectEntity.d.ts +16 -0
- package/dist/AppObject/AppObjectEntity.d.ts.map +1 -0
- package/dist/AppObject/AppObjectEntity.js +34 -0
- package/dist/AppObject/AppObjectEntity.js.map +1 -0
- package/dist/AppObject/AppObjectEntity.test.d.ts +2 -0
- package/dist/AppObject/AppObjectEntity.test.d.ts.map +1 -0
- package/dist/AppObject/AppObjectEntity.test.js +106 -0
- package/dist/AppObject/AppObjectEntity.test.js.map +1 -0
- package/dist/AppObject/AppObjectEntityRepo.d.ts +16 -0
- package/dist/AppObject/AppObjectEntityRepo.d.ts.map +1 -0
- package/dist/AppObject/AppObjectEntityRepo.js +52 -0
- package/dist/AppObject/AppObjectEntityRepo.js.map +1 -0
- package/dist/AppObject/AppObjectEntityRepo.test.d.ts +2 -0
- package/dist/AppObject/AppObjectEntityRepo.test.d.ts.map +1 -0
- package/dist/AppObject/AppObjectEntityRepo.test.js +147 -0
- package/dist/AppObject/AppObjectEntityRepo.test.js.map +1 -0
- package/dist/AppObject/AppObjectPM.d.ts +13 -0
- package/dist/AppObject/AppObjectPM.d.ts.map +1 -0
- package/dist/AppObject/AppObjectPM.js +36 -0
- package/dist/AppObject/AppObjectPM.js.map +1 -0
- package/dist/AppObject/AppObjectPM.test.d.ts +2 -0
- package/dist/AppObject/AppObjectPM.test.d.ts.map +1 -0
- package/dist/AppObject/AppObjectPM.test.js +101 -0
- package/dist/AppObject/AppObjectPM.test.js.map +1 -0
- package/dist/AppObject/AppObjectRepo.d.ts +26 -0
- package/dist/AppObject/AppObjectRepo.d.ts.map +1 -0
- package/dist/AppObject/AppObjectRepo.js +128 -0
- package/dist/AppObject/AppObjectRepo.js.map +1 -0
- package/dist/AppObject/AppObjectRepo.test.d.ts +2 -0
- package/dist/AppObject/AppObjectRepo.test.d.ts.map +1 -0
- package/dist/AppObject/AppObjectRepo.test.js +211 -0
- package/dist/AppObject/AppObjectRepo.test.js.map +1 -0
- package/dist/AppObject/AppObjectUC.d.ts +5 -0
- package/dist/AppObject/AppObjectUC.d.ts.map +1 -0
- package/dist/AppObject/AppObjectUC.js +8 -0
- package/dist/AppObject/AppObjectUC.js.map +1 -0
- package/dist/AppObject/AppObjectView.d.ts +5 -0
- package/dist/AppObject/AppObjectView.d.ts.map +1 -0
- package/dist/AppObject/AppObjectView.js +8 -0
- package/dist/AppObject/AppObjectView.js.map +1 -0
- package/dist/AppObject/getSingletonComponent.d.ts +4 -0
- package/dist/AppObject/getSingletonComponent.d.ts.map +1 -0
- package/dist/AppObject/getSingletonComponent.js +4 -0
- package/dist/AppObject/getSingletonComponent.js.map +1 -0
- package/dist/AppObject/getSingletonComponent.test.d.ts +2 -0
- package/dist/AppObject/getSingletonComponent.test.d.ts.map +1 -0
- package/dist/AppObject/getSingletonComponent.test.js +11 -0
- package/dist/AppObject/getSingletonComponent.test.js.map +1 -0
- package/dist/AppObject/index.d.ts +11 -0
- package/dist/AppObject/index.d.ts.map +1 -0
- package/dist/AppObject/index.js +11 -0
- package/dist/AppObject/index.js.map +1 -0
- package/dist/AppObject/printAppObjectDetails.d.ts +3 -0
- package/dist/AppObject/printAppObjectDetails.d.ts.map +1 -0
- package/dist/AppObject/printAppObjectDetails.js +15 -0
- package/dist/AppObject/printAppObjectDetails.js.map +1 -0
- package/dist/Entities/MemoizedAngle.d.ts +10 -0
- package/dist/Entities/MemoizedAngle.d.ts.map +1 -0
- package/dist/Entities/MemoizedAngle.js +19 -0
- package/dist/Entities/MemoizedAngle.js.map +1 -0
- package/dist/Entities/MemoizedAngle.test.d.ts +2 -0
- package/dist/Entities/MemoizedAngle.test.d.ts.map +1 -0
- package/dist/Entities/MemoizedAngle.test.js +28 -0
- package/dist/Entities/MemoizedAngle.test.js.map +1 -0
- package/dist/Entities/MemoizedBoolean.d.ts +9 -0
- package/dist/Entities/MemoizedBoolean.d.ts.map +1 -0
- package/dist/Entities/MemoizedBoolean.js +19 -0
- package/dist/Entities/MemoizedBoolean.js.map +1 -0
- package/dist/Entities/MemoizedBoolean.test.d.ts +2 -0
- package/dist/Entities/MemoizedBoolean.test.d.ts.map +1 -0
- package/dist/Entities/MemoizedBoolean.test.js +32 -0
- package/dist/Entities/MemoizedBoolean.test.js.map +1 -0
- package/dist/Entities/MemoizedColor.d.ts +10 -0
- package/dist/Entities/MemoizedColor.d.ts.map +1 -0
- package/dist/Entities/MemoizedColor.js +20 -0
- package/dist/Entities/MemoizedColor.js.map +1 -0
- package/dist/Entities/MemoizedColor.test.d.ts +2 -0
- package/dist/Entities/MemoizedColor.test.d.ts.map +1 -0
- package/dist/Entities/MemoizedColor.test.js +30 -0
- package/dist/Entities/MemoizedColor.test.js.map +1 -0
- package/dist/Entities/MemoizedNumber.d.ts +9 -0
- package/dist/Entities/MemoizedNumber.d.ts.map +1 -0
- package/dist/Entities/MemoizedNumber.js +19 -0
- package/dist/Entities/MemoizedNumber.js.map +1 -0
- package/dist/Entities/MemoizedNumber.test.d.ts +2 -0
- package/dist/Entities/MemoizedNumber.test.d.ts.map +1 -0
- package/dist/Entities/MemoizedNumber.test.js +27 -0
- package/dist/Entities/MemoizedNumber.test.js.map +1 -0
- package/dist/Entities/MemoizedQuaternion.d.ts +10 -0
- package/dist/Entities/MemoizedQuaternion.d.ts.map +1 -0
- package/dist/Entities/MemoizedQuaternion.js +20 -0
- package/dist/Entities/MemoizedQuaternion.js.map +1 -0
- package/dist/Entities/MemoizedQuaternion.test.d.ts +2 -0
- package/dist/Entities/MemoizedQuaternion.test.d.ts.map +1 -0
- package/dist/Entities/MemoizedQuaternion.test.js +30 -0
- package/dist/Entities/MemoizedQuaternion.test.js.map +1 -0
- package/dist/Entities/MemoizedString.d.ts +9 -0
- package/dist/Entities/MemoizedString.d.ts.map +1 -0
- package/dist/Entities/MemoizedString.js +19 -0
- package/dist/Entities/MemoizedString.js.map +1 -0
- package/dist/Entities/MemoizedString.test.d.ts +2 -0
- package/dist/Entities/MemoizedString.test.d.ts.map +1 -0
- package/dist/Entities/MemoizedString.test.js +27 -0
- package/dist/Entities/MemoizedString.test.js.map +1 -0
- package/dist/Entities/MemoizedVector2.d.ts +10 -0
- package/dist/Entities/MemoizedVector2.d.ts.map +1 -0
- package/dist/Entities/MemoizedVector2.js +20 -0
- package/dist/Entities/MemoizedVector2.js.map +1 -0
- package/dist/Entities/MemoizedVector2.test.d.ts +2 -0
- package/dist/Entities/MemoizedVector2.test.d.ts.map +1 -0
- package/dist/Entities/MemoizedVector2.test.js +30 -0
- package/dist/Entities/MemoizedVector2.test.js.map +1 -0
- package/dist/Entities/MemoizedVector3.d.ts +10 -0
- package/dist/Entities/MemoizedVector3.d.ts.map +1 -0
- package/dist/Entities/MemoizedVector3.js +20 -0
- package/dist/Entities/MemoizedVector3.js.map +1 -0
- package/dist/Entities/MemoizedVector3.test.d.ts +2 -0
- package/dist/Entities/MemoizedVector3.test.d.ts.map +1 -0
- package/dist/Entities/MemoizedVector3.test.js +30 -0
- package/dist/Entities/MemoizedVector3.test.js.map +1 -0
- package/dist/Entities/ObservableEntity.d.ts +8 -0
- package/dist/Entities/ObservableEntity.d.ts.map +1 -0
- package/dist/Entities/ObservableEntity.js +16 -0
- package/dist/Entities/ObservableEntity.js.map +1 -0
- package/dist/Entities/ObservableEntity.test.d.ts +2 -0
- package/dist/Entities/ObservableEntity.test.d.ts.map +1 -0
- package/dist/Entities/ObservableEntity.test.js +23 -0
- package/dist/Entities/ObservableEntity.test.js.map +1 -0
- package/dist/Entities/ObserverList.d.ts +8 -0
- package/dist/Entities/ObserverList.d.ts.map +1 -0
- package/dist/Entities/ObserverList.js +23 -0
- package/dist/Entities/ObserverList.js.map +1 -0
- package/dist/Entities/ObserverList.test.d.ts +2 -0
- package/dist/Entities/ObserverList.test.d.ts.map +1 -0
- package/dist/Entities/ObserverList.test.js +42 -0
- package/dist/Entities/ObserverList.test.js.map +1 -0
- package/dist/Entities/index.d.ts +11 -0
- package/dist/Entities/index.d.ts.map +1 -0
- package/dist/Entities/index.js +11 -0
- package/dist/Entities/index.js.map +1 -0
- package/dist/Types/AppBoundary.d.ts +11 -0
- package/dist/Types/AppBoundary.d.ts.map +1 -0
- package/dist/Types/AppBoundary.js +2 -0
- package/dist/Types/AppBoundary.js.map +1 -0
- package/dist/Types/EaseFn.d.ts +2 -0
- package/dist/Types/EaseFn.d.ts.map +1 -0
- package/dist/Types/EaseFn.js +2 -0
- package/dist/Types/EaseFn.js.map +1 -0
- package/dist/Types/PmAdapter.d.ts +7 -0
- package/dist/Types/PmAdapter.d.ts.map +1 -0
- package/dist/Types/PmAdapter.js +2 -0
- package/dist/Types/PmAdapter.js.map +1 -0
- package/dist/Types/SingletonPmAdapter.d.ts +7 -0
- package/dist/Types/SingletonPmAdapter.d.ts.map +1 -0
- package/dist/Types/SingletonPmAdapter.js +2 -0
- package/dist/Types/SingletonPmAdapter.js.map +1 -0
- package/dist/Types/index.d.ts +5 -0
- package/dist/Types/index.d.ts.map +1 -0
- package/dist/Types/index.js +5 -0
- package/dist/Types/index.js.map +1 -0
- package/dist/ValueObjects/Angle.d.ts +27 -0
- package/dist/ValueObjects/Angle.d.ts.map +1 -0
- package/dist/ValueObjects/Angle.js +43 -0
- package/dist/ValueObjects/Angle.js.map +1 -0
- package/dist/ValueObjects/Angle.test.d.ts +2 -0
- package/dist/ValueObjects/Angle.test.d.ts.map +1 -0
- package/dist/ValueObjects/Angle.test.js +26 -0
- package/dist/ValueObjects/Angle.test.js.map +1 -0
- package/dist/ValueObjects/Color.d.ts +83 -0
- package/dist/ValueObjects/Color.d.ts.map +1 -0
- package/dist/ValueObjects/Color.js +855 -0
- package/dist/ValueObjects/Color.js.map +1 -0
- package/dist/ValueObjects/Color.test.d.ts +2 -0
- package/dist/ValueObjects/Color.test.d.ts.map +1 -0
- package/dist/ValueObjects/Color.test.js +145 -0
- package/dist/ValueObjects/Color.test.js.map +1 -0
- package/dist/ValueObjects/LineSegment2D.d.ts +12 -0
- package/dist/ValueObjects/LineSegment2D.d.ts.map +1 -0
- package/dist/ValueObjects/LineSegment2D.js +68 -0
- package/dist/ValueObjects/LineSegment2D.js.map +1 -0
- package/dist/ValueObjects/LineSegment2D.test.d.ts +2 -0
- package/dist/ValueObjects/LineSegment2D.test.d.ts.map +1 -0
- package/dist/ValueObjects/LineSegment2D.test.js +100 -0
- package/dist/ValueObjects/LineSegment2D.test.js.map +1 -0
- package/dist/ValueObjects/Matrix.d.ts +124 -0
- package/dist/ValueObjects/Matrix.d.ts.map +1 -0
- package/dist/ValueObjects/Matrix.js +462 -0
- package/dist/ValueObjects/Matrix.js.map +1 -0
- package/dist/ValueObjects/Matrix.test.d.ts +2 -0
- package/dist/ValueObjects/Matrix.test.d.ts.map +1 -0
- package/dist/ValueObjects/Matrix.test.js +383 -0
- package/dist/ValueObjects/Matrix.test.js.map +1 -0
- package/dist/ValueObjects/ParametricLine.d.ts +31 -0
- package/dist/ValueObjects/ParametricLine.d.ts.map +1 -0
- package/dist/ValueObjects/ParametricLine.js +73 -0
- package/dist/ValueObjects/ParametricLine.js.map +1 -0
- package/dist/ValueObjects/ParametricLine.test.d.ts +2 -0
- package/dist/ValueObjects/ParametricLine.test.d.ts.map +1 -0
- package/dist/ValueObjects/ParametricLine.test.js +124 -0
- package/dist/ValueObjects/ParametricLine.test.js.map +1 -0
- package/dist/ValueObjects/ParametricPlane.d.ts +21 -0
- package/dist/ValueObjects/ParametricPlane.d.ts.map +1 -0
- package/dist/ValueObjects/ParametricPlane.js +61 -0
- package/dist/ValueObjects/ParametricPlane.js.map +1 -0
- package/dist/ValueObjects/ParametricPlane.test.d.ts +2 -0
- package/dist/ValueObjects/ParametricPlane.test.d.ts.map +1 -0
- package/dist/ValueObjects/ParametricPlane.test.js +99 -0
- package/dist/ValueObjects/ParametricPlane.test.js.map +1 -0
- package/dist/ValueObjects/Quaternion.d.ts +113 -0
- package/dist/ValueObjects/Quaternion.d.ts.map +1 -0
- package/dist/ValueObjects/Quaternion.js +286 -0
- package/dist/ValueObjects/Quaternion.js.map +1 -0
- package/dist/ValueObjects/Quaternion.test.d.ts +2 -0
- package/dist/ValueObjects/Quaternion.test.d.ts.map +1 -0
- package/dist/ValueObjects/Quaternion.test.js +238 -0
- package/dist/ValueObjects/Quaternion.test.js.map +1 -0
- package/dist/ValueObjects/Rectangle.d.ts +16 -0
- package/dist/ValueObjects/Rectangle.d.ts.map +1 -0
- package/dist/ValueObjects/Rectangle.js +20 -0
- package/dist/ValueObjects/Rectangle.js.map +1 -0
- package/dist/ValueObjects/Rectangle.test.d.ts +2 -0
- package/dist/ValueObjects/Rectangle.test.d.ts.map +1 -0
- package/dist/ValueObjects/Rectangle.test.js +30 -0
- package/dist/ValueObjects/Rectangle.test.js.map +1 -0
- package/dist/ValueObjects/Vector2.d.ts +121 -0
- package/dist/ValueObjects/Vector2.d.ts.map +1 -0
- package/dist/ValueObjects/Vector2.js +180 -0
- package/dist/ValueObjects/Vector2.js.map +1 -0
- package/dist/ValueObjects/Vector2.test.d.ts +2 -0
- package/dist/ValueObjects/Vector2.test.d.ts.map +1 -0
- package/dist/ValueObjects/Vector2.test.js +134 -0
- package/dist/ValueObjects/Vector2.test.js.map +1 -0
- package/dist/ValueObjects/Vector3.d.ts +150 -0
- package/dist/ValueObjects/Vector3.d.ts.map +1 -0
- package/dist/ValueObjects/Vector3.js +227 -0
- package/dist/ValueObjects/Vector3.js.map +1 -0
- package/dist/ValueObjects/Vector3.test.d.ts +2 -0
- package/dist/ValueObjects/Vector3.test.d.ts.map +1 -0
- package/dist/ValueObjects/Vector3.test.js +186 -0
- package/dist/ValueObjects/Vector3.test.js.map +1 -0
- package/dist/ValueObjects/index.d.ts +11 -0
- package/dist/ValueObjects/index.d.ts.map +1 -0
- package/dist/ValueObjects/index.js +11 -0
- package/dist/ValueObjects/index.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/jestconfig.json +10 -0
- package/package.json +41 -0
- package/src/AppObject/AppObject.test.ts +158 -0
- package/src/AppObject/AppObject.ts +83 -0
- package/src/AppObject/AppObjectComponent.test.ts +219 -0
- package/src/AppObject/AppObjectComponent.ts +100 -0
- package/src/AppObject/AppObjectController.ts +8 -0
- package/src/AppObject/AppObjectEntity.test.ts +151 -0
- package/src/AppObject/AppObjectEntity.ts +45 -0
- package/src/AppObject/AppObjectEntityRepo.test.ts +211 -0
- package/src/AppObject/AppObjectEntityRepo.ts +61 -0
- package/src/AppObject/AppObjectPM.test.ts +152 -0
- package/src/AppObject/AppObjectPM.ts +43 -0
- package/src/AppObject/AppObjectRepo.test.ts +317 -0
- package/src/AppObject/AppObjectRepo.ts +203 -0
- package/src/AppObject/AppObjectUC.ts +5 -0
- package/src/AppObject/AppObjectView.ts +5 -0
- package/src/AppObject/getSingletonComponent.test.ts +17 -0
- package/src/AppObject/getSingletonComponent.ts +9 -0
- package/src/AppObject/index.ts +10 -0
- package/src/AppObject/printAppObjectDetails.ts +17 -0
- package/src/Entities/MemoizedAngle.test.ts +38 -0
- package/src/Entities/MemoizedAngle.ts +25 -0
- package/src/Entities/MemoizedBoolean.test.ts +45 -0
- package/src/Entities/MemoizedBoolean.ts +23 -0
- package/src/Entities/MemoizedColor.test.ts +39 -0
- package/src/Entities/MemoizedColor.ts +27 -0
- package/src/Entities/MemoizedNumber.test.ts +37 -0
- package/src/Entities/MemoizedNumber.ts +23 -0
- package/src/Entities/MemoizedQuaternion.test.ts +39 -0
- package/src/Entities/MemoizedQuaternion.ts +27 -0
- package/src/Entities/MemoizedString.test.ts +37 -0
- package/src/Entities/MemoizedString.ts +23 -0
- package/src/Entities/MemoizedVector2.test.ts +39 -0
- package/src/Entities/MemoizedVector2.ts +27 -0
- package/src/Entities/MemoizedVector3.test.ts +39 -0
- package/src/Entities/MemoizedVector3.ts +27 -0
- package/src/Entities/ObservableEntity.test.ts +28 -0
- package/src/Entities/ObservableEntity.ts +17 -0
- package/src/Entities/ObserverList.test.ts +61 -0
- package/src/Entities/ObserverList.ts +24 -0
- package/src/Entities/index.ts +10 -0
- package/src/Types/AppBoundary.ts +13 -0
- package/src/Types/EaseFn.ts +1 -0
- package/src/Types/PmAdapter.ts +15 -0
- package/src/Types/SingletonPmAdapter.ts +7 -0
- package/src/Types/index.ts +4 -0
- package/src/ValueObjects/Angle.test.ts +30 -0
- package/src/ValueObjects/Angle.ts +47 -0
- package/src/ValueObjects/Color.test.ts +181 -0
- package/src/ValueObjects/Color.ts +891 -0
- package/src/ValueObjects/LineSegment2D.test.ts +144 -0
- package/src/ValueObjects/LineSegment2D.ts +93 -0
- package/src/ValueObjects/Matrix.test.ts +498 -0
- package/src/ValueObjects/Matrix.ts +567 -0
- package/src/ValueObjects/ParametricLine.test.ts +155 -0
- package/src/ValueObjects/ParametricLine.ts +114 -0
- package/src/ValueObjects/ParametricPlane.test.ts +122 -0
- package/src/ValueObjects/ParametricPlane.ts +82 -0
- package/src/ValueObjects/Quaternion.test.ts +356 -0
- package/src/ValueObjects/Quaternion.ts +353 -0
- package/src/ValueObjects/Rectangle.test.ts +32 -0
- package/src/ValueObjects/Rectangle.ts +33 -0
- package/src/ValueObjects/Vector2.test.ts +167 -0
- package/src/ValueObjects/Vector2.ts +209 -0
- package/src/ValueObjects/Vector3.test.ts +228 -0
- package/src/ValueObjects/Vector3.ts +269 -0
- package/src/ValueObjects/index.ts +14 -0
- package/src/index.ts +4 -0
- package/tsconfig.json +18 -0
- package/tslint.json +11 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Vector2.js","sourceRoot":"","sources":["../../src/ValueObjects/Vector2.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Vector2.test.d.ts","sourceRoot":"","sources":["../../src/ValueObjects/Vector2.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { Angle } from ".";
|
|
2
|
+
import { Vector2 } from "./Vector2";
|
|
3
|
+
describe("Vector 2 value object", () => {
|
|
4
|
+
it("Creates a new vector", () => {
|
|
5
|
+
const v = new Vector2(2, 5);
|
|
6
|
+
expect(v.x).toEqual(2);
|
|
7
|
+
expect(v.y).toEqual(5);
|
|
8
|
+
});
|
|
9
|
+
it("Returns the magnitude", () => {
|
|
10
|
+
expect(new Vector2(0, 5).magnitued).toEqual(5);
|
|
11
|
+
expect(new Vector2(0, -5).magnitued).toEqual(5);
|
|
12
|
+
expect(new Vector2(5, 0).magnitued).toEqual(5);
|
|
13
|
+
expect(new Vector2(-5, 0).magnitued).toEqual(5);
|
|
14
|
+
expect(new Vector2(-1, -1).magnitued).toBeCloseTo(1.414);
|
|
15
|
+
expect(new Vector2(1, 1).magnitued).toBeCloseTo(1.414);
|
|
16
|
+
});
|
|
17
|
+
it("Returns the unit", () => {
|
|
18
|
+
expect(new Vector2(0, 5).unit).toEqual(new Vector2(0, 1));
|
|
19
|
+
expect(new Vector2(0, -5).unit).toEqual(new Vector2(0, -1));
|
|
20
|
+
expect(new Vector2(5, 0).unit).toEqual(new Vector2(1, 0));
|
|
21
|
+
expect(new Vector2(-5, 0).unit).toEqual(new Vector2(-1, 0));
|
|
22
|
+
const unit1 = new Vector2(5, 5).unit;
|
|
23
|
+
expect(unit1.x).toBeCloseTo(0.707);
|
|
24
|
+
expect(unit1.y).toBeCloseTo(0.707);
|
|
25
|
+
});
|
|
26
|
+
it("Retuns theta", () => {
|
|
27
|
+
expect(new Vector2(0, 5).theta).toBeCloseTo(90);
|
|
28
|
+
expect(new Vector2(0, -5).theta).toBeCloseTo(-90);
|
|
29
|
+
expect(new Vector2(5, 0).theta).toBeCloseTo(0);
|
|
30
|
+
expect(new Vector2(-5, 0).theta).toBeCloseTo(180);
|
|
31
|
+
});
|
|
32
|
+
test("Returns the vector as an array", () => {
|
|
33
|
+
const v1 = new Vector2(1, 2);
|
|
34
|
+
expect(v1.array[0]).toEqual(1);
|
|
35
|
+
expect(v1.array[1]).toEqual(2);
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
describe("Vector 2 static actions", () => {
|
|
39
|
+
it("Create a zero vector", () => {
|
|
40
|
+
expect(Vector2.Zero()).toEqual(new Vector2(0, 0));
|
|
41
|
+
});
|
|
42
|
+
it("Create a one vector", () => {
|
|
43
|
+
expect(Vector2.One()).toEqual(new Vector2(1, 1));
|
|
44
|
+
});
|
|
45
|
+
it("Check for vectors to be Equal", () => {
|
|
46
|
+
const v1 = new Vector2(1, 2);
|
|
47
|
+
const v2 = new Vector2(2, 3);
|
|
48
|
+
const v3 = new Vector2(1, 2);
|
|
49
|
+
expect(Vector2.Equal(v1, v2)).toEqual(false);
|
|
50
|
+
expect(Vector2.Equal(v1, v3)).toEqual(true);
|
|
51
|
+
});
|
|
52
|
+
it("Adds vectors", () => {
|
|
53
|
+
const v1 = new Vector2(1, 2);
|
|
54
|
+
const v2 = new Vector2(2, 3);
|
|
55
|
+
const v3 = Vector2.Add(v1, v2);
|
|
56
|
+
expect(v3).toEqual(new Vector2(3, 5));
|
|
57
|
+
});
|
|
58
|
+
it("Subtracts vectors", () => {
|
|
59
|
+
const v1 = new Vector2(1, 2);
|
|
60
|
+
const v2 = new Vector2(2, 3);
|
|
61
|
+
const v3 = Vector2.Subtract(v1, v2);
|
|
62
|
+
expect(v3).toEqual(new Vector2(-1, -1));
|
|
63
|
+
});
|
|
64
|
+
it("Checks to see if vectors are close using a default threshold", () => {
|
|
65
|
+
const v1 = new Vector2(1, 2);
|
|
66
|
+
const v2 = new Vector2(1.001, 2.001);
|
|
67
|
+
const v3 = new Vector2(1.1, 2.1);
|
|
68
|
+
expect(Vector2.Close(v1, v2)).toEqual(true);
|
|
69
|
+
expect(Vector2.Close(v1, v3)).toEqual(false);
|
|
70
|
+
});
|
|
71
|
+
it("Checks to see if vectors are close using a passed threshold", () => {
|
|
72
|
+
const v1 = new Vector2(1, 2);
|
|
73
|
+
const v2 = new Vector2(1.1, 2.1);
|
|
74
|
+
const v3 = new Vector2(2, 3);
|
|
75
|
+
expect(Vector2.Close(v1, v2, 1)).toEqual(true);
|
|
76
|
+
expect(Vector2.Close(v1, v3, 1)).toEqual(false);
|
|
77
|
+
});
|
|
78
|
+
it("Rotates to a new vector", () => {
|
|
79
|
+
const v1 = new Vector2(1, 2);
|
|
80
|
+
const r1 = Vector2.Rotate(v1, Angle.FromDegrees(90));
|
|
81
|
+
expect(r1.x).toBeCloseTo(-2);
|
|
82
|
+
expect(r1.y).toBeCloseTo(1);
|
|
83
|
+
const r2 = Vector2.Rotate(v1, Angle.FromDegrees(-90));
|
|
84
|
+
expect(r2.x).toBeCloseTo(2);
|
|
85
|
+
expect(r2.y).toBeCloseTo(-1);
|
|
86
|
+
});
|
|
87
|
+
it("Scales a vector", () => {
|
|
88
|
+
const v1 = new Vector2(1, 2);
|
|
89
|
+
const scaled = Vector2.Scale(v1, 3);
|
|
90
|
+
expect(scaled).toEqual(new Vector2(3, 6));
|
|
91
|
+
});
|
|
92
|
+
it("Make a new vector of length", () => {
|
|
93
|
+
const v1 = new Vector2(1, 1);
|
|
94
|
+
const lengthened = Vector2.NewVectorOfLength(v1, 3);
|
|
95
|
+
expect(lengthened.x).toBeCloseTo(2.12);
|
|
96
|
+
expect(lengthened.y).toBeCloseTo(2.12);
|
|
97
|
+
});
|
|
98
|
+
it("Calculates the dot between two vectors", () => {
|
|
99
|
+
// https://onlinemschool.com/math/assistance/vector/multiply/
|
|
100
|
+
const v1 = new Vector2(1, 2);
|
|
101
|
+
const v2 = new Vector2(5, 6);
|
|
102
|
+
const dot = Vector2.Dot(v1, v2);
|
|
103
|
+
expect(dot).toEqual(17);
|
|
104
|
+
});
|
|
105
|
+
it("Calculates the angle between two vectors", () => {
|
|
106
|
+
// https://www.omnicalculator.com/math/angle-between-two-vectors
|
|
107
|
+
const v1 = new Vector2(1, 2);
|
|
108
|
+
const v2 = new Vector2(3, 4);
|
|
109
|
+
const angle = Vector2.AngleBetween(v1, v2);
|
|
110
|
+
expect(angle.degrees).toBeCloseTo(10.305);
|
|
111
|
+
});
|
|
112
|
+
it("Calculates a Cross product", () => {
|
|
113
|
+
const v1 = new Vector2(1, 2);
|
|
114
|
+
const v2 = new Vector2(3, 4);
|
|
115
|
+
const cross = Vector2.Cross(v1, v2);
|
|
116
|
+
expect(cross).toEqual(-2);
|
|
117
|
+
});
|
|
118
|
+
it("Gets the Data Transfer Object", () => {
|
|
119
|
+
const vec = new Vector2(1, 2);
|
|
120
|
+
expect(vec.dto).toEqual({
|
|
121
|
+
x: 1,
|
|
122
|
+
y: 2
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
it("Makes a vector from a DTO", () => {
|
|
126
|
+
const vec = Vector2.FromDTO({
|
|
127
|
+
x: 1,
|
|
128
|
+
y: 2
|
|
129
|
+
});
|
|
130
|
+
expect(vec.x).toEqual(1);
|
|
131
|
+
expect(vec.y).toEqual(2);
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
//# sourceMappingURL=Vector2.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Vector2.test.js","sourceRoot":"","sources":["../../src/ValueObjects/Vector2.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { Matrix } from "./Matrix";
|
|
2
|
+
export interface Vector3DTO {
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
z: number;
|
|
6
|
+
}
|
|
7
|
+
export declare class Vector3 {
|
|
8
|
+
/**
|
|
9
|
+
* Creates a zero vector
|
|
10
|
+
* @returns Vector [0,0,0]
|
|
11
|
+
*/
|
|
12
|
+
static Zero(): Vector3;
|
|
13
|
+
/**
|
|
14
|
+
* Creates a vector of ones
|
|
15
|
+
* @returns Vector [1,1,1]
|
|
16
|
+
*/
|
|
17
|
+
static One(): Vector3;
|
|
18
|
+
/**
|
|
19
|
+
* Creates a Right vector (positive X)
|
|
20
|
+
* @param length optional length of the right unit. Default is 1
|
|
21
|
+
* @returns Vector [length, 0,0]
|
|
22
|
+
*/
|
|
23
|
+
static Right(length?: number): Vector3;
|
|
24
|
+
/**
|
|
25
|
+
* Creates a Left vector (negative X)
|
|
26
|
+
* @param length optional length of the left unit. Default is 1
|
|
27
|
+
* @returns Vector [-length, 0, 0]
|
|
28
|
+
*/
|
|
29
|
+
static Left(length?: number): Vector3;
|
|
30
|
+
/**
|
|
31
|
+
* Creates an Up vector (positive Y)
|
|
32
|
+
* @param length optional length of the vector. Default is 1
|
|
33
|
+
* @returns Vector [0, length, 0]
|
|
34
|
+
*/
|
|
35
|
+
static Up(length?: number): Vector3;
|
|
36
|
+
/**
|
|
37
|
+
* Creates a Down vector (negative Y)
|
|
38
|
+
* @param length optional length of the vector. Default is 1
|
|
39
|
+
* @returns Vector [0, -length, 0]
|
|
40
|
+
*/
|
|
41
|
+
static Down(length?: number): Vector3;
|
|
42
|
+
/**
|
|
43
|
+
* Creates a Forward vector (positive Z)
|
|
44
|
+
* @param length optional length of the vector. Default is 1
|
|
45
|
+
* @returns Vector [0, 0, length]
|
|
46
|
+
*/
|
|
47
|
+
static Forward(length?: number): Vector3;
|
|
48
|
+
/**
|
|
49
|
+
* Creates a Backward vector (negative Z)
|
|
50
|
+
* @param length optional length of the vector. Default is 1
|
|
51
|
+
* @returns Vector [0, 0, -length]
|
|
52
|
+
*/
|
|
53
|
+
static Backward(length?: number): Vector3;
|
|
54
|
+
/**
|
|
55
|
+
* Creates a Vector from an array of components
|
|
56
|
+
* @param values The x, y, z components as an array
|
|
57
|
+
* @returns The Vector
|
|
58
|
+
*/
|
|
59
|
+
static FromArray(values: [number, number, number]): Vector3;
|
|
60
|
+
/**
|
|
61
|
+
* Creates a Vector from a Data Transfer Object
|
|
62
|
+
* @param dto The Data Transfer Object
|
|
63
|
+
* @returns The Vector
|
|
64
|
+
*/
|
|
65
|
+
static FromDTO(dto: Vector3DTO): Vector3;
|
|
66
|
+
/**
|
|
67
|
+
* Adds Vector B to Vector A
|
|
68
|
+
* @param a Vector A
|
|
69
|
+
* @param b Vector B
|
|
70
|
+
* @return Result of A + B
|
|
71
|
+
*/
|
|
72
|
+
static Add: (a: Vector3, b: Vector3) => Vector3;
|
|
73
|
+
/**
|
|
74
|
+
* Subtracts Vector B from Vector A
|
|
75
|
+
* @param a Vector A
|
|
76
|
+
* @param b Vector B
|
|
77
|
+
* @return Result of A - B
|
|
78
|
+
*/
|
|
79
|
+
static Subtract: (a: Vector3, b: Vector3) => Vector3;
|
|
80
|
+
/**
|
|
81
|
+
* Checks to see if the two vectors are equal
|
|
82
|
+
* @param a Vector A
|
|
83
|
+
* @param b Vector B
|
|
84
|
+
* @return True if the two vectors are equal, otherwise false
|
|
85
|
+
*/
|
|
86
|
+
static Equal: (a: Vector3, b: Vector3) => boolean;
|
|
87
|
+
/**
|
|
88
|
+
* Checks to see if the two vectors are close
|
|
89
|
+
* @param a Vector A
|
|
90
|
+
* @param b Vector B
|
|
91
|
+
* @param tolerance Tolerance for checking. Defaulted to 0.01
|
|
92
|
+
* @return True if the distance between the two vectors is less than the tolerance, otherwise false
|
|
93
|
+
*/
|
|
94
|
+
static Close: (a: Vector3, b: Vector3, tolerance?: number) => boolean;
|
|
95
|
+
/**
|
|
96
|
+
* Calculates the Cross Product between two vectors
|
|
97
|
+
* @param a Vector A
|
|
98
|
+
* @param b Vector B
|
|
99
|
+
* @return the cross product between the two vectors
|
|
100
|
+
*/
|
|
101
|
+
static Cross: (a: Vector3, b: Vector3) => Vector3;
|
|
102
|
+
/**
|
|
103
|
+
* Calculates the Dot Product between two vectors
|
|
104
|
+
* @param a Vector A
|
|
105
|
+
* @param b Vector B
|
|
106
|
+
* @return the dot product between the two vectors
|
|
107
|
+
*/
|
|
108
|
+
static Dot: (a: Vector3, b: Vector3) => number;
|
|
109
|
+
/**
|
|
110
|
+
* Create a new vector that will have the same unit as the original vector but set to the desired length
|
|
111
|
+
* @param vec The original vector
|
|
112
|
+
* @param length Desired length of the final vector
|
|
113
|
+
* @return The resulting vector
|
|
114
|
+
*/
|
|
115
|
+
static NewVectorOfLength: (vec: Vector3, length: number) => Vector3;
|
|
116
|
+
static Transform: (vector: Vector3, matrix: Matrix) => Vector3;
|
|
117
|
+
/**
|
|
118
|
+
* Linearly interpolates between two vectors
|
|
119
|
+
* @param initial The starting point
|
|
120
|
+
* @param final The end point
|
|
121
|
+
* @param percent Percent of the lerp. 0 will return initial and 1 will return final
|
|
122
|
+
* @return the LERP result Vector3
|
|
123
|
+
*/
|
|
124
|
+
static Lerp: (initial: Vector3, final: Vector3, percent: number) => Vector3;
|
|
125
|
+
private static interpolateNumber;
|
|
126
|
+
readonly x: number;
|
|
127
|
+
readonly y: number;
|
|
128
|
+
readonly z: number;
|
|
129
|
+
/**
|
|
130
|
+
* Gets the magnitude of the Vector3
|
|
131
|
+
* @returns the magnitude of the Vector3
|
|
132
|
+
*/
|
|
133
|
+
get magnitude(): number;
|
|
134
|
+
/**
|
|
135
|
+
* Gets the unit vector for this Vector3
|
|
136
|
+
* @returns the unit vector
|
|
137
|
+
*/
|
|
138
|
+
get unit(): Vector3;
|
|
139
|
+
/**
|
|
140
|
+
* Gets the vector as an array
|
|
141
|
+
* @returns an array representing the vector
|
|
142
|
+
*/
|
|
143
|
+
get array(): [number, number, number];
|
|
144
|
+
/**
|
|
145
|
+
* Get the vector as a Data Transfer Object
|
|
146
|
+
*/
|
|
147
|
+
get dto(): Vector3DTO;
|
|
148
|
+
constructor(x: number, y: number, z: number);
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=Vector3.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Vector3.d.ts","sourceRoot":"","sources":["../../src/ValueObjects/Vector3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,WAAW,UAAU;IACzB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,qBAAa,OAAO;IAClB;;;OAGG;WACW,IAAI;IAIlB;;;OAGG;WACW,GAAG;IAIjB;;;;OAIG;WACW,KAAK,CAAC,MAAM,SAAI;IAI9B;;;;OAIG;WACW,IAAI,CAAC,MAAM,SAAI;IAI7B;;;;OAIG;WACW,EAAE,CAAC,MAAM,SAAI;IAI3B;;;;OAIG;WACW,IAAI,CAAC,MAAM,SAAI;IAI7B;;;;OAIG;WACW,OAAO,CAAC,MAAM,SAAI;IAIhC;;;;OAIG;WACW,QAAQ,CAAC,MAAM,SAAI;IAIjC;;;;OAIG;WACW,SAAS,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO;IAIlE;;;;OAIG;WACW,OAAO,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO;IAI/C;;;;;OAKG;IACH,MAAM,CAAC,GAAG,GAAI,GAAG,OAAO,EAAE,GAAG,OAAO,KAAG,OAAO,CAE5C;IAEF;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,GAAI,GAAG,OAAO,EAAE,GAAG,OAAO,KAAG,OAAO,CAEjD;IAEF;;;;;OAKG;IACH,MAAM,CAAC,KAAK,GAAI,GAAG,OAAO,EAAE,GAAG,OAAO,KAAG,OAAO,CAG9C;IAEF;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,GAAI,GAAG,OAAO,EAAE,GAAG,OAAO,EAAE,kBAAgB,KAAG,OAAO,CAMhE;IAEF;;;;;OAKG;IACH,MAAM,CAAC,KAAK,GAAI,GAAG,OAAO,EAAE,GAAG,OAAO,KAAG,OAAO,CAK9C;IAEF;;;;;OAKG;IACH,MAAM,CAAC,GAAG,GAAI,GAAG,OAAO,EAAE,GAAG,OAAO,KAAG,MAAM,CAE3C;IAEF;;;;;OAKG;IACH,MAAM,CAAC,iBAAiB,GAAI,KAAK,OAAO,EAAE,QAAQ,MAAM,KAAG,OAAO,CAGhE;IAEF,MAAM,CAAC,SAAS,GAAI,QAAQ,OAAO,EAAE,QAAQ,MAAM,KAAG,OAAO,CAa3D;IAEF;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,GACT,SAAS,OAAO,EAChB,OAAO,OAAO,EACd,SAAS,MAAM,KACd,OAAO,CAMR;IAEF,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAIhC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,IAAI,SAAS,IAAI,MAAM,CAOtB;IAED;;;OAGG;IACH,IAAI,IAAI,IAAI,OAAO,CAUlB;IAED;;;OAGG;IACH,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAEpC;IAED;;OAEG;IACH,IAAI,GAAG,IAAI,UAAU,CAEpB;gBAEW,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;CAK5C"}
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
export class Vector3 {
|
|
2
|
+
/**
|
|
3
|
+
* Creates a zero vector
|
|
4
|
+
* @returns Vector [0,0,0]
|
|
5
|
+
*/
|
|
6
|
+
static Zero() {
|
|
7
|
+
return new Vector3(0, 0, 0);
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Creates a vector of ones
|
|
11
|
+
* @returns Vector [1,1,1]
|
|
12
|
+
*/
|
|
13
|
+
static One() {
|
|
14
|
+
return new Vector3(1, 1, 1);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Creates a Right vector (positive X)
|
|
18
|
+
* @param length optional length of the right unit. Default is 1
|
|
19
|
+
* @returns Vector [length, 0,0]
|
|
20
|
+
*/
|
|
21
|
+
static Right(length = 1) {
|
|
22
|
+
return new Vector3(length, 0, 0);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Creates a Left vector (negative X)
|
|
26
|
+
* @param length optional length of the left unit. Default is 1
|
|
27
|
+
* @returns Vector [-length, 0, 0]
|
|
28
|
+
*/
|
|
29
|
+
static Left(length = 1) {
|
|
30
|
+
return new Vector3(-length, 0, 0);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Creates an Up vector (positive Y)
|
|
34
|
+
* @param length optional length of the vector. Default is 1
|
|
35
|
+
* @returns Vector [0, length, 0]
|
|
36
|
+
*/
|
|
37
|
+
static Up(length = 1) {
|
|
38
|
+
return new Vector3(0, length, 0);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Creates a Down vector (negative Y)
|
|
42
|
+
* @param length optional length of the vector. Default is 1
|
|
43
|
+
* @returns Vector [0, -length, 0]
|
|
44
|
+
*/
|
|
45
|
+
static Down(length = 1) {
|
|
46
|
+
return new Vector3(0, -length, 0);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Creates a Forward vector (positive Z)
|
|
50
|
+
* @param length optional length of the vector. Default is 1
|
|
51
|
+
* @returns Vector [0, 0, length]
|
|
52
|
+
*/
|
|
53
|
+
static Forward(length = 1) {
|
|
54
|
+
return new Vector3(0, 0, length);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Creates a Backward vector (negative Z)
|
|
58
|
+
* @param length optional length of the vector. Default is 1
|
|
59
|
+
* @returns Vector [0, 0, -length]
|
|
60
|
+
*/
|
|
61
|
+
static Backward(length = 1) {
|
|
62
|
+
return new Vector3(0, 0, -length);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Creates a Vector from an array of components
|
|
66
|
+
* @param values The x, y, z components as an array
|
|
67
|
+
* @returns The Vector
|
|
68
|
+
*/
|
|
69
|
+
static FromArray(values) {
|
|
70
|
+
return new Vector3(values[0], values[1], values[2]);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Creates a Vector from a Data Transfer Object
|
|
74
|
+
* @param dto The Data Transfer Object
|
|
75
|
+
* @returns The Vector
|
|
76
|
+
*/
|
|
77
|
+
static FromDTO(dto) {
|
|
78
|
+
return new Vector3(dto.x, dto.y, dto.z);
|
|
79
|
+
}
|
|
80
|
+
static interpolateNumber(a, b, percent) {
|
|
81
|
+
return a + (b - a) * percent;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Gets the magnitude of the Vector3
|
|
85
|
+
* @returns the magnitude of the Vector3
|
|
86
|
+
*/
|
|
87
|
+
get magnitude() {
|
|
88
|
+
const xSqr = this.x * this.x;
|
|
89
|
+
const ySqr = this.y * this.y;
|
|
90
|
+
const zSqr = this.z * this.z;
|
|
91
|
+
const magnitude = Math.sqrt(xSqr + ySqr + zSqr);
|
|
92
|
+
return magnitude;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Gets the unit vector for this Vector3
|
|
96
|
+
* @returns the unit vector
|
|
97
|
+
*/
|
|
98
|
+
get unit() {
|
|
99
|
+
const mag = this.magnitude;
|
|
100
|
+
if (mag === 0) {
|
|
101
|
+
return Vector3.Zero();
|
|
102
|
+
}
|
|
103
|
+
const unitX = this.x / mag;
|
|
104
|
+
const unitY = this.y / mag;
|
|
105
|
+
const unitZ = this.z / mag;
|
|
106
|
+
return new Vector3(unitX, unitY, unitZ);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Gets the vector as an array
|
|
110
|
+
* @returns an array representing the vector
|
|
111
|
+
*/
|
|
112
|
+
get array() {
|
|
113
|
+
return [this.x, this.y, this.z];
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Get the vector as a Data Transfer Object
|
|
117
|
+
*/
|
|
118
|
+
get dto() {
|
|
119
|
+
return { x: this.x, y: this.y, z: this.z };
|
|
120
|
+
}
|
|
121
|
+
constructor(x, y, z) {
|
|
122
|
+
this.x = x;
|
|
123
|
+
this.y = y;
|
|
124
|
+
this.z = z;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Adds Vector B to Vector A
|
|
129
|
+
* @param a Vector A
|
|
130
|
+
* @param b Vector B
|
|
131
|
+
* @return Result of A + B
|
|
132
|
+
*/
|
|
133
|
+
Vector3.Add = (a, b) => {
|
|
134
|
+
return new Vector3(a.x + b.x, a.y + b.y, a.z + b.z);
|
|
135
|
+
};
|
|
136
|
+
/**
|
|
137
|
+
* Subtracts Vector B from Vector A
|
|
138
|
+
* @param a Vector A
|
|
139
|
+
* @param b Vector B
|
|
140
|
+
* @return Result of A - B
|
|
141
|
+
*/
|
|
142
|
+
Vector3.Subtract = (a, b) => {
|
|
143
|
+
return new Vector3(a.x - b.x, a.y - b.y, a.z - b.z);
|
|
144
|
+
};
|
|
145
|
+
/**
|
|
146
|
+
* Checks to see if the two vectors are equal
|
|
147
|
+
* @param a Vector A
|
|
148
|
+
* @param b Vector B
|
|
149
|
+
* @return True if the two vectors are equal, otherwise false
|
|
150
|
+
*/
|
|
151
|
+
Vector3.Equal = (a, b) => {
|
|
152
|
+
if (a.x === b.x && a.y === b.y && a.z === b.z)
|
|
153
|
+
return true;
|
|
154
|
+
else
|
|
155
|
+
return false;
|
|
156
|
+
};
|
|
157
|
+
/**
|
|
158
|
+
* Checks to see if the two vectors are close
|
|
159
|
+
* @param a Vector A
|
|
160
|
+
* @param b Vector B
|
|
161
|
+
* @param tolerance Tolerance for checking. Defaulted to 0.01
|
|
162
|
+
* @return True if the distance between the two vectors is less than the tolerance, otherwise false
|
|
163
|
+
*/
|
|
164
|
+
Vector3.Close = (a, b, tolerance = 0.01) => {
|
|
165
|
+
const diff = Vector3.Subtract(a, b);
|
|
166
|
+
const diffMag = diff.magnitude;
|
|
167
|
+
if (diffMag < tolerance)
|
|
168
|
+
return true;
|
|
169
|
+
else
|
|
170
|
+
return false;
|
|
171
|
+
};
|
|
172
|
+
/**
|
|
173
|
+
* Calculates the Cross Product between two vectors
|
|
174
|
+
* @param a Vector A
|
|
175
|
+
* @param b Vector B
|
|
176
|
+
* @return the cross product between the two vectors
|
|
177
|
+
*/
|
|
178
|
+
Vector3.Cross = (a, b) => {
|
|
179
|
+
const x = a.y * b.z - a.z * b.y;
|
|
180
|
+
const y = a.z * b.x - a.x * b.z;
|
|
181
|
+
const z = a.x * b.y - a.y * b.x;
|
|
182
|
+
return new Vector3(x, y, z);
|
|
183
|
+
};
|
|
184
|
+
/**
|
|
185
|
+
* Calculates the Dot Product between two vectors
|
|
186
|
+
* @param a Vector A
|
|
187
|
+
* @param b Vector B
|
|
188
|
+
* @return the dot product between the two vectors
|
|
189
|
+
*/
|
|
190
|
+
Vector3.Dot = (a, b) => {
|
|
191
|
+
return a.x * b.x + a.y * b.y + a.z * b.z;
|
|
192
|
+
};
|
|
193
|
+
/**
|
|
194
|
+
* Create a new vector that will have the same unit as the original vector but set to the desired length
|
|
195
|
+
* @param vec The original vector
|
|
196
|
+
* @param length Desired length of the final vector
|
|
197
|
+
* @return The resulting vector
|
|
198
|
+
*/
|
|
199
|
+
Vector3.NewVectorOfLength = (vec, length) => {
|
|
200
|
+
const unit = vec.unit;
|
|
201
|
+
return new Vector3(length * unit.x, length * unit.y, length * unit.z);
|
|
202
|
+
};
|
|
203
|
+
Vector3.Transform = (vector, matrix) => {
|
|
204
|
+
const m = matrix.m;
|
|
205
|
+
const rx = vector.x * m[0] + vector.y * m[4] + vector.z * m[8] + m[12];
|
|
206
|
+
const ry = vector.x * m[1] + vector.y * m[5] + vector.z * m[9] + m[13];
|
|
207
|
+
const rz = vector.x * m[2] + vector.y * m[6] + vector.z * m[10] + m[14];
|
|
208
|
+
const rw = 1 / (vector.x * m[3] + vector.y * m[7] + vector.z * m[11] + m[15]);
|
|
209
|
+
const x = rx * rw;
|
|
210
|
+
const y = ry * rw;
|
|
211
|
+
const z = rz * rw;
|
|
212
|
+
return new Vector3(x, y, z);
|
|
213
|
+
};
|
|
214
|
+
/**
|
|
215
|
+
* Linearly interpolates between two vectors
|
|
216
|
+
* @param initial The starting point
|
|
217
|
+
* @param final The end point
|
|
218
|
+
* @param percent Percent of the lerp. 0 will return initial and 1 will return final
|
|
219
|
+
* @return the LERP result Vector3
|
|
220
|
+
*/
|
|
221
|
+
Vector3.Lerp = (initial, final, percent) => {
|
|
222
|
+
const x = Vector3.interpolateNumber(initial.x, final.x, percent);
|
|
223
|
+
const y = Vector3.interpolateNumber(initial.y, final.y, percent);
|
|
224
|
+
const z = Vector3.interpolateNumber(initial.z, final.z, percent);
|
|
225
|
+
return new Vector3(x, y, z);
|
|
226
|
+
};
|
|
227
|
+
//# sourceMappingURL=Vector3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Vector3.js","sourceRoot":"","sources":["../../src/ValueObjects/Vector3.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,OAAO;IAClB;;;OAGG;IACI,MAAM,CAAC,IAAI;QAChB,OAAO,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,GAAG;QACf,OAAO,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;QAC5B,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;QAC3B,OAAO,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC;QACzB,OAAO,IAAI,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;QAC3B,OAAO,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;QAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QAC/B,OAAO,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,SAAS,CAAC,MAAgC;QACtD,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,OAAO,CAAC,GAAe;QACnC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;IAoHO,MAAM,CAAC,iBAAiB,CAAC,CAAS,EAAE,CAAS,EAAE,OAAe;QACpE,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;IAC/B,CAAC;IAMD;;;OAGG;IACH,IAAI,SAAS;QACX,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QAE7B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;QAChD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;OAGG;IACH,IAAI,IAAI;QACN,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3B,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;YACd,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;QACxB,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;QAC3B,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACH,IAAI,KAAK;QACP,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,IAAI,GAAG;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;IAC7C,CAAC;IAED,YAAY,CAAS,EAAE,CAAS,EAAE,CAAS;QACzC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;;AA1KD;;;;;GAKG;AACI,WAAG,GAAG,CAAC,CAAU,EAAE,CAAU,EAAW,EAAE;IAC/C,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC,CAAC;AAEF;;;;;GAKG;AACI,gBAAQ,GAAG,CAAC,CAAU,EAAE,CAAU,EAAW,EAAE;IACpD,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC,CAAC;AAEF;;;;;GAKG;AACI,aAAK,GAAG,CAAC,CAAU,EAAE,CAAU,EAAW,EAAE;IACjD,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;;QACtD,OAAO,KAAK,CAAC;AACpB,CAAC,CAAC;AAEF;;;;;;GAMG;AACI,aAAK,GAAG,CAAC,CAAU,EAAE,CAAU,EAAE,SAAS,GAAG,IAAI,EAAW,EAAE;IACnE,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;IAE/B,IAAI,OAAO,GAAG,SAAS;QAAE,OAAO,IAAI,CAAC;;QAChC,OAAO,KAAK,CAAC;AACpB,CAAC,CAAC;AAEF;;;;;GAKG;AACI,aAAK,GAAG,CAAC,CAAU,EAAE,CAAU,EAAW,EAAE;IACjD,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChC,OAAO,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEF;;;;;GAKG;AACI,WAAG,GAAG,CAAC,CAAU,EAAE,CAAU,EAAU,EAAE;IAC9C,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEF;;;;;GAKG;AACI,yBAAiB,GAAG,CAAC,GAAY,EAAE,MAAc,EAAW,EAAE;IACnE,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACtB,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACxE,CAAC,CAAC;AAEK,iBAAS,GAAG,CAAC,MAAe,EAAE,MAAc,EAAW,EAAE;IAC9D,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;IACnB,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACvE,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACvE,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACxE,MAAM,EAAE,GACN,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAErE,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;IAClB,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;IAClB,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;IAElB,OAAO,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEF;;;;;;GAMG;AACI,YAAI,GAAG,CACZ,OAAgB,EAChB,KAAc,EACd,OAAe,EACN,EAAE;IACX,MAAM,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACjE,MAAM,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACjE,MAAM,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAEjE,OAAO,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9B,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Vector3.test.d.ts","sourceRoot":"","sources":["../../src/ValueObjects/Vector3.test.ts"],"names":[],"mappings":""}
|