@vived/core 1.2.0 → 1.2.2

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 (491) hide show
  1. package/package.json +12 -7
  2. package/tsconfig.cjs.json +4 -7
  3. package/tsconfig.json +2 -1
  4. package/dist/cjs/AppObject/AppObject.js +0 -59
  5. package/dist/cjs/AppObject/AppObject.js.map +0 -1
  6. package/dist/cjs/AppObject/AppObject.test.js +0 -113
  7. package/dist/cjs/AppObject/AppObject.test.js.map +0 -1
  8. package/dist/cjs/AppObject/AppObjectComponent.js +0 -82
  9. package/dist/cjs/AppObject/AppObjectComponent.js.map +0 -1
  10. package/dist/cjs/AppObject/AppObjectComponent.test.js +0 -132
  11. package/dist/cjs/AppObject/AppObjectComponent.test.js.map +0 -1
  12. package/dist/cjs/AppObject/AppObjectController.js +0 -12
  13. package/dist/cjs/AppObject/AppObjectController.js.map +0 -1
  14. package/dist/cjs/AppObject/AppObjectEntity.js +0 -38
  15. package/dist/cjs/AppObject/AppObjectEntity.js.map +0 -1
  16. package/dist/cjs/AppObject/AppObjectEntity.test.js +0 -108
  17. package/dist/cjs/AppObject/AppObjectEntity.test.js.map +0 -1
  18. package/dist/cjs/AppObject/AppObjectEntityRepo.js +0 -56
  19. package/dist/cjs/AppObject/AppObjectEntityRepo.js.map +0 -1
  20. package/dist/cjs/AppObject/AppObjectEntityRepo.test.js +0 -149
  21. package/dist/cjs/AppObject/AppObjectEntityRepo.test.js.map +0 -1
  22. package/dist/cjs/AppObject/AppObjectPM.js +0 -40
  23. package/dist/cjs/AppObject/AppObjectPM.js.map +0 -1
  24. package/dist/cjs/AppObject/AppObjectPM.test.js +0 -103
  25. package/dist/cjs/AppObject/AppObjectPM.test.js.map +0 -1
  26. package/dist/cjs/AppObject/AppObjectRepo.js +0 -133
  27. package/dist/cjs/AppObject/AppObjectRepo.js.map +0 -1
  28. package/dist/cjs/AppObject/AppObjectRepo.test.js +0 -213
  29. package/dist/cjs/AppObject/AppObjectRepo.test.js.map +0 -1
  30. package/dist/cjs/AppObject/AppObjectUC.js +0 -12
  31. package/dist/cjs/AppObject/AppObjectUC.js.map +0 -1
  32. package/dist/cjs/AppObject/AppObjectView.js +0 -12
  33. package/dist/cjs/AppObject/AppObjectView.js.map +0 -1
  34. package/dist/cjs/AppObject/getSingletonComponent.js +0 -7
  35. package/dist/cjs/AppObject/getSingletonComponent.js.map +0 -1
  36. package/dist/cjs/AppObject/getSingletonComponent.test.js +0 -13
  37. package/dist/cjs/AppObject/getSingletonComponent.test.js.map +0 -1
  38. package/dist/cjs/AppObject/index.js +0 -27
  39. package/dist/cjs/AppObject/index.js.map +0 -1
  40. package/dist/cjs/AppObject/printAppObjectDetails.js +0 -18
  41. package/dist/cjs/AppObject/printAppObjectDetails.js.map +0 -1
  42. package/dist/cjs/Entities/MemoizedAngle.js +0 -23
  43. package/dist/cjs/Entities/MemoizedAngle.js.map +0 -1
  44. package/dist/cjs/Entities/MemoizedAngle.test.js +0 -30
  45. package/dist/cjs/Entities/MemoizedAngle.test.js.map +0 -1
  46. package/dist/cjs/Entities/MemoizedBoolean.js +0 -23
  47. package/dist/cjs/Entities/MemoizedBoolean.js.map +0 -1
  48. package/dist/cjs/Entities/MemoizedBoolean.test.js +0 -34
  49. package/dist/cjs/Entities/MemoizedBoolean.test.js.map +0 -1
  50. package/dist/cjs/Entities/MemoizedColor.js +0 -24
  51. package/dist/cjs/Entities/MemoizedColor.js.map +0 -1
  52. package/dist/cjs/Entities/MemoizedColor.test.js +0 -32
  53. package/dist/cjs/Entities/MemoizedColor.test.js.map +0 -1
  54. package/dist/cjs/Entities/MemoizedNumber.js +0 -23
  55. package/dist/cjs/Entities/MemoizedNumber.js.map +0 -1
  56. package/dist/cjs/Entities/MemoizedNumber.test.js +0 -29
  57. package/dist/cjs/Entities/MemoizedNumber.test.js.map +0 -1
  58. package/dist/cjs/Entities/MemoizedQuaternion.js +0 -24
  59. package/dist/cjs/Entities/MemoizedQuaternion.js.map +0 -1
  60. package/dist/cjs/Entities/MemoizedQuaternion.test.js +0 -32
  61. package/dist/cjs/Entities/MemoizedQuaternion.test.js.map +0 -1
  62. package/dist/cjs/Entities/MemoizedString.js +0 -23
  63. package/dist/cjs/Entities/MemoizedString.js.map +0 -1
  64. package/dist/cjs/Entities/MemoizedString.test.js +0 -29
  65. package/dist/cjs/Entities/MemoizedString.test.js.map +0 -1
  66. package/dist/cjs/Entities/MemoizedVector2.js +0 -24
  67. package/dist/cjs/Entities/MemoizedVector2.js.map +0 -1
  68. package/dist/cjs/Entities/MemoizedVector2.test.js +0 -32
  69. package/dist/cjs/Entities/MemoizedVector2.test.js.map +0 -1
  70. package/dist/cjs/Entities/MemoizedVector3.js +0 -24
  71. package/dist/cjs/Entities/MemoizedVector3.js.map +0 -1
  72. package/dist/cjs/Entities/MemoizedVector3.test.js +0 -32
  73. package/dist/cjs/Entities/MemoizedVector3.test.js.map +0 -1
  74. package/dist/cjs/Entities/ObservableEntity.js +0 -20
  75. package/dist/cjs/Entities/ObservableEntity.js.map +0 -1
  76. package/dist/cjs/Entities/ObservableEntity.test.js +0 -25
  77. package/dist/cjs/Entities/ObservableEntity.test.js.map +0 -1
  78. package/dist/cjs/Entities/ObserverList.js +0 -27
  79. package/dist/cjs/Entities/ObserverList.js.map +0 -1
  80. package/dist/cjs/Entities/ObserverList.test.js +0 -44
  81. package/dist/cjs/Entities/ObserverList.test.js.map +0 -1
  82. package/dist/cjs/Entities/RangedNumber.js +0 -36
  83. package/dist/cjs/Entities/RangedNumber.js.map +0 -1
  84. package/dist/cjs/Entities/RangedNumber.test.js +0 -96
  85. package/dist/cjs/Entities/RangedNumber.test.js.map +0 -1
  86. package/dist/cjs/Entities/index.js +0 -28
  87. package/dist/cjs/Entities/index.js.map +0 -1
  88. package/dist/cjs/Types/AppBoundary.js +0 -3
  89. package/dist/cjs/Types/AppBoundary.js.map +0 -1
  90. package/dist/cjs/Types/EaseFn.js +0 -3
  91. package/dist/cjs/Types/EaseFn.js.map +0 -1
  92. package/dist/cjs/Types/PmAdapter.js +0 -3
  93. package/dist/cjs/Types/PmAdapter.js.map +0 -1
  94. package/dist/cjs/Types/SingletonPmAdapter.js +0 -3
  95. package/dist/cjs/Types/SingletonPmAdapter.js.map +0 -1
  96. package/dist/cjs/Types/index.js +0 -21
  97. package/dist/cjs/Types/index.js.map +0 -1
  98. package/dist/cjs/Utilities/LengthConverters.js +0 -21
  99. package/dist/cjs/Utilities/LengthConverters.js.map +0 -1
  100. package/dist/cjs/Utilities/LengthConverters.test.js +0 -24
  101. package/dist/cjs/Utilities/LengthConverters.test.js.map +0 -1
  102. package/dist/cjs/Utilities/LerpNumber.js +0 -85
  103. package/dist/cjs/Utilities/LerpNumber.js.map +0 -1
  104. package/dist/cjs/Utilities/LerpNumber.test.js +0 -90
  105. package/dist/cjs/Utilities/LerpNumber.test.js.map +0 -1
  106. package/dist/cjs/Utilities/degreesToRadians.js +0 -7
  107. package/dist/cjs/Utilities/degreesToRadians.js.map +0 -1
  108. package/dist/cjs/Utilities/degreesToRadians.test.js +0 -9
  109. package/dist/cjs/Utilities/degreesToRadians.test.js.map +0 -1
  110. package/dist/cjs/Utilities/easeFunctions.js +0 -208
  111. package/dist/cjs/Utilities/easeFunctions.js.map +0 -1
  112. package/dist/cjs/Utilities/easeFunctions.test.js +0 -209
  113. package/dist/cjs/Utilities/easeFunctions.test.js.map +0 -1
  114. package/dist/cjs/Utilities/generateUniqueID.js +0 -8
  115. package/dist/cjs/Utilities/generateUniqueID.js.map +0 -1
  116. package/dist/cjs/Utilities/index.js +0 -22
  117. package/dist/cjs/Utilities/index.js.map +0 -1
  118. package/dist/cjs/Utilities/interpolateNumber.js +0 -18
  119. package/dist/cjs/Utilities/interpolateNumber.js.map +0 -1
  120. package/dist/cjs/Utilities/interpolateNumber.test.js +0 -26
  121. package/dist/cjs/Utilities/interpolateNumber.test.js.map +0 -1
  122. package/dist/cjs/ValueObjects/Angle.js +0 -47
  123. package/dist/cjs/ValueObjects/Angle.js.map +0 -1
  124. package/dist/cjs/ValueObjects/Angle.test.js +0 -28
  125. package/dist/cjs/ValueObjects/Angle.test.js.map +0 -1
  126. package/dist/cjs/ValueObjects/Color.js +0 -859
  127. package/dist/cjs/ValueObjects/Color.js.map +0 -1
  128. package/dist/cjs/ValueObjects/Color.test.js +0 -147
  129. package/dist/cjs/ValueObjects/Color.test.js.map +0 -1
  130. package/dist/cjs/ValueObjects/LineSegment2D.js +0 -72
  131. package/dist/cjs/ValueObjects/LineSegment2D.js.map +0 -1
  132. package/dist/cjs/ValueObjects/LineSegment2D.test.js +0 -102
  133. package/dist/cjs/ValueObjects/LineSegment2D.test.js.map +0 -1
  134. package/dist/cjs/ValueObjects/Matrix.js +0 -466
  135. package/dist/cjs/ValueObjects/Matrix.js.map +0 -1
  136. package/dist/cjs/ValueObjects/Matrix.test.js +0 -385
  137. package/dist/cjs/ValueObjects/Matrix.test.js.map +0 -1
  138. package/dist/cjs/ValueObjects/ParametricLine.js +0 -77
  139. package/dist/cjs/ValueObjects/ParametricLine.js.map +0 -1
  140. package/dist/cjs/ValueObjects/ParametricLine.test.js +0 -126
  141. package/dist/cjs/ValueObjects/ParametricLine.test.js.map +0 -1
  142. package/dist/cjs/ValueObjects/ParametricPlane.js +0 -65
  143. package/dist/cjs/ValueObjects/ParametricPlane.js.map +0 -1
  144. package/dist/cjs/ValueObjects/ParametricPlane.test.js +0 -101
  145. package/dist/cjs/ValueObjects/ParametricPlane.test.js.map +0 -1
  146. package/dist/cjs/ValueObjects/Quaternion.js +0 -290
  147. package/dist/cjs/ValueObjects/Quaternion.js.map +0 -1
  148. package/dist/cjs/ValueObjects/Quaternion.test.js +0 -240
  149. package/dist/cjs/ValueObjects/Quaternion.test.js.map +0 -1
  150. package/dist/cjs/ValueObjects/Rectangle.js +0 -24
  151. package/dist/cjs/ValueObjects/Rectangle.js.map +0 -1
  152. package/dist/cjs/ValueObjects/Rectangle.test.js +0 -32
  153. package/dist/cjs/ValueObjects/Rectangle.test.js.map +0 -1
  154. package/dist/cjs/ValueObjects/Vector2.js +0 -184
  155. package/dist/cjs/ValueObjects/Vector2.js.map +0 -1
  156. package/dist/cjs/ValueObjects/Vector2.test.js +0 -136
  157. package/dist/cjs/ValueObjects/Vector2.test.js.map +0 -1
  158. package/dist/cjs/ValueObjects/Vector3.js +0 -231
  159. package/dist/cjs/ValueObjects/Vector3.js.map +0 -1
  160. package/dist/cjs/ValueObjects/Vector3.test.js +0 -188
  161. package/dist/cjs/ValueObjects/Vector3.test.js.map +0 -1
  162. package/dist/cjs/ValueObjects/index.js +0 -27
  163. package/dist/cjs/ValueObjects/index.js.map +0 -1
  164. package/dist/cjs/index.js +0 -22
  165. package/dist/cjs/index.js.map +0 -1
  166. package/dist/esm/AppObject/AppObject.js +0 -54
  167. package/dist/esm/AppObject/AppObject.js.map +0 -1
  168. package/dist/esm/AppObject/AppObject.test.js +0 -110
  169. package/dist/esm/AppObject/AppObject.test.js.map +0 -1
  170. package/dist/esm/AppObject/AppObjectComponent.js +0 -78
  171. package/dist/esm/AppObject/AppObjectComponent.js.map +0 -1
  172. package/dist/esm/AppObject/AppObjectComponent.test.js +0 -130
  173. package/dist/esm/AppObject/AppObjectComponent.test.js.map +0 -1
  174. package/dist/esm/AppObject/AppObjectController.js +0 -8
  175. package/dist/esm/AppObject/AppObjectController.js.map +0 -1
  176. package/dist/esm/AppObject/AppObjectEntity.js +0 -34
  177. package/dist/esm/AppObject/AppObjectEntity.js.map +0 -1
  178. package/dist/esm/AppObject/AppObjectEntity.test.js +0 -106
  179. package/dist/esm/AppObject/AppObjectEntity.test.js.map +0 -1
  180. package/dist/esm/AppObject/AppObjectEntityRepo.js +0 -52
  181. package/dist/esm/AppObject/AppObjectEntityRepo.js.map +0 -1
  182. package/dist/esm/AppObject/AppObjectEntityRepo.test.js +0 -147
  183. package/dist/esm/AppObject/AppObjectEntityRepo.test.js.map +0 -1
  184. package/dist/esm/AppObject/AppObjectPM.js +0 -36
  185. package/dist/esm/AppObject/AppObjectPM.js.map +0 -1
  186. package/dist/esm/AppObject/AppObjectPM.test.js +0 -101
  187. package/dist/esm/AppObject/AppObjectPM.test.js.map +0 -1
  188. package/dist/esm/AppObject/AppObjectRepo.js +0 -128
  189. package/dist/esm/AppObject/AppObjectRepo.js.map +0 -1
  190. package/dist/esm/AppObject/AppObjectRepo.test.js +0 -211
  191. package/dist/esm/AppObject/AppObjectRepo.test.js.map +0 -1
  192. package/dist/esm/AppObject/AppObjectUC.js +0 -8
  193. package/dist/esm/AppObject/AppObjectUC.js.map +0 -1
  194. package/dist/esm/AppObject/AppObjectView.js +0 -8
  195. package/dist/esm/AppObject/AppObjectView.js.map +0 -1
  196. package/dist/esm/AppObject/getSingletonComponent.js +0 -4
  197. package/dist/esm/AppObject/getSingletonComponent.js.map +0 -1
  198. package/dist/esm/AppObject/getSingletonComponent.test.js +0 -11
  199. package/dist/esm/AppObject/getSingletonComponent.test.js.map +0 -1
  200. package/dist/esm/AppObject/index.js +0 -11
  201. package/dist/esm/AppObject/index.js.map +0 -1
  202. package/dist/esm/AppObject/printAppObjectDetails.js +0 -15
  203. package/dist/esm/AppObject/printAppObjectDetails.js.map +0 -1
  204. package/dist/esm/Entities/MemoizedAngle.js +0 -19
  205. package/dist/esm/Entities/MemoizedAngle.js.map +0 -1
  206. package/dist/esm/Entities/MemoizedAngle.test.js +0 -28
  207. package/dist/esm/Entities/MemoizedAngle.test.js.map +0 -1
  208. package/dist/esm/Entities/MemoizedBoolean.js +0 -19
  209. package/dist/esm/Entities/MemoizedBoolean.js.map +0 -1
  210. package/dist/esm/Entities/MemoizedBoolean.test.js +0 -32
  211. package/dist/esm/Entities/MemoizedBoolean.test.js.map +0 -1
  212. package/dist/esm/Entities/MemoizedColor.js +0 -20
  213. package/dist/esm/Entities/MemoizedColor.js.map +0 -1
  214. package/dist/esm/Entities/MemoizedColor.test.js +0 -30
  215. package/dist/esm/Entities/MemoizedColor.test.js.map +0 -1
  216. package/dist/esm/Entities/MemoizedNumber.js +0 -19
  217. package/dist/esm/Entities/MemoizedNumber.js.map +0 -1
  218. package/dist/esm/Entities/MemoizedNumber.test.js +0 -27
  219. package/dist/esm/Entities/MemoizedNumber.test.js.map +0 -1
  220. package/dist/esm/Entities/MemoizedQuaternion.js +0 -20
  221. package/dist/esm/Entities/MemoizedQuaternion.js.map +0 -1
  222. package/dist/esm/Entities/MemoizedQuaternion.test.js +0 -30
  223. package/dist/esm/Entities/MemoizedQuaternion.test.js.map +0 -1
  224. package/dist/esm/Entities/MemoizedString.js +0 -19
  225. package/dist/esm/Entities/MemoizedString.js.map +0 -1
  226. package/dist/esm/Entities/MemoizedString.test.js +0 -27
  227. package/dist/esm/Entities/MemoizedString.test.js.map +0 -1
  228. package/dist/esm/Entities/MemoizedVector2.js +0 -20
  229. package/dist/esm/Entities/MemoizedVector2.js.map +0 -1
  230. package/dist/esm/Entities/MemoizedVector2.test.js +0 -30
  231. package/dist/esm/Entities/MemoizedVector2.test.js.map +0 -1
  232. package/dist/esm/Entities/MemoizedVector3.js +0 -20
  233. package/dist/esm/Entities/MemoizedVector3.js.map +0 -1
  234. package/dist/esm/Entities/MemoizedVector3.test.js +0 -30
  235. package/dist/esm/Entities/MemoizedVector3.test.js.map +0 -1
  236. package/dist/esm/Entities/ObservableEntity.js +0 -16
  237. package/dist/esm/Entities/ObservableEntity.js.map +0 -1
  238. package/dist/esm/Entities/ObservableEntity.test.js +0 -23
  239. package/dist/esm/Entities/ObservableEntity.test.js.map +0 -1
  240. package/dist/esm/Entities/ObserverList.js +0 -23
  241. package/dist/esm/Entities/ObserverList.js.map +0 -1
  242. package/dist/esm/Entities/ObserverList.test.js +0 -42
  243. package/dist/esm/Entities/ObserverList.test.js.map +0 -1
  244. package/dist/esm/Entities/RangedNumber.js +0 -32
  245. package/dist/esm/Entities/RangedNumber.js.map +0 -1
  246. package/dist/esm/Entities/RangedNumber.test.js +0 -94
  247. package/dist/esm/Entities/RangedNumber.test.js.map +0 -1
  248. package/dist/esm/Entities/index.js +0 -12
  249. package/dist/esm/Entities/index.js.map +0 -1
  250. package/dist/esm/Types/AppBoundary.js +0 -2
  251. package/dist/esm/Types/AppBoundary.js.map +0 -1
  252. package/dist/esm/Types/EaseFn.js +0 -2
  253. package/dist/esm/Types/EaseFn.js.map +0 -1
  254. package/dist/esm/Types/PmAdapter.js +0 -2
  255. package/dist/esm/Types/PmAdapter.js.map +0 -1
  256. package/dist/esm/Types/SingletonPmAdapter.js +0 -2
  257. package/dist/esm/Types/SingletonPmAdapter.js.map +0 -1
  258. package/dist/esm/Types/index.js +0 -5
  259. package/dist/esm/Types/index.js.map +0 -1
  260. package/dist/esm/Utilities/LengthConverters.js +0 -15
  261. package/dist/esm/Utilities/LengthConverters.js.map +0 -1
  262. package/dist/esm/Utilities/LengthConverters.test.js +0 -22
  263. package/dist/esm/Utilities/LengthConverters.test.js.map +0 -1
  264. package/dist/esm/Utilities/LerpNumber.js +0 -81
  265. package/dist/esm/Utilities/LerpNumber.js.map +0 -1
  266. package/dist/esm/Utilities/LerpNumber.test.js +0 -88
  267. package/dist/esm/Utilities/LerpNumber.test.js.map +0 -1
  268. package/dist/esm/Utilities/degreesToRadians.js +0 -4
  269. package/dist/esm/Utilities/degreesToRadians.js.map +0 -1
  270. package/dist/esm/Utilities/degreesToRadians.test.js +0 -7
  271. package/dist/esm/Utilities/degreesToRadians.test.js.map +0 -1
  272. package/dist/esm/Utilities/easeFunctions.js +0 -183
  273. package/dist/esm/Utilities/easeFunctions.js.map +0 -1
  274. package/dist/esm/Utilities/easeFunctions.test.js +0 -207
  275. package/dist/esm/Utilities/easeFunctions.test.js.map +0 -1
  276. package/dist/esm/Utilities/generateUniqueID.js +0 -5
  277. package/dist/esm/Utilities/generateUniqueID.js.map +0 -1
  278. package/dist/esm/Utilities/index.js +0 -6
  279. package/dist/esm/Utilities/index.js.map +0 -1
  280. package/dist/esm/Utilities/interpolateNumber.js +0 -15
  281. package/dist/esm/Utilities/interpolateNumber.js.map +0 -1
  282. package/dist/esm/Utilities/interpolateNumber.test.js +0 -24
  283. package/dist/esm/Utilities/interpolateNumber.test.js.map +0 -1
  284. package/dist/esm/ValueObjects/Angle.js +0 -43
  285. package/dist/esm/ValueObjects/Angle.js.map +0 -1
  286. package/dist/esm/ValueObjects/Angle.test.js +0 -26
  287. package/dist/esm/ValueObjects/Angle.test.js.map +0 -1
  288. package/dist/esm/ValueObjects/Color.js +0 -855
  289. package/dist/esm/ValueObjects/Color.js.map +0 -1
  290. package/dist/esm/ValueObjects/Color.test.js +0 -145
  291. package/dist/esm/ValueObjects/Color.test.js.map +0 -1
  292. package/dist/esm/ValueObjects/LineSegment2D.js +0 -68
  293. package/dist/esm/ValueObjects/LineSegment2D.js.map +0 -1
  294. package/dist/esm/ValueObjects/LineSegment2D.test.js +0 -100
  295. package/dist/esm/ValueObjects/LineSegment2D.test.js.map +0 -1
  296. package/dist/esm/ValueObjects/Matrix.js +0 -462
  297. package/dist/esm/ValueObjects/Matrix.js.map +0 -1
  298. package/dist/esm/ValueObjects/Matrix.test.js +0 -383
  299. package/dist/esm/ValueObjects/Matrix.test.js.map +0 -1
  300. package/dist/esm/ValueObjects/ParametricLine.js +0 -73
  301. package/dist/esm/ValueObjects/ParametricLine.js.map +0 -1
  302. package/dist/esm/ValueObjects/ParametricLine.test.js +0 -124
  303. package/dist/esm/ValueObjects/ParametricLine.test.js.map +0 -1
  304. package/dist/esm/ValueObjects/ParametricPlane.js +0 -61
  305. package/dist/esm/ValueObjects/ParametricPlane.js.map +0 -1
  306. package/dist/esm/ValueObjects/ParametricPlane.test.js +0 -99
  307. package/dist/esm/ValueObjects/ParametricPlane.test.js.map +0 -1
  308. package/dist/esm/ValueObjects/Quaternion.js +0 -286
  309. package/dist/esm/ValueObjects/Quaternion.js.map +0 -1
  310. package/dist/esm/ValueObjects/Quaternion.test.js +0 -238
  311. package/dist/esm/ValueObjects/Quaternion.test.js.map +0 -1
  312. package/dist/esm/ValueObjects/Rectangle.js +0 -20
  313. package/dist/esm/ValueObjects/Rectangle.js.map +0 -1
  314. package/dist/esm/ValueObjects/Rectangle.test.js +0 -30
  315. package/dist/esm/ValueObjects/Rectangle.test.js.map +0 -1
  316. package/dist/esm/ValueObjects/Vector2.js +0 -180
  317. package/dist/esm/ValueObjects/Vector2.js.map +0 -1
  318. package/dist/esm/ValueObjects/Vector2.test.js +0 -134
  319. package/dist/esm/ValueObjects/Vector2.test.js.map +0 -1
  320. package/dist/esm/ValueObjects/Vector3.js +0 -227
  321. package/dist/esm/ValueObjects/Vector3.js.map +0 -1
  322. package/dist/esm/ValueObjects/Vector3.test.js +0 -186
  323. package/dist/esm/ValueObjects/Vector3.test.js.map +0 -1
  324. package/dist/esm/ValueObjects/index.js +0 -11
  325. package/dist/esm/ValueObjects/index.js.map +0 -1
  326. package/dist/esm/index.js +0 -6
  327. package/dist/esm/index.js.map +0 -1
  328. package/dist/tsconfig.cjs.tsbuildinfo +0 -1
  329. package/dist/tsconfig.esm.tsbuildinfo +0 -1
  330. package/dist/types/AppObject/AppObject.d.ts +0 -15
  331. package/dist/types/AppObject/AppObject.d.ts.map +0 -1
  332. package/dist/types/AppObject/AppObject.test.d.ts +0 -7
  333. package/dist/types/AppObject/AppObject.test.d.ts.map +0 -1
  334. package/dist/types/AppObject/AppObjectComponent.d.ts +0 -26
  335. package/dist/types/AppObject/AppObjectComponent.d.ts.map +0 -1
  336. package/dist/types/AppObject/AppObjectComponent.test.d.ts +0 -2
  337. package/dist/types/AppObject/AppObjectComponent.test.d.ts.map +0 -1
  338. package/dist/types/AppObject/AppObjectController.d.ts +0 -5
  339. package/dist/types/AppObject/AppObjectController.d.ts.map +0 -1
  340. package/dist/types/AppObject/AppObjectEntity.d.ts +0 -16
  341. package/dist/types/AppObject/AppObjectEntity.d.ts.map +0 -1
  342. package/dist/types/AppObject/AppObjectEntity.test.d.ts +0 -2
  343. package/dist/types/AppObject/AppObjectEntity.test.d.ts.map +0 -1
  344. package/dist/types/AppObject/AppObjectEntityRepo.d.ts +0 -16
  345. package/dist/types/AppObject/AppObjectEntityRepo.d.ts.map +0 -1
  346. package/dist/types/AppObject/AppObjectEntityRepo.test.d.ts +0 -2
  347. package/dist/types/AppObject/AppObjectEntityRepo.test.d.ts.map +0 -1
  348. package/dist/types/AppObject/AppObjectPM.d.ts +0 -13
  349. package/dist/types/AppObject/AppObjectPM.d.ts.map +0 -1
  350. package/dist/types/AppObject/AppObjectPM.test.d.ts +0 -2
  351. package/dist/types/AppObject/AppObjectPM.test.d.ts.map +0 -1
  352. package/dist/types/AppObject/AppObjectRepo.d.ts +0 -26
  353. package/dist/types/AppObject/AppObjectRepo.d.ts.map +0 -1
  354. package/dist/types/AppObject/AppObjectRepo.test.d.ts +0 -2
  355. package/dist/types/AppObject/AppObjectRepo.test.d.ts.map +0 -1
  356. package/dist/types/AppObject/AppObjectUC.d.ts +0 -5
  357. package/dist/types/AppObject/AppObjectUC.d.ts.map +0 -1
  358. package/dist/types/AppObject/AppObjectView.d.ts +0 -5
  359. package/dist/types/AppObject/AppObjectView.d.ts.map +0 -1
  360. package/dist/types/AppObject/getSingletonComponent.d.ts +0 -4
  361. package/dist/types/AppObject/getSingletonComponent.d.ts.map +0 -1
  362. package/dist/types/AppObject/getSingletonComponent.test.d.ts +0 -2
  363. package/dist/types/AppObject/getSingletonComponent.test.d.ts.map +0 -1
  364. package/dist/types/AppObject/index.d.ts +0 -11
  365. package/dist/types/AppObject/index.d.ts.map +0 -1
  366. package/dist/types/AppObject/printAppObjectDetails.d.ts +0 -3
  367. package/dist/types/AppObject/printAppObjectDetails.d.ts.map +0 -1
  368. package/dist/types/Entities/MemoizedAngle.d.ts +0 -10
  369. package/dist/types/Entities/MemoizedAngle.d.ts.map +0 -1
  370. package/dist/types/Entities/MemoizedAngle.test.d.ts +0 -2
  371. package/dist/types/Entities/MemoizedAngle.test.d.ts.map +0 -1
  372. package/dist/types/Entities/MemoizedBoolean.d.ts +0 -9
  373. package/dist/types/Entities/MemoizedBoolean.d.ts.map +0 -1
  374. package/dist/types/Entities/MemoizedBoolean.test.d.ts +0 -2
  375. package/dist/types/Entities/MemoizedBoolean.test.d.ts.map +0 -1
  376. package/dist/types/Entities/MemoizedColor.d.ts +0 -10
  377. package/dist/types/Entities/MemoizedColor.d.ts.map +0 -1
  378. package/dist/types/Entities/MemoizedColor.test.d.ts +0 -2
  379. package/dist/types/Entities/MemoizedColor.test.d.ts.map +0 -1
  380. package/dist/types/Entities/MemoizedNumber.d.ts +0 -9
  381. package/dist/types/Entities/MemoizedNumber.d.ts.map +0 -1
  382. package/dist/types/Entities/MemoizedNumber.test.d.ts +0 -2
  383. package/dist/types/Entities/MemoizedNumber.test.d.ts.map +0 -1
  384. package/dist/types/Entities/MemoizedQuaternion.d.ts +0 -10
  385. package/dist/types/Entities/MemoizedQuaternion.d.ts.map +0 -1
  386. package/dist/types/Entities/MemoizedQuaternion.test.d.ts +0 -2
  387. package/dist/types/Entities/MemoizedQuaternion.test.d.ts.map +0 -1
  388. package/dist/types/Entities/MemoizedString.d.ts +0 -9
  389. package/dist/types/Entities/MemoizedString.d.ts.map +0 -1
  390. package/dist/types/Entities/MemoizedString.test.d.ts +0 -2
  391. package/dist/types/Entities/MemoizedString.test.d.ts.map +0 -1
  392. package/dist/types/Entities/MemoizedVector2.d.ts +0 -10
  393. package/dist/types/Entities/MemoizedVector2.d.ts.map +0 -1
  394. package/dist/types/Entities/MemoizedVector2.test.d.ts +0 -2
  395. package/dist/types/Entities/MemoizedVector2.test.d.ts.map +0 -1
  396. package/dist/types/Entities/MemoizedVector3.d.ts +0 -10
  397. package/dist/types/Entities/MemoizedVector3.d.ts.map +0 -1
  398. package/dist/types/Entities/MemoizedVector3.test.d.ts +0 -2
  399. package/dist/types/Entities/MemoizedVector3.test.d.ts.map +0 -1
  400. package/dist/types/Entities/ObservableEntity.d.ts +0 -8
  401. package/dist/types/Entities/ObservableEntity.d.ts.map +0 -1
  402. package/dist/types/Entities/ObservableEntity.test.d.ts +0 -2
  403. package/dist/types/Entities/ObservableEntity.test.d.ts.map +0 -1
  404. package/dist/types/Entities/ObserverList.d.ts +0 -8
  405. package/dist/types/Entities/ObserverList.d.ts.map +0 -1
  406. package/dist/types/Entities/ObserverList.test.d.ts +0 -2
  407. package/dist/types/Entities/ObserverList.test.d.ts.map +0 -1
  408. package/dist/types/Entities/RangedNumber.d.ts +0 -17
  409. package/dist/types/Entities/RangedNumber.d.ts.map +0 -1
  410. package/dist/types/Entities/RangedNumber.test.d.ts +0 -2
  411. package/dist/types/Entities/RangedNumber.test.d.ts.map +0 -1
  412. package/dist/types/Entities/index.d.ts +0 -12
  413. package/dist/types/Entities/index.d.ts.map +0 -1
  414. package/dist/types/Types/AppBoundary.d.ts +0 -11
  415. package/dist/types/Types/AppBoundary.d.ts.map +0 -1
  416. package/dist/types/Types/EaseFn.d.ts +0 -2
  417. package/dist/types/Types/EaseFn.d.ts.map +0 -1
  418. package/dist/types/Types/PmAdapter.d.ts +0 -7
  419. package/dist/types/Types/PmAdapter.d.ts.map +0 -1
  420. package/dist/types/Types/SingletonPmAdapter.d.ts +0 -7
  421. package/dist/types/Types/SingletonPmAdapter.d.ts.map +0 -1
  422. package/dist/types/Types/index.d.ts +0 -5
  423. package/dist/types/Types/index.d.ts.map +0 -1
  424. package/dist/types/Utilities/LengthConverters.d.ts +0 -5
  425. package/dist/types/Utilities/LengthConverters.d.ts.map +0 -1
  426. package/dist/types/Utilities/LengthConverters.test.d.ts +0 -2
  427. package/dist/types/Utilities/LengthConverters.test.d.ts.map +0 -1
  428. package/dist/types/Utilities/LerpNumber.d.ts +0 -57
  429. package/dist/types/Utilities/LerpNumber.d.ts.map +0 -1
  430. package/dist/types/Utilities/LerpNumber.test.d.ts +0 -2
  431. package/dist/types/Utilities/LerpNumber.test.d.ts.map +0 -1
  432. package/dist/types/Utilities/degreesToRadians.d.ts +0 -2
  433. package/dist/types/Utilities/degreesToRadians.d.ts.map +0 -1
  434. package/dist/types/Utilities/degreesToRadians.test.d.ts +0 -2
  435. package/dist/types/Utilities/degreesToRadians.test.d.ts.map +0 -1
  436. package/dist/types/Utilities/easeFunctions.d.ts +0 -24
  437. package/dist/types/Utilities/easeFunctions.d.ts.map +0 -1
  438. package/dist/types/Utilities/easeFunctions.test.d.ts +0 -2
  439. package/dist/types/Utilities/easeFunctions.test.d.ts.map +0 -1
  440. package/dist/types/Utilities/generateUniqueID.d.ts +0 -2
  441. package/dist/types/Utilities/generateUniqueID.d.ts.map +0 -1
  442. package/dist/types/Utilities/index.d.ts +0 -6
  443. package/dist/types/Utilities/index.d.ts.map +0 -1
  444. package/dist/types/Utilities/interpolateNumber.d.ts +0 -2
  445. package/dist/types/Utilities/interpolateNumber.d.ts.map +0 -1
  446. package/dist/types/Utilities/interpolateNumber.test.d.ts +0 -2
  447. package/dist/types/Utilities/interpolateNumber.test.d.ts.map +0 -1
  448. package/dist/types/ValueObjects/Angle.d.ts +0 -27
  449. package/dist/types/ValueObjects/Angle.d.ts.map +0 -1
  450. package/dist/types/ValueObjects/Angle.test.d.ts +0 -2
  451. package/dist/types/ValueObjects/Angle.test.d.ts.map +0 -1
  452. package/dist/types/ValueObjects/Color.d.ts +0 -83
  453. package/dist/types/ValueObjects/Color.d.ts.map +0 -1
  454. package/dist/types/ValueObjects/Color.test.d.ts +0 -2
  455. package/dist/types/ValueObjects/Color.test.d.ts.map +0 -1
  456. package/dist/types/ValueObjects/LineSegment2D.d.ts +0 -12
  457. package/dist/types/ValueObjects/LineSegment2D.d.ts.map +0 -1
  458. package/dist/types/ValueObjects/LineSegment2D.test.d.ts +0 -2
  459. package/dist/types/ValueObjects/LineSegment2D.test.d.ts.map +0 -1
  460. package/dist/types/ValueObjects/Matrix.d.ts +0 -124
  461. package/dist/types/ValueObjects/Matrix.d.ts.map +0 -1
  462. package/dist/types/ValueObjects/Matrix.test.d.ts +0 -2
  463. package/dist/types/ValueObjects/Matrix.test.d.ts.map +0 -1
  464. package/dist/types/ValueObjects/ParametricLine.d.ts +0 -31
  465. package/dist/types/ValueObjects/ParametricLine.d.ts.map +0 -1
  466. package/dist/types/ValueObjects/ParametricLine.test.d.ts +0 -2
  467. package/dist/types/ValueObjects/ParametricLine.test.d.ts.map +0 -1
  468. package/dist/types/ValueObjects/ParametricPlane.d.ts +0 -21
  469. package/dist/types/ValueObjects/ParametricPlane.d.ts.map +0 -1
  470. package/dist/types/ValueObjects/ParametricPlane.test.d.ts +0 -2
  471. package/dist/types/ValueObjects/ParametricPlane.test.d.ts.map +0 -1
  472. package/dist/types/ValueObjects/Quaternion.d.ts +0 -113
  473. package/dist/types/ValueObjects/Quaternion.d.ts.map +0 -1
  474. package/dist/types/ValueObjects/Quaternion.test.d.ts +0 -2
  475. package/dist/types/ValueObjects/Quaternion.test.d.ts.map +0 -1
  476. package/dist/types/ValueObjects/Rectangle.d.ts +0 -16
  477. package/dist/types/ValueObjects/Rectangle.d.ts.map +0 -1
  478. package/dist/types/ValueObjects/Rectangle.test.d.ts +0 -2
  479. package/dist/types/ValueObjects/Rectangle.test.d.ts.map +0 -1
  480. package/dist/types/ValueObjects/Vector2.d.ts +0 -121
  481. package/dist/types/ValueObjects/Vector2.d.ts.map +0 -1
  482. package/dist/types/ValueObjects/Vector2.test.d.ts +0 -2
  483. package/dist/types/ValueObjects/Vector2.test.d.ts.map +0 -1
  484. package/dist/types/ValueObjects/Vector3.d.ts +0 -150
  485. package/dist/types/ValueObjects/Vector3.d.ts.map +0 -1
  486. package/dist/types/ValueObjects/Vector3.test.d.ts +0 -2
  487. package/dist/types/ValueObjects/Vector3.test.d.ts.map +0 -1
  488. package/dist/types/ValueObjects/index.d.ts +0 -11
  489. package/dist/types/ValueObjects/index.d.ts.map +0 -1
  490. package/dist/types/index.d.ts +0 -6
  491. package/dist/types/index.d.ts.map +0 -1
@@ -1,238 +0,0 @@
1
- import { Angle } from "./Angle";
2
- import { Matrix } from "./Matrix";
3
- import { Quaternion } from "./Quaternion";
4
- import { Vector3 } from "./Vector3";
5
- describe("Quaterion Value Object", () => {
6
- it("Checks for equality", () => {
7
- const quat1 = new Quaternion(1, 2, 3, 4);
8
- const quat2 = new Quaternion(1, 2, 3, 4);
9
- const quat3 = new Quaternion(10, 20, 30, 40);
10
- expect(Quaternion.Equal(quat1, quat2)).toEqual(true);
11
- expect(Quaternion.Equal(quat1, quat3)).toEqual(false);
12
- });
13
- it("Constructs a new quaternion from an array", () => {
14
- const quat = Quaternion.FromArray([1, 2, 3, 4]);
15
- expect(quat.x).toEqual(1);
16
- expect(quat.y).toEqual(2);
17
- expect(quat.z).toEqual(3);
18
- expect(quat.w).toEqual(4);
19
- });
20
- it("Constructs an identity quaternion", () => {
21
- const quat = Quaternion.Identity();
22
- expect(quat.x).toEqual(0);
23
- expect(quat.y).toEqual(0);
24
- expect(quat.z).toEqual(0);
25
- expect(quat.w).toEqual(1);
26
- });
27
- it("Equates two quaternions for testing", () => {
28
- const quat1 = new Quaternion(1, 2, 3, 4);
29
- const quat2 = new Quaternion(1, 2, 3, 4);
30
- expect(quat1).toEqual(quat2);
31
- });
32
- it("Returns an array", () => {
33
- const quat1 = new Quaternion(1, 2, 3, 4);
34
- expect(quat1.toArray()).toEqual([1, 2, 3, 4]);
35
- });
36
- it("Multiplies two quaternions", () => {
37
- // See https://www.omnicalculator.com/math/quaternion
38
- const quat1 = new Quaternion(1, 2, 3, 4);
39
- const quat2 = new Quaternion(5, 6, 7, 8);
40
- const product = Quaternion.Multiply(quat1, quat2);
41
- const expected = new Quaternion(24, 48, 48, -6);
42
- expect(product).toEqual(expected);
43
- });
44
- it("Inverts a quaternion", () => {
45
- const quat1 = new Quaternion(1, 2, 3, 4);
46
- const inverted = Quaternion.Inverse(quat1);
47
- const expected = new Quaternion(-1, -2, -3, 4);
48
- expect(inverted).toEqual(expected);
49
- });
50
- it("Creates an Quaterion from an Axis and Angle", () => {
51
- // See https://www.andre-gaschler.com/rotationconverter
52
- const axis = new Vector3(1, 2, 3);
53
- const angle = Angle.FromRadians(4);
54
- const quat = Quaternion.FromAngleAxis(axis, angle);
55
- expect(quat.x).toBeCloseTo(0.24302);
56
- expect(quat.y).toBeCloseTo(0.4860399);
57
- expect(quat.z).toBeCloseTo(0.7290599);
58
- expect(quat.w).toBeCloseTo(-0.4161468);
59
- });
60
- it("Creates an Quaterion from a Yaw Pitch Roll", () => {
61
- // Numbers are from the babylon playground
62
- const yaw = Angle.FromRadians(1);
63
- const pitch = Angle.FromRadians(2);
64
- const roll = Angle.FromRadians(3);
65
- const quat = Quaternion.FromYawPitchRoll(yaw, pitch, roll);
66
- expect(quat.x).toBeCloseTo(0.310622);
67
- expect(quat.y).toBeCloseTo(-0.71828);
68
- expect(quat.z).toBeCloseTo(0.444435);
69
- expect(quat.w).toBeCloseTo(0.4359528);
70
- });
71
- it("Creates an Quaterion from Euler angles", () => {
72
- // Numbers are from the babylon playground
73
- const x = Angle.FromRadians(1);
74
- const y = Angle.FromRadians(2);
75
- const z = Angle.FromRadians(3);
76
- const quat = Quaternion.FromEuler(x, y, z);
77
- expect(quat.x).toBeCloseTo(0.754933);
78
- expect(quat.y).toBeCloseTo(-0.206149);
79
- expect(quat.z).toBeCloseTo(0.444435);
80
- expect(quat.w).toBeCloseTo(0.4359528);
81
- });
82
- it("Slerps", () => {
83
- // See https://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/slerp/index.htm
84
- const q1 = new Quaternion(0.1, 0.2, 0.3, 0.9);
85
- const q2 = new Quaternion(0.5, 0.8, 0.1, 0.4);
86
- const initial = Quaternion.Slerp(q1, q2, 0);
87
- expect(initial.x).toBeCloseTo(q1.x);
88
- expect(initial.y).toBeCloseTo(q1.y);
89
- expect(initial.z).toBeCloseTo(q1.z);
90
- expect(initial.w).toBeCloseTo(q1.w);
91
- const final = Quaternion.Slerp(q1, q2, 1);
92
- expect(final.x).toBeCloseTo(q2.x);
93
- expect(final.y).toBeCloseTo(q2.y);
94
- expect(final.z).toBeCloseTo(q2.z);
95
- expect(final.w).toBeCloseTo(q2.w);
96
- const middle = Quaternion.Slerp(q1, q2, 0.35);
97
- expect(middle.x).toBeCloseTo(0.27016);
98
- expect(middle.y).toBeCloseTo(0.46061);
99
- expect(middle.z).toBeCloseTo(0.25244);
100
- expect(middle.w).toBeCloseTo(0.7972);
101
- });
102
- it("Makes a quaterion from a rotation matrix", () => {
103
- const x = Angle.FromRadians(1);
104
- const y = Angle.FromRadians(2);
105
- const z = Angle.FromRadians(3);
106
- const originalQ = Quaternion.FromEuler(x, y, z);
107
- const matrix = Matrix.Compose(Vector3.One(), originalQ, Vector3.Zero());
108
- const result = Quaternion.FromRotationMatrix(matrix);
109
- expect(result.x).toBeCloseTo(originalQ.x);
110
- expect(result.y).toBeCloseTo(originalQ.y);
111
- expect(result.z).toBeCloseTo(originalQ.z);
112
- expect(result.w).toBeCloseTo(originalQ.w);
113
- });
114
- it("Checks if two quaternions are close", () => {
115
- const a = new Quaternion(1, 2, 3, 4);
116
- const bigger = new Quaternion(1.01, 2.01, 3.01, 4.01);
117
- const smaller = new Quaternion(0.99, 1.99, 2.99, 3.99);
118
- expect(Quaternion.Close(a, bigger, 0.0101)).toEqual(true);
119
- expect(Quaternion.Close(a, bigger, 0.0099)).toEqual(false);
120
- expect(Quaternion.Close(a, smaller, 0.0101)).toEqual(true);
121
- expect(Quaternion.Close(a, smaller, 0.0099)).toEqual(false);
122
- });
123
- it("Retuns the angle", () => {
124
- const angle = Angle.FromDegrees(25);
125
- const axis = new Vector3(1, 2, 3);
126
- const q = Quaternion.FromAngleAxis(axis, angle);
127
- expect(Angle.Close(q.angle, angle)).toEqual(true);
128
- });
129
- it("Retuns the axis", () => {
130
- const angle = Angle.FromDegrees(25);
131
- const axis = new Vector3(1, 2, 3);
132
- const q = Quaternion.FromAngleAxis(axis, angle);
133
- expect(Vector3.Close(q.axis, axis.unit)).toEqual(true);
134
- });
135
- it("Makes a quaternion into a rotation matrix", () => {
136
- const x = Angle.FromRadians(1);
137
- const y = Angle.FromRadians(2);
138
- const z = Angle.FromRadians(3);
139
- const originalQ = Quaternion.FromEuler(x, y, z);
140
- const mat = Quaternion.ToRotationMatrix(originalQ);
141
- expect(Quaternion.Close(mat.rotation, originalQ)).toEqual(true);
142
- expect(Vector3.Close(mat.scale, Vector3.One())).toEqual(true);
143
- expect(Vector3.Close(mat.translation, Vector3.Zero())).toEqual(true);
144
- });
145
- it("Gets the Data Transfer Object", () => {
146
- const quat = new Quaternion(1, 2, 3, 4);
147
- expect(quat.dto).toEqual({
148
- x: 1,
149
- y: 2,
150
- z: 3,
151
- w: 4,
152
- });
153
- });
154
- it("Makes a Quaterion from a DTO", () => {
155
- const quat = Quaternion.FromDTO({
156
- x: 1,
157
- y: 2,
158
- z: 3,
159
- w: 4,
160
- });
161
- expect(quat.x).toEqual(1);
162
- expect(quat.y).toEqual(2);
163
- expect(quat.z).toEqual(3);
164
- expect(quat.w).toEqual(4);
165
- });
166
- it("Forms a quaternion from a forward direction", () => {
167
- const dir = new Vector3(0, 0, 1);
168
- const q = Quaternion.FromDirectionVector(dir);
169
- const expectedQ = Quaternion.Identity();
170
- expect(q).toEqual(expectedQ);
171
- });
172
- it("Forms a quaternion from a right direction", () => {
173
- const dir = new Vector3(1, 0, 0);
174
- const q = Quaternion.FromDirectionVector(dir);
175
- const expectedQ = Quaternion.FromYawPitchRoll(Angle.FromDegrees(90), Angle.FromRadians(0), Angle.FromDegrees(0));
176
- expect(Quaternion.Close(q, expectedQ)).toEqual(true);
177
- });
178
- it("Forms a quaternion from a left direction", () => {
179
- const dir = new Vector3(-1, 0, 0);
180
- const q = Quaternion.FromDirectionVector(dir);
181
- const expectedQ = Quaternion.FromYawPitchRoll(Angle.FromDegrees(-90), Angle.FromRadians(0), Angle.FromDegrees(0));
182
- expect(Quaternion.Close(q, expectedQ)).toEqual(true);
183
- });
184
- it("Forms a quaternion from a behind direction", () => {
185
- const dir = new Vector3(0, 0, -1);
186
- const q = Quaternion.FromDirectionVector(dir);
187
- const expectedQ = Quaternion.FromYawPitchRoll(Angle.FromDegrees(180), Angle.FromRadians(0), Angle.FromDegrees(0));
188
- expect(Quaternion.Close(q, expectedQ)).toEqual(true);
189
- });
190
- it("Forms a quaternion from a 45 degree up direction", () => {
191
- const dir = new Vector3(0, 1, 1);
192
- const q = Quaternion.FromDirectionVector(dir);
193
- const expectedQ = Quaternion.FromYawPitchRoll(Angle.FromDegrees(0), Angle.FromDegrees(-45), Angle.FromDegrees(0));
194
- expect(Quaternion.Close(q, expectedQ)).toEqual(true);
195
- });
196
- it("Forms a quaternion from a 45 degree up direction", () => {
197
- const dir = new Vector3(1, 1, 0);
198
- const q = Quaternion.FromDirectionVector(dir);
199
- const expectedQ = Quaternion.FromYawPitchRoll(Angle.FromDegrees(90), Angle.FromDegrees(-45), Angle.FromDegrees(0));
200
- expect(Quaternion.Close(q, expectedQ)).toEqual(true);
201
- });
202
- it("Returns an identity if the direction is zero", () => {
203
- const dir = new Vector3(0, 0, 0);
204
- const q = Quaternion.FromDirectionVector(dir);
205
- const expectedQ = Quaternion.Identity();
206
- expect(Quaternion.Close(q, expectedQ)).toEqual(true);
207
- });
208
- it("Works with an up vector", () => {
209
- const dir = new Vector3(0, 1, 0);
210
- const q = Quaternion.FromDirectionVector(dir);
211
- const expectedQ = Quaternion.FromYawPitchRoll(Angle.FromDegrees(0), Angle.FromDegrees(-90), Angle.FromDegrees(0));
212
- expect(Quaternion.Close(q, expectedQ)).toEqual(true);
213
- });
214
- it("Works with an down vector", () => {
215
- const dir = new Vector3(0, -1, 0);
216
- const q = Quaternion.FromDirectionVector(dir);
217
- const expectedQ = Quaternion.FromYawPitchRoll(Angle.FromDegrees(0), Angle.FromDegrees(90), Angle.FromDegrees(0));
218
- expect(Quaternion.Close(q, expectedQ)).toEqual(true);
219
- });
220
- it("Gets the angle between two quaternions", () => {
221
- const q1 = Quaternion.FromYawPitchRoll(Angle.FromDegrees(0), Angle.FromDegrees(90), Angle.FromDegrees(0));
222
- const q2 = Quaternion.FromYawPitchRoll(Angle.FromDegrees(0), Angle.FromDegrees(80), Angle.FromDegrees(0));
223
- const ang = Quaternion.AngleBetween(q1, q2);
224
- expect(ang.degrees).toBeCloseTo(10);
225
- });
226
- it("Keeps the angle between two quaternions less than 180", () => {
227
- const q1 = Quaternion.FromYawPitchRoll(Angle.FromDegrees(0), Angle.FromDegrees(0), Angle.FromDegrees(0));
228
- const q2 = Quaternion.FromYawPitchRoll(Angle.FromDegrees(0), Angle.FromDegrees(200), Angle.FromDegrees(0));
229
- const ang = Quaternion.AngleBetween(q1, q2);
230
- expect(ang.degrees).toBeCloseTo(160);
231
- });
232
- it("Returns 0 if the quaterions are the same", () => {
233
- const q1 = Quaternion.FromYawPitchRoll(Angle.FromDegrees(0), Angle.FromDegrees(0), Angle.FromDegrees(0));
234
- const ang = Quaternion.AngleBetween(q1, q1);
235
- expect(ang.degrees).toEqual(0);
236
- });
237
- });
238
- //# sourceMappingURL=Quaternion.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Quaternion.test.js","sourceRoot":"","sources":["../../../src/ValueObjects/Quaternion.test.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- export class Rectangle {
2
- static FromDTO(dto) {
3
- return new Rectangle(dto.top, dto.right, dto.bottom, dto.left);
4
- }
5
- get dto() {
6
- return {
7
- top: this.top,
8
- bottom: this.bottom,
9
- left: this.left,
10
- right: this.right
11
- };
12
- }
13
- constructor(top, right, bottom, left) {
14
- this.top = top;
15
- this.bottom = bottom;
16
- this.left = left;
17
- this.right = right;
18
- }
19
- }
20
- //# sourceMappingURL=Rectangle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Rectangle.js","sourceRoot":"","sources":["../../../src/ValueObjects/Rectangle.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,SAAS;IACb,MAAM,CAAC,OAAO,CAAC,GAAiB;QACrC,OAAO,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC;IAOD,IAAI,GAAG;QACL,OAAO;YACR,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;SACjB,CAAC;IACF,CAAC;IAED,YAAY,GAAW,EAAE,KAAa,EAAE,MAAc,EAAE,IAAY;QAClE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF"}
@@ -1,30 +0,0 @@
1
- import { Rectangle } from "./Rectangle";
2
- describe("Rectangle value object", () => {
3
- it("Creates and stores the values", () => {
4
- const rect = new Rectangle(1, 2, 3, 4);
5
- expect(rect.top).toEqual(1);
6
- expect(rect.right).toEqual(2);
7
- expect(rect.bottom).toEqual(3);
8
- expect(rect.left).toEqual(4);
9
- });
10
- it("Forms a dto", () => {
11
- const rect = new Rectangle(1, 2, 3, 4);
12
- expect(rect.dto.top).toEqual(1);
13
- expect(rect.dto.right).toEqual(2);
14
- expect(rect.dto.bottom).toEqual(3);
15
- expect(rect.dto.left).toEqual(4);
16
- });
17
- it("Forms a rectangle from the DTO", () => {
18
- const rect = Rectangle.FromDTO({
19
- top: 1,
20
- left: 2,
21
- bottom: 3,
22
- right: 4
23
- });
24
- expect(rect.top).toEqual(1);
25
- expect(rect.left).toEqual(2);
26
- expect(rect.bottom).toEqual(3);
27
- expect(rect.right).toEqual(4);
28
- });
29
- });
30
- //# sourceMappingURL=Rectangle.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Rectangle.test.js","sourceRoot":"","sources":["../../../src/ValueObjects/Rectangle.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AAEtC,QAAQ,CAAC,wBAAwB,EAAE,GAAE,EAAE;IACtC,EAAE,CAAC,+BAA+B,EAAE,GAAE,EAAE;QACvC,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,aAAa,EAAE,GAAE,EAAE;QACrB,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gCAAgC,EAAE,GAAE,EAAE;QACxC,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC;YAC9B,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,CAAC;YACP,MAAM,EAAE,CAAC;YACT,KAAK,EAAE,CAAC;SACR,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAA;AACH,CAAC,CAAC,CAAA"}
@@ -1,180 +0,0 @@
1
- import { Angle } from ".";
2
- export class Vector2 {
3
- /**
4
- * Creates a zero vector
5
- * @returns Vector [0,0]
6
- */
7
- static Zero() {
8
- return new Vector2(0, 0);
9
- }
10
- /**
11
- * Creates a one vector
12
- * @returns Vector [1,1]
13
- */
14
- static One() {
15
- return new Vector2(1, 1);
16
- }
17
- /**
18
- * Checks to see if Vector A equals Vector B
19
- * @param a Vector A
20
- * @param b Vector B
21
- * @returns True if Vector A === Vector B
22
- */
23
- static Equal(a, b) {
24
- if (a.x !== b.x)
25
- return false;
26
- if (a.y !== b.y)
27
- return false;
28
- return true;
29
- }
30
- /**
31
- * Creates a Vector from a Data Transfer Object
32
- * @param dto The Data Transfer Object
33
- * @returns The Vector
34
- */
35
- static FromDTO(dto) {
36
- return new Vector2(dto.x, dto.y);
37
- }
38
- /**
39
- * Adds Vector B to Vector A
40
- * @param a Vector A
41
- * @param b Vector B
42
- * @returns A + B
43
- */
44
- static Add(a, b) {
45
- return new Vector2(a.x + b.x, a.y + b.y);
46
- }
47
- /**
48
- * Subtracts Vector B from Vector A
49
- * @param a Vector A
50
- * @param b Vector B
51
- * @returns A - B
52
- */
53
- static Subtract(a, b) {
54
- return new Vector2(a.x - b.x, a.y - b.y);
55
- }
56
- /**
57
- * Get the magnitude (length) of the vector
58
- */
59
- get magnitued() {
60
- const xSqr = this.x * this.x;
61
- const ySqr = this.y * this.y;
62
- const magnitude = Math.sqrt(xSqr + ySqr);
63
- return magnitude;
64
- }
65
- /**
66
- * Get the unit vector
67
- */
68
- get unit() {
69
- const mag = this.magnitued;
70
- if (mag === 0) {
71
- return Vector2.Zero();
72
- }
73
- const unitX = this.x / mag;
74
- const unitY = this.y / mag;
75
- return new Vector2(unitX, unitY);
76
- }
77
- /**
78
- * Returns the angle of the direction of this angle in degrees.
79
- * 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
80
- */
81
- get theta() {
82
- return (Math.atan2(this.y, this.x) * 180) / Math.PI;
83
- }
84
- /**
85
- * Retuns the vector as an array of numbers [x,y]
86
- */
87
- get array() {
88
- return [this.x, this.y];
89
- }
90
- /**
91
- * Get the vector as a Data Transfer Object
92
- */
93
- get dto() {
94
- return { x: this.x, y: this.y };
95
- }
96
- constructor(x, y) {
97
- this.x = x;
98
- this.y = y;
99
- }
100
- }
101
- /**
102
- * Checks to see if Vector A is close to Vector B
103
- * @param a Vector A
104
- * @param b Vector B
105
- * @param threshold Tolerance to define "close". Defaults to 0.01
106
- * @returns True if A and B are close enough
107
- */
108
- Vector2.Close = (a, b, threshold = 0.01) => {
109
- const diff = Vector2.Subtract(a, b);
110
- const diffMag = diff.magnitued;
111
- if (diffMag < threshold)
112
- return true;
113
- else
114
- return false;
115
- };
116
- /**
117
- * Rotates a vector by an angle
118
- * @param vec The original vector
119
- * @param angle The angle
120
- * @returns A new Vector that has been rotated from the original by an angle
121
- */
122
- Vector2.Rotate = (vec, angle) => {
123
- const x = vec.x * Math.cos(angle.radians) - vec.y * Math.sin(angle.radians);
124
- const y = vec.x * Math.sin(angle.radians) + vec.y * Math.cos(angle.radians);
125
- return new Vector2(x, y);
126
- };
127
- /**
128
- * Scales a vector uniformly
129
- * @param vector The original vector
130
- * @param scale Scale factor
131
- * @returns A new, scaled vector
132
- */
133
- Vector2.Scale = (vector, scale) => {
134
- const x = scale * vector.x;
135
- const y = scale * vector.y;
136
- return new Vector2(x, y);
137
- };
138
- /**
139
- * Creates a new vector of a given lenght and a unit that is equal to the original vector
140
- * @param vector The original vector. This determines the unit of the final vector
141
- * @param length The desired length of the final vector
142
- * @returns The final vector
143
- */
144
- Vector2.NewVectorOfLength = (vector, length) => {
145
- const unit = vector.unit;
146
- const x = length * unit.x;
147
- const y = length * unit.y;
148
- return new Vector2(x, y);
149
- };
150
- /**
151
- * Calculate the dot product between Vectors A and B
152
- * @param a Vector A
153
- * @param b Vector B
154
- * @returns The Dot product between A and B
155
- */
156
- Vector2.Dot = (a, b) => {
157
- return a.x * b.x + a.y * b.y;
158
- };
159
- /**
160
- * Calculates the dot product between Vectors A and B
161
- * @param a Vector A
162
- * @param b Vector B
163
- * @returns A . B
164
- */
165
- Vector2.AngleBetween = (a, b) => {
166
- const dot = Vector2.Dot(a, b);
167
- const magnitues = a.magnitued * b.magnitued;
168
- const angRadians = Math.acos(dot / magnitues);
169
- return Angle.FromRadians(angRadians);
170
- };
171
- /**
172
- * Calculates the Cross product between Vectors A and B
173
- * @param a Vector A
174
- * @param b Vector B
175
- * @returns A X B
176
- */
177
- Vector2.Cross = (a, b) => {
178
- return a.x * b.y - a.y * b.x;
179
- };
180
- //# sourceMappingURL=Vector2.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Vector2.js","sourceRoot":"","sources":["../../../src/ValueObjects/Vector2.ts"],"names":[],"mappings":"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"}
@@ -1,134 +0,0 @@
1
- import { Angle } from ".";
2
- import { Vector2 } from "./Vector2";
3
- describe("Vector 2 value object", () => {
4
- it("Creates a new vector", () => {
5
- const v = new Vector2(2, 5);
6
- expect(v.x).toEqual(2);
7
- expect(v.y).toEqual(5);
8
- });
9
- it("Returns the magnitude", () => {
10
- expect(new Vector2(0, 5).magnitued).toEqual(5);
11
- expect(new Vector2(0, -5).magnitued).toEqual(5);
12
- expect(new Vector2(5, 0).magnitued).toEqual(5);
13
- expect(new Vector2(-5, 0).magnitued).toEqual(5);
14
- expect(new Vector2(-1, -1).magnitued).toBeCloseTo(1.414);
15
- expect(new Vector2(1, 1).magnitued).toBeCloseTo(1.414);
16
- });
17
- it("Returns the unit", () => {
18
- expect(new Vector2(0, 5).unit).toEqual(new Vector2(0, 1));
19
- expect(new Vector2(0, -5).unit).toEqual(new Vector2(0, -1));
20
- expect(new Vector2(5, 0).unit).toEqual(new Vector2(1, 0));
21
- expect(new Vector2(-5, 0).unit).toEqual(new Vector2(-1, 0));
22
- const unit1 = new Vector2(5, 5).unit;
23
- expect(unit1.x).toBeCloseTo(0.707);
24
- expect(unit1.y).toBeCloseTo(0.707);
25
- });
26
- it("Retuns theta", () => {
27
- expect(new Vector2(0, 5).theta).toBeCloseTo(90);
28
- expect(new Vector2(0, -5).theta).toBeCloseTo(-90);
29
- expect(new Vector2(5, 0).theta).toBeCloseTo(0);
30
- expect(new Vector2(-5, 0).theta).toBeCloseTo(180);
31
- });
32
- test("Returns the vector as an array", () => {
33
- const v1 = new Vector2(1, 2);
34
- expect(v1.array[0]).toEqual(1);
35
- expect(v1.array[1]).toEqual(2);
36
- });
37
- });
38
- describe("Vector 2 static actions", () => {
39
- it("Create a zero vector", () => {
40
- expect(Vector2.Zero()).toEqual(new Vector2(0, 0));
41
- });
42
- it("Create a one vector", () => {
43
- expect(Vector2.One()).toEqual(new Vector2(1, 1));
44
- });
45
- it("Check for vectors to be Equal", () => {
46
- const v1 = new Vector2(1, 2);
47
- const v2 = new Vector2(2, 3);
48
- const v3 = new Vector2(1, 2);
49
- expect(Vector2.Equal(v1, v2)).toEqual(false);
50
- expect(Vector2.Equal(v1, v3)).toEqual(true);
51
- });
52
- it("Adds vectors", () => {
53
- const v1 = new Vector2(1, 2);
54
- const v2 = new Vector2(2, 3);
55
- const v3 = Vector2.Add(v1, v2);
56
- expect(v3).toEqual(new Vector2(3, 5));
57
- });
58
- it("Subtracts vectors", () => {
59
- const v1 = new Vector2(1, 2);
60
- const v2 = new Vector2(2, 3);
61
- const v3 = Vector2.Subtract(v1, v2);
62
- expect(v3).toEqual(new Vector2(-1, -1));
63
- });
64
- it("Checks to see if vectors are close using a default threshold", () => {
65
- const v1 = new Vector2(1, 2);
66
- const v2 = new Vector2(1.001, 2.001);
67
- const v3 = new Vector2(1.1, 2.1);
68
- expect(Vector2.Close(v1, v2)).toEqual(true);
69
- expect(Vector2.Close(v1, v3)).toEqual(false);
70
- });
71
- it("Checks to see if vectors are close using a passed threshold", () => {
72
- const v1 = new Vector2(1, 2);
73
- const v2 = new Vector2(1.1, 2.1);
74
- const v3 = new Vector2(2, 3);
75
- expect(Vector2.Close(v1, v2, 1)).toEqual(true);
76
- expect(Vector2.Close(v1, v3, 1)).toEqual(false);
77
- });
78
- it("Rotates to a new vector", () => {
79
- const v1 = new Vector2(1, 2);
80
- const r1 = Vector2.Rotate(v1, Angle.FromDegrees(90));
81
- expect(r1.x).toBeCloseTo(-2);
82
- expect(r1.y).toBeCloseTo(1);
83
- const r2 = Vector2.Rotate(v1, Angle.FromDegrees(-90));
84
- expect(r2.x).toBeCloseTo(2);
85
- expect(r2.y).toBeCloseTo(-1);
86
- });
87
- it("Scales a vector", () => {
88
- const v1 = new Vector2(1, 2);
89
- const scaled = Vector2.Scale(v1, 3);
90
- expect(scaled).toEqual(new Vector2(3, 6));
91
- });
92
- it("Make a new vector of length", () => {
93
- const v1 = new Vector2(1, 1);
94
- const lengthened = Vector2.NewVectorOfLength(v1, 3);
95
- expect(lengthened.x).toBeCloseTo(2.12);
96
- expect(lengthened.y).toBeCloseTo(2.12);
97
- });
98
- it("Calculates the dot between two vectors", () => {
99
- // https://onlinemschool.com/math/assistance/vector/multiply/
100
- const v1 = new Vector2(1, 2);
101
- const v2 = new Vector2(5, 6);
102
- const dot = Vector2.Dot(v1, v2);
103
- expect(dot).toEqual(17);
104
- });
105
- it("Calculates the angle between two vectors", () => {
106
- // https://www.omnicalculator.com/math/angle-between-two-vectors
107
- const v1 = new Vector2(1, 2);
108
- const v2 = new Vector2(3, 4);
109
- const angle = Vector2.AngleBetween(v1, v2);
110
- expect(angle.degrees).toBeCloseTo(10.305);
111
- });
112
- it("Calculates a Cross product", () => {
113
- const v1 = new Vector2(1, 2);
114
- const v2 = new Vector2(3, 4);
115
- const cross = Vector2.Cross(v1, v2);
116
- expect(cross).toEqual(-2);
117
- });
118
- it("Gets the Data Transfer Object", () => {
119
- const vec = new Vector2(1, 2);
120
- expect(vec.dto).toEqual({
121
- x: 1,
122
- y: 2
123
- });
124
- });
125
- it("Makes a vector from a DTO", () => {
126
- const vec = Vector2.FromDTO({
127
- x: 1,
128
- y: 2
129
- });
130
- expect(vec.x).toEqual(1);
131
- expect(vec.y).toEqual(2);
132
- });
133
- });
134
- //# sourceMappingURL=Vector2.test.js.map