@vived/core 1.4.1 → 1.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (356) hide show
  1. package/README.md +118 -20
  2. package/dist/cjs/AppObject/AppObject.js +112 -0
  3. package/dist/cjs/AppObject/AppObject.js.map +1 -0
  4. package/dist/cjs/AppObject/AppObjectComponent.js +160 -0
  5. package/dist/cjs/AppObject/AppObjectComponent.js.map +1 -0
  6. package/dist/cjs/AppObject/AppObjectController.js +34 -0
  7. package/dist/cjs/AppObject/AppObjectController.js.map +1 -0
  8. package/dist/cjs/AppObject/AppObjectEntity.js +90 -0
  9. package/dist/cjs/AppObject/AppObjectEntity.js.map +1 -0
  10. package/dist/cjs/AppObject/AppObjectEntityRepo.js +130 -0
  11. package/dist/cjs/AppObject/AppObjectEntityRepo.js.map +1 -0
  12. package/dist/cjs/AppObject/AppObjectPM.js +86 -0
  13. package/dist/cjs/AppObject/AppObjectPM.js.map +1 -0
  14. package/dist/cjs/AppObject/AppObjectRepo.js +153 -0
  15. package/dist/cjs/AppObject/AppObjectRepo.js.map +1 -0
  16. package/dist/cjs/AppObject/AppObjectUC.js +35 -0
  17. package/dist/cjs/AppObject/AppObjectUC.js.map +1 -0
  18. package/dist/cjs/AppObject/AppObjectView.js +34 -0
  19. package/dist/cjs/AppObject/AppObjectView.js.map +1 -0
  20. package/dist/cjs/AppObject/getSingletonComponent.js +26 -0
  21. package/dist/cjs/AppObject/getSingletonComponent.js.map +1 -0
  22. package/dist/cjs/AppObject/index.js +27 -0
  23. package/dist/cjs/AppObject/index.js.map +1 -0
  24. package/dist/cjs/AppObject/printAppObjectDetails.js +18 -0
  25. package/dist/cjs/AppObject/printAppObjectDetails.js.map +1 -0
  26. package/dist/cjs/Entities/MemoizedAngle.js +44 -0
  27. package/dist/cjs/Entities/MemoizedAngle.js.map +1 -0
  28. package/dist/cjs/Entities/MemoizedBoolean.js +44 -0
  29. package/dist/cjs/Entities/MemoizedBoolean.js.map +1 -0
  30. package/dist/cjs/Entities/MemoizedColor.js +45 -0
  31. package/dist/cjs/Entities/MemoizedColor.js.map +1 -0
  32. package/dist/cjs/Entities/MemoizedNumber.js +44 -0
  33. package/dist/cjs/Entities/MemoizedNumber.js.map +1 -0
  34. package/dist/cjs/Entities/MemoizedQuaternion.js +45 -0
  35. package/dist/cjs/Entities/MemoizedQuaternion.js.map +1 -0
  36. package/dist/cjs/Entities/MemoizedString.js +44 -0
  37. package/dist/cjs/Entities/MemoizedString.js.map +1 -0
  38. package/dist/cjs/Entities/MemoizedVector2.js +45 -0
  39. package/dist/cjs/Entities/MemoizedVector2.js.map +1 -0
  40. package/dist/cjs/Entities/MemoizedVector3.js +45 -0
  41. package/dist/cjs/Entities/MemoizedVector3.js.map +1 -0
  42. package/dist/cjs/Entities/ObservableEntity.js +37 -0
  43. package/dist/cjs/Entities/ObservableEntity.js.map +1 -0
  44. package/dist/cjs/Entities/ObserverList.js +48 -0
  45. package/dist/cjs/Entities/ObserverList.js.map +1 -0
  46. package/dist/cjs/Entities/RangedNumber.js +65 -0
  47. package/dist/cjs/Entities/RangedNumber.js.map +1 -0
  48. package/dist/cjs/Entities/index.js +28 -0
  49. package/dist/cjs/Entities/index.js.map +1 -0
  50. package/dist/cjs/Types/AppBoundary.js +3 -0
  51. package/dist/cjs/Types/AppBoundary.js.map +1 -0
  52. package/dist/cjs/Types/EaseFn.js +3 -0
  53. package/dist/cjs/Types/EaseFn.js.map +1 -0
  54. package/dist/cjs/Types/PmAdapter.js +3 -0
  55. package/dist/cjs/Types/PmAdapter.js.map +1 -0
  56. package/dist/cjs/Types/SingletonPmAdapter.js +3 -0
  57. package/dist/cjs/Types/SingletonPmAdapter.js.map +1 -0
  58. package/dist/cjs/Types/index.js +21 -0
  59. package/dist/cjs/Types/index.js.map +1 -0
  60. package/dist/cjs/Utilities/LengthConverters.js +21 -0
  61. package/dist/cjs/Utilities/LengthConverters.js.map +1 -0
  62. package/dist/cjs/Utilities/LerpNumber.js +85 -0
  63. package/dist/cjs/Utilities/LerpNumber.js.map +1 -0
  64. package/dist/cjs/Utilities/addAlphaToHex.js +16 -0
  65. package/dist/cjs/Utilities/addAlphaToHex.js.map +1 -0
  66. package/dist/cjs/Utilities/alphaToHex.js +21 -0
  67. package/dist/cjs/Utilities/alphaToHex.js.map +1 -0
  68. package/dist/cjs/Utilities/degreesToRadians.js +7 -0
  69. package/dist/cjs/Utilities/degreesToRadians.js.map +1 -0
  70. package/dist/cjs/Utilities/downloadFile.js +14 -0
  71. package/dist/cjs/Utilities/downloadFile.js.map +1 -0
  72. package/dist/cjs/Utilities/easeFunctions.js +208 -0
  73. package/dist/cjs/Utilities/easeFunctions.js.map +1 -0
  74. package/dist/cjs/Utilities/generateUniqueID.js +8 -0
  75. package/dist/cjs/Utilities/generateUniqueID.js.map +1 -0
  76. package/dist/cjs/Utilities/index.js +25 -0
  77. package/dist/cjs/Utilities/index.js.map +1 -0
  78. package/dist/cjs/Utilities/interpolateNumber.js +18 -0
  79. package/dist/cjs/Utilities/interpolateNumber.js.map +1 -0
  80. package/dist/cjs/ValueObjects/Angle.js +47 -0
  81. package/dist/cjs/ValueObjects/Angle.js.map +1 -0
  82. package/dist/cjs/ValueObjects/Color.js +859 -0
  83. package/dist/cjs/ValueObjects/Color.js.map +1 -0
  84. package/dist/cjs/ValueObjects/LineSegment2D.js +72 -0
  85. package/dist/cjs/ValueObjects/LineSegment2D.js.map +1 -0
  86. package/dist/cjs/ValueObjects/Matrix.js +466 -0
  87. package/dist/cjs/ValueObjects/Matrix.js.map +1 -0
  88. package/dist/cjs/ValueObjects/ParametricLine.js +77 -0
  89. package/dist/cjs/ValueObjects/ParametricLine.js.map +1 -0
  90. package/dist/cjs/ValueObjects/ParametricPlane.js +65 -0
  91. package/dist/cjs/ValueObjects/ParametricPlane.js.map +1 -0
  92. package/dist/cjs/ValueObjects/Quaternion.js +290 -0
  93. package/dist/cjs/ValueObjects/Quaternion.js.map +1 -0
  94. package/dist/cjs/ValueObjects/Rectangle.js +24 -0
  95. package/dist/cjs/ValueObjects/Rectangle.js.map +1 -0
  96. package/dist/cjs/ValueObjects/Vector2.js +191 -0
  97. package/dist/cjs/ValueObjects/Vector2.js.map +1 -0
  98. package/dist/cjs/ValueObjects/Vector3.js +231 -0
  99. package/dist/cjs/ValueObjects/Vector3.js.map +1 -0
  100. package/dist/cjs/ValueObjects/Version.js +171 -0
  101. package/dist/cjs/ValueObjects/Version.js.map +1 -0
  102. package/dist/cjs/ValueObjects/index.js +28 -0
  103. package/dist/cjs/ValueObjects/index.js.map +1 -0
  104. package/dist/cjs/index.js +22 -0
  105. package/dist/cjs/index.js.map +1 -0
  106. package/dist/esm/AppObject/AppObject.js +53 -0
  107. package/dist/esm/AppObject/AppObject.js.map +1 -1
  108. package/dist/esm/AppObject/AppObjectComponent.js +78 -0
  109. package/dist/esm/AppObject/AppObjectComponent.js.map +1 -1
  110. package/dist/esm/AppObject/AppObjectController.js +22 -0
  111. package/dist/esm/AppObject/AppObjectController.js.map +1 -1
  112. package/dist/esm/AppObject/AppObjectEntity.js +52 -0
  113. package/dist/esm/AppObject/AppObjectEntity.js.map +1 -1
  114. package/dist/esm/AppObject/AppObjectEntityRepo.js +75 -1
  115. package/dist/esm/AppObject/AppObjectEntityRepo.js.map +1 -1
  116. package/dist/esm/AppObject/AppObjectPM.js +46 -0
  117. package/dist/esm/AppObject/AppObjectPM.js.map +1 -1
  118. package/dist/esm/AppObject/AppObjectRepo.js +20 -0
  119. package/dist/esm/AppObject/AppObjectRepo.js.map +1 -1
  120. package/dist/esm/AppObject/AppObjectUC.js +24 -1
  121. package/dist/esm/AppObject/AppObjectUC.js.map +1 -1
  122. package/dist/esm/AppObject/AppObjectView.js +23 -1
  123. package/dist/esm/AppObject/AppObjectView.js.map +1 -1
  124. package/dist/esm/AppObject/getSingletonComponent.js +19 -0
  125. package/dist/esm/AppObject/getSingletonComponent.js.map +1 -1
  126. package/dist/esm/Entities/MemoizedAngle.js +21 -0
  127. package/dist/esm/Entities/MemoizedAngle.js.map +1 -1
  128. package/dist/esm/Entities/MemoizedBoolean.js +21 -0
  129. package/dist/esm/Entities/MemoizedBoolean.js.map +1 -1
  130. package/dist/esm/Entities/MemoizedColor.js +21 -0
  131. package/dist/esm/Entities/MemoizedColor.js.map +1 -1
  132. package/dist/esm/Entities/MemoizedNumber.js +21 -0
  133. package/dist/esm/Entities/MemoizedNumber.js.map +1 -1
  134. package/dist/esm/Entities/MemoizedQuaternion.js +21 -0
  135. package/dist/esm/Entities/MemoizedQuaternion.js.map +1 -1
  136. package/dist/esm/Entities/MemoizedString.js +21 -0
  137. package/dist/esm/Entities/MemoizedString.js.map +1 -1
  138. package/dist/esm/Entities/MemoizedVector2.js +21 -0
  139. package/dist/esm/Entities/MemoizedVector2.js.map +1 -1
  140. package/dist/esm/Entities/MemoizedVector3.js +21 -0
  141. package/dist/esm/Entities/MemoizedVector3.js.map +1 -1
  142. package/dist/esm/Entities/ObservableEntity.js +17 -0
  143. package/dist/esm/Entities/ObservableEntity.js.map +1 -1
  144. package/dist/esm/Entities/ObserverList.js +21 -0
  145. package/dist/esm/Entities/ObserverList.js.map +1 -1
  146. package/dist/esm/Entities/RangedNumber.js +29 -0
  147. package/dist/esm/Entities/RangedNumber.js.map +1 -1
  148. package/dist/esm/Types/PmAdapter.js.map +1 -1
  149. package/dist/esm/Types/SingletonPmAdapter.js.map +1 -1
  150. package/dist/esm/ValueObjects/Angle.js +1 -1
  151. package/dist/esm/ValueObjects/Angle.js.map +1 -1
  152. package/dist/esm/ValueObjects/LineSegment2D.js +6 -6
  153. package/dist/esm/ValueObjects/LineSegment2D.js.map +1 -1
  154. package/dist/esm/ValueObjects/Matrix.js +6 -6
  155. package/dist/esm/ValueObjects/Matrix.js.map +1 -1
  156. package/dist/esm/ValueObjects/Quaternion.js +17 -17
  157. package/dist/esm/ValueObjects/Quaternion.js.map +1 -1
  158. package/dist/esm/ValueObjects/Vector2.js +15 -8
  159. package/dist/esm/ValueObjects/Vector2.js.map +1 -1
  160. package/dist/types/AppObject/AppObject.d.ts +42 -0
  161. package/dist/types/AppObject/AppObject.d.ts.map +1 -1
  162. package/dist/types/AppObject/AppObjectComponent.d.ts +80 -0
  163. package/dist/types/AppObject/AppObjectComponent.d.ts.map +1 -1
  164. package/dist/types/AppObject/AppObjectController.d.ts +22 -0
  165. package/dist/types/AppObject/AppObjectController.d.ts.map +1 -1
  166. package/dist/types/AppObject/AppObjectEntity.d.ts +55 -0
  167. package/dist/types/AppObject/AppObjectEntity.d.ts.map +1 -1
  168. package/dist/types/AppObject/AppObjectEntityRepo.d.ts +75 -0
  169. package/dist/types/AppObject/AppObjectEntityRepo.d.ts.map +1 -1
  170. package/dist/types/AppObject/AppObjectPM.d.ts +53 -0
  171. package/dist/types/AppObject/AppObjectPM.d.ts.map +1 -1
  172. package/dist/types/AppObject/AppObjectRepo.d.ts +124 -0
  173. package/dist/types/AppObject/AppObjectRepo.d.ts.map +1 -1
  174. package/dist/types/AppObject/AppObjectUC.d.ts +23 -0
  175. package/dist/types/AppObject/AppObjectUC.d.ts.map +1 -1
  176. package/dist/types/AppObject/AppObjectView.d.ts +22 -0
  177. package/dist/types/AppObject/AppObjectView.d.ts.map +1 -1
  178. package/dist/types/AppObject/getSingletonComponent.d.ts +19 -0
  179. package/dist/types/AppObject/getSingletonComponent.d.ts.map +1 -1
  180. package/dist/types/Entities/MemoizedAngle.d.ts +21 -0
  181. package/dist/types/Entities/MemoizedAngle.d.ts.map +1 -1
  182. package/dist/types/Entities/MemoizedBoolean.d.ts +21 -0
  183. package/dist/types/Entities/MemoizedBoolean.d.ts.map +1 -1
  184. package/dist/types/Entities/MemoizedColor.d.ts +21 -0
  185. package/dist/types/Entities/MemoizedColor.d.ts.map +1 -1
  186. package/dist/types/Entities/MemoizedNumber.d.ts +21 -0
  187. package/dist/types/Entities/MemoizedNumber.d.ts.map +1 -1
  188. package/dist/types/Entities/MemoizedQuaternion.d.ts +21 -0
  189. package/dist/types/Entities/MemoizedQuaternion.d.ts.map +1 -1
  190. package/dist/types/Entities/MemoizedString.d.ts +21 -0
  191. package/dist/types/Entities/MemoizedString.d.ts.map +1 -1
  192. package/dist/types/Entities/MemoizedVector2.d.ts +21 -0
  193. package/dist/types/Entities/MemoizedVector2.d.ts.map +1 -1
  194. package/dist/types/Entities/MemoizedVector3.d.ts +21 -0
  195. package/dist/types/Entities/MemoizedVector3.d.ts.map +1 -1
  196. package/dist/types/Entities/ObservableEntity.d.ts +20 -0
  197. package/dist/types/Entities/ObservableEntity.d.ts.map +1 -1
  198. package/dist/types/Entities/ObserverList.d.ts +21 -0
  199. package/dist/types/Entities/ObserverList.d.ts.map +1 -1
  200. package/dist/types/Entities/RangedNumber.d.ts +37 -0
  201. package/dist/types/Entities/RangedNumber.d.ts.map +1 -1
  202. package/dist/types/Types/PmAdapter.d.ts +60 -0
  203. package/dist/types/Types/PmAdapter.d.ts.map +1 -1
  204. package/dist/types/Types/SingletonPmAdapter.d.ts +55 -0
  205. package/dist/types/Types/SingletonPmAdapter.d.ts.map +1 -1
  206. package/dist/types/ValueObjects/Angle.d.ts +1 -1
  207. package/dist/types/ValueObjects/Matrix.d.ts +5 -5
  208. package/dist/types/ValueObjects/Matrix.d.ts.map +1 -1
  209. package/dist/types/ValueObjects/Quaternion.d.ts +17 -17
  210. package/dist/types/ValueObjects/Vector2.d.ts +8 -3
  211. package/dist/types/ValueObjects/Vector2.d.ts.map +1 -1
  212. package/package.json +58 -55
  213. package/dist/esm/AppObject/AppObject.test.js +0 -110
  214. package/dist/esm/AppObject/AppObject.test.js.map +0 -1
  215. package/dist/esm/AppObject/AppObjectComponent.test.js +0 -130
  216. package/dist/esm/AppObject/AppObjectComponent.test.js.map +0 -1
  217. package/dist/esm/AppObject/AppObjectEntity.test.js +0 -106
  218. package/dist/esm/AppObject/AppObjectEntity.test.js.map +0 -1
  219. package/dist/esm/AppObject/AppObjectEntityRepo.test.js +0 -147
  220. package/dist/esm/AppObject/AppObjectEntityRepo.test.js.map +0 -1
  221. package/dist/esm/AppObject/AppObjectPM.test.js +0 -101
  222. package/dist/esm/AppObject/AppObjectPM.test.js.map +0 -1
  223. package/dist/esm/AppObject/AppObjectRepo.test.js +0 -211
  224. package/dist/esm/AppObject/AppObjectRepo.test.js.map +0 -1
  225. package/dist/esm/AppObject/getSingletonComponent.test.js +0 -11
  226. package/dist/esm/AppObject/getSingletonComponent.test.js.map +0 -1
  227. package/dist/esm/Entities/MemoizedAngle.test.js +0 -28
  228. package/dist/esm/Entities/MemoizedAngle.test.js.map +0 -1
  229. package/dist/esm/Entities/MemoizedBoolean.test.js +0 -32
  230. package/dist/esm/Entities/MemoizedBoolean.test.js.map +0 -1
  231. package/dist/esm/Entities/MemoizedColor.test.js +0 -30
  232. package/dist/esm/Entities/MemoizedColor.test.js.map +0 -1
  233. package/dist/esm/Entities/MemoizedNumber.test.js +0 -27
  234. package/dist/esm/Entities/MemoizedNumber.test.js.map +0 -1
  235. package/dist/esm/Entities/MemoizedQuaternion.test.js +0 -30
  236. package/dist/esm/Entities/MemoizedQuaternion.test.js.map +0 -1
  237. package/dist/esm/Entities/MemoizedString.test.js +0 -27
  238. package/dist/esm/Entities/MemoizedString.test.js.map +0 -1
  239. package/dist/esm/Entities/MemoizedVector2.test.js +0 -30
  240. package/dist/esm/Entities/MemoizedVector2.test.js.map +0 -1
  241. package/dist/esm/Entities/MemoizedVector3.test.js +0 -30
  242. package/dist/esm/Entities/MemoizedVector3.test.js.map +0 -1
  243. package/dist/esm/Entities/ObservableEntity.test.js +0 -23
  244. package/dist/esm/Entities/ObservableEntity.test.js.map +0 -1
  245. package/dist/esm/Entities/ObserverList.test.js +0 -42
  246. package/dist/esm/Entities/ObserverList.test.js.map +0 -1
  247. package/dist/esm/Entities/RangedNumber.test.js +0 -94
  248. package/dist/esm/Entities/RangedNumber.test.js.map +0 -1
  249. package/dist/esm/Utilities/LengthConverters.test.js +0 -22
  250. package/dist/esm/Utilities/LengthConverters.test.js.map +0 -1
  251. package/dist/esm/Utilities/LerpNumber.test.js +0 -88
  252. package/dist/esm/Utilities/LerpNumber.test.js.map +0 -1
  253. package/dist/esm/Utilities/addAlphaToHex.test.js +0 -32
  254. package/dist/esm/Utilities/addAlphaToHex.test.js.map +0 -1
  255. package/dist/esm/Utilities/alphaToHex.test.js +0 -73
  256. package/dist/esm/Utilities/alphaToHex.test.js.map +0 -1
  257. package/dist/esm/Utilities/degreesToRadians.test.js +0 -7
  258. package/dist/esm/Utilities/degreesToRadians.test.js.map +0 -1
  259. package/dist/esm/Utilities/easeFunctions.test.js +0 -207
  260. package/dist/esm/Utilities/easeFunctions.test.js.map +0 -1
  261. package/dist/esm/Utilities/interpolateNumber.test.js +0 -24
  262. package/dist/esm/Utilities/interpolateNumber.test.js.map +0 -1
  263. package/dist/esm/ValueObjects/Angle.test.js +0 -26
  264. package/dist/esm/ValueObjects/Angle.test.js.map +0 -1
  265. package/dist/esm/ValueObjects/Color.test.js +0 -145
  266. package/dist/esm/ValueObjects/Color.test.js.map +0 -1
  267. package/dist/esm/ValueObjects/LineSegment2D.test.js +0 -100
  268. package/dist/esm/ValueObjects/LineSegment2D.test.js.map +0 -1
  269. package/dist/esm/ValueObjects/Matrix.test.js +0 -383
  270. package/dist/esm/ValueObjects/Matrix.test.js.map +0 -1
  271. package/dist/esm/ValueObjects/ParametricLine.test.js +0 -124
  272. package/dist/esm/ValueObjects/ParametricLine.test.js.map +0 -1
  273. package/dist/esm/ValueObjects/ParametricPlane.test.js +0 -99
  274. package/dist/esm/ValueObjects/ParametricPlane.test.js.map +0 -1
  275. package/dist/esm/ValueObjects/Quaternion.test.js +0 -238
  276. package/dist/esm/ValueObjects/Quaternion.test.js.map +0 -1
  277. package/dist/esm/ValueObjects/Rectangle.test.js +0 -30
  278. package/dist/esm/ValueObjects/Rectangle.test.js.map +0 -1
  279. package/dist/esm/ValueObjects/Vector2.test.js +0 -134
  280. package/dist/esm/ValueObjects/Vector2.test.js.map +0 -1
  281. package/dist/esm/ValueObjects/Vector3.test.js +0 -186
  282. package/dist/esm/ValueObjects/Vector3.test.js.map +0 -1
  283. package/dist/esm/ValueObjects/Version.test.js +0 -308
  284. package/dist/esm/ValueObjects/Version.test.js.map +0 -1
  285. package/dist/types/AppObject/AppObject.test.d.ts +0 -7
  286. package/dist/types/AppObject/AppObject.test.d.ts.map +0 -1
  287. package/dist/types/AppObject/AppObjectComponent.test.d.ts +0 -2
  288. package/dist/types/AppObject/AppObjectComponent.test.d.ts.map +0 -1
  289. package/dist/types/AppObject/AppObjectEntity.test.d.ts +0 -2
  290. package/dist/types/AppObject/AppObjectEntity.test.d.ts.map +0 -1
  291. package/dist/types/AppObject/AppObjectEntityRepo.test.d.ts +0 -2
  292. package/dist/types/AppObject/AppObjectEntityRepo.test.d.ts.map +0 -1
  293. package/dist/types/AppObject/AppObjectPM.test.d.ts +0 -2
  294. package/dist/types/AppObject/AppObjectPM.test.d.ts.map +0 -1
  295. package/dist/types/AppObject/AppObjectRepo.test.d.ts +0 -2
  296. package/dist/types/AppObject/AppObjectRepo.test.d.ts.map +0 -1
  297. package/dist/types/AppObject/getSingletonComponent.test.d.ts +0 -2
  298. package/dist/types/AppObject/getSingletonComponent.test.d.ts.map +0 -1
  299. package/dist/types/Entities/MemoizedAngle.test.d.ts +0 -2
  300. package/dist/types/Entities/MemoizedAngle.test.d.ts.map +0 -1
  301. package/dist/types/Entities/MemoizedBoolean.test.d.ts +0 -2
  302. package/dist/types/Entities/MemoizedBoolean.test.d.ts.map +0 -1
  303. package/dist/types/Entities/MemoizedColor.test.d.ts +0 -2
  304. package/dist/types/Entities/MemoizedColor.test.d.ts.map +0 -1
  305. package/dist/types/Entities/MemoizedNumber.test.d.ts +0 -2
  306. package/dist/types/Entities/MemoizedNumber.test.d.ts.map +0 -1
  307. package/dist/types/Entities/MemoizedQuaternion.test.d.ts +0 -2
  308. package/dist/types/Entities/MemoizedQuaternion.test.d.ts.map +0 -1
  309. package/dist/types/Entities/MemoizedString.test.d.ts +0 -2
  310. package/dist/types/Entities/MemoizedString.test.d.ts.map +0 -1
  311. package/dist/types/Entities/MemoizedVector2.test.d.ts +0 -2
  312. package/dist/types/Entities/MemoizedVector2.test.d.ts.map +0 -1
  313. package/dist/types/Entities/MemoizedVector3.test.d.ts +0 -2
  314. package/dist/types/Entities/MemoizedVector3.test.d.ts.map +0 -1
  315. package/dist/types/Entities/ObservableEntity.test.d.ts +0 -2
  316. package/dist/types/Entities/ObservableEntity.test.d.ts.map +0 -1
  317. package/dist/types/Entities/ObserverList.test.d.ts +0 -2
  318. package/dist/types/Entities/ObserverList.test.d.ts.map +0 -1
  319. package/dist/types/Entities/RangedNumber.test.d.ts +0 -2
  320. package/dist/types/Entities/RangedNumber.test.d.ts.map +0 -1
  321. package/dist/types/Utilities/LengthConverters.test.d.ts +0 -2
  322. package/dist/types/Utilities/LengthConverters.test.d.ts.map +0 -1
  323. package/dist/types/Utilities/LerpNumber.test.d.ts +0 -2
  324. package/dist/types/Utilities/LerpNumber.test.d.ts.map +0 -1
  325. package/dist/types/Utilities/addAlphaToHex.test.d.ts +0 -2
  326. package/dist/types/Utilities/addAlphaToHex.test.d.ts.map +0 -1
  327. package/dist/types/Utilities/alphaToHex.test.d.ts +0 -2
  328. package/dist/types/Utilities/alphaToHex.test.d.ts.map +0 -1
  329. package/dist/types/Utilities/degreesToRadians.test.d.ts +0 -2
  330. package/dist/types/Utilities/degreesToRadians.test.d.ts.map +0 -1
  331. package/dist/types/Utilities/easeFunctions.test.d.ts +0 -2
  332. package/dist/types/Utilities/easeFunctions.test.d.ts.map +0 -1
  333. package/dist/types/Utilities/interpolateNumber.test.d.ts +0 -2
  334. package/dist/types/Utilities/interpolateNumber.test.d.ts.map +0 -1
  335. package/dist/types/ValueObjects/Angle.test.d.ts +0 -2
  336. package/dist/types/ValueObjects/Angle.test.d.ts.map +0 -1
  337. package/dist/types/ValueObjects/Color.test.d.ts +0 -2
  338. package/dist/types/ValueObjects/Color.test.d.ts.map +0 -1
  339. package/dist/types/ValueObjects/LineSegment2D.test.d.ts +0 -2
  340. package/dist/types/ValueObjects/LineSegment2D.test.d.ts.map +0 -1
  341. package/dist/types/ValueObjects/Matrix.test.d.ts +0 -2
  342. package/dist/types/ValueObjects/Matrix.test.d.ts.map +0 -1
  343. package/dist/types/ValueObjects/ParametricLine.test.d.ts +0 -2
  344. package/dist/types/ValueObjects/ParametricLine.test.d.ts.map +0 -1
  345. package/dist/types/ValueObjects/ParametricPlane.test.d.ts +0 -2
  346. package/dist/types/ValueObjects/ParametricPlane.test.d.ts.map +0 -1
  347. package/dist/types/ValueObjects/Quaternion.test.d.ts +0 -2
  348. package/dist/types/ValueObjects/Quaternion.test.d.ts.map +0 -1
  349. package/dist/types/ValueObjects/Rectangle.test.d.ts +0 -2
  350. package/dist/types/ValueObjects/Rectangle.test.d.ts.map +0 -1
  351. package/dist/types/ValueObjects/Vector2.test.d.ts +0 -2
  352. package/dist/types/ValueObjects/Vector2.test.d.ts.map +0 -1
  353. package/dist/types/ValueObjects/Vector3.test.d.ts +0 -2
  354. package/dist/types/ValueObjects/Vector3.test.d.ts.map +0 -1
  355. package/dist/types/ValueObjects/Version.test.d.ts +0 -2
  356. package/dist/types/ValueObjects/Version.test.d.ts.map +0 -1
@@ -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
@@ -1 +0,0 @@
1
- {"version":3,"file":"Vector2.test.js","sourceRoot":"","sources":["../../../src/ValueObjects/Vector2.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { Angle } from \".\";\r\nimport { Vector2 } from \"./Vector2\";\r\n\r\ndescribe(\"Vector 2 value object\", () => {\r\n it(\"Creates a new vector\", () => {\r\n const v = new Vector2(2, 5);\r\n expect(v.x).toEqual(2);\r\n expect(v.y).toEqual(5);\r\n });\r\n\r\n it(\"Returns the magnitude\", () => {\r\n expect(new Vector2(0, 5).magnitued).toEqual(5);\r\n expect(new Vector2(0, -5).magnitued).toEqual(5);\r\n expect(new Vector2(5, 0).magnitued).toEqual(5);\r\n expect(new Vector2(-5, 0).magnitued).toEqual(5);\r\n expect(new Vector2(-1, -1).magnitued).toBeCloseTo(1.414);\r\n expect(new Vector2(1, 1).magnitued).toBeCloseTo(1.414);\r\n });\r\n\r\n it(\"Returns the unit\", () => {\r\n expect(new Vector2(0, 5).unit).toEqual(new Vector2(0, 1));\r\n expect(new Vector2(0, -5).unit).toEqual(new Vector2(0, -1));\r\n expect(new Vector2(5, 0).unit).toEqual(new Vector2(1, 0));\r\n expect(new Vector2(-5, 0).unit).toEqual(new Vector2(-1, 0));\r\n\r\n const unit1 = new Vector2(5, 5).unit;\r\n expect(unit1.x).toBeCloseTo(0.707);\r\n expect(unit1.y).toBeCloseTo(0.707);\r\n });\r\n\r\n it(\"Retuns theta\", () => {\r\n expect(new Vector2(0, 5).theta).toBeCloseTo(90);\r\n expect(new Vector2(0, -5).theta).toBeCloseTo(-90);\r\n expect(new Vector2(5, 0).theta).toBeCloseTo(0);\r\n expect(new Vector2(-5, 0).theta).toBeCloseTo(180);\r\n });\r\n\r\n test(\"Returns the vector as an array\", () => {\r\n const v1 = new Vector2(1, 2);\r\n\r\n expect(v1.array[0]).toEqual(1);\r\n expect(v1.array[1]).toEqual(2);\r\n });\r\n});\r\n\r\ndescribe(\"Vector 2 static actions\", () => {\r\n it(\"Create a zero vector\", () => {\r\n expect(Vector2.Zero()).toEqual(new Vector2(0, 0));\r\n });\r\n\r\n it(\"Create a one vector\", () => {\r\n expect(Vector2.One()).toEqual(new Vector2(1, 1));\r\n });\r\n\r\n it(\"Check for vectors to be Equal\", () => {\r\n const v1 = new Vector2(1, 2);\r\n const v2 = new Vector2(2, 3);\r\n const v3 = new Vector2(1, 2);\r\n\r\n expect(Vector2.Equal(v1, v2)).toEqual(false);\r\n expect(Vector2.Equal(v1, v3)).toEqual(true);\r\n });\r\n\r\n it(\"Adds vectors\", () => {\r\n const v1 = new Vector2(1, 2);\r\n const v2 = new Vector2(2, 3);\r\n const v3 = Vector2.Add(v1, v2);\r\n\r\n expect(v3).toEqual(new Vector2(3, 5));\r\n });\r\n\r\n it(\"Subtracts vectors\", () => {\r\n const v1 = new Vector2(1, 2);\r\n const v2 = new Vector2(2, 3);\r\n const v3 = Vector2.Subtract(v1, v2);\r\n\r\n expect(v3).toEqual(new Vector2(-1, -1));\r\n });\r\n\r\n it(\"Checks to see if vectors are close using a default threshold\", () => {\r\n const v1 = new Vector2(1, 2);\r\n const v2 = new Vector2(1.001, 2.001);\r\n const v3 = new Vector2(1.1, 2.1);\r\n\r\n expect(Vector2.Close(v1, v2)).toEqual(true);\r\n expect(Vector2.Close(v1, v3)).toEqual(false);\r\n });\r\n\r\n it(\"Checks to see if vectors are close using a passed threshold\", () => {\r\n const v1 = new Vector2(1, 2);\r\n const v2 = new Vector2(1.1, 2.1);\r\n const v3 = new Vector2(2, 3);\r\n\r\n expect(Vector2.Close(v1, v2, 1)).toEqual(true);\r\n expect(Vector2.Close(v1, v3, 1)).toEqual(false);\r\n });\r\n\r\n it(\"Rotates to a new vector\", () => {\r\n const v1 = new Vector2(1, 2);\r\n\r\n const r1 = Vector2.Rotate(v1, Angle.FromDegrees(90));\r\n expect(r1.x).toBeCloseTo(-2);\r\n expect(r1.y).toBeCloseTo(1);\r\n\r\n const r2 = Vector2.Rotate(v1, Angle.FromDegrees(-90));\r\n expect(r2.x).toBeCloseTo(2);\r\n expect(r2.y).toBeCloseTo(-1);\r\n });\r\n\r\n it(\"Scales a vector\", () => {\r\n const v1 = new Vector2(1, 2);\r\n const scaled = Vector2.Scale(v1, 3);\r\n expect(scaled).toEqual(new Vector2(3, 6));\r\n });\r\n\r\n it(\"Make a new vector of length\", () => {\r\n const v1 = new Vector2(1, 1);\r\n const lengthened = Vector2.NewVectorOfLength(v1, 3);\r\n expect(lengthened.x).toBeCloseTo(2.12);\r\n expect(lengthened.y).toBeCloseTo(2.12);\r\n });\r\n\r\n it(\"Calculates the dot between two vectors\", () => {\r\n // https://onlinemschool.com/math/assistance/vector/multiply/\r\n const v1 = new Vector2(1, 2);\r\n const v2 = new Vector2(5, 6);\r\n\r\n const dot = Vector2.Dot(v1, v2);\r\n expect(dot).toEqual(17);\r\n });\r\n\r\n it(\"Calculates the angle between two vectors\", () => {\r\n // https://www.omnicalculator.com/math/angle-between-two-vectors\r\n const v1 = new Vector2(1, 2);\r\n const v2 = new Vector2(3, 4);\r\n\r\n const angle = Vector2.AngleBetween(v1, v2);\r\n expect(angle.degrees).toBeCloseTo(10.305);\r\n });\r\n\r\n it(\"Calculates a Cross product\", () => {\r\n const v1 = new Vector2(1, 2);\r\n const v2 = new Vector2(3, 4);\r\n\r\n const cross = Vector2.Cross(v1, v2);\r\n expect(cross).toEqual(-2);\r\n });\r\n\r\n it(\"Gets the Data Transfer Object\", () => {\r\n const vec = new Vector2(1, 2);\r\n\r\n expect(vec.dto).toEqual({\r\n x: 1,\r\n y: 2\r\n });\r\n });\r\n\r\n it(\"Makes a vector from a DTO\", () => {\r\n const vec = Vector2.FromDTO({\r\n x: 1,\r\n y: 2\r\n });\r\n\r\n expect(vec.x).toEqual(1);\r\n expect(vec.y).toEqual(2);\r\n });\r\n});\r\n"]}
@@ -1,186 +0,0 @@
1
- import { Vector3 } from ".";
2
- import { Angle } from "./Angle";
3
- import { Matrix } from "./Matrix";
4
- import { Quaternion } from "./Quaternion";
5
- describe("Vector 3 Value object - Creation", () => {
6
- it("Creates a zero vector", () => {
7
- const v = Vector3.Zero();
8
- expect(v).toEqual(new Vector3(0, 0, 0));
9
- });
10
- it("Creates a one vector", () => {
11
- const v = Vector3.One();
12
- expect(v).toEqual(new Vector3(1, 1, 1));
13
- });
14
- it("Creates a vector from an array", () => {
15
- const v = Vector3.FromArray([2, 5, 7]);
16
- expect(v).toEqual(new Vector3(2, 5, 7));
17
- });
18
- it("Creates a unit right vector", () => {
19
- const v = Vector3.Right();
20
- expect(v).toEqual(new Vector3(1, 0, 0));
21
- });
22
- it("Creates a right vector with length", () => {
23
- const v = Vector3.Right(3);
24
- expect(v).toEqual(new Vector3(3, 0, 0));
25
- });
26
- it("Creates a unit left vector", () => {
27
- const v = Vector3.Left();
28
- expect(v).toEqual(new Vector3(-1, 0, 0));
29
- });
30
- it("Creates a left vector with length", () => {
31
- const v = Vector3.Left(3);
32
- expect(v).toEqual(new Vector3(-3, 0, 0));
33
- });
34
- it("Creates a unit up vector", () => {
35
- const v = Vector3.Up();
36
- expect(v).toEqual(new Vector3(0, 1, 0));
37
- });
38
- it("Creates a up vector with length", () => {
39
- const v = Vector3.Up(3);
40
- expect(v).toEqual(new Vector3(0, 3, 0));
41
- });
42
- it("Creates a unit down vector", () => {
43
- const v = Vector3.Down();
44
- expect(v).toEqual(new Vector3(0, -1, 0));
45
- });
46
- it("Creates a down vector with length", () => {
47
- const v = Vector3.Down(3);
48
- expect(v).toEqual(new Vector3(0, -3, 0));
49
- });
50
- it("Creates a unit forward vector", () => {
51
- const v = Vector3.Forward();
52
- expect(v).toEqual(new Vector3(0, 0, 1));
53
- });
54
- it("Creates a forward vector with length", () => {
55
- const v = Vector3.Forward(3);
56
- expect(v).toEqual(new Vector3(0, 0, 3));
57
- });
58
- it("Creates a unit backward vector", () => {
59
- const v = Vector3.Backward();
60
- expect(v).toEqual(new Vector3(0, 0, -1));
61
- });
62
- it("Creates a backward vector with length", () => {
63
- const v = Vector3.Backward(3);
64
- expect(v).toEqual(new Vector3(0, 0, -3));
65
- });
66
- });
67
- describe("Vector 3 Value object - Static actions", () => {
68
- it("Adds two vectors", () => {
69
- const v1 = new Vector3(1, 2, 3);
70
- const v2 = new Vector3(4, 5, 6);
71
- const v3 = Vector3.Add(v1, v2);
72
- expect(v3).toEqual(new Vector3(5, 7, 9));
73
- });
74
- test("Subtracts two vectors", () => {
75
- const v1 = new Vector3(1, 2, 3);
76
- const v2 = new Vector3(6, 5, 4);
77
- const v3 = Vector3.Subtract(v1, v2);
78
- expect(v3).toEqual(new Vector3(-5, -3, -1));
79
- });
80
- test("Checks if two vectors are equal", () => {
81
- const v1 = new Vector3(1, 2, 3);
82
- const v2 = new Vector3(4, 5, 6);
83
- const v3 = new Vector3(1, 2, 3);
84
- expect(Vector3.Equal(v1, v2)).toEqual(false);
85
- expect(Vector3.Equal(v1, v3)).toEqual(true);
86
- });
87
- it("Checks if Vectors are close without a tolerance", () => {
88
- const v1 = new Vector3(1, 2, 3);
89
- const v2 = new Vector3(1.1, 2.2, 3.3);
90
- const v3 = new Vector3(1.001, 2.001, 3.001);
91
- expect(Vector3.Close(v1, v2)).toEqual(false);
92
- expect(Vector3.Close(v1, v3)).toEqual(true);
93
- });
94
- it("Checks if Vectors are close with a tolerance", () => {
95
- const v1 = new Vector3(1, 2, 3);
96
- const v2 = new Vector3(1.1, 2.2, 3.3);
97
- expect(Vector3.Close(v1, v2, 0.3)).toEqual(false);
98
- expect(Vector3.Close(v1, v2, 0.4)).toEqual(true);
99
- });
100
- it("Computes the cross product", () => {
101
- // From https://www.symbolab.com/solver/vector-cross-product-calculator
102
- const v1 = new Vector3(1, 2, 3);
103
- const v2 = new Vector3(4, 5, -6);
104
- const cross = Vector3.Cross(v1, v2);
105
- expect(cross).toEqual(new Vector3(-27, 18, -3));
106
- });
107
- test("Cross product", () => {
108
- // From https://www.symbolab.com/solver/vector-cross-product-calculator
109
- const v1 = new Vector3(1, 2, 3);
110
- const v2 = new Vector3(4, 5, -6);
111
- const cross = Vector3.Cross(v2, v1);
112
- expect(cross).toEqual(new Vector3(27, -18, 3));
113
- });
114
- test("Dot product", () => {
115
- // From https://www.calculatorsoup.com/calculators/algebra/dot-product-calculator.php
116
- const v1 = new Vector3(1, 5, 3);
117
- const v2 = new Vector3(2, 3, 6);
118
- const dot = Vector3.Dot(v1, v2);
119
- expect(dot).toEqual(35);
120
- });
121
- test("New vector of length", () => {
122
- const v1 = new Vector3(1, -5, 3);
123
- const v2 = Vector3.NewVectorOfLength(v1, 10);
124
- expect(v2.x).toBeCloseTo(1.69);
125
- expect(v2.y).toBeCloseTo(-8.45);
126
- expect(v2.z).toBeCloseTo(5.07);
127
- });
128
- });
129
- describe("Vector 3 Value object - parameters", () => {
130
- it("Gets the vector components", () => {
131
- const v = new Vector3(2, 5, 7);
132
- expect(v.x).toEqual(2);
133
- expect(v.y).toEqual(5);
134
- expect(v.z).toEqual(7);
135
- });
136
- it("Gets the magnitue", () => {
137
- // https://www.omnicalculator.com/math/unit-vector
138
- const v1 = new Vector3(1, -5, 3);
139
- expect(v1.magnitude).toBeCloseTo(5.916);
140
- });
141
- it("Gets the unit vector", () => {
142
- // https://www.omnicalculator.com/math/unit-vector
143
- const v1 = new Vector3(1, -5, 3);
144
- expect(v1.unit.x).toBeCloseTo(0.169);
145
- expect(v1.unit.y).toBeCloseTo(-0.845);
146
- expect(v1.unit.z).toBeCloseTo(0.507);
147
- });
148
- it("Gets the vector as an array", () => {
149
- const v1 = new Vector3(1, -5, 3);
150
- expect(v1.array).toEqual([1, -5, 3]);
151
- });
152
- it("Lerps", () => {
153
- const start = new Vector3(10, 20, 30);
154
- const end = new Vector3(20, 30, 40);
155
- const lerped = Vector3.Lerp(start, end, 0.5);
156
- expect(lerped).toEqual(new Vector3(15, 25, 35));
157
- });
158
- it("Transforms a Vector with a matrix", () => {
159
- const pos = new Vector3(5, 0, 0);
160
- const rot = Quaternion.FromAngleAxis(Vector3.Up(), Angle.FromDegrees(-90));
161
- const scale = new Vector3(2, 2, 2);
162
- const matrix = Matrix.Compose(scale, rot, pos);
163
- const transformed = Vector3.Transform(new Vector3(2, 1, -1), matrix);
164
- const expected = new Vector3(7, 2, 4);
165
- expect(Vector3.Close(transformed, expected)).toEqual(true);
166
- });
167
- it("Gets the Data Transfer Object", () => {
168
- const vec = new Vector3(1, 2, 3);
169
- expect(vec.dto).toEqual({
170
- x: 1,
171
- y: 2,
172
- z: 3,
173
- });
174
- });
175
- it("Makes a vector from a DTO", () => {
176
- const vec = Vector3.FromDTO({
177
- x: 1,
178
- y: 2,
179
- z: 3,
180
- });
181
- expect(vec.x).toEqual(1);
182
- expect(vec.y).toEqual(2);
183
- expect(vec.z).toEqual(3);
184
- });
185
- });
186
- //# sourceMappingURL=Vector3.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Vector3.test.js","sourceRoot":"","sources":["../../../src/ValueObjects/Vector3.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { Vector3 } from \".\";\r\nimport { Angle } from \"./Angle\";\r\nimport { Matrix } from \"./Matrix\";\r\nimport { Quaternion } from \"./Quaternion\";\r\n\r\ndescribe(\"Vector 3 Value object - Creation\", () => {\r\n it(\"Creates a zero vector\", () => {\r\n const v = Vector3.Zero();\r\n expect(v).toEqual(new Vector3(0, 0, 0));\r\n });\r\n it(\"Creates a one vector\", () => {\r\n const v = Vector3.One();\r\n expect(v).toEqual(new Vector3(1, 1, 1));\r\n });\r\n\r\n it(\"Creates a vector from an array\", () => {\r\n const v = Vector3.FromArray([2, 5, 7]);\r\n expect(v).toEqual(new Vector3(2, 5, 7));\r\n });\r\n\r\n it(\"Creates a unit right vector\", () => {\r\n const v = Vector3.Right();\r\n expect(v).toEqual(new Vector3(1, 0, 0));\r\n });\r\n\r\n it(\"Creates a right vector with length\", () => {\r\n const v = Vector3.Right(3);\r\n expect(v).toEqual(new Vector3(3, 0, 0));\r\n });\r\n\r\n it(\"Creates a unit left vector\", () => {\r\n const v = Vector3.Left();\r\n expect(v).toEqual(new Vector3(-1, 0, 0));\r\n });\r\n\r\n it(\"Creates a left vector with length\", () => {\r\n const v = Vector3.Left(3);\r\n expect(v).toEqual(new Vector3(-3, 0, 0));\r\n });\r\n\r\n it(\"Creates a unit up vector\", () => {\r\n const v = Vector3.Up();\r\n expect(v).toEqual(new Vector3(0, 1, 0));\r\n });\r\n\r\n it(\"Creates a up vector with length\", () => {\r\n const v = Vector3.Up(3);\r\n expect(v).toEqual(new Vector3(0, 3, 0));\r\n });\r\n\r\n it(\"Creates a unit down vector\", () => {\r\n const v = Vector3.Down();\r\n expect(v).toEqual(new Vector3(0, -1, 0));\r\n });\r\n\r\n it(\"Creates a down vector with length\", () => {\r\n const v = Vector3.Down(3);\r\n expect(v).toEqual(new Vector3(0, -3, 0));\r\n });\r\n\r\n it(\"Creates a unit forward vector\", () => {\r\n const v = Vector3.Forward();\r\n expect(v).toEqual(new Vector3(0, 0, 1));\r\n });\r\n\r\n it(\"Creates a forward vector with length\", () => {\r\n const v = Vector3.Forward(3);\r\n expect(v).toEqual(new Vector3(0, 0, 3));\r\n });\r\n\r\n it(\"Creates a unit backward vector\", () => {\r\n const v = Vector3.Backward();\r\n expect(v).toEqual(new Vector3(0, 0, -1));\r\n });\r\n\r\n it(\"Creates a backward vector with length\", () => {\r\n const v = Vector3.Backward(3);\r\n expect(v).toEqual(new Vector3(0, 0, -3));\r\n });\r\n});\r\n\r\ndescribe(\"Vector 3 Value object - Static actions\", () => {\r\n it(\"Adds two vectors\", () => {\r\n const v1 = new Vector3(1, 2, 3);\r\n const v2 = new Vector3(4, 5, 6);\r\n\r\n const v3 = Vector3.Add(v1, v2);\r\n expect(v3).toEqual(new Vector3(5, 7, 9));\r\n });\r\n\r\n test(\"Subtracts two vectors\", () => {\r\n const v1 = new Vector3(1, 2, 3);\r\n const v2 = new Vector3(6, 5, 4);\r\n\r\n const v3 = Vector3.Subtract(v1, v2);\r\n expect(v3).toEqual(new Vector3(-5, -3, -1));\r\n });\r\n\r\n test(\"Checks if two vectors are equal\", () => {\r\n const v1 = new Vector3(1, 2, 3);\r\n const v2 = new Vector3(4, 5, 6);\r\n const v3 = new Vector3(1, 2, 3);\r\n expect(Vector3.Equal(v1, v2)).toEqual(false);\r\n expect(Vector3.Equal(v1, v3)).toEqual(true);\r\n });\r\n\r\n it(\"Checks if Vectors are close without a tolerance\", () => {\r\n const v1 = new Vector3(1, 2, 3);\r\n const v2 = new Vector3(1.1, 2.2, 3.3);\r\n const v3 = new Vector3(1.001, 2.001, 3.001);\r\n expect(Vector3.Close(v1, v2)).toEqual(false);\r\n expect(Vector3.Close(v1, v3)).toEqual(true);\r\n });\r\n\r\n it(\"Checks if Vectors are close with a tolerance\", () => {\r\n const v1 = new Vector3(1, 2, 3);\r\n const v2 = new Vector3(1.1, 2.2, 3.3);\r\n expect(Vector3.Close(v1, v2, 0.3)).toEqual(false);\r\n expect(Vector3.Close(v1, v2, 0.4)).toEqual(true);\r\n });\r\n\r\n it(\"Computes the cross product\", () => {\r\n // From https://www.symbolab.com/solver/vector-cross-product-calculator\r\n const v1 = new Vector3(1, 2, 3);\r\n const v2 = new Vector3(4, 5, -6);\r\n\r\n const cross = Vector3.Cross(v1, v2);\r\n expect(cross).toEqual(new Vector3(-27, 18, -3));\r\n });\r\n\r\n test(\"Cross product\", () => {\r\n // From https://www.symbolab.com/solver/vector-cross-product-calculator\r\n const v1 = new Vector3(1, 2, 3);\r\n const v2 = new Vector3(4, 5, -6);\r\n\r\n const cross = Vector3.Cross(v2, v1);\r\n expect(cross).toEqual(new Vector3(27, -18, 3));\r\n });\r\n\r\n test(\"Dot product\", () => {\r\n // From https://www.calculatorsoup.com/calculators/algebra/dot-product-calculator.php\r\n const v1 = new Vector3(1, 5, 3);\r\n const v2 = new Vector3(2, 3, 6);\r\n\r\n const dot = Vector3.Dot(v1, v2);\r\n expect(dot).toEqual(35);\r\n });\r\n\r\n test(\"New vector of length\", () => {\r\n const v1 = new Vector3(1, -5, 3);\r\n const v2 = Vector3.NewVectorOfLength(v1, 10);\r\n\r\n expect(v2.x).toBeCloseTo(1.69);\r\n expect(v2.y).toBeCloseTo(-8.45);\r\n expect(v2.z).toBeCloseTo(5.07);\r\n });\r\n});\r\n\r\ndescribe(\"Vector 3 Value object - parameters\", () => {\r\n it(\"Gets the vector components\", () => {\r\n const v = new Vector3(2, 5, 7);\r\n expect(v.x).toEqual(2);\r\n expect(v.y).toEqual(5);\r\n expect(v.z).toEqual(7);\r\n });\r\n\r\n it(\"Gets the magnitue\", () => {\r\n // https://www.omnicalculator.com/math/unit-vector\r\n const v1 = new Vector3(1, -5, 3);\r\n expect(v1.magnitude).toBeCloseTo(5.916);\r\n });\r\n\r\n it(\"Gets the unit vector\", () => {\r\n // https://www.omnicalculator.com/math/unit-vector\r\n const v1 = new Vector3(1, -5, 3);\r\n\r\n expect(v1.unit.x).toBeCloseTo(0.169);\r\n expect(v1.unit.y).toBeCloseTo(-0.845);\r\n expect(v1.unit.z).toBeCloseTo(0.507);\r\n });\r\n\r\n it(\"Gets the vector as an array\", () => {\r\n const v1 = new Vector3(1, -5, 3);\r\n expect(v1.array).toEqual([1, -5, 3]);\r\n });\r\n\r\n it(\"Lerps\", () => {\r\n const start = new Vector3(10, 20, 30);\r\n const end = new Vector3(20, 30, 40);\r\n const lerped = Vector3.Lerp(start, end, 0.5);\r\n\r\n expect(lerped).toEqual(new Vector3(15, 25, 35));\r\n });\r\n\r\n it(\"Transforms a Vector with a matrix\", () => {\r\n const pos = new Vector3(5, 0, 0);\r\n const rot = Quaternion.FromAngleAxis(Vector3.Up(), Angle.FromDegrees(-90));\r\n const scale = new Vector3(2, 2, 2);\r\n const matrix = Matrix.Compose(scale, rot, pos);\r\n\r\n const transformed = Vector3.Transform(new Vector3(2, 1, -1), matrix);\r\n const expected = new Vector3(7, 2, 4);\r\n\r\n expect(Vector3.Close(transformed, expected)).toEqual(true);\r\n });\r\n\r\n it(\"Gets the Data Transfer Object\", () => {\r\n const vec = new Vector3(1, 2, 3);\r\n\r\n expect(vec.dto).toEqual({\r\n x: 1,\r\n y: 2,\r\n z: 3,\r\n });\r\n });\r\n\r\n it(\"Makes a vector from a DTO\", () => {\r\n const vec = Vector3.FromDTO({\r\n x: 1,\r\n y: 2,\r\n z: 3,\r\n });\r\n\r\n expect(vec.x).toEqual(1);\r\n expect(vec.y).toEqual(2);\r\n expect(vec.z).toEqual(3);\r\n });\r\n});\r\n"]}