@vived/core 1.2.2 → 1.2.4

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.
Files changed (570) hide show
  1. package/dist/cjs/AppObject/AppObject.js +59 -0
  2. package/dist/cjs/AppObject/AppObject.js.map +1 -0
  3. package/dist/cjs/AppObject/AppObject.test.js +113 -0
  4. package/dist/cjs/AppObject/AppObject.test.js.map +1 -0
  5. package/dist/cjs/AppObject/AppObjectComponent.js +82 -0
  6. package/dist/cjs/AppObject/AppObjectComponent.js.map +1 -0
  7. package/dist/cjs/AppObject/AppObjectComponent.test.js +132 -0
  8. package/dist/cjs/AppObject/AppObjectComponent.test.js.map +1 -0
  9. package/dist/cjs/AppObject/AppObjectController.js +12 -0
  10. package/dist/cjs/AppObject/AppObjectController.js.map +1 -0
  11. package/dist/cjs/AppObject/AppObjectEntity.js +38 -0
  12. package/dist/cjs/AppObject/AppObjectEntity.js.map +1 -0
  13. package/dist/cjs/AppObject/AppObjectEntity.test.js +108 -0
  14. package/dist/cjs/AppObject/AppObjectEntity.test.js.map +1 -0
  15. package/dist/cjs/AppObject/AppObjectEntityRepo.js +56 -0
  16. package/dist/cjs/AppObject/AppObjectEntityRepo.js.map +1 -0
  17. package/dist/cjs/AppObject/AppObjectEntityRepo.test.js +149 -0
  18. package/dist/cjs/AppObject/AppObjectEntityRepo.test.js.map +1 -0
  19. package/dist/cjs/AppObject/AppObjectPM.js +40 -0
  20. package/dist/cjs/AppObject/AppObjectPM.js.map +1 -0
  21. package/dist/cjs/AppObject/AppObjectPM.test.js +103 -0
  22. package/dist/cjs/AppObject/AppObjectPM.test.js.map +1 -0
  23. package/dist/cjs/AppObject/AppObjectRepo.js +133 -0
  24. package/dist/cjs/AppObject/AppObjectRepo.js.map +1 -0
  25. package/dist/cjs/AppObject/AppObjectRepo.test.js +213 -0
  26. package/dist/cjs/AppObject/AppObjectRepo.test.js.map +1 -0
  27. package/dist/cjs/AppObject/AppObjectUC.js +12 -0
  28. package/dist/cjs/AppObject/AppObjectUC.js.map +1 -0
  29. package/dist/cjs/AppObject/AppObjectView.js +12 -0
  30. package/dist/cjs/AppObject/AppObjectView.js.map +1 -0
  31. package/dist/cjs/AppObject/getSingletonComponent.js +7 -0
  32. package/dist/cjs/AppObject/getSingletonComponent.js.map +1 -0
  33. package/dist/cjs/AppObject/getSingletonComponent.test.js +13 -0
  34. package/dist/cjs/AppObject/getSingletonComponent.test.js.map +1 -0
  35. package/dist/cjs/AppObject/index.js +27 -0
  36. package/dist/cjs/AppObject/index.js.map +1 -0
  37. package/dist/cjs/AppObject/printAppObjectDetails.js +18 -0
  38. package/dist/cjs/AppObject/printAppObjectDetails.js.map +1 -0
  39. package/dist/cjs/Entities/MemoizedAngle.js +23 -0
  40. package/dist/cjs/Entities/MemoizedAngle.js.map +1 -0
  41. package/dist/cjs/Entities/MemoizedAngle.test.js +30 -0
  42. package/dist/cjs/Entities/MemoizedAngle.test.js.map +1 -0
  43. package/dist/cjs/Entities/MemoizedBoolean.js +23 -0
  44. package/dist/cjs/Entities/MemoizedBoolean.js.map +1 -0
  45. package/dist/cjs/Entities/MemoizedBoolean.test.js +34 -0
  46. package/dist/cjs/Entities/MemoizedBoolean.test.js.map +1 -0
  47. package/dist/cjs/Entities/MemoizedColor.js +24 -0
  48. package/dist/cjs/Entities/MemoizedColor.js.map +1 -0
  49. package/dist/cjs/Entities/MemoizedColor.test.js +32 -0
  50. package/dist/cjs/Entities/MemoizedColor.test.js.map +1 -0
  51. package/dist/cjs/Entities/MemoizedNumber.js +23 -0
  52. package/dist/cjs/Entities/MemoizedNumber.js.map +1 -0
  53. package/dist/cjs/Entities/MemoizedNumber.test.js +29 -0
  54. package/dist/cjs/Entities/MemoizedNumber.test.js.map +1 -0
  55. package/dist/cjs/Entities/MemoizedQuaternion.js +24 -0
  56. package/dist/cjs/Entities/MemoizedQuaternion.js.map +1 -0
  57. package/dist/cjs/Entities/MemoizedQuaternion.test.js +32 -0
  58. package/dist/cjs/Entities/MemoizedQuaternion.test.js.map +1 -0
  59. package/dist/cjs/Entities/MemoizedString.js +23 -0
  60. package/dist/cjs/Entities/MemoizedString.js.map +1 -0
  61. package/dist/cjs/Entities/MemoizedString.test.js +29 -0
  62. package/dist/cjs/Entities/MemoizedString.test.js.map +1 -0
  63. package/dist/cjs/Entities/MemoizedVector2.js +24 -0
  64. package/dist/cjs/Entities/MemoizedVector2.js.map +1 -0
  65. package/dist/cjs/Entities/MemoizedVector2.test.js +32 -0
  66. package/dist/cjs/Entities/MemoizedVector2.test.js.map +1 -0
  67. package/dist/cjs/Entities/MemoizedVector3.js +24 -0
  68. package/dist/cjs/Entities/MemoizedVector3.js.map +1 -0
  69. package/dist/cjs/Entities/MemoizedVector3.test.js +32 -0
  70. package/dist/cjs/Entities/MemoizedVector3.test.js.map +1 -0
  71. package/dist/cjs/Entities/ObservableEntity.js +20 -0
  72. package/dist/cjs/Entities/ObservableEntity.js.map +1 -0
  73. package/dist/cjs/Entities/ObservableEntity.test.js +25 -0
  74. package/dist/cjs/Entities/ObservableEntity.test.js.map +1 -0
  75. package/dist/cjs/Entities/ObserverList.js +27 -0
  76. package/dist/cjs/Entities/ObserverList.js.map +1 -0
  77. package/dist/cjs/Entities/ObserverList.test.js +44 -0
  78. package/dist/cjs/Entities/ObserverList.test.js.map +1 -0
  79. package/dist/cjs/Entities/RangedNumber.js +36 -0
  80. package/dist/cjs/Entities/RangedNumber.js.map +1 -0
  81. package/dist/cjs/Entities/RangedNumber.test.js +96 -0
  82. package/dist/cjs/Entities/RangedNumber.test.js.map +1 -0
  83. package/dist/cjs/Entities/index.js +28 -0
  84. package/dist/cjs/Entities/index.js.map +1 -0
  85. package/dist/cjs/Types/AppBoundary.js +3 -0
  86. package/dist/cjs/Types/AppBoundary.js.map +1 -0
  87. package/dist/cjs/Types/EaseFn.js +3 -0
  88. package/dist/cjs/Types/EaseFn.js.map +1 -0
  89. package/dist/cjs/Types/PmAdapter.js +3 -0
  90. package/dist/cjs/Types/PmAdapter.js.map +1 -0
  91. package/dist/cjs/Types/SingletonPmAdapter.js +3 -0
  92. package/dist/cjs/Types/SingletonPmAdapter.js.map +1 -0
  93. package/dist/cjs/Types/index.js +21 -0
  94. package/dist/cjs/Types/index.js.map +1 -0
  95. package/dist/cjs/Utilities/LengthConverters.js +21 -0
  96. package/dist/cjs/Utilities/LengthConverters.js.map +1 -0
  97. package/dist/cjs/Utilities/LengthConverters.test.js +24 -0
  98. package/dist/cjs/Utilities/LengthConverters.test.js.map +1 -0
  99. package/dist/cjs/Utilities/LerpNumber.js +85 -0
  100. package/dist/cjs/Utilities/LerpNumber.js.map +1 -0
  101. package/dist/cjs/Utilities/LerpNumber.test.js +90 -0
  102. package/dist/cjs/Utilities/LerpNumber.test.js.map +1 -0
  103. package/dist/cjs/Utilities/degreesToRadians.js +7 -0
  104. package/dist/cjs/Utilities/degreesToRadians.js.map +1 -0
  105. package/dist/cjs/Utilities/degreesToRadians.test.js +9 -0
  106. package/dist/cjs/Utilities/degreesToRadians.test.js.map +1 -0
  107. package/dist/cjs/Utilities/easeFunctions.js +208 -0
  108. package/dist/cjs/Utilities/easeFunctions.js.map +1 -0
  109. package/dist/cjs/Utilities/easeFunctions.test.js +209 -0
  110. package/dist/cjs/Utilities/easeFunctions.test.js.map +1 -0
  111. package/dist/cjs/Utilities/generateUniqueID.js +8 -0
  112. package/dist/cjs/Utilities/generateUniqueID.js.map +1 -0
  113. package/dist/cjs/Utilities/index.js +22 -0
  114. package/dist/cjs/Utilities/index.js.map +1 -0
  115. package/dist/cjs/Utilities/interpolateNumber.js +18 -0
  116. package/dist/cjs/Utilities/interpolateNumber.js.map +1 -0
  117. package/dist/cjs/Utilities/interpolateNumber.test.js +26 -0
  118. package/dist/cjs/Utilities/interpolateNumber.test.js.map +1 -0
  119. package/dist/cjs/ValueObjects/Angle.js +47 -0
  120. package/dist/cjs/ValueObjects/Angle.js.map +1 -0
  121. package/dist/cjs/ValueObjects/Angle.test.js +28 -0
  122. package/dist/cjs/ValueObjects/Angle.test.js.map +1 -0
  123. package/dist/cjs/ValueObjects/Color.js +859 -0
  124. package/dist/cjs/ValueObjects/Color.js.map +1 -0
  125. package/dist/cjs/ValueObjects/Color.test.js +147 -0
  126. package/dist/cjs/ValueObjects/Color.test.js.map +1 -0
  127. package/dist/cjs/ValueObjects/LineSegment2D.js +72 -0
  128. package/dist/cjs/ValueObjects/LineSegment2D.js.map +1 -0
  129. package/dist/cjs/ValueObjects/LineSegment2D.test.js +102 -0
  130. package/dist/cjs/ValueObjects/LineSegment2D.test.js.map +1 -0
  131. package/dist/cjs/ValueObjects/Matrix.js +466 -0
  132. package/dist/cjs/ValueObjects/Matrix.js.map +1 -0
  133. package/dist/cjs/ValueObjects/Matrix.test.js +385 -0
  134. package/dist/cjs/ValueObjects/Matrix.test.js.map +1 -0
  135. package/dist/cjs/ValueObjects/ParametricLine.js +77 -0
  136. package/dist/cjs/ValueObjects/ParametricLine.js.map +1 -0
  137. package/dist/cjs/ValueObjects/ParametricLine.test.js +126 -0
  138. package/dist/cjs/ValueObjects/ParametricLine.test.js.map +1 -0
  139. package/dist/cjs/ValueObjects/ParametricPlane.js +65 -0
  140. package/dist/cjs/ValueObjects/ParametricPlane.js.map +1 -0
  141. package/dist/cjs/ValueObjects/ParametricPlane.test.js +101 -0
  142. package/dist/cjs/ValueObjects/ParametricPlane.test.js.map +1 -0
  143. package/dist/cjs/ValueObjects/Quaternion.js +290 -0
  144. package/dist/cjs/ValueObjects/Quaternion.js.map +1 -0
  145. package/dist/cjs/ValueObjects/Quaternion.test.js +240 -0
  146. package/dist/cjs/ValueObjects/Quaternion.test.js.map +1 -0
  147. package/dist/cjs/ValueObjects/Rectangle.js +24 -0
  148. package/dist/cjs/ValueObjects/Rectangle.js.map +1 -0
  149. package/dist/cjs/ValueObjects/Rectangle.test.js +32 -0
  150. package/dist/cjs/ValueObjects/Rectangle.test.js.map +1 -0
  151. package/dist/cjs/ValueObjects/Vector2.js +184 -0
  152. package/dist/cjs/ValueObjects/Vector2.js.map +1 -0
  153. package/dist/cjs/ValueObjects/Vector2.test.js +136 -0
  154. package/dist/cjs/ValueObjects/Vector2.test.js.map +1 -0
  155. package/dist/cjs/ValueObjects/Vector3.js +231 -0
  156. package/dist/cjs/ValueObjects/Vector3.js.map +1 -0
  157. package/dist/cjs/ValueObjects/Vector3.test.js +188 -0
  158. package/dist/cjs/ValueObjects/Vector3.test.js.map +1 -0
  159. package/dist/cjs/ValueObjects/index.js +27 -0
  160. package/dist/cjs/ValueObjects/index.js.map +1 -0
  161. package/dist/cjs/index.js +22 -0
  162. package/dist/cjs/index.js.map +1 -0
  163. package/dist/esm/AppObject/AppObject.js +54 -0
  164. package/dist/esm/AppObject/AppObject.js.map +1 -0
  165. package/dist/esm/AppObject/AppObject.test.js +110 -0
  166. package/dist/esm/AppObject/AppObject.test.js.map +1 -0
  167. package/dist/esm/AppObject/AppObjectComponent.js +78 -0
  168. package/dist/esm/AppObject/AppObjectComponent.js.map +1 -0
  169. package/dist/esm/AppObject/AppObjectComponent.test.js +130 -0
  170. package/dist/esm/AppObject/AppObjectComponent.test.js.map +1 -0
  171. package/dist/esm/AppObject/AppObjectController.js +8 -0
  172. package/dist/esm/AppObject/AppObjectController.js.map +1 -0
  173. package/dist/esm/AppObject/AppObjectEntity.js +34 -0
  174. package/dist/esm/AppObject/AppObjectEntity.js.map +1 -0
  175. package/dist/esm/AppObject/AppObjectEntity.test.js +106 -0
  176. package/dist/esm/AppObject/AppObjectEntity.test.js.map +1 -0
  177. package/dist/esm/AppObject/AppObjectEntityRepo.js +52 -0
  178. package/dist/esm/AppObject/AppObjectEntityRepo.js.map +1 -0
  179. package/dist/esm/AppObject/AppObjectEntityRepo.test.js +147 -0
  180. package/dist/esm/AppObject/AppObjectEntityRepo.test.js.map +1 -0
  181. package/dist/esm/AppObject/AppObjectPM.js +36 -0
  182. package/dist/esm/AppObject/AppObjectPM.js.map +1 -0
  183. package/dist/esm/AppObject/AppObjectPM.test.js +101 -0
  184. package/dist/esm/AppObject/AppObjectPM.test.js.map +1 -0
  185. package/dist/esm/AppObject/AppObjectRepo.js +128 -0
  186. package/dist/esm/AppObject/AppObjectRepo.js.map +1 -0
  187. package/dist/esm/AppObject/AppObjectRepo.test.js +211 -0
  188. package/dist/esm/AppObject/AppObjectRepo.test.js.map +1 -0
  189. package/dist/esm/AppObject/AppObjectUC.js +8 -0
  190. package/dist/esm/AppObject/AppObjectUC.js.map +1 -0
  191. package/dist/esm/AppObject/AppObjectView.js +8 -0
  192. package/dist/esm/AppObject/AppObjectView.js.map +1 -0
  193. package/dist/esm/AppObject/getSingletonComponent.js +4 -0
  194. package/dist/esm/AppObject/getSingletonComponent.js.map +1 -0
  195. package/dist/esm/AppObject/getSingletonComponent.test.js +11 -0
  196. package/dist/esm/AppObject/getSingletonComponent.test.js.map +1 -0
  197. package/dist/esm/AppObject/index.js +11 -0
  198. package/dist/esm/AppObject/index.js.map +1 -0
  199. package/dist/esm/AppObject/printAppObjectDetails.js +15 -0
  200. package/dist/esm/AppObject/printAppObjectDetails.js.map +1 -0
  201. package/dist/esm/Entities/MemoizedAngle.js +19 -0
  202. package/dist/esm/Entities/MemoizedAngle.js.map +1 -0
  203. package/dist/esm/Entities/MemoizedAngle.test.js +28 -0
  204. package/dist/esm/Entities/MemoizedAngle.test.js.map +1 -0
  205. package/dist/esm/Entities/MemoizedBoolean.js +19 -0
  206. package/dist/esm/Entities/MemoizedBoolean.js.map +1 -0
  207. package/dist/esm/Entities/MemoizedBoolean.test.js +32 -0
  208. package/dist/esm/Entities/MemoizedBoolean.test.js.map +1 -0
  209. package/dist/esm/Entities/MemoizedColor.js +20 -0
  210. package/dist/esm/Entities/MemoizedColor.js.map +1 -0
  211. package/dist/esm/Entities/MemoizedColor.test.js +30 -0
  212. package/dist/esm/Entities/MemoizedColor.test.js.map +1 -0
  213. package/dist/esm/Entities/MemoizedNumber.js +19 -0
  214. package/dist/esm/Entities/MemoizedNumber.js.map +1 -0
  215. package/dist/esm/Entities/MemoizedNumber.test.js +27 -0
  216. package/dist/esm/Entities/MemoizedNumber.test.js.map +1 -0
  217. package/dist/esm/Entities/MemoizedQuaternion.js +20 -0
  218. package/dist/esm/Entities/MemoizedQuaternion.js.map +1 -0
  219. package/dist/esm/Entities/MemoizedQuaternion.test.js +30 -0
  220. package/dist/esm/Entities/MemoizedQuaternion.test.js.map +1 -0
  221. package/dist/esm/Entities/MemoizedString.js +19 -0
  222. package/dist/esm/Entities/MemoizedString.js.map +1 -0
  223. package/dist/esm/Entities/MemoizedString.test.js +27 -0
  224. package/dist/esm/Entities/MemoizedString.test.js.map +1 -0
  225. package/dist/esm/Entities/MemoizedVector2.js +20 -0
  226. package/dist/esm/Entities/MemoizedVector2.js.map +1 -0
  227. package/dist/esm/Entities/MemoizedVector2.test.js +30 -0
  228. package/dist/esm/Entities/MemoizedVector2.test.js.map +1 -0
  229. package/dist/esm/Entities/MemoizedVector3.js +20 -0
  230. package/dist/esm/Entities/MemoizedVector3.js.map +1 -0
  231. package/dist/esm/Entities/MemoizedVector3.test.js +30 -0
  232. package/dist/esm/Entities/MemoizedVector3.test.js.map +1 -0
  233. package/dist/esm/Entities/ObservableEntity.js +16 -0
  234. package/dist/esm/Entities/ObservableEntity.js.map +1 -0
  235. package/dist/esm/Entities/ObservableEntity.test.js +23 -0
  236. package/dist/esm/Entities/ObservableEntity.test.js.map +1 -0
  237. package/dist/esm/Entities/ObserverList.js +23 -0
  238. package/dist/esm/Entities/ObserverList.js.map +1 -0
  239. package/dist/esm/Entities/ObserverList.test.js +42 -0
  240. package/dist/esm/Entities/ObserverList.test.js.map +1 -0
  241. package/dist/esm/Entities/RangedNumber.js +32 -0
  242. package/dist/esm/Entities/RangedNumber.js.map +1 -0
  243. package/dist/esm/Entities/RangedNumber.test.js +94 -0
  244. package/dist/esm/Entities/RangedNumber.test.js.map +1 -0
  245. package/{src/Entities/index.ts → dist/esm/Entities/index.js} +12 -11
  246. package/dist/esm/Entities/index.js.map +1 -0
  247. package/dist/esm/Types/AppBoundary.js +2 -0
  248. package/dist/esm/Types/AppBoundary.js.map +1 -0
  249. package/dist/esm/Types/EaseFn.js +2 -0
  250. package/dist/esm/Types/EaseFn.js.map +1 -0
  251. package/dist/esm/Types/PmAdapter.js +2 -0
  252. package/dist/esm/Types/PmAdapter.js.map +1 -0
  253. package/dist/esm/Types/SingletonPmAdapter.js +2 -0
  254. package/dist/esm/Types/SingletonPmAdapter.js.map +1 -0
  255. package/{src/Types/index.ts → dist/esm/Types/index.js} +5 -4
  256. package/dist/esm/Types/index.js.map +1 -0
  257. package/dist/esm/Utilities/LengthConverters.js +15 -0
  258. package/dist/esm/Utilities/LengthConverters.js.map +1 -0
  259. package/dist/esm/Utilities/LengthConverters.test.js +22 -0
  260. package/dist/esm/Utilities/LengthConverters.test.js.map +1 -0
  261. package/dist/esm/Utilities/LerpNumber.js +81 -0
  262. package/dist/esm/Utilities/LerpNumber.js.map +1 -0
  263. package/dist/esm/Utilities/LerpNumber.test.js +88 -0
  264. package/dist/esm/Utilities/LerpNumber.test.js.map +1 -0
  265. package/dist/esm/Utilities/degreesToRadians.js +4 -0
  266. package/dist/esm/Utilities/degreesToRadians.js.map +1 -0
  267. package/dist/esm/Utilities/degreesToRadians.test.js +7 -0
  268. package/dist/esm/Utilities/degreesToRadians.test.js.map +1 -0
  269. package/dist/esm/Utilities/easeFunctions.js +183 -0
  270. package/dist/esm/Utilities/easeFunctions.js.map +1 -0
  271. package/dist/esm/Utilities/easeFunctions.test.js +207 -0
  272. package/dist/esm/Utilities/easeFunctions.test.js.map +1 -0
  273. package/dist/esm/Utilities/generateUniqueID.js +5 -0
  274. package/dist/esm/Utilities/generateUniqueID.js.map +1 -0
  275. package/{src/Utilities/index.ts → dist/esm/Utilities/index.js} +6 -6
  276. package/dist/esm/Utilities/index.js.map +1 -0
  277. package/dist/esm/Utilities/interpolateNumber.js +15 -0
  278. package/dist/esm/Utilities/interpolateNumber.js.map +1 -0
  279. package/dist/esm/Utilities/interpolateNumber.test.js +24 -0
  280. package/dist/esm/Utilities/interpolateNumber.test.js.map +1 -0
  281. package/dist/esm/ValueObjects/Angle.js +43 -0
  282. package/dist/esm/ValueObjects/Angle.js.map +1 -0
  283. package/dist/esm/ValueObjects/Angle.test.js +26 -0
  284. package/dist/esm/ValueObjects/Angle.test.js.map +1 -0
  285. package/dist/esm/ValueObjects/Color.js +855 -0
  286. package/dist/esm/ValueObjects/Color.js.map +1 -0
  287. package/dist/esm/ValueObjects/Color.test.js +145 -0
  288. package/dist/esm/ValueObjects/Color.test.js.map +1 -0
  289. package/dist/esm/ValueObjects/LineSegment2D.js +68 -0
  290. package/dist/esm/ValueObjects/LineSegment2D.js.map +1 -0
  291. package/dist/esm/ValueObjects/LineSegment2D.test.js +100 -0
  292. package/dist/esm/ValueObjects/LineSegment2D.test.js.map +1 -0
  293. package/dist/esm/ValueObjects/Matrix.js +462 -0
  294. package/dist/esm/ValueObjects/Matrix.js.map +1 -0
  295. package/dist/esm/ValueObjects/Matrix.test.js +383 -0
  296. package/dist/esm/ValueObjects/Matrix.test.js.map +1 -0
  297. package/dist/esm/ValueObjects/ParametricLine.js +73 -0
  298. package/dist/esm/ValueObjects/ParametricLine.js.map +1 -0
  299. package/dist/esm/ValueObjects/ParametricLine.test.js +124 -0
  300. package/dist/esm/ValueObjects/ParametricLine.test.js.map +1 -0
  301. package/dist/esm/ValueObjects/ParametricPlane.js +61 -0
  302. package/dist/esm/ValueObjects/ParametricPlane.js.map +1 -0
  303. package/dist/esm/ValueObjects/ParametricPlane.test.js +99 -0
  304. package/dist/esm/ValueObjects/ParametricPlane.test.js.map +1 -0
  305. package/dist/esm/ValueObjects/Quaternion.js +286 -0
  306. package/dist/esm/ValueObjects/Quaternion.js.map +1 -0
  307. package/dist/esm/ValueObjects/Quaternion.test.js +238 -0
  308. package/dist/esm/ValueObjects/Quaternion.test.js.map +1 -0
  309. package/dist/esm/ValueObjects/Rectangle.js +20 -0
  310. package/dist/esm/ValueObjects/Rectangle.js.map +1 -0
  311. package/dist/esm/ValueObjects/Rectangle.test.js +30 -0
  312. package/dist/esm/ValueObjects/Rectangle.test.js.map +1 -0
  313. package/dist/esm/ValueObjects/Vector2.js +180 -0
  314. package/dist/esm/ValueObjects/Vector2.js.map +1 -0
  315. package/dist/esm/ValueObjects/Vector2.test.js +134 -0
  316. package/dist/esm/ValueObjects/Vector2.test.js.map +1 -0
  317. package/dist/esm/ValueObjects/Vector3.js +227 -0
  318. package/dist/esm/ValueObjects/Vector3.js.map +1 -0
  319. package/dist/esm/ValueObjects/Vector3.test.js +186 -0
  320. package/dist/esm/ValueObjects/Vector3.test.js.map +1 -0
  321. package/{src/ValueObjects/index.ts → dist/esm/ValueObjects/index.js} +11 -14
  322. package/dist/esm/ValueObjects/index.js.map +1 -0
  323. package/{src/index.ts → dist/esm/index.js} +6 -5
  324. package/dist/esm/index.js.map +1 -0
  325. package/dist/types/AppObject/AppObject.d.ts +15 -0
  326. package/dist/types/AppObject/AppObject.d.ts.map +1 -0
  327. package/dist/types/AppObject/AppObject.test.d.ts +7 -0
  328. package/dist/types/AppObject/AppObject.test.d.ts.map +1 -0
  329. package/dist/types/AppObject/AppObjectComponent.d.ts +26 -0
  330. package/dist/types/AppObject/AppObjectComponent.d.ts.map +1 -0
  331. package/dist/types/AppObject/AppObjectComponent.test.d.ts +2 -0
  332. package/dist/types/AppObject/AppObjectComponent.test.d.ts.map +1 -0
  333. package/dist/types/AppObject/AppObjectController.d.ts +5 -0
  334. package/dist/types/AppObject/AppObjectController.d.ts.map +1 -0
  335. package/dist/types/AppObject/AppObjectEntity.d.ts +16 -0
  336. package/dist/types/AppObject/AppObjectEntity.d.ts.map +1 -0
  337. package/dist/types/AppObject/AppObjectEntity.test.d.ts +2 -0
  338. package/dist/types/AppObject/AppObjectEntity.test.d.ts.map +1 -0
  339. package/dist/types/AppObject/AppObjectEntityRepo.d.ts +16 -0
  340. package/dist/types/AppObject/AppObjectEntityRepo.d.ts.map +1 -0
  341. package/dist/types/AppObject/AppObjectEntityRepo.test.d.ts +2 -0
  342. package/dist/types/AppObject/AppObjectEntityRepo.test.d.ts.map +1 -0
  343. package/dist/types/AppObject/AppObjectPM.d.ts +13 -0
  344. package/dist/types/AppObject/AppObjectPM.d.ts.map +1 -0
  345. package/dist/types/AppObject/AppObjectPM.test.d.ts +2 -0
  346. package/dist/types/AppObject/AppObjectPM.test.d.ts.map +1 -0
  347. package/dist/types/AppObject/AppObjectRepo.d.ts +26 -0
  348. package/dist/types/AppObject/AppObjectRepo.d.ts.map +1 -0
  349. package/dist/types/AppObject/AppObjectRepo.test.d.ts +2 -0
  350. package/dist/types/AppObject/AppObjectRepo.test.d.ts.map +1 -0
  351. package/dist/types/AppObject/AppObjectUC.d.ts +5 -0
  352. package/dist/types/AppObject/AppObjectUC.d.ts.map +1 -0
  353. package/dist/types/AppObject/AppObjectView.d.ts +5 -0
  354. package/dist/types/AppObject/AppObjectView.d.ts.map +1 -0
  355. package/dist/types/AppObject/getSingletonComponent.d.ts +4 -0
  356. package/dist/types/AppObject/getSingletonComponent.d.ts.map +1 -0
  357. package/dist/types/AppObject/getSingletonComponent.test.d.ts +2 -0
  358. package/dist/types/AppObject/getSingletonComponent.test.d.ts.map +1 -0
  359. package/dist/types/AppObject/index.d.ts +11 -0
  360. package/dist/types/AppObject/index.d.ts.map +1 -0
  361. package/dist/types/AppObject/printAppObjectDetails.d.ts +3 -0
  362. package/dist/types/AppObject/printAppObjectDetails.d.ts.map +1 -0
  363. package/dist/types/Entities/MemoizedAngle.d.ts +10 -0
  364. package/dist/types/Entities/MemoizedAngle.d.ts.map +1 -0
  365. package/dist/types/Entities/MemoizedAngle.test.d.ts +2 -0
  366. package/dist/types/Entities/MemoizedAngle.test.d.ts.map +1 -0
  367. package/dist/types/Entities/MemoizedBoolean.d.ts +9 -0
  368. package/dist/types/Entities/MemoizedBoolean.d.ts.map +1 -0
  369. package/dist/types/Entities/MemoizedBoolean.test.d.ts +2 -0
  370. package/dist/types/Entities/MemoizedBoolean.test.d.ts.map +1 -0
  371. package/dist/types/Entities/MemoizedColor.d.ts +10 -0
  372. package/dist/types/Entities/MemoizedColor.d.ts.map +1 -0
  373. package/dist/types/Entities/MemoizedColor.test.d.ts +2 -0
  374. package/dist/types/Entities/MemoizedColor.test.d.ts.map +1 -0
  375. package/dist/types/Entities/MemoizedNumber.d.ts +9 -0
  376. package/dist/types/Entities/MemoizedNumber.d.ts.map +1 -0
  377. package/dist/types/Entities/MemoizedNumber.test.d.ts +2 -0
  378. package/dist/types/Entities/MemoizedNumber.test.d.ts.map +1 -0
  379. package/dist/types/Entities/MemoizedQuaternion.d.ts +10 -0
  380. package/dist/types/Entities/MemoizedQuaternion.d.ts.map +1 -0
  381. package/dist/types/Entities/MemoizedQuaternion.test.d.ts +2 -0
  382. package/dist/types/Entities/MemoizedQuaternion.test.d.ts.map +1 -0
  383. package/dist/types/Entities/MemoizedString.d.ts +9 -0
  384. package/dist/types/Entities/MemoizedString.d.ts.map +1 -0
  385. package/dist/types/Entities/MemoizedString.test.d.ts +2 -0
  386. package/dist/types/Entities/MemoizedString.test.d.ts.map +1 -0
  387. package/dist/types/Entities/MemoizedVector2.d.ts +10 -0
  388. package/dist/types/Entities/MemoizedVector2.d.ts.map +1 -0
  389. package/dist/types/Entities/MemoizedVector2.test.d.ts +2 -0
  390. package/dist/types/Entities/MemoizedVector2.test.d.ts.map +1 -0
  391. package/dist/types/Entities/MemoizedVector3.d.ts +10 -0
  392. package/dist/types/Entities/MemoizedVector3.d.ts.map +1 -0
  393. package/dist/types/Entities/MemoizedVector3.test.d.ts +2 -0
  394. package/dist/types/Entities/MemoizedVector3.test.d.ts.map +1 -0
  395. package/dist/types/Entities/ObservableEntity.d.ts +8 -0
  396. package/dist/types/Entities/ObservableEntity.d.ts.map +1 -0
  397. package/dist/types/Entities/ObservableEntity.test.d.ts +2 -0
  398. package/dist/types/Entities/ObservableEntity.test.d.ts.map +1 -0
  399. package/dist/types/Entities/ObserverList.d.ts +8 -0
  400. package/dist/types/Entities/ObserverList.d.ts.map +1 -0
  401. package/dist/types/Entities/ObserverList.test.d.ts +2 -0
  402. package/dist/types/Entities/ObserverList.test.d.ts.map +1 -0
  403. package/dist/types/Entities/RangedNumber.d.ts +17 -0
  404. package/dist/types/Entities/RangedNumber.d.ts.map +1 -0
  405. package/dist/types/Entities/RangedNumber.test.d.ts +2 -0
  406. package/dist/types/Entities/RangedNumber.test.d.ts.map +1 -0
  407. package/dist/types/Entities/index.d.ts +12 -0
  408. package/dist/types/Entities/index.d.ts.map +1 -0
  409. package/dist/types/Types/AppBoundary.d.ts +11 -0
  410. package/dist/types/Types/AppBoundary.d.ts.map +1 -0
  411. package/dist/types/Types/EaseFn.d.ts +2 -0
  412. package/dist/types/Types/EaseFn.d.ts.map +1 -0
  413. package/dist/types/Types/PmAdapter.d.ts +7 -0
  414. package/dist/types/Types/PmAdapter.d.ts.map +1 -0
  415. package/dist/types/Types/SingletonPmAdapter.d.ts +7 -0
  416. package/dist/types/Types/SingletonPmAdapter.d.ts.map +1 -0
  417. package/dist/types/Types/index.d.ts +5 -0
  418. package/dist/types/Types/index.d.ts.map +1 -0
  419. package/dist/types/Utilities/LengthConverters.d.ts +5 -0
  420. package/dist/types/Utilities/LengthConverters.d.ts.map +1 -0
  421. package/dist/types/Utilities/LengthConverters.test.d.ts +2 -0
  422. package/dist/types/Utilities/LengthConverters.test.d.ts.map +1 -0
  423. package/dist/types/Utilities/LerpNumber.d.ts +57 -0
  424. package/dist/types/Utilities/LerpNumber.d.ts.map +1 -0
  425. package/dist/types/Utilities/LerpNumber.test.d.ts +2 -0
  426. package/dist/types/Utilities/LerpNumber.test.d.ts.map +1 -0
  427. package/dist/types/Utilities/degreesToRadians.d.ts +2 -0
  428. package/dist/types/Utilities/degreesToRadians.d.ts.map +1 -0
  429. package/dist/types/Utilities/degreesToRadians.test.d.ts +2 -0
  430. package/dist/types/Utilities/degreesToRadians.test.d.ts.map +1 -0
  431. package/dist/types/Utilities/easeFunctions.d.ts +24 -0
  432. package/dist/types/Utilities/easeFunctions.d.ts.map +1 -0
  433. package/dist/types/Utilities/easeFunctions.test.d.ts +2 -0
  434. package/dist/types/Utilities/easeFunctions.test.d.ts.map +1 -0
  435. package/dist/types/Utilities/generateUniqueID.d.ts +2 -0
  436. package/dist/types/Utilities/generateUniqueID.d.ts.map +1 -0
  437. package/dist/types/Utilities/index.d.ts +6 -0
  438. package/dist/types/Utilities/index.d.ts.map +1 -0
  439. package/dist/types/Utilities/interpolateNumber.d.ts +2 -0
  440. package/dist/types/Utilities/interpolateNumber.d.ts.map +1 -0
  441. package/dist/types/Utilities/interpolateNumber.test.d.ts +2 -0
  442. package/dist/types/Utilities/interpolateNumber.test.d.ts.map +1 -0
  443. package/dist/types/ValueObjects/Angle.d.ts +27 -0
  444. package/dist/types/ValueObjects/Angle.d.ts.map +1 -0
  445. package/dist/types/ValueObjects/Angle.test.d.ts +2 -0
  446. package/dist/types/ValueObjects/Angle.test.d.ts.map +1 -0
  447. package/dist/types/ValueObjects/Color.d.ts +83 -0
  448. package/dist/types/ValueObjects/Color.d.ts.map +1 -0
  449. package/dist/types/ValueObjects/Color.test.d.ts +2 -0
  450. package/dist/types/ValueObjects/Color.test.d.ts.map +1 -0
  451. package/dist/types/ValueObjects/LineSegment2D.d.ts +12 -0
  452. package/dist/types/ValueObjects/LineSegment2D.d.ts.map +1 -0
  453. package/dist/types/ValueObjects/LineSegment2D.test.d.ts +2 -0
  454. package/dist/types/ValueObjects/LineSegment2D.test.d.ts.map +1 -0
  455. package/dist/types/ValueObjects/Matrix.d.ts +124 -0
  456. package/dist/types/ValueObjects/Matrix.d.ts.map +1 -0
  457. package/dist/types/ValueObjects/Matrix.test.d.ts +2 -0
  458. package/dist/types/ValueObjects/Matrix.test.d.ts.map +1 -0
  459. package/dist/types/ValueObjects/ParametricLine.d.ts +31 -0
  460. package/dist/types/ValueObjects/ParametricLine.d.ts.map +1 -0
  461. package/dist/types/ValueObjects/ParametricLine.test.d.ts +2 -0
  462. package/dist/types/ValueObjects/ParametricLine.test.d.ts.map +1 -0
  463. package/dist/types/ValueObjects/ParametricPlane.d.ts +21 -0
  464. package/dist/types/ValueObjects/ParametricPlane.d.ts.map +1 -0
  465. package/dist/types/ValueObjects/ParametricPlane.test.d.ts +2 -0
  466. package/dist/types/ValueObjects/ParametricPlane.test.d.ts.map +1 -0
  467. package/dist/types/ValueObjects/Quaternion.d.ts +113 -0
  468. package/dist/types/ValueObjects/Quaternion.d.ts.map +1 -0
  469. package/dist/types/ValueObjects/Quaternion.test.d.ts +2 -0
  470. package/dist/types/ValueObjects/Quaternion.test.d.ts.map +1 -0
  471. package/dist/types/ValueObjects/Rectangle.d.ts +16 -0
  472. package/dist/types/ValueObjects/Rectangle.d.ts.map +1 -0
  473. package/dist/types/ValueObjects/Rectangle.test.d.ts +2 -0
  474. package/dist/types/ValueObjects/Rectangle.test.d.ts.map +1 -0
  475. package/dist/types/ValueObjects/Vector2.d.ts +121 -0
  476. package/dist/types/ValueObjects/Vector2.d.ts.map +1 -0
  477. package/dist/types/ValueObjects/Vector2.test.d.ts +2 -0
  478. package/dist/types/ValueObjects/Vector2.test.d.ts.map +1 -0
  479. package/dist/types/ValueObjects/Vector3.d.ts +150 -0
  480. package/dist/types/ValueObjects/Vector3.d.ts.map +1 -0
  481. package/dist/types/ValueObjects/Vector3.test.d.ts +2 -0
  482. package/dist/types/ValueObjects/Vector3.test.d.ts.map +1 -0
  483. package/dist/types/ValueObjects/index.d.ts +11 -0
  484. package/dist/types/ValueObjects/index.d.ts.map +1 -0
  485. package/dist/types/index.d.ts +6 -0
  486. package/dist/types/index.d.ts.map +1 -0
  487. package/package.json +5 -2
  488. package/babel.config.js +0 -12
  489. package/jestconfig.json +0 -10
  490. package/src/AppObject/AppObject.test.ts +0 -158
  491. package/src/AppObject/AppObject.ts +0 -83
  492. package/src/AppObject/AppObjectComponent.test.ts +0 -219
  493. package/src/AppObject/AppObjectComponent.ts +0 -100
  494. package/src/AppObject/AppObjectController.ts +0 -8
  495. package/src/AppObject/AppObjectEntity.test.ts +0 -151
  496. package/src/AppObject/AppObjectEntity.ts +0 -45
  497. package/src/AppObject/AppObjectEntityRepo.test.ts +0 -211
  498. package/src/AppObject/AppObjectEntityRepo.ts +0 -61
  499. package/src/AppObject/AppObjectPM.test.ts +0 -152
  500. package/src/AppObject/AppObjectPM.ts +0 -43
  501. package/src/AppObject/AppObjectRepo.test.ts +0 -317
  502. package/src/AppObject/AppObjectRepo.ts +0 -203
  503. package/src/AppObject/AppObjectUC.ts +0 -5
  504. package/src/AppObject/AppObjectView.ts +0 -5
  505. package/src/AppObject/getSingletonComponent.test.ts +0 -17
  506. package/src/AppObject/getSingletonComponent.ts +0 -9
  507. package/src/AppObject/index.ts +0 -10
  508. package/src/AppObject/printAppObjectDetails.ts +0 -17
  509. package/src/Entities/MemoizedAngle.test.ts +0 -38
  510. package/src/Entities/MemoizedAngle.ts +0 -25
  511. package/src/Entities/MemoizedBoolean.test.ts +0 -45
  512. package/src/Entities/MemoizedBoolean.ts +0 -23
  513. package/src/Entities/MemoizedColor.test.ts +0 -39
  514. package/src/Entities/MemoizedColor.ts +0 -27
  515. package/src/Entities/MemoizedNumber.test.ts +0 -37
  516. package/src/Entities/MemoizedNumber.ts +0 -23
  517. package/src/Entities/MemoizedQuaternion.test.ts +0 -39
  518. package/src/Entities/MemoizedQuaternion.ts +0 -27
  519. package/src/Entities/MemoizedString.test.ts +0 -37
  520. package/src/Entities/MemoizedString.ts +0 -23
  521. package/src/Entities/MemoizedVector2.test.ts +0 -39
  522. package/src/Entities/MemoizedVector2.ts +0 -27
  523. package/src/Entities/MemoizedVector3.test.ts +0 -39
  524. package/src/Entities/MemoizedVector3.ts +0 -27
  525. package/src/Entities/ObservableEntity.test.ts +0 -28
  526. package/src/Entities/ObservableEntity.ts +0 -17
  527. package/src/Entities/ObserverList.test.ts +0 -61
  528. package/src/Entities/ObserverList.ts +0 -24
  529. package/src/Entities/RangedNumber.test.ts +0 -118
  530. package/src/Entities/RangedNumber.ts +0 -45
  531. package/src/Types/AppBoundary.ts +0 -13
  532. package/src/Types/EaseFn.ts +0 -1
  533. package/src/Types/PmAdapter.ts +0 -15
  534. package/src/Types/SingletonPmAdapter.ts +0 -7
  535. package/src/Utilities/LengthConverters.test.ts +0 -30
  536. package/src/Utilities/LengthConverters.ts +0 -18
  537. package/src/Utilities/LerpNumber.test.ts +0 -109
  538. package/src/Utilities/LerpNumber.ts +0 -109
  539. package/src/Utilities/degreesToRadians.test.ts +0 -8
  540. package/src/Utilities/degreesToRadians.ts +0 -3
  541. package/src/Utilities/easeFunctions.test.ts +0 -251
  542. package/src/Utilities/easeFunctions.ts +0 -180
  543. package/src/Utilities/generateUniqueID.ts +0 -5
  544. package/src/Utilities/interpolateNumber.test.ts +0 -28
  545. package/src/Utilities/interpolateNumber.ts +0 -21
  546. package/src/ValueObjects/Angle.test.ts +0 -30
  547. package/src/ValueObjects/Angle.ts +0 -47
  548. package/src/ValueObjects/Color.test.ts +0 -181
  549. package/src/ValueObjects/Color.ts +0 -891
  550. package/src/ValueObjects/LineSegment2D.test.ts +0 -144
  551. package/src/ValueObjects/LineSegment2D.ts +0 -93
  552. package/src/ValueObjects/Matrix.test.ts +0 -498
  553. package/src/ValueObjects/Matrix.ts +0 -567
  554. package/src/ValueObjects/ParametricLine.test.ts +0 -155
  555. package/src/ValueObjects/ParametricLine.ts +0 -114
  556. package/src/ValueObjects/ParametricPlane.test.ts +0 -122
  557. package/src/ValueObjects/ParametricPlane.ts +0 -82
  558. package/src/ValueObjects/Quaternion.test.ts +0 -356
  559. package/src/ValueObjects/Quaternion.ts +0 -353
  560. package/src/ValueObjects/Rectangle.test.ts +0 -32
  561. package/src/ValueObjects/Rectangle.ts +0 -33
  562. package/src/ValueObjects/Vector2.test.ts +0 -167
  563. package/src/ValueObjects/Vector2.ts +0 -209
  564. package/src/ValueObjects/Vector3.test.ts +0 -228
  565. package/src/ValueObjects/Vector3.ts +0 -269
  566. package/tsconfig.build.json +0 -7
  567. package/tsconfig.cjs.json +0 -9
  568. package/tsconfig.esm.json +0 -12
  569. package/tsconfig.json +0 -19
  570. package/tslint.json +0 -11
@@ -1,353 +0,0 @@
1
- import { Angle } from "./Angle";
2
- import { Matrix } from "./Matrix";
3
- import { Vector3 } from "./Vector3";
4
-
5
- export interface QuaternionDTO {
6
- x: number;
7
- y: number;
8
- z: number;
9
- w: number;
10
- }
11
-
12
- export class Quaternion {
13
- /**
14
- * Checks to see if two Quaternions are equal
15
- * @param a Quaternion A
16
- * @param b Quaternion B
17
- * @returns True if they are equal, otherwise false
18
- */
19
- public static Equal(a: Quaternion, b: Quaternion): boolean {
20
- if (a.x === b.x && a.y === b.y && a.z === b.z && a.w === b.w) {
21
- return true;
22
- } else {
23
- return false;
24
- }
25
- }
26
-
27
- /**
28
- * Checks two quaternions to see if they are close
29
- * @param a Quaterion A
30
- * @param b Quaterion B
31
- * @param threshold "Close" threshold. Defaults to 0.001
32
- * @returns True if each of Quaterion's components are within the threshold of each other
33
- */
34
- public static Close(
35
- a: Quaternion,
36
- b: Quaternion,
37
- threshold = 0.001
38
- ): boolean {
39
- const aArray = a.toArray();
40
- const bArray = b.toArray();
41
-
42
- let areClose = true;
43
- for (let i = 0; i < 4; i++) {
44
- let diff = aArray[i] - bArray[i];
45
- if (diff < 0) {
46
- diff = -diff;
47
- }
48
- if (diff > threshold) {
49
- areClose = false;
50
- break;
51
- }
52
- }
53
- return areClose;
54
- }
55
-
56
- /**
57
- * Multiplies A*B
58
- * @param a Quaterion A
59
- * @param b Quaternion B
60
- * @returns The result of A*B
61
- */
62
- public static Multiply(a: Quaternion, b: Quaternion): Quaternion {
63
- const x = a.x * b.w + a.y * b.z - a.z * b.y + a.w * b.x;
64
- const y = -a.x * b.z + a.y * b.w + a.z * b.x + a.w * b.y;
65
- const z = a.x * b.y - a.y * b.x + a.z * b.w + a.w * b.z;
66
- const w = -a.x * b.x - a.y * b.y - a.z * b.z + a.w * b.w;
67
- return Quaternion.FromArray([x, y, z, w]);
68
- }
69
-
70
- /**
71
- * Creates a new Quaterion from an array of values
72
- * @param values The four values of the Quaterion: [x,y,z,w]
73
- * @returns A Quaterion
74
- */
75
- public static FromArray(
76
- values: [number, number, number, number]
77
- ): Quaternion {
78
- return new Quaternion(values[0], values[1], values[2], values[3]);
79
- }
80
-
81
- /**
82
- * Creates a Quaterion from a Data Transfer Object
83
- * @param dto The Data Transfer Object
84
- * @returns The Quaternion
85
- */
86
- public static FromDTO(dto: QuaternionDTO): Quaternion {
87
- return new Quaternion(dto.x, dto.y, dto.z, dto.w);
88
- }
89
-
90
- /**
91
- * Creates an Identity Quaternion
92
- * @returns An Identity Quaternion
93
- */
94
- public static Identity(): Quaternion {
95
- return new Quaternion(0, 0, 0, 1);
96
- }
97
-
98
- /**
99
- * Creates an quaterion about an axis for a given angle
100
- * @param axis The rotation axis
101
- * @param angle The rotation angle
102
- * @returns The resulting Quaterion
103
- */
104
- public static FromAngleAxis(axis: Vector3, angle: Angle): Quaternion {
105
- const sin = Math.sin(angle.radians / 2);
106
- const axisUnit = axis.unit;
107
- const w = Math.cos(angle.radians / 2);
108
- const x = axisUnit.x * sin;
109
- const y = axisUnit.y * sin;
110
- const z = axisUnit.z * sin;
111
- return new Quaternion(x, y, z, w);
112
- }
113
-
114
- public static FromDirectionVector(direction: Vector3): Quaternion {
115
- if (direction.magnitude === 0) {
116
- return Quaternion.Identity();
117
- }
118
-
119
- const dirUnit = direction.unit;
120
-
121
- if (dirUnit.x === 0 && dirUnit.z === 0) {
122
- if (dirUnit.y > 0) {
123
- return Quaternion.FromYawPitchRoll(
124
- Angle.FromDegrees(0),
125
- Angle.FromDegrees(-90),
126
- Angle.FromDegrees(0)
127
- );
128
- } else {
129
- return Quaternion.FromYawPitchRoll(
130
- Angle.FromDegrees(0),
131
- Angle.FromDegrees(90),
132
- Angle.FromDegrees(0)
133
- );
134
- }
135
- }
136
-
137
- const yawRadians = -Math.atan2(dirUnit.z, dirUnit.x) + Math.PI / 2;
138
- const len = Math.sqrt(dirUnit.x * dirUnit.x + dirUnit.z * dirUnit.z);
139
- const pitchRadians = -Math.atan2(dirUnit.y, len);
140
-
141
- const yaw = Angle.FromRadians(yawRadians);
142
- const pitch = Angle.FromRadians(pitchRadians);
143
- const roll = Angle.FromRadians(0);
144
-
145
- return Quaternion.FromYawPitchRoll(yaw, pitch, roll);
146
- }
147
-
148
- /**
149
- * Froms up a Quaternion from the Yaw-Pitch-Roll (Tait-Bryan) convetion
150
- * @param yaw defines the rotation around the y axis
151
- * @param pitch defines the rotation around the x axis
152
- * @param roll defines the rotation around the z axis
153
- * @returns the resulting quaterion
154
- */
155
- public static FromYawPitchRoll(
156
- yaw: Angle,
157
- pitch: Angle,
158
- roll: Angle
159
- ): Quaternion {
160
- const halfRoll = roll.radians * 0.5;
161
- const halfPitch = pitch.radians * 0.5;
162
- const halfYaw = yaw.radians * 0.5;
163
-
164
- const sinRoll = Math.sin(halfRoll);
165
- const cosRoll = Math.cos(halfRoll);
166
- const sinPitch = Math.sin(halfPitch);
167
- const cosPitch = Math.cos(halfPitch);
168
- const sinYaw = Math.sin(halfYaw);
169
- const cosYaw = Math.cos(halfYaw);
170
-
171
- const x = cosYaw * sinPitch * cosRoll + sinYaw * cosPitch * sinRoll;
172
- const y = sinYaw * cosPitch * cosRoll - cosYaw * sinPitch * sinRoll;
173
- const z = cosYaw * cosPitch * sinRoll - sinYaw * sinPitch * cosRoll;
174
- const w = cosYaw * cosPitch * cosRoll + sinYaw * sinPitch * sinRoll;
175
-
176
- return new Quaternion(x, y, z, w);
177
- }
178
-
179
- /**
180
- * Creates a Quaternion from three euler angles.
181
- * @param x Rotation about the x axis
182
- * @param y Rotation about the y axis
183
- * @param z Rotation about the z axis
184
- * @returns The Quaterion
185
- */
186
- public static FromEuler(x: Angle, y: Angle, z: Angle) {
187
- return this.FromYawPitchRoll(y, x, z);
188
- }
189
-
190
- /**
191
- * Returns a new Quaternion that is an invert of A
192
- * @param a The quaternion to invert
193
- * @returns The inverted Quaternion
194
- */
195
- public static Inverse(a: Quaternion): Quaternion {
196
- return new Quaternion(-a.x, -a.y, -a.z, a.w);
197
- }
198
-
199
- public static AngleBetween(a: Quaternion, b: Quaternion): Angle {
200
- const aInv = this.Inverse(a);
201
- const diffQ = this.Multiply(aInv, b);
202
-
203
- const angDeg = diffQ.angle.degrees;
204
- if(angDeg > 180) {
205
- return Angle.FromDegrees(360 - angDeg)
206
- } else {
207
- return diffQ.angle;
208
- }
209
- }
210
-
211
- /**
212
- * Spherically interpolates between two quaternions
213
- * @param initial The initial quaternion
214
- * @param final The final quaterion
215
- * @param percent The percent along the slerp. 0 will return the initial quaterion and 1 will return the final quaterion
216
- * @returns The interpolated quaterion
217
- */
218
- public static Slerp(
219
- initial: Quaternion,
220
- final: Quaternion,
221
- percent: number
222
- ): Quaternion {
223
- let A;
224
- let B;
225
- let C =
226
- initial.x * final.x +
227
- initial.y * final.y +
228
- initial.z * final.z +
229
- initial.w * final.w;
230
- let flip = false;
231
-
232
- if (C < 0) {
233
- flip = true;
234
- C = -C;
235
- }
236
-
237
- if (C > 0.999999) {
238
- B = 1 - percent;
239
- A = flip ? -percent : percent;
240
- } else {
241
- const D = Math.acos(C);
242
- const E = 1.0 / Math.sin(D);
243
- B = Math.sin((1.0 - percent) * D) * E;
244
- A = flip ? -Math.sin(percent * D) * E : Math.sin(percent * D) * E;
245
- }
246
-
247
- const x = B * initial.x + A * final.x;
248
- const y = B * initial.y + A * final.y;
249
- const z = B * initial.z + A * final.z;
250
- const w = B * initial.w + A * final.w;
251
-
252
- return new Quaternion(x, y, z, w);
253
- }
254
-
255
- /**
256
- * Calculates a Quaternion from a rotation matrix
257
- * @param rotationMatrix A normalized, non-scaled rotation matrix
258
- * @returns The Quaterion
259
- */
260
- public static FromRotationMatrix(rotationMatrix: Matrix): Quaternion {
261
- const m = rotationMatrix.m;
262
- const m11 = m[0];
263
- const m12 = m[4];
264
- const m13 = m[8];
265
- const m21 = m[1];
266
- const m22 = m[5];
267
- const m23 = m[9];
268
- const m31 = m[2];
269
- const m32 = m[6];
270
- const m33 = m[10];
271
- const trace = m11 + m22 + m33;
272
- let s;
273
-
274
- let x = 0;
275
- let y = 0;
276
- let z = 0;
277
- let w = 0;
278
- if (trace > 0) {
279
- s = 0.5 / Math.sqrt(trace + 1.0);
280
-
281
- w = 0.25 / s;
282
- x = (m32 - m23) * s;
283
- y = (m13 - m31) * s;
284
- z = (m21 - m12) * s;
285
- } else if (m11 > m22 && m11 > m33) {
286
- s = 2.0 * Math.sqrt(1.0 + m11 - m22 - m33);
287
-
288
- w = (m32 - m23) / s;
289
- x = 0.25 * s;
290
- y = (m12 + m21) / s;
291
- z = (m13 + m31) / s;
292
- } else if (m22 > m33) {
293
- s = 2.0 * Math.sqrt(1.0 + m22 - m11 - m33);
294
-
295
- w = (m13 - m31) / s;
296
- x = (m12 + m21) / s;
297
- y = 0.25 * s;
298
- z = (m23 + m32) / s;
299
- } else {
300
- s = 2.0 * Math.sqrt(1.0 + m33 - m11 - m22);
301
-
302
- w = (m21 - m12) / s;
303
- x = (m13 + m31) / s;
304
- y = (m23 + m32) / s;
305
- z = 0.25 * s;
306
- }
307
-
308
- return new Quaternion(x, y, z, w);
309
- }
310
-
311
- public static ToRotationMatrix(quat: Quaternion): Matrix {
312
- return Matrix.Compose(Vector3.One(), quat, Vector3.Zero());
313
- }
314
-
315
- /**
316
- * Copy the quaternion to an array
317
- * @returns an array populated with 4 elements from the quaternion coordinates
318
- */
319
- toArray(): [number, number, number, number] {
320
- return [this.x, this.y, this.z, this.w];
321
- }
322
-
323
- get angle(): Angle {
324
- const angle = 2 * Math.acos(this.w);
325
- return Angle.FromRadians(angle);
326
- }
327
-
328
- get axis(): Vector3 {
329
- const x = this.x / Math.sqrt(1 - this.w * this.w);
330
- const y = this.y / Math.sqrt(1 - this.w * this.w);
331
- const z = this.z / Math.sqrt(1 - this.w * this.w);
332
- return new Vector3(x, y, z);
333
- }
334
-
335
- /**
336
- * Get the quaternion as a Data Transfer Object
337
- */
338
- get dto(): QuaternionDTO {
339
- return { x: this.x, y: this.y, z: this.z, w: this.w };
340
- }
341
-
342
- readonly x: number;
343
- readonly y: number;
344
- readonly z: number;
345
- readonly w: number;
346
-
347
- constructor(x: number, y: number, z: number, w: number) {
348
- this.x = x;
349
- this.y = y;
350
- this.z = z;
351
- this.w = w;
352
- }
353
- }
@@ -1,32 +0,0 @@
1
- import {Rectangle} from "./Rectangle";
2
-
3
- describe("Rectangle value object", ()=>{
4
- it("Creates and stores the values", ()=>{
5
- const rect = new Rectangle(1,2,3,4);
6
- expect(rect.top).toEqual(1);
7
- expect(rect.right).toEqual(2);
8
- expect(rect.bottom).toEqual(3);
9
- expect(rect.left).toEqual(4);
10
- })
11
-
12
- it("Forms a dto", ()=>{
13
- const rect = new Rectangle(1,2,3,4);
14
- expect(rect.dto.top).toEqual(1);
15
- expect(rect.dto.right).toEqual(2);
16
- expect(rect.dto.bottom).toEqual(3);
17
- expect(rect.dto.left).toEqual(4);
18
- })
19
-
20
- it("Forms a rectangle from the DTO", ()=>{
21
- const rect = Rectangle.FromDTO({
22
- top: 1,
23
- left: 2,
24
- bottom: 3,
25
- right: 4
26
- });
27
- expect(rect.top).toEqual(1);
28
- expect(rect.left).toEqual(2);
29
- expect(rect.bottom).toEqual(3);
30
- expect(rect.right).toEqual(4);
31
- })
32
- })
@@ -1,33 +0,0 @@
1
- export interface RectangleDTO {
2
- top: number;
3
- left: number;
4
- right: number;
5
- bottom: number;
6
- }
7
-
8
- export class Rectangle {
9
- public static FromDTO(dto: RectangleDTO):Rectangle {
10
- return new Rectangle(dto.top, dto.right, dto.bottom, dto.left);
11
- }
12
-
13
- readonly top: number;
14
- readonly left: number;
15
- readonly bottom: number;
16
- readonly right: number;
17
-
18
- get dto(): RectangleDTO {
19
- return {
20
- top: this.top,
21
- bottom: this.bottom,
22
- left: this.left,
23
- right: this.right
24
- };
25
- }
26
-
27
- constructor(top: number, right: number, bottom: number, left: number ) {
28
- this.top = top;
29
- this.bottom = bottom;
30
- this.left = left;
31
- this.right = right;
32
- }
33
- }
@@ -1,167 +0,0 @@
1
- import { Angle } from ".";
2
- import { Vector2 } from "./Vector2";
3
-
4
- describe("Vector 2 value object", () => {
5
- it("Creates a new vector", () => {
6
- const v = new Vector2(2, 5);
7
- expect(v.x).toEqual(2);
8
- expect(v.y).toEqual(5);
9
- });
10
-
11
- it("Returns the magnitude", () => {
12
- expect(new Vector2(0, 5).magnitued).toEqual(5);
13
- expect(new Vector2(0, -5).magnitued).toEqual(5);
14
- expect(new Vector2(5, 0).magnitued).toEqual(5);
15
- expect(new Vector2(-5, 0).magnitued).toEqual(5);
16
- expect(new Vector2(-1, -1).magnitued).toBeCloseTo(1.414);
17
- expect(new Vector2(1, 1).magnitued).toBeCloseTo(1.414);
18
- });
19
-
20
- it("Returns the unit", () => {
21
- expect(new Vector2(0, 5).unit).toEqual(new Vector2(0, 1));
22
- expect(new Vector2(0, -5).unit).toEqual(new Vector2(0, -1));
23
- expect(new Vector2(5, 0).unit).toEqual(new Vector2(1, 0));
24
- expect(new Vector2(-5, 0).unit).toEqual(new Vector2(-1, 0));
25
-
26
- const unit1 = new Vector2(5, 5).unit;
27
- expect(unit1.x).toBeCloseTo(0.707);
28
- expect(unit1.y).toBeCloseTo(0.707);
29
- });
30
-
31
- it("Retuns theta", () => {
32
- expect(new Vector2(0, 5).theta).toBeCloseTo(90);
33
- expect(new Vector2(0, -5).theta).toBeCloseTo(-90);
34
- expect(new Vector2(5, 0).theta).toBeCloseTo(0);
35
- expect(new Vector2(-5, 0).theta).toBeCloseTo(180);
36
- });
37
-
38
- test("Returns the vector as an array", () => {
39
- const v1 = new Vector2(1, 2);
40
-
41
- expect(v1.array[0]).toEqual(1);
42
- expect(v1.array[1]).toEqual(2);
43
- });
44
- });
45
-
46
- describe("Vector 2 static actions", () => {
47
- it("Create a zero vector", () => {
48
- expect(Vector2.Zero()).toEqual(new Vector2(0, 0));
49
- });
50
-
51
- it("Create a one vector", () => {
52
- expect(Vector2.One()).toEqual(new Vector2(1, 1));
53
- });
54
-
55
- it("Check for vectors to be Equal", () => {
56
- const v1 = new Vector2(1, 2);
57
- const v2 = new Vector2(2, 3);
58
- const v3 = new Vector2(1, 2);
59
-
60
- expect(Vector2.Equal(v1, v2)).toEqual(false);
61
- expect(Vector2.Equal(v1, v3)).toEqual(true);
62
- });
63
-
64
- it("Adds vectors", () => {
65
- const v1 = new Vector2(1, 2);
66
- const v2 = new Vector2(2, 3);
67
- const v3 = Vector2.Add(v1, v2);
68
-
69
- expect(v3).toEqual(new Vector2(3, 5));
70
- });
71
-
72
- it("Subtracts vectors", () => {
73
- const v1 = new Vector2(1, 2);
74
- const v2 = new Vector2(2, 3);
75
- const v3 = Vector2.Subtract(v1, v2);
76
-
77
- expect(v3).toEqual(new Vector2(-1, -1));
78
- });
79
-
80
- it("Checks to see if vectors are close using a default threshold", () => {
81
- const v1 = new Vector2(1, 2);
82
- const v2 = new Vector2(1.001, 2.001);
83
- const v3 = new Vector2(1.1, 2.1);
84
-
85
- expect(Vector2.Close(v1, v2)).toEqual(true);
86
- expect(Vector2.Close(v1, v3)).toEqual(false);
87
- });
88
-
89
- it("Checks to see if vectors are close using a passed threshold", () => {
90
- const v1 = new Vector2(1, 2);
91
- const v2 = new Vector2(1.1, 2.1);
92
- const v3 = new Vector2(2, 3);
93
-
94
- expect(Vector2.Close(v1, v2, 1)).toEqual(true);
95
- expect(Vector2.Close(v1, v3, 1)).toEqual(false);
96
- });
97
-
98
- it("Rotates to a new vector", () => {
99
- const v1 = new Vector2(1, 2);
100
-
101
- const r1 = Vector2.Rotate(v1, Angle.FromDegrees(90));
102
- expect(r1.x).toBeCloseTo(-2);
103
- expect(r1.y).toBeCloseTo(1);
104
-
105
- const r2 = Vector2.Rotate(v1, Angle.FromDegrees(-90));
106
- expect(r2.x).toBeCloseTo(2);
107
- expect(r2.y).toBeCloseTo(-1);
108
- });
109
-
110
- it("Scales a vector", () => {
111
- const v1 = new Vector2(1, 2);
112
- const scaled = Vector2.Scale(v1, 3);
113
- expect(scaled).toEqual(new Vector2(3, 6));
114
- });
115
-
116
- it("Make a new vector of length", () => {
117
- const v1 = new Vector2(1, 1);
118
- const lengthened = Vector2.NewVectorOfLength(v1, 3);
119
- expect(lengthened.x).toBeCloseTo(2.12);
120
- expect(lengthened.y).toBeCloseTo(2.12);
121
- });
122
-
123
- it("Calculates the dot between two vectors", () => {
124
- // https://onlinemschool.com/math/assistance/vector/multiply/
125
- const v1 = new Vector2(1, 2);
126
- const v2 = new Vector2(5, 6);
127
-
128
- const dot = Vector2.Dot(v1, v2);
129
- expect(dot).toEqual(17);
130
- });
131
-
132
- it("Calculates the angle between two vectors", () => {
133
- // https://www.omnicalculator.com/math/angle-between-two-vectors
134
- const v1 = new Vector2(1, 2);
135
- const v2 = new Vector2(3, 4);
136
-
137
- const angle = Vector2.AngleBetween(v1, v2);
138
- expect(angle.degrees).toBeCloseTo(10.305);
139
- });
140
-
141
- it("Calculates a Cross product", () => {
142
- const v1 = new Vector2(1, 2);
143
- const v2 = new Vector2(3, 4);
144
-
145
- const cross = Vector2.Cross(v1, v2);
146
- expect(cross).toEqual(-2);
147
- });
148
-
149
- it("Gets the Data Transfer Object", () => {
150
- const vec = new Vector2(1, 2);
151
-
152
- expect(vec.dto).toEqual({
153
- x: 1,
154
- y: 2
155
- });
156
- });
157
-
158
- it("Makes a vector from a DTO", () => {
159
- const vec = Vector2.FromDTO({
160
- x: 1,
161
- y: 2
162
- });
163
-
164
- expect(vec.x).toEqual(1);
165
- expect(vec.y).toEqual(2);
166
- });
167
- });