@vived/core 1.2.2 → 1.2.3
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/dist/cjs/AppObject/AppObject.js +59 -0
- package/dist/cjs/AppObject/AppObject.js.map +1 -0
- package/dist/cjs/AppObject/AppObject.test.js +113 -0
- package/dist/cjs/AppObject/AppObject.test.js.map +1 -0
- package/dist/cjs/AppObject/AppObjectComponent.js +82 -0
- package/dist/cjs/AppObject/AppObjectComponent.js.map +1 -0
- package/dist/cjs/AppObject/AppObjectComponent.test.js +132 -0
- package/dist/cjs/AppObject/AppObjectComponent.test.js.map +1 -0
- package/dist/cjs/AppObject/AppObjectController.js +12 -0
- package/dist/cjs/AppObject/AppObjectController.js.map +1 -0
- package/dist/cjs/AppObject/AppObjectEntity.js +38 -0
- package/dist/cjs/AppObject/AppObjectEntity.js.map +1 -0
- package/dist/cjs/AppObject/AppObjectEntity.test.js +108 -0
- package/dist/cjs/AppObject/AppObjectEntity.test.js.map +1 -0
- package/dist/cjs/AppObject/AppObjectEntityRepo.js +56 -0
- package/dist/cjs/AppObject/AppObjectEntityRepo.js.map +1 -0
- package/dist/cjs/AppObject/AppObjectEntityRepo.test.js +149 -0
- package/dist/cjs/AppObject/AppObjectEntityRepo.test.js.map +1 -0
- package/dist/cjs/AppObject/AppObjectPM.js +40 -0
- package/dist/cjs/AppObject/AppObjectPM.js.map +1 -0
- package/dist/cjs/AppObject/AppObjectPM.test.js +103 -0
- package/dist/cjs/AppObject/AppObjectPM.test.js.map +1 -0
- package/dist/cjs/AppObject/AppObjectRepo.js +133 -0
- package/dist/cjs/AppObject/AppObjectRepo.js.map +1 -0
- package/dist/cjs/AppObject/AppObjectRepo.test.js +213 -0
- package/dist/cjs/AppObject/AppObjectRepo.test.js.map +1 -0
- package/dist/cjs/AppObject/AppObjectUC.js +12 -0
- package/dist/cjs/AppObject/AppObjectUC.js.map +1 -0
- package/dist/cjs/AppObject/AppObjectView.js +12 -0
- package/dist/cjs/AppObject/AppObjectView.js.map +1 -0
- package/dist/cjs/AppObject/getSingletonComponent.js +7 -0
- package/dist/cjs/AppObject/getSingletonComponent.js.map +1 -0
- package/dist/cjs/AppObject/getSingletonComponent.test.js +13 -0
- package/dist/cjs/AppObject/getSingletonComponent.test.js.map +1 -0
- package/dist/cjs/AppObject/index.js +27 -0
- package/dist/cjs/AppObject/index.js.map +1 -0
- package/dist/cjs/AppObject/printAppObjectDetails.js +18 -0
- package/dist/cjs/AppObject/printAppObjectDetails.js.map +1 -0
- package/dist/cjs/Entities/MemoizedAngle.js +23 -0
- package/dist/cjs/Entities/MemoizedAngle.js.map +1 -0
- package/dist/cjs/Entities/MemoizedAngle.test.js +30 -0
- package/dist/cjs/Entities/MemoizedAngle.test.js.map +1 -0
- package/dist/cjs/Entities/MemoizedBoolean.js +23 -0
- package/dist/cjs/Entities/MemoizedBoolean.js.map +1 -0
- package/dist/cjs/Entities/MemoizedBoolean.test.js +34 -0
- package/dist/cjs/Entities/MemoizedBoolean.test.js.map +1 -0
- package/dist/cjs/Entities/MemoizedColor.js +24 -0
- package/dist/cjs/Entities/MemoizedColor.js.map +1 -0
- package/dist/cjs/Entities/MemoizedColor.test.js +32 -0
- package/dist/cjs/Entities/MemoizedColor.test.js.map +1 -0
- package/dist/cjs/Entities/MemoizedNumber.js +23 -0
- package/dist/cjs/Entities/MemoizedNumber.js.map +1 -0
- package/dist/cjs/Entities/MemoizedNumber.test.js +29 -0
- package/dist/cjs/Entities/MemoizedNumber.test.js.map +1 -0
- package/dist/cjs/Entities/MemoizedQuaternion.js +24 -0
- package/dist/cjs/Entities/MemoizedQuaternion.js.map +1 -0
- package/dist/cjs/Entities/MemoizedQuaternion.test.js +32 -0
- package/dist/cjs/Entities/MemoizedQuaternion.test.js.map +1 -0
- package/dist/cjs/Entities/MemoizedString.js +23 -0
- package/dist/cjs/Entities/MemoizedString.js.map +1 -0
- package/dist/cjs/Entities/MemoizedString.test.js +29 -0
- package/dist/cjs/Entities/MemoizedString.test.js.map +1 -0
- package/dist/cjs/Entities/MemoizedVector2.js +24 -0
- package/dist/cjs/Entities/MemoizedVector2.js.map +1 -0
- package/dist/cjs/Entities/MemoizedVector2.test.js +32 -0
- package/dist/cjs/Entities/MemoizedVector2.test.js.map +1 -0
- package/dist/cjs/Entities/MemoizedVector3.js +24 -0
- package/dist/cjs/Entities/MemoizedVector3.js.map +1 -0
- package/dist/cjs/Entities/MemoizedVector3.test.js +32 -0
- package/dist/cjs/Entities/MemoizedVector3.test.js.map +1 -0
- package/dist/cjs/Entities/ObservableEntity.js +20 -0
- package/dist/cjs/Entities/ObservableEntity.js.map +1 -0
- package/dist/cjs/Entities/ObservableEntity.test.js +25 -0
- package/dist/cjs/Entities/ObservableEntity.test.js.map +1 -0
- package/dist/cjs/Entities/ObserverList.js +27 -0
- package/dist/cjs/Entities/ObserverList.js.map +1 -0
- package/dist/cjs/Entities/ObserverList.test.js +44 -0
- package/dist/cjs/Entities/ObserverList.test.js.map +1 -0
- package/dist/cjs/Entities/RangedNumber.js +36 -0
- package/dist/cjs/Entities/RangedNumber.js.map +1 -0
- package/dist/cjs/Entities/RangedNumber.test.js +96 -0
- package/dist/cjs/Entities/RangedNumber.test.js.map +1 -0
- package/dist/cjs/Entities/index.js +28 -0
- package/dist/cjs/Entities/index.js.map +1 -0
- package/dist/cjs/Types/AppBoundary.js +3 -0
- package/dist/cjs/Types/AppBoundary.js.map +1 -0
- package/dist/cjs/Types/EaseFn.js +3 -0
- package/dist/cjs/Types/EaseFn.js.map +1 -0
- package/dist/cjs/Types/PmAdapter.js +3 -0
- package/dist/cjs/Types/PmAdapter.js.map +1 -0
- package/dist/cjs/Types/SingletonPmAdapter.js +3 -0
- package/dist/cjs/Types/SingletonPmAdapter.js.map +1 -0
- package/dist/cjs/Types/index.js +21 -0
- package/dist/cjs/Types/index.js.map +1 -0
- package/dist/cjs/Utilities/LengthConverters.js +21 -0
- package/dist/cjs/Utilities/LengthConverters.js.map +1 -0
- package/dist/cjs/Utilities/LengthConverters.test.js +24 -0
- package/dist/cjs/Utilities/LengthConverters.test.js.map +1 -0
- package/dist/cjs/Utilities/LerpNumber.js +85 -0
- package/dist/cjs/Utilities/LerpNumber.js.map +1 -0
- package/dist/cjs/Utilities/LerpNumber.test.js +90 -0
- package/dist/cjs/Utilities/LerpNumber.test.js.map +1 -0
- package/dist/cjs/Utilities/degreesToRadians.js +7 -0
- package/dist/cjs/Utilities/degreesToRadians.js.map +1 -0
- package/dist/cjs/Utilities/degreesToRadians.test.js +9 -0
- package/dist/cjs/Utilities/degreesToRadians.test.js.map +1 -0
- package/dist/cjs/Utilities/easeFunctions.js +208 -0
- package/dist/cjs/Utilities/easeFunctions.js.map +1 -0
- package/dist/cjs/Utilities/easeFunctions.test.js +209 -0
- package/dist/cjs/Utilities/easeFunctions.test.js.map +1 -0
- package/dist/cjs/Utilities/generateUniqueID.js +8 -0
- package/dist/cjs/Utilities/generateUniqueID.js.map +1 -0
- package/dist/cjs/Utilities/index.js +22 -0
- package/dist/cjs/Utilities/index.js.map +1 -0
- package/dist/cjs/Utilities/interpolateNumber.js +18 -0
- package/dist/cjs/Utilities/interpolateNumber.js.map +1 -0
- package/dist/cjs/Utilities/interpolateNumber.test.js +26 -0
- package/dist/cjs/Utilities/interpolateNumber.test.js.map +1 -0
- package/dist/cjs/ValueObjects/Angle.js +47 -0
- package/dist/cjs/ValueObjects/Angle.js.map +1 -0
- package/dist/cjs/ValueObjects/Angle.test.js +28 -0
- package/dist/cjs/ValueObjects/Angle.test.js.map +1 -0
- package/dist/cjs/ValueObjects/Color.js +859 -0
- package/dist/cjs/ValueObjects/Color.js.map +1 -0
- package/dist/cjs/ValueObjects/Color.test.js +147 -0
- package/dist/cjs/ValueObjects/Color.test.js.map +1 -0
- package/dist/cjs/ValueObjects/LineSegment2D.js +72 -0
- package/dist/cjs/ValueObjects/LineSegment2D.js.map +1 -0
- package/dist/cjs/ValueObjects/LineSegment2D.test.js +102 -0
- package/dist/cjs/ValueObjects/LineSegment2D.test.js.map +1 -0
- package/dist/cjs/ValueObjects/Matrix.js +466 -0
- package/dist/cjs/ValueObjects/Matrix.js.map +1 -0
- package/dist/cjs/ValueObjects/Matrix.test.js +385 -0
- package/dist/cjs/ValueObjects/Matrix.test.js.map +1 -0
- package/dist/cjs/ValueObjects/ParametricLine.js +77 -0
- package/dist/cjs/ValueObjects/ParametricLine.js.map +1 -0
- package/dist/cjs/ValueObjects/ParametricLine.test.js +126 -0
- package/dist/cjs/ValueObjects/ParametricLine.test.js.map +1 -0
- package/dist/cjs/ValueObjects/ParametricPlane.js +65 -0
- package/dist/cjs/ValueObjects/ParametricPlane.js.map +1 -0
- package/dist/cjs/ValueObjects/ParametricPlane.test.js +101 -0
- package/dist/cjs/ValueObjects/ParametricPlane.test.js.map +1 -0
- package/dist/cjs/ValueObjects/Quaternion.js +290 -0
- package/dist/cjs/ValueObjects/Quaternion.js.map +1 -0
- package/dist/cjs/ValueObjects/Quaternion.test.js +240 -0
- package/dist/cjs/ValueObjects/Quaternion.test.js.map +1 -0
- package/dist/cjs/ValueObjects/Rectangle.js +24 -0
- package/dist/cjs/ValueObjects/Rectangle.js.map +1 -0
- package/dist/cjs/ValueObjects/Rectangle.test.js +32 -0
- package/dist/cjs/ValueObjects/Rectangle.test.js.map +1 -0
- package/dist/cjs/ValueObjects/Vector2.js +184 -0
- package/dist/cjs/ValueObjects/Vector2.js.map +1 -0
- package/dist/cjs/ValueObjects/Vector2.test.js +136 -0
- package/dist/cjs/ValueObjects/Vector2.test.js.map +1 -0
- package/dist/cjs/ValueObjects/Vector3.js +231 -0
- package/dist/cjs/ValueObjects/Vector3.js.map +1 -0
- package/dist/cjs/ValueObjects/Vector3.test.js +188 -0
- package/dist/cjs/ValueObjects/Vector3.test.js.map +1 -0
- package/dist/cjs/ValueObjects/index.js +27 -0
- package/dist/cjs/ValueObjects/index.js.map +1 -0
- package/dist/cjs/index.js +22 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/esm/AppObject/AppObject.js +54 -0
- package/dist/esm/AppObject/AppObject.js.map +1 -0
- package/dist/esm/AppObject/AppObject.test.js +110 -0
- package/dist/esm/AppObject/AppObject.test.js.map +1 -0
- package/dist/esm/AppObject/AppObjectComponent.js +78 -0
- package/dist/esm/AppObject/AppObjectComponent.js.map +1 -0
- package/dist/esm/AppObject/AppObjectComponent.test.js +130 -0
- package/dist/esm/AppObject/AppObjectComponent.test.js.map +1 -0
- package/dist/esm/AppObject/AppObjectController.js +8 -0
- package/dist/esm/AppObject/AppObjectController.js.map +1 -0
- package/dist/esm/AppObject/AppObjectEntity.js +34 -0
- package/dist/esm/AppObject/AppObjectEntity.js.map +1 -0
- package/dist/esm/AppObject/AppObjectEntity.test.js +106 -0
- package/dist/esm/AppObject/AppObjectEntity.test.js.map +1 -0
- package/dist/esm/AppObject/AppObjectEntityRepo.js +52 -0
- package/dist/esm/AppObject/AppObjectEntityRepo.js.map +1 -0
- package/dist/esm/AppObject/AppObjectEntityRepo.test.js +147 -0
- package/dist/esm/AppObject/AppObjectEntityRepo.test.js.map +1 -0
- package/dist/esm/AppObject/AppObjectPM.js +36 -0
- package/dist/esm/AppObject/AppObjectPM.js.map +1 -0
- package/dist/esm/AppObject/AppObjectPM.test.js +101 -0
- package/dist/esm/AppObject/AppObjectPM.test.js.map +1 -0
- package/dist/esm/AppObject/AppObjectRepo.js +128 -0
- package/dist/esm/AppObject/AppObjectRepo.js.map +1 -0
- package/dist/esm/AppObject/AppObjectRepo.test.js +211 -0
- package/dist/esm/AppObject/AppObjectRepo.test.js.map +1 -0
- package/dist/esm/AppObject/AppObjectUC.js +8 -0
- package/dist/esm/AppObject/AppObjectUC.js.map +1 -0
- package/dist/esm/AppObject/AppObjectView.js +8 -0
- package/dist/esm/AppObject/AppObjectView.js.map +1 -0
- package/dist/esm/AppObject/getSingletonComponent.js +4 -0
- package/dist/esm/AppObject/getSingletonComponent.js.map +1 -0
- package/dist/esm/AppObject/getSingletonComponent.test.js +11 -0
- package/dist/esm/AppObject/getSingletonComponent.test.js.map +1 -0
- package/dist/esm/AppObject/index.js +11 -0
- package/dist/esm/AppObject/index.js.map +1 -0
- package/dist/esm/AppObject/printAppObjectDetails.js +15 -0
- package/dist/esm/AppObject/printAppObjectDetails.js.map +1 -0
- package/dist/esm/Entities/MemoizedAngle.js +19 -0
- package/dist/esm/Entities/MemoizedAngle.js.map +1 -0
- package/dist/esm/Entities/MemoizedAngle.test.js +28 -0
- package/dist/esm/Entities/MemoizedAngle.test.js.map +1 -0
- package/dist/esm/Entities/MemoizedBoolean.js +19 -0
- package/dist/esm/Entities/MemoizedBoolean.js.map +1 -0
- package/dist/esm/Entities/MemoizedBoolean.test.js +32 -0
- package/dist/esm/Entities/MemoizedBoolean.test.js.map +1 -0
- package/dist/esm/Entities/MemoizedColor.js +20 -0
- package/dist/esm/Entities/MemoizedColor.js.map +1 -0
- package/dist/esm/Entities/MemoizedColor.test.js +30 -0
- package/dist/esm/Entities/MemoizedColor.test.js.map +1 -0
- package/dist/esm/Entities/MemoizedNumber.js +19 -0
- package/dist/esm/Entities/MemoizedNumber.js.map +1 -0
- package/dist/esm/Entities/MemoizedNumber.test.js +27 -0
- package/dist/esm/Entities/MemoizedNumber.test.js.map +1 -0
- package/dist/esm/Entities/MemoizedQuaternion.js +20 -0
- package/dist/esm/Entities/MemoizedQuaternion.js.map +1 -0
- package/dist/esm/Entities/MemoizedQuaternion.test.js +30 -0
- package/dist/esm/Entities/MemoizedQuaternion.test.js.map +1 -0
- package/dist/esm/Entities/MemoizedString.js +19 -0
- package/dist/esm/Entities/MemoizedString.js.map +1 -0
- package/dist/esm/Entities/MemoizedString.test.js +27 -0
- package/dist/esm/Entities/MemoizedString.test.js.map +1 -0
- package/dist/esm/Entities/MemoizedVector2.js +20 -0
- package/dist/esm/Entities/MemoizedVector2.js.map +1 -0
- package/dist/esm/Entities/MemoizedVector2.test.js +30 -0
- package/dist/esm/Entities/MemoizedVector2.test.js.map +1 -0
- package/dist/esm/Entities/MemoizedVector3.js +20 -0
- package/dist/esm/Entities/MemoizedVector3.js.map +1 -0
- package/dist/esm/Entities/MemoizedVector3.test.js +30 -0
- package/dist/esm/Entities/MemoizedVector3.test.js.map +1 -0
- package/dist/esm/Entities/ObservableEntity.js +16 -0
- package/dist/esm/Entities/ObservableEntity.js.map +1 -0
- package/dist/esm/Entities/ObservableEntity.test.js +23 -0
- package/dist/esm/Entities/ObservableEntity.test.js.map +1 -0
- package/dist/esm/Entities/ObserverList.js +23 -0
- package/dist/esm/Entities/ObserverList.js.map +1 -0
- package/dist/esm/Entities/ObserverList.test.js +42 -0
- package/dist/esm/Entities/ObserverList.test.js.map +1 -0
- package/dist/esm/Entities/RangedNumber.js +32 -0
- package/dist/esm/Entities/RangedNumber.js.map +1 -0
- package/dist/esm/Entities/RangedNumber.test.js +94 -0
- package/dist/esm/Entities/RangedNumber.test.js.map +1 -0
- package/{src/Entities/index.ts → dist/esm/Entities/index.js} +12 -11
- package/dist/esm/Entities/index.js.map +1 -0
- package/dist/esm/Types/AppBoundary.js +2 -0
- package/dist/esm/Types/AppBoundary.js.map +1 -0
- package/dist/esm/Types/EaseFn.js +2 -0
- package/dist/esm/Types/EaseFn.js.map +1 -0
- package/dist/esm/Types/PmAdapter.js +2 -0
- package/dist/esm/Types/PmAdapter.js.map +1 -0
- package/dist/esm/Types/SingletonPmAdapter.js +2 -0
- package/dist/esm/Types/SingletonPmAdapter.js.map +1 -0
- package/{src/Types/index.ts → dist/esm/Types/index.js} +5 -4
- package/dist/esm/Types/index.js.map +1 -0
- package/dist/esm/Utilities/LengthConverters.js +15 -0
- package/dist/esm/Utilities/LengthConverters.js.map +1 -0
- package/dist/esm/Utilities/LengthConverters.test.js +22 -0
- package/dist/esm/Utilities/LengthConverters.test.js.map +1 -0
- package/dist/esm/Utilities/LerpNumber.js +81 -0
- package/dist/esm/Utilities/LerpNumber.js.map +1 -0
- package/dist/esm/Utilities/LerpNumber.test.js +88 -0
- package/dist/esm/Utilities/LerpNumber.test.js.map +1 -0
- package/dist/esm/Utilities/degreesToRadians.js +4 -0
- package/dist/esm/Utilities/degreesToRadians.js.map +1 -0
- package/dist/esm/Utilities/degreesToRadians.test.js +7 -0
- package/dist/esm/Utilities/degreesToRadians.test.js.map +1 -0
- package/dist/esm/Utilities/easeFunctions.js +183 -0
- package/dist/esm/Utilities/easeFunctions.js.map +1 -0
- package/dist/esm/Utilities/easeFunctions.test.js +207 -0
- package/dist/esm/Utilities/easeFunctions.test.js.map +1 -0
- package/dist/esm/Utilities/generateUniqueID.js +5 -0
- package/dist/esm/Utilities/generateUniqueID.js.map +1 -0
- package/{src/Utilities/index.ts → dist/esm/Utilities/index.js} +6 -6
- package/dist/esm/Utilities/index.js.map +1 -0
- package/dist/esm/Utilities/interpolateNumber.js +15 -0
- package/dist/esm/Utilities/interpolateNumber.js.map +1 -0
- package/dist/esm/Utilities/interpolateNumber.test.js +24 -0
- package/dist/esm/Utilities/interpolateNumber.test.js.map +1 -0
- package/dist/esm/ValueObjects/Angle.js +43 -0
- package/dist/esm/ValueObjects/Angle.js.map +1 -0
- package/dist/esm/ValueObjects/Angle.test.js +26 -0
- package/dist/esm/ValueObjects/Angle.test.js.map +1 -0
- package/dist/esm/ValueObjects/Color.js +855 -0
- package/dist/esm/ValueObjects/Color.js.map +1 -0
- package/dist/esm/ValueObjects/Color.test.js +145 -0
- package/dist/esm/ValueObjects/Color.test.js.map +1 -0
- package/dist/esm/ValueObjects/LineSegment2D.js +68 -0
- package/dist/esm/ValueObjects/LineSegment2D.js.map +1 -0
- package/dist/esm/ValueObjects/LineSegment2D.test.js +100 -0
- package/dist/esm/ValueObjects/LineSegment2D.test.js.map +1 -0
- package/dist/esm/ValueObjects/Matrix.js +462 -0
- package/dist/esm/ValueObjects/Matrix.js.map +1 -0
- package/dist/esm/ValueObjects/Matrix.test.js +383 -0
- package/dist/esm/ValueObjects/Matrix.test.js.map +1 -0
- package/dist/esm/ValueObjects/ParametricLine.js +73 -0
- package/dist/esm/ValueObjects/ParametricLine.js.map +1 -0
- package/dist/esm/ValueObjects/ParametricLine.test.js +124 -0
- package/dist/esm/ValueObjects/ParametricLine.test.js.map +1 -0
- package/dist/esm/ValueObjects/ParametricPlane.js +61 -0
- package/dist/esm/ValueObjects/ParametricPlane.js.map +1 -0
- package/dist/esm/ValueObjects/ParametricPlane.test.js +99 -0
- package/dist/esm/ValueObjects/ParametricPlane.test.js.map +1 -0
- package/dist/esm/ValueObjects/Quaternion.js +286 -0
- package/dist/esm/ValueObjects/Quaternion.js.map +1 -0
- package/dist/esm/ValueObjects/Quaternion.test.js +238 -0
- package/dist/esm/ValueObjects/Quaternion.test.js.map +1 -0
- package/dist/esm/ValueObjects/Rectangle.js +20 -0
- package/dist/esm/ValueObjects/Rectangle.js.map +1 -0
- package/dist/esm/ValueObjects/Rectangle.test.js +30 -0
- package/dist/esm/ValueObjects/Rectangle.test.js.map +1 -0
- package/dist/esm/ValueObjects/Vector2.js +180 -0
- package/dist/esm/ValueObjects/Vector2.js.map +1 -0
- package/dist/esm/ValueObjects/Vector2.test.js +134 -0
- package/dist/esm/ValueObjects/Vector2.test.js.map +1 -0
- package/dist/esm/ValueObjects/Vector3.js +227 -0
- package/dist/esm/ValueObjects/Vector3.js.map +1 -0
- package/dist/esm/ValueObjects/Vector3.test.js +186 -0
- package/dist/esm/ValueObjects/Vector3.test.js.map +1 -0
- package/{src/ValueObjects/index.ts → dist/esm/ValueObjects/index.js} +11 -14
- package/dist/esm/ValueObjects/index.js.map +1 -0
- package/{src/index.ts → dist/esm/index.js} +6 -5
- package/dist/esm/index.js.map +1 -0
- package/dist/types/AppObject/AppObject.d.ts +15 -0
- package/dist/types/AppObject/AppObject.d.ts.map +1 -0
- package/dist/types/AppObject/AppObject.test.d.ts +7 -0
- package/dist/types/AppObject/AppObject.test.d.ts.map +1 -0
- package/dist/types/AppObject/AppObjectComponent.d.ts +26 -0
- package/dist/types/AppObject/AppObjectComponent.d.ts.map +1 -0
- package/dist/types/AppObject/AppObjectComponent.test.d.ts +2 -0
- package/dist/types/AppObject/AppObjectComponent.test.d.ts.map +1 -0
- package/dist/types/AppObject/AppObjectController.d.ts +5 -0
- package/dist/types/AppObject/AppObjectController.d.ts.map +1 -0
- package/dist/types/AppObject/AppObjectEntity.d.ts +16 -0
- package/dist/types/AppObject/AppObjectEntity.d.ts.map +1 -0
- package/dist/types/AppObject/AppObjectEntity.test.d.ts +2 -0
- package/dist/types/AppObject/AppObjectEntity.test.d.ts.map +1 -0
- package/dist/types/AppObject/AppObjectEntityRepo.d.ts +16 -0
- package/dist/types/AppObject/AppObjectEntityRepo.d.ts.map +1 -0
- package/dist/types/AppObject/AppObjectEntityRepo.test.d.ts +2 -0
- package/dist/types/AppObject/AppObjectEntityRepo.test.d.ts.map +1 -0
- package/dist/types/AppObject/AppObjectPM.d.ts +13 -0
- package/dist/types/AppObject/AppObjectPM.d.ts.map +1 -0
- package/dist/types/AppObject/AppObjectPM.test.d.ts +2 -0
- package/dist/types/AppObject/AppObjectPM.test.d.ts.map +1 -0
- package/dist/types/AppObject/AppObjectRepo.d.ts +26 -0
- package/dist/types/AppObject/AppObjectRepo.d.ts.map +1 -0
- package/dist/types/AppObject/AppObjectRepo.test.d.ts +2 -0
- package/dist/types/AppObject/AppObjectRepo.test.d.ts.map +1 -0
- package/dist/types/AppObject/AppObjectUC.d.ts +5 -0
- package/dist/types/AppObject/AppObjectUC.d.ts.map +1 -0
- package/dist/types/AppObject/AppObjectView.d.ts +5 -0
- package/dist/types/AppObject/AppObjectView.d.ts.map +1 -0
- package/dist/types/AppObject/getSingletonComponent.d.ts +4 -0
- package/dist/types/AppObject/getSingletonComponent.d.ts.map +1 -0
- package/dist/types/AppObject/getSingletonComponent.test.d.ts +2 -0
- package/dist/types/AppObject/getSingletonComponent.test.d.ts.map +1 -0
- package/dist/types/AppObject/index.d.ts +11 -0
- package/dist/types/AppObject/index.d.ts.map +1 -0
- package/dist/types/AppObject/printAppObjectDetails.d.ts +3 -0
- package/dist/types/AppObject/printAppObjectDetails.d.ts.map +1 -0
- package/dist/types/Entities/MemoizedAngle.d.ts +10 -0
- package/dist/types/Entities/MemoizedAngle.d.ts.map +1 -0
- package/dist/types/Entities/MemoizedAngle.test.d.ts +2 -0
- package/dist/types/Entities/MemoizedAngle.test.d.ts.map +1 -0
- package/dist/types/Entities/MemoizedBoolean.d.ts +9 -0
- package/dist/types/Entities/MemoizedBoolean.d.ts.map +1 -0
- package/dist/types/Entities/MemoizedBoolean.test.d.ts +2 -0
- package/dist/types/Entities/MemoizedBoolean.test.d.ts.map +1 -0
- package/dist/types/Entities/MemoizedColor.d.ts +10 -0
- package/dist/types/Entities/MemoizedColor.d.ts.map +1 -0
- package/dist/types/Entities/MemoizedColor.test.d.ts +2 -0
- package/dist/types/Entities/MemoizedColor.test.d.ts.map +1 -0
- package/dist/types/Entities/MemoizedNumber.d.ts +9 -0
- package/dist/types/Entities/MemoizedNumber.d.ts.map +1 -0
- package/dist/types/Entities/MemoizedNumber.test.d.ts +2 -0
- package/dist/types/Entities/MemoizedNumber.test.d.ts.map +1 -0
- package/dist/types/Entities/MemoizedQuaternion.d.ts +10 -0
- package/dist/types/Entities/MemoizedQuaternion.d.ts.map +1 -0
- package/dist/types/Entities/MemoizedQuaternion.test.d.ts +2 -0
- package/dist/types/Entities/MemoizedQuaternion.test.d.ts.map +1 -0
- package/dist/types/Entities/MemoizedString.d.ts +9 -0
- package/dist/types/Entities/MemoizedString.d.ts.map +1 -0
- package/dist/types/Entities/MemoizedString.test.d.ts +2 -0
- package/dist/types/Entities/MemoizedString.test.d.ts.map +1 -0
- package/dist/types/Entities/MemoizedVector2.d.ts +10 -0
- package/dist/types/Entities/MemoizedVector2.d.ts.map +1 -0
- package/dist/types/Entities/MemoizedVector2.test.d.ts +2 -0
- package/dist/types/Entities/MemoizedVector2.test.d.ts.map +1 -0
- package/dist/types/Entities/MemoizedVector3.d.ts +10 -0
- package/dist/types/Entities/MemoizedVector3.d.ts.map +1 -0
- package/dist/types/Entities/MemoizedVector3.test.d.ts +2 -0
- package/dist/types/Entities/MemoizedVector3.test.d.ts.map +1 -0
- package/dist/types/Entities/ObservableEntity.d.ts +8 -0
- package/dist/types/Entities/ObservableEntity.d.ts.map +1 -0
- package/dist/types/Entities/ObservableEntity.test.d.ts +2 -0
- package/dist/types/Entities/ObservableEntity.test.d.ts.map +1 -0
- package/dist/types/Entities/ObserverList.d.ts +8 -0
- package/dist/types/Entities/ObserverList.d.ts.map +1 -0
- package/dist/types/Entities/ObserverList.test.d.ts +2 -0
- package/dist/types/Entities/ObserverList.test.d.ts.map +1 -0
- package/dist/types/Entities/RangedNumber.d.ts +17 -0
- package/dist/types/Entities/RangedNumber.d.ts.map +1 -0
- package/dist/types/Entities/RangedNumber.test.d.ts +2 -0
- package/dist/types/Entities/RangedNumber.test.d.ts.map +1 -0
- package/dist/types/Entities/index.d.ts +12 -0
- package/dist/types/Entities/index.d.ts.map +1 -0
- package/dist/types/Types/AppBoundary.d.ts +11 -0
- package/dist/types/Types/AppBoundary.d.ts.map +1 -0
- package/dist/types/Types/EaseFn.d.ts +2 -0
- package/dist/types/Types/EaseFn.d.ts.map +1 -0
- package/dist/types/Types/PmAdapter.d.ts +7 -0
- package/dist/types/Types/PmAdapter.d.ts.map +1 -0
- package/dist/types/Types/SingletonPmAdapter.d.ts +7 -0
- package/dist/types/Types/SingletonPmAdapter.d.ts.map +1 -0
- package/dist/types/Types/index.d.ts +5 -0
- package/dist/types/Types/index.d.ts.map +1 -0
- package/dist/types/Utilities/LengthConverters.d.ts +5 -0
- package/dist/types/Utilities/LengthConverters.d.ts.map +1 -0
- package/dist/types/Utilities/LengthConverters.test.d.ts +2 -0
- package/dist/types/Utilities/LengthConverters.test.d.ts.map +1 -0
- package/dist/types/Utilities/LerpNumber.d.ts +57 -0
- package/dist/types/Utilities/LerpNumber.d.ts.map +1 -0
- package/dist/types/Utilities/LerpNumber.test.d.ts +2 -0
- package/dist/types/Utilities/LerpNumber.test.d.ts.map +1 -0
- package/dist/types/Utilities/degreesToRadians.d.ts +2 -0
- package/dist/types/Utilities/degreesToRadians.d.ts.map +1 -0
- package/dist/types/Utilities/degreesToRadians.test.d.ts +2 -0
- package/dist/types/Utilities/degreesToRadians.test.d.ts.map +1 -0
- package/dist/types/Utilities/easeFunctions.d.ts +24 -0
- package/dist/types/Utilities/easeFunctions.d.ts.map +1 -0
- package/dist/types/Utilities/easeFunctions.test.d.ts +2 -0
- package/dist/types/Utilities/easeFunctions.test.d.ts.map +1 -0
- package/dist/types/Utilities/generateUniqueID.d.ts +2 -0
- package/dist/types/Utilities/generateUniqueID.d.ts.map +1 -0
- package/dist/types/Utilities/index.d.ts +6 -0
- package/dist/types/Utilities/index.d.ts.map +1 -0
- package/dist/types/Utilities/interpolateNumber.d.ts +2 -0
- package/dist/types/Utilities/interpolateNumber.d.ts.map +1 -0
- package/dist/types/Utilities/interpolateNumber.test.d.ts +2 -0
- package/dist/types/Utilities/interpolateNumber.test.d.ts.map +1 -0
- package/dist/types/ValueObjects/Angle.d.ts +27 -0
- package/dist/types/ValueObjects/Angle.d.ts.map +1 -0
- package/dist/types/ValueObjects/Angle.test.d.ts +2 -0
- package/dist/types/ValueObjects/Angle.test.d.ts.map +1 -0
- package/dist/types/ValueObjects/Color.d.ts +83 -0
- package/dist/types/ValueObjects/Color.d.ts.map +1 -0
- package/dist/types/ValueObjects/Color.test.d.ts +2 -0
- package/dist/types/ValueObjects/Color.test.d.ts.map +1 -0
- package/dist/types/ValueObjects/LineSegment2D.d.ts +12 -0
- package/dist/types/ValueObjects/LineSegment2D.d.ts.map +1 -0
- package/dist/types/ValueObjects/LineSegment2D.test.d.ts +2 -0
- package/dist/types/ValueObjects/LineSegment2D.test.d.ts.map +1 -0
- package/dist/types/ValueObjects/Matrix.d.ts +124 -0
- package/dist/types/ValueObjects/Matrix.d.ts.map +1 -0
- package/dist/types/ValueObjects/Matrix.test.d.ts +2 -0
- package/dist/types/ValueObjects/Matrix.test.d.ts.map +1 -0
- package/dist/types/ValueObjects/ParametricLine.d.ts +31 -0
- package/dist/types/ValueObjects/ParametricLine.d.ts.map +1 -0
- package/dist/types/ValueObjects/ParametricLine.test.d.ts +2 -0
- package/dist/types/ValueObjects/ParametricLine.test.d.ts.map +1 -0
- package/dist/types/ValueObjects/ParametricPlane.d.ts +21 -0
- package/dist/types/ValueObjects/ParametricPlane.d.ts.map +1 -0
- package/dist/types/ValueObjects/ParametricPlane.test.d.ts +2 -0
- package/dist/types/ValueObjects/ParametricPlane.test.d.ts.map +1 -0
- package/dist/types/ValueObjects/Quaternion.d.ts +113 -0
- package/dist/types/ValueObjects/Quaternion.d.ts.map +1 -0
- package/dist/types/ValueObjects/Quaternion.test.d.ts +2 -0
- package/dist/types/ValueObjects/Quaternion.test.d.ts.map +1 -0
- package/dist/types/ValueObjects/Rectangle.d.ts +16 -0
- package/dist/types/ValueObjects/Rectangle.d.ts.map +1 -0
- package/dist/types/ValueObjects/Rectangle.test.d.ts +2 -0
- package/dist/types/ValueObjects/Rectangle.test.d.ts.map +1 -0
- package/dist/types/ValueObjects/Vector2.d.ts +121 -0
- package/dist/types/ValueObjects/Vector2.d.ts.map +1 -0
- package/dist/types/ValueObjects/Vector2.test.d.ts +2 -0
- package/dist/types/ValueObjects/Vector2.test.d.ts.map +1 -0
- package/dist/types/ValueObjects/Vector3.d.ts +150 -0
- package/dist/types/ValueObjects/Vector3.d.ts.map +1 -0
- package/dist/types/ValueObjects/Vector3.test.d.ts +2 -0
- package/dist/types/ValueObjects/Vector3.test.d.ts.map +1 -0
- package/dist/types/ValueObjects/index.d.ts +11 -0
- package/dist/types/ValueObjects/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.d.ts.map +1 -0
- package/package.json +5 -2
- package/babel.config.js +0 -12
- package/jestconfig.json +0 -10
- package/src/AppObject/AppObject.test.ts +0 -158
- package/src/AppObject/AppObject.ts +0 -83
- package/src/AppObject/AppObjectComponent.test.ts +0 -219
- package/src/AppObject/AppObjectComponent.ts +0 -100
- package/src/AppObject/AppObjectController.ts +0 -8
- package/src/AppObject/AppObjectEntity.test.ts +0 -151
- package/src/AppObject/AppObjectEntity.ts +0 -45
- package/src/AppObject/AppObjectEntityRepo.test.ts +0 -211
- package/src/AppObject/AppObjectEntityRepo.ts +0 -61
- package/src/AppObject/AppObjectPM.test.ts +0 -152
- package/src/AppObject/AppObjectPM.ts +0 -43
- package/src/AppObject/AppObjectRepo.test.ts +0 -317
- package/src/AppObject/AppObjectRepo.ts +0 -203
- package/src/AppObject/AppObjectUC.ts +0 -5
- package/src/AppObject/AppObjectView.ts +0 -5
- package/src/AppObject/getSingletonComponent.test.ts +0 -17
- package/src/AppObject/getSingletonComponent.ts +0 -9
- package/src/AppObject/index.ts +0 -10
- package/src/AppObject/printAppObjectDetails.ts +0 -17
- package/src/Entities/MemoizedAngle.test.ts +0 -38
- package/src/Entities/MemoizedAngle.ts +0 -25
- package/src/Entities/MemoizedBoolean.test.ts +0 -45
- package/src/Entities/MemoizedBoolean.ts +0 -23
- package/src/Entities/MemoizedColor.test.ts +0 -39
- package/src/Entities/MemoizedColor.ts +0 -27
- package/src/Entities/MemoizedNumber.test.ts +0 -37
- package/src/Entities/MemoizedNumber.ts +0 -23
- package/src/Entities/MemoizedQuaternion.test.ts +0 -39
- package/src/Entities/MemoizedQuaternion.ts +0 -27
- package/src/Entities/MemoizedString.test.ts +0 -37
- package/src/Entities/MemoizedString.ts +0 -23
- package/src/Entities/MemoizedVector2.test.ts +0 -39
- package/src/Entities/MemoizedVector2.ts +0 -27
- package/src/Entities/MemoizedVector3.test.ts +0 -39
- package/src/Entities/MemoizedVector3.ts +0 -27
- package/src/Entities/ObservableEntity.test.ts +0 -28
- package/src/Entities/ObservableEntity.ts +0 -17
- package/src/Entities/ObserverList.test.ts +0 -61
- package/src/Entities/ObserverList.ts +0 -24
- package/src/Entities/RangedNumber.test.ts +0 -118
- package/src/Entities/RangedNumber.ts +0 -45
- package/src/Types/AppBoundary.ts +0 -13
- package/src/Types/EaseFn.ts +0 -1
- package/src/Types/PmAdapter.ts +0 -15
- package/src/Types/SingletonPmAdapter.ts +0 -7
- package/src/Utilities/LengthConverters.test.ts +0 -30
- package/src/Utilities/LengthConverters.ts +0 -18
- package/src/Utilities/LerpNumber.test.ts +0 -109
- package/src/Utilities/LerpNumber.ts +0 -109
- package/src/Utilities/degreesToRadians.test.ts +0 -8
- package/src/Utilities/degreesToRadians.ts +0 -3
- package/src/Utilities/easeFunctions.test.ts +0 -251
- package/src/Utilities/easeFunctions.ts +0 -180
- package/src/Utilities/generateUniqueID.ts +0 -5
- package/src/Utilities/interpolateNumber.test.ts +0 -28
- package/src/Utilities/interpolateNumber.ts +0 -21
- package/src/ValueObjects/Angle.test.ts +0 -30
- package/src/ValueObjects/Angle.ts +0 -47
- package/src/ValueObjects/Color.test.ts +0 -181
- package/src/ValueObjects/Color.ts +0 -891
- package/src/ValueObjects/LineSegment2D.test.ts +0 -144
- package/src/ValueObjects/LineSegment2D.ts +0 -93
- package/src/ValueObjects/Matrix.test.ts +0 -498
- package/src/ValueObjects/Matrix.ts +0 -567
- package/src/ValueObjects/ParametricLine.test.ts +0 -155
- package/src/ValueObjects/ParametricLine.ts +0 -114
- package/src/ValueObjects/ParametricPlane.test.ts +0 -122
- package/src/ValueObjects/ParametricPlane.ts +0 -82
- package/src/ValueObjects/Quaternion.test.ts +0 -356
- package/src/ValueObjects/Quaternion.ts +0 -353
- package/src/ValueObjects/Rectangle.test.ts +0 -32
- package/src/ValueObjects/Rectangle.ts +0 -33
- package/src/ValueObjects/Vector2.test.ts +0 -167
- package/src/ValueObjects/Vector2.ts +0 -209
- package/src/ValueObjects/Vector3.test.ts +0 -228
- package/src/ValueObjects/Vector3.ts +0 -269
- package/tsconfig.build.json +0 -7
- package/tsconfig.cjs.json +0 -9
- package/tsconfig.esm.json +0 -12
- package/tsconfig.json +0 -19
- package/tslint.json +0 -11
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { Angle } from ".";
|
|
2
|
+
export declare class Vector2 {
|
|
3
|
+
/**
|
|
4
|
+
* Creates a zero vector
|
|
5
|
+
* @returns Vector [0,0]
|
|
6
|
+
*/
|
|
7
|
+
static Zero(): Vector2;
|
|
8
|
+
/**
|
|
9
|
+
* Creates a one vector
|
|
10
|
+
* @returns Vector [1,1]
|
|
11
|
+
*/
|
|
12
|
+
static One(): Vector2;
|
|
13
|
+
/**
|
|
14
|
+
* Checks to see if Vector A equals Vector B
|
|
15
|
+
* @param a Vector A
|
|
16
|
+
* @param b Vector B
|
|
17
|
+
* @returns True if Vector A === Vector B
|
|
18
|
+
*/
|
|
19
|
+
static Equal(a: Vector2, b: Vector2): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Creates a Vector from a Data Transfer Object
|
|
22
|
+
* @param dto The Data Transfer Object
|
|
23
|
+
* @returns The Vector
|
|
24
|
+
*/
|
|
25
|
+
static FromDTO(dto: {
|
|
26
|
+
x: number;
|
|
27
|
+
y: number;
|
|
28
|
+
}): Vector2;
|
|
29
|
+
/**
|
|
30
|
+
* Adds Vector B to Vector A
|
|
31
|
+
* @param a Vector A
|
|
32
|
+
* @param b Vector B
|
|
33
|
+
* @returns A + B
|
|
34
|
+
*/
|
|
35
|
+
static Add(a: Vector2, b: Vector2): Vector2;
|
|
36
|
+
/**
|
|
37
|
+
* Subtracts Vector B from Vector A
|
|
38
|
+
* @param a Vector A
|
|
39
|
+
* @param b Vector B
|
|
40
|
+
* @returns A - B
|
|
41
|
+
*/
|
|
42
|
+
static Subtract(a: Vector2, b: Vector2): Vector2;
|
|
43
|
+
/**
|
|
44
|
+
* Checks to see if Vector A is close to Vector B
|
|
45
|
+
* @param a Vector A
|
|
46
|
+
* @param b Vector B
|
|
47
|
+
* @param threshold Tolerance to define "close". Defaults to 0.01
|
|
48
|
+
* @returns True if A and B are close enough
|
|
49
|
+
*/
|
|
50
|
+
static Close: (a: Vector2, b: Vector2, threshold?: number) => boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Rotates a vector by an angle
|
|
53
|
+
* @param vec The original vector
|
|
54
|
+
* @param angle The angle
|
|
55
|
+
* @returns A new Vector that has been rotated from the original by an angle
|
|
56
|
+
*/
|
|
57
|
+
static Rotate: (vec: Vector2, angle: Angle) => Vector2;
|
|
58
|
+
/**
|
|
59
|
+
* Scales a vector uniformly
|
|
60
|
+
* @param vector The original vector
|
|
61
|
+
* @param scale Scale factor
|
|
62
|
+
* @returns A new, scaled vector
|
|
63
|
+
*/
|
|
64
|
+
static Scale: (vector: Vector2, scale: number) => Vector2;
|
|
65
|
+
/**
|
|
66
|
+
* Creates a new vector of a given lenght and a unit that is equal to the original vector
|
|
67
|
+
* @param vector The original vector. This determines the unit of the final vector
|
|
68
|
+
* @param length The desired length of the final vector
|
|
69
|
+
* @returns The final vector
|
|
70
|
+
*/
|
|
71
|
+
static NewVectorOfLength: (vector: Vector2, length: number) => Vector2;
|
|
72
|
+
/**
|
|
73
|
+
* Calculate the dot product between Vectors A and B
|
|
74
|
+
* @param a Vector A
|
|
75
|
+
* @param b Vector B
|
|
76
|
+
* @returns The Dot product between A and B
|
|
77
|
+
*/
|
|
78
|
+
static Dot: (a: Vector2, b: Vector2) => number;
|
|
79
|
+
/**
|
|
80
|
+
* Calculates the dot product between Vectors A and B
|
|
81
|
+
* @param a Vector A
|
|
82
|
+
* @param b Vector B
|
|
83
|
+
* @returns A . B
|
|
84
|
+
*/
|
|
85
|
+
static AngleBetween: (a: Vector2, b: Vector2) => Angle;
|
|
86
|
+
/**
|
|
87
|
+
* Calculates the Cross product between Vectors A and B
|
|
88
|
+
* @param a Vector A
|
|
89
|
+
* @param b Vector B
|
|
90
|
+
* @returns A X B
|
|
91
|
+
*/
|
|
92
|
+
static Cross: (a: Vector2, b: Vector2) => number;
|
|
93
|
+
readonly x: number;
|
|
94
|
+
readonly y: number;
|
|
95
|
+
/**
|
|
96
|
+
* Get the magnitude (length) of the vector
|
|
97
|
+
*/
|
|
98
|
+
get magnitued(): number;
|
|
99
|
+
/**
|
|
100
|
+
* Get the unit vector
|
|
101
|
+
*/
|
|
102
|
+
get unit(): Vector2;
|
|
103
|
+
/**
|
|
104
|
+
* Returns the angle of the direction of this angle in degrees.
|
|
105
|
+
* A right vector [1,0] will return 0, a left vector [-1,0] will return 180, an up vector [0,1] will return 90 and a down vector [0,-1] will return -90
|
|
106
|
+
*/
|
|
107
|
+
get theta(): number;
|
|
108
|
+
/**
|
|
109
|
+
* Retuns the vector as an array of numbers [x,y]
|
|
110
|
+
*/
|
|
111
|
+
get array(): [number, number];
|
|
112
|
+
/**
|
|
113
|
+
* Get the vector as a Data Transfer Object
|
|
114
|
+
*/
|
|
115
|
+
get dto(): {
|
|
116
|
+
x: number;
|
|
117
|
+
y: number;
|
|
118
|
+
};
|
|
119
|
+
constructor(x: number, y: number);
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=Vector2.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Vector2.d.ts","sourceRoot":"","sources":["../../../src/ValueObjects/Vector2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC;AAE1B,qBAAa,OAAO;IAClB;;;OAGG;WACW,IAAI,IAAI,OAAO;IAI7B;;;OAGG;WACW,GAAG,IAAI,OAAO;IAI5B;;;;;OAKG;WACW,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO;IAMpD;;;;OAIG;WACW,OAAO,CAAC,GAAG,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO;IAI7D;;;;;OAKG;WACW,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO;IAIlD;;;;;OAKG;WACW,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO;IAIvD;;;;;;OAMG;IACH,OAAc,KAAK,GACjB,GAAG,OAAO,EACV,GAAG,OAAO,EACV,YAAW,MAAa,KACvB,OAAO,CAMR;IAEF;;;;;OAKG;IACH,OAAc,MAAM,GAAI,KAAK,OAAO,EAAE,OAAO,KAAK,KAAG,OAAO,CAI1D;IAEF;;;;;OAKG;IACH,OAAc,KAAK,GAAI,QAAQ,OAAO,EAAE,OAAO,MAAM,KAAG,OAAO,CAI7D;IAEF;;;;;OAKG;IACH,OAAc,iBAAiB,GAC7B,QAAQ,OAAO,EACf,QAAQ,MAAM,KACb,OAAO,CAKR;IAEF;;;;;OAKG;IACH,OAAc,GAAG,GAAI,GAAG,OAAO,EAAE,GAAG,OAAO,KAAG,MAAM,CAElD;IAEF;;;;;OAKG;IACH,OAAc,YAAY,GAAI,GAAG,OAAO,EAAE,GAAG,OAAO,KAAG,KAAK,CAO1D;IAEF;;;;;OAKG;IACH,OAAc,KAAK,GAAI,GAAG,OAAO,EAAE,GAAG,OAAO,KAAG,MAAM,CAEpD;IAEF,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAMtB;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,OAAO,CASlB;IAED;;;OAGG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAE5B;IAED;;OAEG;IACH,IAAI,GAAG,IAAI;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAElC;gBAEW,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;CAIjC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Vector2.test.d.ts","sourceRoot":"","sources":["../../../src/ValueObjects/Vector2.test.ts"],"names":[],"mappings":""}
|
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"file":"Vector3.test.d.ts","sourceRoot":"","sources":["../../../src/ValueObjects/Vector3.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from "./Angle";
|
|
2
|
+
export * from "./Color";
|
|
3
|
+
export * from "./LineSegment2D";
|
|
4
|
+
export * from "./Matrix";
|
|
5
|
+
export * from "./ParametricLine";
|
|
6
|
+
export * from "./ParametricPlane";
|
|
7
|
+
export * from "./Quaternion";
|
|
8
|
+
export * from "./Rectangle";
|
|
9
|
+
export * from "./Vector2";
|
|
10
|
+
export * from "./Vector3";
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ValueObjects/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vived/core",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.3",
|
|
4
4
|
"description": "Core Components for VIVED Apps and Hosts",
|
|
5
5
|
"main": "./dist/cjs/index.js",
|
|
6
6
|
"module": "./dist/esm/index.js",
|
|
@@ -51,5 +51,8 @@
|
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
53
|
"uuid": "^11.1.0"
|
|
54
|
-
}
|
|
54
|
+
},
|
|
55
|
+
"files": [
|
|
56
|
+
"dist"
|
|
57
|
+
]
|
|
55
58
|
}
|
package/babel.config.js
DELETED
package/jestconfig.json
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"transform": {
|
|
3
|
-
"^.+\\.(t|j)sx?$": "ts-jest"
|
|
4
|
-
},
|
|
5
|
-
"testRegex": "(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$",
|
|
6
|
-
"moduleFileExtensions": ["ts", "tsx", "js", "jsx", "json", "node"],
|
|
7
|
-
"testPathIgnorePatterns": ["/node_modules/", "/dist/"],
|
|
8
|
-
"modulePathIgnorePatterns": ["/dist/"],
|
|
9
|
-
"watchPathIgnorePatterns": ["/dist/"]
|
|
10
|
-
}
|
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
import { AppObject, makeAppObject } from "./AppObject";
|
|
2
|
-
import { AppObjectComponent } from "./AppObjectComponent";
|
|
3
|
-
import { makeAppObjectRepo } from "./AppObjectRepo";
|
|
4
|
-
|
|
5
|
-
export function makeTestRig() {
|
|
6
|
-
const repo = makeAppObjectRepo();
|
|
7
|
-
const appObj = makeAppObject("obj id", repo);
|
|
8
|
-
const observer = jest.fn();
|
|
9
|
-
appObj.addObserver(observer);
|
|
10
|
-
|
|
11
|
-
return { repo, appObj, observer };
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
describe("App Object", () => {
|
|
15
|
-
it("Adds itself to the repo", () => {
|
|
16
|
-
const { repo, appObj } = makeTestRig();
|
|
17
|
-
|
|
18
|
-
expect(repo.has(appObj.id)).toEqual(true);
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
it("Removes itself from the repo when disposed", () => {
|
|
22
|
-
const { repo, appObj } = makeTestRig();
|
|
23
|
-
|
|
24
|
-
appObj.dispose();
|
|
25
|
-
expect(repo.has(appObj.id)).toEqual(false);
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
it("Checks to see it has a component", () => {
|
|
29
|
-
const { appObj } = makeTestRig();
|
|
30
|
-
|
|
31
|
-
expect(appObj.hasComponent(MockComponent.type)).toEqual(false);
|
|
32
|
-
|
|
33
|
-
new MockComponent(appObj);
|
|
34
|
-
|
|
35
|
-
expect(appObj.hasComponent(MockComponent.type)).toEqual(true);
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
it("Notifies when an component is added", () => {
|
|
39
|
-
const { appObj, observer } = makeTestRig();
|
|
40
|
-
|
|
41
|
-
new MockComponent(appObj);
|
|
42
|
-
|
|
43
|
-
expect(observer).toBeCalled();
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
it("Gets a component", () => {
|
|
47
|
-
const { appObj } = makeTestRig();
|
|
48
|
-
|
|
49
|
-
expect(appObj.getComponent(MockComponent.type)).toEqual(undefined);
|
|
50
|
-
|
|
51
|
-
const mockComponent = new MockComponent(appObj);
|
|
52
|
-
|
|
53
|
-
expect(appObj.getComponent(MockComponent.type)).toEqual(mockComponent);
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
it("Warns if a component is replaced", () => {
|
|
57
|
-
const { appObj } = makeTestRig();
|
|
58
|
-
|
|
59
|
-
console.warn = jest.fn();
|
|
60
|
-
|
|
61
|
-
const mockComponent = new MockComponent(appObj);
|
|
62
|
-
appObj.addComponent(mockComponent);
|
|
63
|
-
appObj.addComponent(new MockComponent(appObj));
|
|
64
|
-
|
|
65
|
-
expect(console.warn).toBeCalled();
|
|
66
|
-
});
|
|
67
|
-
|
|
68
|
-
it("Returns the component list", () => {
|
|
69
|
-
const { appObj } = makeTestRig();
|
|
70
|
-
|
|
71
|
-
expect(appObj.allComponents()).toEqual([]);
|
|
72
|
-
|
|
73
|
-
const mockComponent = new MockComponent(appObj);
|
|
74
|
-
appObj.addComponent(mockComponent);
|
|
75
|
-
|
|
76
|
-
const anotherMockComponent = new AnotherMockComponent(appObj);
|
|
77
|
-
appObj.addComponent(anotherMockComponent)
|
|
78
|
-
|
|
79
|
-
expect(appObj.allComponents()).toEqual([mockComponent, anotherMockComponent]);
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
it("Removes a component", () => {
|
|
83
|
-
const { appObj } = makeTestRig();
|
|
84
|
-
const comp = new MockComponent(appObj);
|
|
85
|
-
appObj.addComponent(comp)
|
|
86
|
-
|
|
87
|
-
expect(appObj.hasComponent(MockComponent.type)).toEqual(true);
|
|
88
|
-
|
|
89
|
-
appObj.removeComponent(MockComponent.type);
|
|
90
|
-
|
|
91
|
-
expect(appObj.hasComponent(MockComponent.type)).toEqual(false);
|
|
92
|
-
});
|
|
93
|
-
|
|
94
|
-
it("Notifies when an component is removed", () => {
|
|
95
|
-
const { appObj, observer } = makeTestRig();
|
|
96
|
-
const comp = new MockComponent(appObj);
|
|
97
|
-
appObj.addComponent(comp)
|
|
98
|
-
observer.mockClear();
|
|
99
|
-
|
|
100
|
-
appObj.removeComponent(MockComponent.type);
|
|
101
|
-
appObj.removeComponent(MockComponent.type);
|
|
102
|
-
appObj.removeComponent(MockComponent.type);
|
|
103
|
-
|
|
104
|
-
expect(observer).toHaveBeenCalledTimes(1);
|
|
105
|
-
});
|
|
106
|
-
|
|
107
|
-
it("Disposes all components when the App Object is disposed", () => {
|
|
108
|
-
const { appObj } = makeTestRig();
|
|
109
|
-
|
|
110
|
-
const comp = new MockComponent(appObj);
|
|
111
|
-
appObj.addComponent(comp)
|
|
112
|
-
|
|
113
|
-
const spy = jest.spyOn(comp, "dispose");
|
|
114
|
-
|
|
115
|
-
appObj.dispose();
|
|
116
|
-
|
|
117
|
-
expect(spy).toBeCalled();
|
|
118
|
-
});
|
|
119
|
-
|
|
120
|
-
it("Clears the component list when disposed", () => {
|
|
121
|
-
const { appObj } = makeTestRig();
|
|
122
|
-
|
|
123
|
-
const comp = new MockComponent(appObj);
|
|
124
|
-
appObj.addComponent(comp)
|
|
125
|
-
|
|
126
|
-
expect(appObj.allComponents()).toHaveLength(1);
|
|
127
|
-
|
|
128
|
-
appObj.dispose();
|
|
129
|
-
|
|
130
|
-
expect(appObj.allComponents()).toHaveLength(0);
|
|
131
|
-
});
|
|
132
|
-
|
|
133
|
-
it("If an entity is replace, it disposes the original", () => {
|
|
134
|
-
const { appObj } = makeTestRig();
|
|
135
|
-
|
|
136
|
-
const comp = new MockComponent(appObj);
|
|
137
|
-
appObj.addComponent(comp)
|
|
138
|
-
|
|
139
|
-
const spy = jest.spyOn(comp, "dispose");
|
|
140
|
-
appObj.addComponent(new MockComponent(appObj))
|
|
141
|
-
|
|
142
|
-
expect(spy).toBeCalled();
|
|
143
|
-
});
|
|
144
|
-
});
|
|
145
|
-
|
|
146
|
-
class MockComponent extends AppObjectComponent {
|
|
147
|
-
static readonly type: string = "mockComponent";
|
|
148
|
-
constructor(appObject: AppObject) {
|
|
149
|
-
super(appObject, MockComponent.type)
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
class AnotherMockComponent extends AppObjectComponent {
|
|
154
|
-
static readonly type: string = "mockComponent2";
|
|
155
|
-
constructor(appObject: AppObject) {
|
|
156
|
-
super(appObject, AnotherMockComponent.type)
|
|
157
|
-
}
|
|
158
|
-
}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { ObservableEntity } from "../Entities";
|
|
2
|
-
import { AppObjectComponent } from "./AppObjectComponent";
|
|
3
|
-
import { AppObjectRepo } from "./AppObjectRepo";
|
|
4
|
-
|
|
5
|
-
export abstract class AppObject extends ObservableEntity {
|
|
6
|
-
abstract readonly id: string;
|
|
7
|
-
abstract readonly appObjectRepo: AppObjectRepo;
|
|
8
|
-
|
|
9
|
-
abstract hasComponent(type: string): boolean;
|
|
10
|
-
abstract addComponent(component: AppObjectComponent): void;
|
|
11
|
-
abstract getComponent<T extends AppObjectComponent>(type: string): T | undefined;
|
|
12
|
-
abstract removeComponent(type: string): void;
|
|
13
|
-
abstract allComponents(): AppObjectComponent[];
|
|
14
|
-
|
|
15
|
-
abstract dispose(): void;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export function makeAppObject(id: string, repo: AppObjectRepo): AppObject {
|
|
19
|
-
return new AppObjectImp(id, repo);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
class AppObjectImp extends AppObject {
|
|
23
|
-
readonly id: string;
|
|
24
|
-
readonly appObjectRepo: AppObjectRepo;
|
|
25
|
-
|
|
26
|
-
private componentLookup = new Map<string, AppObjectComponent>();
|
|
27
|
-
|
|
28
|
-
hasComponent(type: string): boolean {
|
|
29
|
-
return this.componentLookup.has(type);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
addComponent(component: AppObjectComponent): void {
|
|
33
|
-
const currentComponent = this.componentLookup.get(component.type);
|
|
34
|
-
if (currentComponent) {
|
|
35
|
-
console.warn(
|
|
36
|
-
`[AppObject] Component ${component.type} is being replaced on ${this.id}`
|
|
37
|
-
);
|
|
38
|
-
currentComponent.dispose();
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
this.componentLookup.set(component.type, component);
|
|
42
|
-
this.notify();
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
getComponent<T extends AppObjectComponent>(type: string): T | undefined {
|
|
46
|
-
if (this.componentLookup.has(type)) {
|
|
47
|
-
return this.componentLookup.get(type) as T;
|
|
48
|
-
} else {
|
|
49
|
-
return undefined;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
removeComponent(type: string): void {
|
|
54
|
-
const component = this.componentLookup.get(type);
|
|
55
|
-
|
|
56
|
-
if (!component) return;
|
|
57
|
-
|
|
58
|
-
this.componentLookup.delete(type);
|
|
59
|
-
this.notify();
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
allComponents(): AppObjectComponent[] {
|
|
63
|
-
return Array.from(this.componentLookup.values());
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
dispose = (): void => {
|
|
68
|
-
const components = Array.from(this.componentLookup.values());
|
|
69
|
-
this.componentLookup.clear();
|
|
70
|
-
components.forEach(c => c.dispose());
|
|
71
|
-
|
|
72
|
-
if (this.appObjectRepo.has(this.id)) {
|
|
73
|
-
this.appObjectRepo.remove(this.id);
|
|
74
|
-
}
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
constructor(id: string, repo: AppObjectRepo) {
|
|
78
|
-
super();
|
|
79
|
-
this.id = id;
|
|
80
|
-
this.appObjectRepo = repo;
|
|
81
|
-
this.appObjectRepo.add(this);
|
|
82
|
-
}
|
|
83
|
-
}
|