@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Color.js","sourceRoot":"","sources":["../../../src/ValueObjects/Color.ts"],"names":[],"mappings":"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","sourcesContent":["export type BasicColor = \"\";\r\n\r\nexport interface ColorDTO {\r\n r: number;\r\n g: number;\r\n b: number;\r\n a: number;\r\n}\r\n\r\nexport class Color {\r\n /**\r\n * Creates a Color from RGBA values\r\n * @param r Red value, between 0-255\r\n * @param g Green value, between 0-255\r\n * @param b Blue value, between 0-255\r\n * @param a Alpha value, between 0-255\r\n * @returns The Color\r\n */\r\n public static RGBA(r: number, g: number, b: number, a: number) {\r\n return new Color(r, g, b, a);\r\n }\r\n\r\n /**\r\n * Creates a Color from RGB values. Alpha is set to 255\r\n * @param r Red value, between 0-255\r\n * @param g Green value, between 0-255\r\n * @param b Blue value, between 0-255\r\n * @returns The Color\r\n */\r\n public static RGB(r: number, g: number, b: number) {\r\n return new Color(r, g, b, 255);\r\n }\r\n\r\n /**\r\n *\r\n * @returns Creates a Color from a DTO\r\n * @param data Data Transfer Object\r\n */\r\n public static FromDTO(data: ColorDTO) {\r\n return new Color(data.r, data.g, data.b, data.a);\r\n }\r\n\r\n /**\r\n * Creates a color from a Hex value\r\n * @param hex The Hex string. Example '808080'\r\n * @returns The Color\r\n */\r\n public static Hex(hex: string): Color {\r\n // Expand shorthand form (e.g. \"03F\") to full form (e.g. \"0033FF\")\r\n const shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\r\n\r\n // tslint:disable-next-line\r\n hex = hex.replace(shorthandRegex, function (m, r, g, b) {\r\n return r + r + g + g + b + b;\r\n });\r\n\r\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\r\n\r\n let r = 0;\r\n let g = 0;\r\n let b = 0;\r\n\r\n if (result) {\r\n r = parseInt(result[1], 16);\r\n g = parseInt(result[2], 16);\r\n b = parseInt(result[3], 16);\r\n } else {\r\n console.warn(\"Unable to parse hex to color: \" + hex);\r\n }\r\n\r\n return Color.RGB(r, g, b);\r\n }\r\n\r\n /**\r\n * Creates a color from the X11 standard.\r\n * @param name X11 name\r\n * @returns The Color. If the color name is not found, it will return Black.\r\n */\r\n public static X11(name: string): Color {\r\n for (const c of x11Colors) {\r\n if (c.name.toLowerCase() === name.toLowerCase()) {\r\n return Color.Hex(c.hex);\r\n }\r\n }\r\n\r\n console.warn(\"Unable to find X11 color by name: \" + name);\r\n\r\n return Color.RGB(0, 0, 0);\r\n }\r\n\r\n /**\r\n * Checks to see if Color A equals Color B\r\n * @param a Color A\r\n * @param b Color B\r\n * @returns True if Color A === Color B\r\n */\r\n public static Equal(a: Color, b: Color): boolean {\r\n let areEqual = true;\r\n for (let index = 0; index < 4; index++) {\r\n if (a.array[index] !== b.array[index]) {\r\n areEqual = false;\r\n }\r\n }\r\n return areEqual;\r\n }\r\n\r\n readonly r: number;\r\n readonly g: number;\r\n readonly b: number;\r\n readonly a: number;\r\n\r\n /**\r\n * Return the r value as a percent\r\n */\r\n get rPercent(): number {\r\n return this.r / 255;\r\n }\r\n\r\n /**\r\n * Return the g value as a percent\r\n */\r\n get gPercent(): number {\r\n return this.g / 255;\r\n }\r\n\r\n /**\r\n * Return the b value as a percent\r\n */\r\n get bPercent(): number {\r\n return this.b / 255;\r\n }\r\n\r\n /**\r\n * Return the a value as a percent\r\n */\r\n get aPercent(): number {\r\n return this.a / 255;\r\n }\r\n\r\n /**\r\n * Returns the Color values as an array [r,g,b,a]\r\n */\r\n get array(): [number, number, number, number] {\r\n return [this.r, this.g, this.b, this.a];\r\n }\r\n\r\n /**\r\n * Returns the Color values as a hex\r\n */\r\n get hex(): string {\r\n let r = this.r.toString(16);\r\n let g = this.g.toString(16);\r\n let b = this.b.toString(16);\r\n\r\n if (r.length === 1) r = \"0\" + r;\r\n if (g.length === 1) g = \"0\" + g;\r\n if (b.length === 1) b = \"0\" + b;\r\n\r\n return \"#\" + r + g + b;\r\n }\r\n\r\n get dto(): ColorDTO {\r\n return {\r\n a: this.a,\r\n b: this.b,\r\n g: this.g,\r\n r: this.r,\r\n };\r\n }\r\n\r\n private clampVal(val: number): number {\r\n if (val > 255) return 255;\r\n if (val < 0) return 0;\r\n return val;\r\n }\r\n\r\n private constructor(r: number, g: number, b: number, a: number) {\r\n this.r = this.clampVal(r);\r\n this.g = this.clampVal(g);\r\n this.b = this.clampVal(b);\r\n this.a = this.clampVal(a);\r\n }\r\n}\r\n\r\ntype ColorObject = {\r\n name: string;\r\n hex: string;\r\n rgb: string;\r\n};\r\nconst x11Colors: ColorObject[] = [\r\n {\r\n name: \"Pink\",\r\n hex: \"ffc0cb\",\r\n rgb: \"255,192,203\",\r\n },\r\n {\r\n name: \"LightPink\",\r\n hex: \"ffb6c1\",\r\n rgb: \"255,182,193\",\r\n },\r\n {\r\n name: \"HotPink\",\r\n hex: \"ff69b4\",\r\n rgb: \"255,105,180\",\r\n },\r\n {\r\n name: \"DeepPink\",\r\n hex: \"ff1493\",\r\n rgb: \"255,20,147\",\r\n },\r\n {\r\n name: \"PaleVioletRed\",\r\n hex: \"db7093\",\r\n rgb: \"219,112,147\",\r\n },\r\n {\r\n name: \"MediumVioletRed\",\r\n hex: \"c71585\",\r\n rgb: \"199,21,133\",\r\n },\r\n {\r\n name: \"LightSalmon\",\r\n hex: \"ffa07a\",\r\n rgb: \"255,160,122\",\r\n },\r\n {\r\n name: \"Salmon\",\r\n hex: \"fa8072\",\r\n rgb: \"250,128,114\",\r\n },\r\n {\r\n name: \"DarkSalmon\",\r\n hex: \"e9967a\",\r\n rgb: \"233,150,122\",\r\n },\r\n {\r\n name: \"LightCoral\",\r\n hex: \"f08080\",\r\n rgb: \"240,128,128\",\r\n },\r\n {\r\n name: \"IndianRed\",\r\n hex: \"cd5c5c\",\r\n rgb: \"205,92,92\",\r\n },\r\n {\r\n name: \"Crimson\",\r\n hex: \"dc143c\",\r\n rgb: \"220,20,60\",\r\n },\r\n {\r\n name: \"FireBrick\",\r\n hex: \"b22222\",\r\n rgb: \"178,34,34\",\r\n },\r\n {\r\n name: \"DarkRed\",\r\n hex: \"8b0000\",\r\n rgb: \"139,0,0\",\r\n },\r\n {\r\n name: \"Red\",\r\n hex: \"ff0000\",\r\n rgb: \"255,0,0\",\r\n },\r\n {\r\n name: \"OrangeRed\",\r\n hex: \"ff4500\",\r\n rgb: \"255,69,0\",\r\n },\r\n {\r\n name: \"Tomato\",\r\n hex: \"ff6347\",\r\n rgb: \"255,99,71\",\r\n },\r\n {\r\n name: \"Coral\",\r\n hex: \"ff7f50\",\r\n rgb: \"255,127,80\",\r\n },\r\n {\r\n name: \"DarkOrange\",\r\n hex: \"ff8c00\",\r\n rgb: \"255,140,0\",\r\n },\r\n {\r\n name: \"Orange\",\r\n hex: \"ffa500\",\r\n rgb: \"255,165,0\",\r\n },\r\n {\r\n name: \"Gold\",\r\n hex: \"ffd700\",\r\n rgb: \"255,215,0\",\r\n },\r\n {\r\n name: \"Yellow\",\r\n hex: \"ffff00\",\r\n rgb: \"255,255,0\",\r\n },\r\n {\r\n name: \"LightYellow\",\r\n hex: \"ffffe0\",\r\n rgb: \"255,255,224\",\r\n },\r\n {\r\n name: \"LemonChiffon\",\r\n hex: \"fffacd\",\r\n rgb: \"255,250,205\",\r\n },\r\n {\r\n name: \"LightGoldenrodYellow\",\r\n hex: \"fafad2\",\r\n rgb: \"250,250,210\",\r\n },\r\n {\r\n name: \"PapayaWhip\",\r\n hex: \"ffefd5\",\r\n rgb: \"255,239,213\",\r\n },\r\n {\r\n name: \"Moccasin\",\r\n hex: \"ffe4b5\",\r\n rgb: \"255,228,181\",\r\n },\r\n {\r\n name: \"PeachPuff\",\r\n hex: \"ffdab9\",\r\n rgb: \"255,218,185\",\r\n },\r\n {\r\n name: \"PaleGoldenrod\",\r\n hex: \"eee8aa\",\r\n rgb: \"238,232,170\",\r\n },\r\n {\r\n name: \"Khaki\",\r\n hex: \"f0e68c\",\r\n rgb: \"240,230,140\",\r\n },\r\n {\r\n name: \"DarkKhaki\",\r\n hex: \"bdb76b\",\r\n rgb: \"189,183,107\",\r\n },\r\n {\r\n name: \"Cornsilk\",\r\n hex: \"fff8dc\",\r\n rgb: \"255,248,220\",\r\n },\r\n {\r\n name: \"BlanchedAlmond\",\r\n hex: \"ffebcd\",\r\n rgb: \"255,235,205\",\r\n },\r\n {\r\n name: \"Bisque\",\r\n hex: \"ffe4c4\",\r\n rgb: \"255,228,196\",\r\n },\r\n {\r\n name: \"NavajoWhite\",\r\n hex: \"ffdead\",\r\n rgb: \"255,222,173\",\r\n },\r\n {\r\n name: \"Wheat\",\r\n hex: \"f5deb3\",\r\n rgb: \"245,222,179\",\r\n },\r\n {\r\n name: \"BurlyWood\",\r\n hex: \"deb887\",\r\n rgb: \"222,184,135\",\r\n },\r\n {\r\n name: \"Tan\",\r\n hex: \"d2b48c\",\r\n rgb: \"210,180,140\",\r\n },\r\n {\r\n name: \"RosyBrown\",\r\n hex: \"bc8f8f\",\r\n rgb: \"188,143,143\",\r\n },\r\n {\r\n name: \"SandyBrown\",\r\n hex: \"f4a460\",\r\n rgb: \"244,164,96\",\r\n },\r\n {\r\n name: \"Goldenrod\",\r\n hex: \"daa520\",\r\n rgb: \"218,165,32\",\r\n },\r\n {\r\n name: \"DarkGoldenrod\",\r\n hex: \"b8860b\",\r\n rgb: \"184,134,11\",\r\n },\r\n {\r\n name: \"Peru\",\r\n hex: \"cd853f\",\r\n rgb: \"205,133,63\",\r\n },\r\n {\r\n name: \"Chocolate\",\r\n hex: \"d2691e\",\r\n rgb: \"210,105,30\",\r\n },\r\n {\r\n name: \"SaddleBrown\",\r\n hex: \"8b4513\",\r\n rgb: \"139,69,19\",\r\n },\r\n {\r\n name: \"Sienna\",\r\n hex: \"a0522d\",\r\n rgb: \"160,82,45\",\r\n },\r\n {\r\n name: \"Brown\",\r\n hex: \"a52a2a\",\r\n rgb: \"165,42,42\",\r\n },\r\n {\r\n name: \"Maroon\",\r\n hex: \"800000\",\r\n rgb: \"128,0,0\",\r\n },\r\n {\r\n name: \"DarkOliveGreen\",\r\n hex: \"556b2f\",\r\n rgb: \",85,107,47\",\r\n },\r\n {\r\n name: \"Olive\",\r\n hex: \"808000\",\r\n rgb: \"128,128,0\",\r\n },\r\n {\r\n name: \"OliveDrab\",\r\n hex: \"6b8e23\",\r\n rgb: \"107,142,35\",\r\n },\r\n {\r\n name: \"YellowGreen\",\r\n hex: \"9acd32\",\r\n rgb: \"154,205,50\",\r\n },\r\n {\r\n name: \"LimeGreen\",\r\n hex: \"32cd32\",\r\n rgb: \",50,205,50\",\r\n },\r\n {\r\n name: \"Lime\",\r\n hex: \"00ff00\",\r\n rgb: \",0,255,0\",\r\n },\r\n {\r\n name: \"LawnGreen\",\r\n hex: \"7cfc00\",\r\n rgb: \"124,252,0\",\r\n },\r\n {\r\n name: \"Chartreuse\",\r\n hex: \"7fff00\",\r\n rgb: \"127,255,0\",\r\n },\r\n {\r\n name: \"GreenYellow\",\r\n hex: \"adff2f\",\r\n rgb: \"173,255,47\",\r\n },\r\n {\r\n name: \"SpringGreen\",\r\n hex: \"00ff7f\",\r\n rgb: \",0,255,127\",\r\n },\r\n {\r\n name: \"MediumSpringGreen\",\r\n hex: \"00fa9a\",\r\n rgb: \",0,250,154\",\r\n },\r\n {\r\n name: \"LightGreen\",\r\n hex: \"90ee90\",\r\n rgb: \"144,238,144\",\r\n },\r\n {\r\n name: \"PaleGreen\",\r\n hex: \"98fb98\",\r\n rgb: \"152,251,152\",\r\n },\r\n {\r\n name: \"DarkSeaGreen\",\r\n hex: \"8fbc8f\",\r\n rgb: \"143,188,143\",\r\n },\r\n {\r\n name: \"MediumSeaGreen\",\r\n hex: \"3cb371\",\r\n rgb: \",60,179,113\",\r\n },\r\n {\r\n name: \"SeaGreen\",\r\n hex: \"2e8b57\",\r\n rgb: \",46,139,87\",\r\n },\r\n {\r\n name: \"ForestGreen\",\r\n hex: \"228b22\",\r\n rgb: \",34,139,34\",\r\n },\r\n {\r\n name: \"Green\",\r\n hex: \"008000\",\r\n rgb: \",0,128,0\",\r\n },\r\n {\r\n name: \"DarkGreen\",\r\n hex: \"006400\",\r\n rgb: \",0,100,0\",\r\n },\r\n {\r\n name: \"MediumAquamarine\",\r\n hex: \"66cdaa\",\r\n rgb: \"102,205,170\",\r\n },\r\n {\r\n name: \"Aqua\",\r\n hex: \"00ffff\",\r\n rgb: \",0,255,255\",\r\n },\r\n {\r\n name: \"Cyan\",\r\n hex: \"00ffff\",\r\n rgb: \",0,255,255\",\r\n },\r\n {\r\n name: \"LightCyan\",\r\n hex: \"e0ffff\",\r\n rgb: \"224,255,255\",\r\n },\r\n {\r\n name: \"PaleTurquoise\",\r\n hex: \"afeeee\",\r\n rgb: \"175,238,238\",\r\n },\r\n {\r\n name: \"Aquamarine\",\r\n hex: \"7fffd4\",\r\n rgb: \"127,255,212\",\r\n },\r\n {\r\n name: \"Turquoise\",\r\n hex: \"40e0d0\",\r\n rgb: \",64,224,208\",\r\n },\r\n {\r\n name: \"MediumTurquoise\",\r\n hex: \"48d1cc\",\r\n rgb: \",72,209,204\",\r\n },\r\n {\r\n name: \"DarkTurquoise\",\r\n hex: \"00ced1\",\r\n rgb: \",0,206,209\",\r\n },\r\n {\r\n name: \"LightSeaGreen\",\r\n hex: \"20b2aa\",\r\n rgb: \",32,178,170\",\r\n },\r\n {\r\n name: \"CadetBlue\",\r\n hex: \"5f9ea0\",\r\n rgb: \",95,158,160\",\r\n },\r\n {\r\n name: \"DarkCyan\",\r\n hex: \"008b8b\",\r\n rgb: \",0,139,139\",\r\n },\r\n {\r\n name: \"Teal\",\r\n hex: \"008080\",\r\n rgb: \",0,128,128\",\r\n },\r\n {\r\n name: \"LightSteelBlue\",\r\n hex: \"b0c4de\",\r\n rgb: \"176,196,222\",\r\n },\r\n {\r\n name: \"PowderBlue\",\r\n hex: \"b0e0e6\",\r\n rgb: \"176,224,230\",\r\n },\r\n {\r\n name: \"LightBlue\",\r\n hex: \"add8e6\",\r\n rgb: \"173,216,230\",\r\n },\r\n {\r\n name: \"SkyBlue\",\r\n hex: \"87ceeb\",\r\n rgb: \"135,206,235\",\r\n },\r\n {\r\n name: \"LightSkyBlue\",\r\n hex: \"87cefa\",\r\n rgb: \"135,206,250\",\r\n },\r\n {\r\n name: \"DeepSkyBlue\",\r\n hex: \"00bfff\",\r\n rgb: \",0,191,255\",\r\n },\r\n {\r\n name: \"DodgerBlue\",\r\n hex: \"1e90ff\",\r\n rgb: \",30,144,255\",\r\n },\r\n {\r\n name: \"CornflowerBlue\",\r\n hex: \"6495ed\",\r\n rgb: \"100,149,237\",\r\n },\r\n {\r\n name: \"SteelBlue\",\r\n hex: \"4682b4\",\r\n rgb: \",70,130,180\",\r\n },\r\n {\r\n name: \"RoyalBlue\",\r\n hex: \"4169e1\",\r\n rgb: \",65,105,225\",\r\n },\r\n {\r\n name: \"Blue\",\r\n hex: \"0000ff\",\r\n rgb: \",0,0,255\",\r\n },\r\n {\r\n name: \"MediumBlue\",\r\n hex: \"0000cd\",\r\n rgb: \",0,0,205\",\r\n },\r\n {\r\n name: \"DarkBlue\",\r\n hex: \"00008b\",\r\n rgb: \",0,0,139\",\r\n },\r\n {\r\n name: \"Navy\",\r\n hex: \"000080\",\r\n rgb: \",0,0,128\",\r\n },\r\n {\r\n name: \"MidnightBlue\",\r\n hex: \"191970\",\r\n rgb: \",25,25,112\",\r\n },\r\n {\r\n name: \"Lavender\",\r\n hex: \"e6e6fa\",\r\n rgb: \"230,230,250\",\r\n },\r\n {\r\n name: \"Thistle\",\r\n hex: \"d8bfd8\",\r\n rgb: \"216,191,216\",\r\n },\r\n {\r\n name: \"Plum\",\r\n hex: \"dda0dd\",\r\n rgb: \"221,160,221\",\r\n },\r\n {\r\n name: \"Violet\",\r\n hex: \"ee82ee\",\r\n rgb: \"238,130,238\",\r\n },\r\n {\r\n name: \"Orchid\",\r\n hex: \"da70d6\",\r\n rgb: \"218,112,214\",\r\n },\r\n {\r\n name: \"Fuchsia\",\r\n hex: \"ff00ff\",\r\n rgb: \"255,0,255\",\r\n },\r\n {\r\n name: \"Magenta\",\r\n hex: \"ff00ff\",\r\n rgb: \"255,0,255\",\r\n },\r\n {\r\n name: \"MediumOrchid\",\r\n hex: \"ba55d3\",\r\n rgb: \"186,85,211\",\r\n },\r\n {\r\n name: \"MediumPurple\",\r\n hex: \"9370db\",\r\n rgb: \"147,112,219\",\r\n },\r\n {\r\n name: \"BlueViolet\",\r\n hex: \"8a2be2\",\r\n rgb: \"138,43,226\",\r\n },\r\n {\r\n name: \"DarkViolet\",\r\n hex: \"9400d3\",\r\n rgb: \"148,0,211\",\r\n },\r\n {\r\n name: \"DarkOrchid\",\r\n hex: \"9932cc\",\r\n rgb: \"153,50,204\",\r\n },\r\n {\r\n name: \"DarkMagenta\",\r\n hex: \"8b008b\",\r\n rgb: \"139,0,139\",\r\n },\r\n {\r\n name: \"Purple\",\r\n hex: \"800080\",\r\n rgb: \"128,0,128\",\r\n },\r\n {\r\n name: \"Indigo\",\r\n hex: \"4b0082\",\r\n rgb: \",75,0,130\",\r\n },\r\n {\r\n name: \"DarkSlateBlue\",\r\n hex: \"483d8b\",\r\n rgb: \",72,61,139\",\r\n },\r\n {\r\n name: \"SlateBlue\",\r\n hex: \"6a5acd\",\r\n rgb: \"106,90,205\",\r\n },\r\n {\r\n name: \"MediumSlateBlue\",\r\n hex: \"7b68ee\",\r\n rgb: \"123,104,238\",\r\n },\r\n {\r\n name: \"White\",\r\n hex: \"ffffff\",\r\n rgb: \"255,255,255\",\r\n },\r\n {\r\n name: \"Snow\",\r\n hex: \"fffafa\",\r\n rgb: \"255,250,250\",\r\n },\r\n {\r\n name: \"Honeydew\",\r\n hex: \"f0fff0\",\r\n rgb: \"240,255,240\",\r\n },\r\n {\r\n name: \"MintCream\",\r\n hex: \"f5fffa\",\r\n rgb: \"245,255,250\",\r\n },\r\n {\r\n name: \"Azure\",\r\n hex: \"f0ffff\",\r\n rgb: \"240,255,255\",\r\n },\r\n {\r\n name: \"AliceBlue\",\r\n hex: \"f0f8ff\",\r\n rgb: \"240,248,255\",\r\n },\r\n {\r\n name: \"GhostWhite\",\r\n hex: \"f8f8ff\",\r\n rgb: \"248,248,255\",\r\n },\r\n {\r\n name: \"WhiteSmoke\",\r\n hex: \"f5f5f5\",\r\n rgb: \"245,245,245\",\r\n },\r\n {\r\n name: \"Seashell\",\r\n hex: \"fff5ee\",\r\n rgb: \"255,245,238\",\r\n },\r\n {\r\n name: \"Beige\",\r\n hex: \"f5f5dc\",\r\n rgb: \"245,245,220\",\r\n },\r\n {\r\n name: \"OldLace\",\r\n hex: \"fdf5e6\",\r\n rgb: \"253,245,230\",\r\n },\r\n {\r\n name: \"FloralWhite\",\r\n hex: \"fffaf0\",\r\n rgb: \"255,250,240\",\r\n },\r\n {\r\n name: \"Ivory\",\r\n hex: \"fffff0\",\r\n rgb: \"255,255,240\",\r\n },\r\n {\r\n name: \"AntiqueWhite\",\r\n hex: \"faebd7\",\r\n rgb: \"250,235,215\",\r\n },\r\n {\r\n name: \"Linen\",\r\n hex: \"faf0e6\",\r\n rgb: \"250,240,230\",\r\n },\r\n {\r\n name: \"LavenderBlush\",\r\n hex: \"fff0f5\",\r\n rgb: \"255,240,245\",\r\n },\r\n {\r\n name: \"MistyRose\",\r\n hex: \"ffe4e1\",\r\n rgb: \"255,228,225\",\r\n },\r\n {\r\n name: \"Gainsboro\",\r\n hex: \"dcdcdc\",\r\n rgb: \"220,220,220\",\r\n },\r\n {\r\n name: \"LightGray\",\r\n hex: \"d3d3d3\",\r\n rgb: \"211,211,211\",\r\n },\r\n {\r\n name: \"Silver\",\r\n hex: \"c0c0c0\",\r\n rgb: \"192,192,192\",\r\n },\r\n {\r\n name: \"DarkGrey\",\r\n hex: \"a9a9a9\",\r\n rgb: \"169,169,169\",\r\n },\r\n {\r\n name: \"Grey\",\r\n hex: \"808080\",\r\n rgb: \"128,128,128\",\r\n },\r\n {\r\n name: \"DimGrey\",\r\n hex: \"696969\",\r\n rgb: \"105,105,105\",\r\n },\r\n {\r\n name: \"LightSlateGrey\",\r\n hex: \"778899\",\r\n rgb: \"119,136,153\",\r\n },\r\n {\r\n name: \"SlateGrey\",\r\n hex: \"708090\",\r\n rgb: \"112,128,144\",\r\n },\r\n {\r\n name: \"DarkSlateGrey\",\r\n hex: \"2f4f4f\",\r\n rgb: \",47,79,79\",\r\n },\r\n {\r\n name: \"Black\",\r\n hex: \"000000\",\r\n rgb: \",0,0,0\",\r\n },\r\n];\r\n"]}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LineSegment2D = void 0;
4
+ const Vector2_1 = require("./Vector2");
5
+ class LineSegment2D {
6
+ static GetPositionAtPercent(line, percent) {
7
+ const dir = line.direction;
8
+ const length = percent * line.length;
9
+ const localPos = Vector2_1.Vector2.NewVectorOfLength(dir, length);
10
+ return Vector2_1.Vector2.Add(line.start, localPos);
11
+ }
12
+ static Intersect(a, b, tolerance = 0) {
13
+ // See https://en.wikipedia.org/wiki/Line%E2%80%93line_intersection
14
+ const x1 = a.start.x;
15
+ const y1 = a.start.y;
16
+ const x2 = a.end.x;
17
+ const y2 = a.end.y;
18
+ const x3 = b.start.x;
19
+ const y3 = b.start.y;
20
+ const x4 = b.end.x;
21
+ const y4 = b.end.y;
22
+ const denominator = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4);
23
+ if (denominator === 0) {
24
+ return undefined;
25
+ }
26
+ const tNumerator = (x1 - x3) * (y3 - y4) - (y1 - y3) * (x3 - x4);
27
+ const t = tNumerator / denominator;
28
+ const tTolerance = tolerance / a.length;
29
+ if (t < -tTolerance || t > 1 + tTolerance) {
30
+ return undefined;
31
+ }
32
+ const uNumerator = (x2 - x1) * (y1 - y3) - (y2 - y1) * (x1 - x3);
33
+ const u = uNumerator / denominator;
34
+ const uTolerance = tolerance / b.length;
35
+ if (u < -uTolerance || u > 1 + uTolerance)
36
+ return undefined;
37
+ const px = x1 + t * (x2 - x1);
38
+ const py = y1 + t * (y2 - y1);
39
+ return new Vector2_1.Vector2(px, py);
40
+ }
41
+ static ClosestPointOnLine(line, point) {
42
+ // see https://monkeyproofsolutions.nl/wordpress/how-to-calculate-the-shortest-distance-between-a-point-and-a-line/
43
+ let direction = Vector2_1.Vector2.Subtract(line.end, line.start);
44
+ const pointToStart = Vector2_1.Vector2.Subtract(point, line.start);
45
+ const tNumerator = Vector2_1.Vector2.Dot(direction, pointToStart);
46
+ const tDenominator = Vector2_1.Vector2.Dot(direction, direction);
47
+ const t = tNumerator / tDenominator;
48
+ if (t < 0) {
49
+ return line.start;
50
+ }
51
+ else if (t > 1) {
52
+ return line.end;
53
+ }
54
+ else {
55
+ const length = t * direction.magnitude;
56
+ direction = Vector2_1.Vector2.NewVectorOfLength(direction, length);
57
+ return Vector2_1.Vector2.Add(line.start, direction);
58
+ }
59
+ }
60
+ get length() {
61
+ return Vector2_1.Vector2.Subtract(this.start, this.end).magnitude;
62
+ }
63
+ get direction() {
64
+ return Vector2_1.Vector2.Subtract(this.end, this.start).unit;
65
+ }
66
+ constructor(start, end) {
67
+ this.start = start;
68
+ this.end = end;
69
+ }
70
+ }
71
+ exports.LineSegment2D = LineSegment2D;
72
+ //# sourceMappingURL=LineSegment2D.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LineSegment2D.js","sourceRoot":"","sources":["../../../src/ValueObjects/LineSegment2D.ts"],"names":[],"mappings":";;;AAAA,uCAAoC;AAEpC,MAAa,aAAa;IACjB,MAAM,CAAC,oBAAoB,CAChC,IAAmB,EACnB,OAAe;QAEf,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3B,MAAM,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;QAErC,MAAM,QAAQ,GAAG,iBAAO,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAExD,OAAO,iBAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAEM,MAAM,CAAC,SAAS,CACrB,CAAgB,EAChB,CAAgB,EAChB,SAAS,GAAG,CAAC;QAEb,mEAAmE;QACnE,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACrB,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACrB,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACnB,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACnB,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACrB,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACrB,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACnB,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAEnB,MAAM,WAAW,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QAClE,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,UAAU,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACjE,MAAM,CAAC,GAAG,UAAU,GAAG,WAAW,CAAC;QAEnC,MAAM,UAAU,GAAG,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;QACxC,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,EAAE,CAAC;YAC1C,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,UAAU,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACjE,MAAM,CAAC,GAAG,UAAU,GAAG,WAAW,CAAC;QAEnC,MAAM,UAAU,GAAG,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;QACxC,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU;YAAE,OAAO,SAAS,CAAC;QAE5D,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9B,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QAE9B,OAAO,IAAI,iBAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC7B,CAAC;IAEM,MAAM,CAAC,kBAAkB,CAC9B,IAAmB,EACnB,KAAc;QAEd,mHAAmH;QACnH,IAAI,SAAS,GAAG,iBAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,YAAY,GAAG,iBAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACzD,MAAM,UAAU,GAAG,iBAAO,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QACxD,MAAM,YAAY,GAAG,iBAAO,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACvD,MAAM,CAAC,GAAG,UAAU,GAAG,YAAY,CAAC;QAEpC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACV,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC;aAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,GAAG,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC;YACvC,SAAS,GAAG,iBAAO,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACzD,OAAO,iBAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAKD,IAAW,MAAM;QACf,OAAO,iBAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;IAC1D,CAAC;IAED,IAAW,SAAS;QAClB,OAAO,iBAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;IACrD,CAAC;IAED,YAAY,KAAc,EAAE,GAAY;QACtC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;CACF;AA1FD,sCA0FC","sourcesContent":["import { Vector2 } from \"./Vector2\";\r\n\r\nexport class LineSegment2D {\r\n public static GetPositionAtPercent(\r\n line: LineSegment2D,\r\n percent: number\r\n ): Vector2 {\r\n const dir = line.direction;\r\n const length = percent * line.length;\r\n\r\n const localPos = Vector2.NewVectorOfLength(dir, length);\r\n\r\n return Vector2.Add(line.start, localPos);\r\n }\r\n\r\n public static Intersect(\r\n a: LineSegment2D,\r\n b: LineSegment2D,\r\n tolerance = 0\r\n ): Vector2 | undefined {\r\n // See https://en.wikipedia.org/wiki/Line%E2%80%93line_intersection\r\n const x1 = a.start.x;\r\n const y1 = a.start.y;\r\n const x2 = a.end.x;\r\n const y2 = a.end.y;\r\n const x3 = b.start.x;\r\n const y3 = b.start.y;\r\n const x4 = b.end.x;\r\n const y4 = b.end.y;\r\n\r\n const denominator = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4);\r\n if (denominator === 0) {\r\n return undefined;\r\n }\r\n\r\n const tNumerator = (x1 - x3) * (y3 - y4) - (y1 - y3) * (x3 - x4);\r\n const t = tNumerator / denominator;\r\n\r\n const tTolerance = tolerance / a.length;\r\n if (t < -tTolerance || t > 1 + tTolerance) {\r\n return undefined;\r\n }\r\n\r\n const uNumerator = (x2 - x1) * (y1 - y3) - (y2 - y1) * (x1 - x3);\r\n const u = uNumerator / denominator;\r\n\r\n const uTolerance = tolerance / b.length;\r\n if (u < -uTolerance || u > 1 + uTolerance) return undefined;\r\n\r\n const px = x1 + t * (x2 - x1);\r\n const py = y1 + t * (y2 - y1);\r\n\r\n return new Vector2(px, py);\r\n }\r\n\r\n public static ClosestPointOnLine(\r\n line: LineSegment2D,\r\n point: Vector2\r\n ): Vector2 {\r\n // see https://monkeyproofsolutions.nl/wordpress/how-to-calculate-the-shortest-distance-between-a-point-and-a-line/\r\n let direction = Vector2.Subtract(line.end, line.start);\r\n const pointToStart = Vector2.Subtract(point, line.start);\r\n const tNumerator = Vector2.Dot(direction, pointToStart);\r\n const tDenominator = Vector2.Dot(direction, direction);\r\n const t = tNumerator / tDenominator;\r\n\r\n if (t < 0) {\r\n return line.start;\r\n } else if (t > 1) {\r\n return line.end;\r\n } else {\r\n const length = t * direction.magnitude;\r\n direction = Vector2.NewVectorOfLength(direction, length);\r\n return Vector2.Add(line.start, direction);\r\n }\r\n }\r\n\r\n readonly start: Vector2;\r\n readonly end: Vector2;\r\n\r\n public get length(): number {\r\n return Vector2.Subtract(this.start, this.end).magnitude;\r\n }\r\n\r\n public get direction(): Vector2 {\r\n return Vector2.Subtract(this.end, this.start).unit;\r\n }\r\n\r\n constructor(start: Vector2, end: Vector2) {\r\n this.start = start;\r\n this.end = end;\r\n }\r\n}\r\n"]}
@@ -0,0 +1,466 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Matrix = void 0;
4
+ const Quaternion_1 = require("./Quaternion");
5
+ const Vector3_1 = require("./Vector3");
6
+ class Matrix {
7
+ /**
8
+ * Constructs an identity matrix
9
+ * @returns An identity matrix
10
+ */
11
+ static Identity() {
12
+ return new Matrix([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);
13
+ }
14
+ /**
15
+ * Constructs a matrix of zeros
16
+ * @returns A matrix of zeros
17
+ */
18
+ static Zero() {
19
+ return new Matrix([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
20
+ }
21
+ /**
22
+ * Compares two matrices
23
+ * @param a Matrix A
24
+ * @param b Matrix B
25
+ * @returns True if all the elements in matrix A are equal to all the elements of matrix B
26
+ */
27
+ static Equal(a, b) {
28
+ let areEqual = true;
29
+ for (let i = 0; i < 16; i++) {
30
+ if (a._m[i] !== b._m[i]) {
31
+ areEqual = false;
32
+ break;
33
+ }
34
+ }
35
+ return areEqual;
36
+ }
37
+ /**
38
+ * Checks to see if Matrix A is close to Matrix B by comparing elements
39
+ * @param a Matrix A
40
+ * @param b Matrix B
41
+ * @param threshold "Close" threshold. Defaults to 0.001
42
+ * @returns True if all the difference between the elements in each array is less than the threshold
43
+ */
44
+ static Close(a, b, threshold = 0.001) {
45
+ let areClose = true;
46
+ for (let i = 0; i < 16; i++) {
47
+ let diff = a._m[i] - b._m[i];
48
+ if (diff < 0) {
49
+ diff = -diff;
50
+ }
51
+ if (diff > threshold) {
52
+ areClose = false;
53
+ break;
54
+ }
55
+ }
56
+ return areClose;
57
+ }
58
+ /**
59
+ * Multiplies Matrix A and B (AxB)
60
+ * @param a Matrix A
61
+ * @param b Matrix B
62
+ * @returns The result of AxB
63
+ */
64
+ static Multiply(a, b) {
65
+ const aMatrix = a._m;
66
+ const bMatrix = b._m;
67
+ const tm0 = bMatrix[0];
68
+ const tm1 = bMatrix[1];
69
+ const tm2 = bMatrix[2];
70
+ const tm3 = bMatrix[3];
71
+ const tm4 = bMatrix[4];
72
+ const tm5 = bMatrix[5];
73
+ const tm6 = bMatrix[6];
74
+ const tm7 = bMatrix[7];
75
+ const tm8 = bMatrix[8];
76
+ const tm9 = bMatrix[9];
77
+ const tm10 = bMatrix[10];
78
+ const tm11 = bMatrix[11];
79
+ const tm12 = bMatrix[12];
80
+ const tm13 = bMatrix[13];
81
+ const tm14 = bMatrix[14];
82
+ const tm15 = bMatrix[15];
83
+ const om0 = aMatrix[0];
84
+ const om1 = aMatrix[1];
85
+ const om2 = aMatrix[2];
86
+ const om3 = aMatrix[3];
87
+ const om4 = aMatrix[4];
88
+ const om5 = aMatrix[5];
89
+ const om6 = aMatrix[6];
90
+ const om7 = aMatrix[7];
91
+ const om8 = aMatrix[8];
92
+ const om9 = aMatrix[9];
93
+ const om10 = aMatrix[10];
94
+ const om11 = aMatrix[11];
95
+ const om12 = aMatrix[12];
96
+ const om13 = aMatrix[13];
97
+ const om14 = aMatrix[14];
98
+ const om15 = aMatrix[15];
99
+ const result1 = tm0 * om0 + tm1 * om4 + tm2 * om8 + tm3 * om12;
100
+ const result2 = tm0 * om1 + tm1 * om5 + tm2 * om9 + tm3 * om13;
101
+ const result3 = tm0 * om2 + tm1 * om6 + tm2 * om10 + tm3 * om14;
102
+ const result4 = tm0 * om3 + tm1 * om7 + tm2 * om11 + tm3 * om15;
103
+ const result5 = tm4 * om0 + tm5 * om4 + tm6 * om8 + tm7 * om12;
104
+ const result6 = tm4 * om1 + tm5 * om5 + tm6 * om9 + tm7 * om13;
105
+ const result7 = tm4 * om2 + tm5 * om6 + tm6 * om10 + tm7 * om14;
106
+ const result8 = tm4 * om3 + tm5 * om7 + tm6 * om11 + tm7 * om15;
107
+ const result9 = tm8 * om0 + tm9 * om4 + tm10 * om8 + tm11 * om12;
108
+ const result10 = tm8 * om1 + tm9 * om5 + tm10 * om9 + tm11 * om13;
109
+ const result11 = tm8 * om2 + tm9 * om6 + tm10 * om10 + tm11 * om14;
110
+ const result12 = tm8 * om3 + tm9 * om7 + tm10 * om11 + tm11 * om15;
111
+ const result13 = tm12 * om0 + tm13 * om4 + tm14 * om8 + tm15 * om12;
112
+ const result14 = tm12 * om1 + tm13 * om5 + tm14 * om9 + tm15 * om13;
113
+ const result15 = tm12 * om2 + tm13 * om6 + tm14 * om10 + tm15 * om14;
114
+ const result16 = tm12 * om3 + tm13 * om7 + tm14 * om11 + tm15 * om15;
115
+ return new Matrix([
116
+ result1,
117
+ result2,
118
+ result3,
119
+ result4,
120
+ result5,
121
+ result6,
122
+ result7,
123
+ result8,
124
+ result9,
125
+ result10,
126
+ result11,
127
+ result12,
128
+ result13,
129
+ result14,
130
+ result15,
131
+ result16,
132
+ ]);
133
+ }
134
+ /**
135
+ * Composes a matrix from a scale vector, rotation quaternion, and translation vector
136
+ * @param scale The scale of the transformation matrix
137
+ * @param rotation The rotation of the transformation matrix
138
+ * @param translation The translation of the transformation matrix
139
+ * @returns The composed matrix
140
+ */
141
+ static Compose(scale, rotation, translation) {
142
+ const final = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
143
+ const rotX = rotation.x;
144
+ const rotY = rotation.y;
145
+ const rotZ = rotation.z;
146
+ const rotW = rotation.w;
147
+ const x2 = rotX + rotX;
148
+ const y2 = rotY + rotY;
149
+ const z2 = rotZ + rotZ;
150
+ const xx = rotX * x2;
151
+ const xy = rotX * y2;
152
+ const xz = rotX * z2;
153
+ const yy = rotY * y2;
154
+ const yz = rotY * z2;
155
+ const zz = rotZ * z2;
156
+ const wx = rotW * x2;
157
+ const wy = rotW * y2;
158
+ const wz = rotW * z2;
159
+ const scaleX = scale.x;
160
+ const scaleY = scale.y;
161
+ const scaleZ = scale.z;
162
+ final[0] = (1 - (yy + zz)) * scaleX;
163
+ final[1] = (xy + wz) * scaleX;
164
+ final[2] = (xz - wy) * scaleX;
165
+ final[3] = 0;
166
+ final[4] = (xy - wz) * scaleY;
167
+ final[5] = (1 - (xx + zz)) * scaleY;
168
+ final[6] = (yz + wx) * scaleY;
169
+ final[7] = 0;
170
+ final[8] = (xz + wy) * scaleZ;
171
+ final[9] = (yz - wx) * scaleZ;
172
+ final[10] = (1 - (xx + yy)) * scaleZ;
173
+ final[11] = 0;
174
+ final[12] = translation.x;
175
+ final[13] = translation.y;
176
+ final[14] = translation.z;
177
+ final[15] = 1;
178
+ return new Matrix(final);
179
+ }
180
+ /**
181
+ * Inverts a matrix into a new matrix.
182
+ * @param matrix The matrix to invert
183
+ * @returns The inverted matrix unless the matrix cannot be inverted, then the identity is returned
184
+ */
185
+ static Invert(matrix) {
186
+ const m = matrix._m;
187
+ const m00 = m[0];
188
+ const m01 = m[1];
189
+ const m02 = m[2];
190
+ const m03 = m[3];
191
+ const m10 = m[4];
192
+ const m11 = m[5];
193
+ const m12 = m[6];
194
+ const m13 = m[7];
195
+ const m20 = m[8];
196
+ const m21 = m[9];
197
+ const m22 = m[10];
198
+ const m23 = m[11];
199
+ const m30 = m[12];
200
+ const m31 = m[13];
201
+ const m32 = m[14];
202
+ const m33 = m[15];
203
+ const det_12_33 = m12 * m33 - m32 * m13;
204
+ const det_11_33 = m11 * m33 - m31 * m13;
205
+ const det_11_32 = m11 * m32 - m31 * m12;
206
+ const det_10_33 = m10 * m33 - m30 * m13;
207
+ const det_10_32 = m10 * m32 - m30 * m12;
208
+ const det_10_31 = m10 * m31 - m30 * m11;
209
+ const det_12_23 = m12 * m23 - m22 * m13;
210
+ const det_11_23 = m11 * m23 - m21 * m13;
211
+ const det_11_22 = m11 * m22 - m21 * m12;
212
+ const det_10_23 = m10 * m23 - m20 * m13;
213
+ const det_10_22 = m10 * m22 - m20 * m12;
214
+ const det_10_21 = m10 * m21 - m20 * m11;
215
+ const det_22_33 = m22 * m33 - m32 * m23;
216
+ const det_21_33 = m21 * m33 - m31 * m23;
217
+ const det_21_32 = m21 * m32 - m31 * m22;
218
+ const det_20_33 = m20 * m33 - m30 * m23;
219
+ const det_20_32 = m20 * m32 - m22 * m30;
220
+ const det_20_31 = m20 * m31 - m30 * m21;
221
+ const cofact_00 = +(m11 * det_22_33 - m12 * det_21_33 + m13 * det_21_32);
222
+ const cofact_01 = -(m10 * det_22_33 - m12 * det_20_33 + m13 * det_20_32);
223
+ const cofact_02 = +(m10 * det_21_33 - m11 * det_20_33 + m13 * det_20_31);
224
+ const cofact_03 = -(m10 * det_21_32 - m11 * det_20_32 + m12 * det_20_31);
225
+ const det = m00 * cofact_00 + m01 * cofact_01 + m02 * cofact_02 + m03 * cofact_03;
226
+ if (det === 0)
227
+ return Matrix.Identity();
228
+ const detInv = 1 / det;
229
+ const cofact_10 = -(m01 * det_22_33 - m02 * det_21_33 + m03 * det_21_32);
230
+ const cofact_11 = +(m00 * det_22_33 - m02 * det_20_33 + m03 * det_20_32);
231
+ const cofact_12 = -(m00 * det_21_33 - m01 * det_20_33 + m03 * det_20_31);
232
+ const cofact_13 = +(m00 * det_21_32 - m01 * det_20_32 + m02 * det_20_31);
233
+ const cofact_20 = +(m01 * det_12_33 - m02 * det_11_33 + m03 * det_11_32);
234
+ const cofact_21 = -(m00 * det_12_33 - m02 * det_10_33 + m03 * det_10_32);
235
+ const cofact_22 = +(m00 * det_11_33 - m01 * det_10_33 + m03 * det_10_31);
236
+ const cofact_23 = -(m00 * det_11_32 - m01 * det_10_32 + m02 * det_10_31);
237
+ const cofact_30 = -(m01 * det_12_23 - m02 * det_11_23 + m03 * det_11_22);
238
+ const cofact_31 = +(m00 * det_12_23 - m02 * det_10_23 + m03 * det_10_22);
239
+ const cofact_32 = -(m00 * det_11_23 - m01 * det_10_23 + m03 * det_10_21);
240
+ const cofact_33 = +(m00 * det_11_22 - m01 * det_10_22 + m02 * det_10_21);
241
+ return new Matrix([
242
+ cofact_00 * detInv,
243
+ cofact_10 * detInv,
244
+ cofact_20 * detInv,
245
+ cofact_30 * detInv,
246
+ cofact_01 * detInv,
247
+ cofact_11 * detInv,
248
+ cofact_21 * detInv,
249
+ cofact_31 * detInv,
250
+ cofact_02 * detInv,
251
+ cofact_12 * detInv,
252
+ cofact_22 * detInv,
253
+ cofact_32 * detInv,
254
+ cofact_03 * detInv,
255
+ cofact_13 * detInv,
256
+ cofact_23 * detInv,
257
+ cofact_33 * detInv,
258
+ ]);
259
+ }
260
+ /**
261
+ * Creates a rotation matrix for a given axes and angle
262
+ * @param axis The axes of rotation
263
+ * @param angle The angle of rotation
264
+ * @returns A new rotation matrix
265
+ */
266
+ static FromRotationAxisAngle(axis, angle) {
267
+ const sin = Math.sin(-angle.radians);
268
+ const cosin = Math.cos(-angle.radians);
269
+ const c1 = 1 - cosin;
270
+ const unit = axis.unit;
271
+ const m = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
272
+ m[0] = unit.x * unit.x * c1 + cosin;
273
+ m[1] = unit.x * unit.y * c1 - unit.z * sin;
274
+ m[2] = unit.x * unit.z * c1 + unit.y * sin;
275
+ m[3] = 0.0;
276
+ m[4] = unit.y * unit.x * c1 + unit.z * sin;
277
+ m[5] = unit.y * unit.y * c1 + cosin;
278
+ m[6] = unit.y * unit.z * c1 - unit.x * sin;
279
+ m[7] = 0.0;
280
+ m[8] = unit.z * unit.x * c1 - unit.y * sin;
281
+ m[9] = unit.z * unit.y * c1 + unit.x * sin;
282
+ m[10] = unit.z * unit.z * c1 + cosin;
283
+ m[11] = 0.0;
284
+ m[12] = 0.0;
285
+ m[13] = 0.0;
286
+ m[14] = 0.0;
287
+ m[15] = 1.0;
288
+ return new Matrix(m);
289
+ }
290
+ /**
291
+ * Make a new transformation matrix that has the same scale and rotation as the original but the translation is set
292
+ * @param original The original matrix
293
+ * @param translation The new translation value
294
+ * @returns A new matrix that is the same as the original but the translation has been changed
295
+ */
296
+ static SetMatrixTranslation(original, translation) {
297
+ const values = original.m;
298
+ values[12] = translation.x;
299
+ values[13] = translation.y;
300
+ values[14] = translation.z;
301
+ return new Matrix(values);
302
+ }
303
+ /**
304
+ * Make a new transformation matrix that has the same scale and translation as the original but the rotation is set
305
+ * @param original The original matrix
306
+ * @param rotation The new rotation value
307
+ * @returns A new matrix that is the same as the original but the rotation has been changed
308
+ */
309
+ static SetMatrixRotation(original, rotation) {
310
+ const scale = original.scale;
311
+ const translation = original.translation;
312
+ return Matrix.Compose(scale, rotation, translation);
313
+ }
314
+ /**
315
+ * Make a new transformation matrix that has the same rotation and translation as the original but the scale is set
316
+ * @param original The original matrix
317
+ * @param scale The new scale value
318
+ * @returns A new matrix that is the same as the original but the scale has been changed
319
+ */
320
+ static SetMatrixScale(original, scale) {
321
+ const rotation = original.rotation;
322
+ const translation = original.translation;
323
+ return Matrix.Compose(scale, rotation, translation);
324
+ }
325
+ static FromFloat32Array(array) {
326
+ if (array.length !== 16) {
327
+ console.error("[matrixFrom32] Array does not have a length of 16");
328
+ return Matrix.Identity();
329
+ }
330
+ const matrixArray = [
331
+ array[0],
332
+ array[1],
333
+ array[2],
334
+ array[3],
335
+ array[4],
336
+ array[5],
337
+ array[6],
338
+ array[7],
339
+ array[8],
340
+ array[9],
341
+ array[10],
342
+ array[11],
343
+ array[12],
344
+ array[13],
345
+ array[14],
346
+ array[15],
347
+ ];
348
+ return new Matrix(matrixArray);
349
+ }
350
+ static FlipTransformMatrixHand(matrix) {
351
+ const m = matrix.m;
352
+ m[2] *= -1;
353
+ m[6] *= -1;
354
+ m[8] *= -1;
355
+ m[9] *= -1;
356
+ m[14] *= -1;
357
+ return new Matrix(m);
358
+ }
359
+ static FlipProjectionMatrixHand(matrix) {
360
+ const m = matrix.m;
361
+ m[8] *= -1;
362
+ m[9] *= -1;
363
+ m[10] *= -1;
364
+ m[11] *= -1;
365
+ return new Matrix(m);
366
+ }
367
+ /**
368
+ * Returns the determinate of the matrix
369
+ */
370
+ get determinate() {
371
+ const m = this._m;
372
+ const m00 = m[0];
373
+ const m01 = m[1];
374
+ const m02 = m[2];
375
+ const m03 = m[3];
376
+ const m10 = m[4];
377
+ const m11 = m[5];
378
+ const m12 = m[6];
379
+ const m13 = m[7];
380
+ const m20 = m[8];
381
+ const m21 = m[9];
382
+ const m22 = m[10];
383
+ const m23 = m[11];
384
+ const m30 = m[12];
385
+ const m31 = m[13];
386
+ const m32 = m[14];
387
+ const m33 = m[15];
388
+ const det_22_33 = m22 * m33 - m32 * m23;
389
+ const det_21_33 = m21 * m33 - m31 * m23;
390
+ const det_21_32 = m21 * m32 - m31 * m22;
391
+ const det_20_33 = m20 * m33 - m30 * m23;
392
+ const det_20_32 = m20 * m32 - m22 * m30;
393
+ const det_20_31 = m20 * m31 - m30 * m21;
394
+ const cofact_00 = +(m11 * det_22_33 - m12 * det_21_33 + m13 * det_21_32);
395
+ const cofact_01 = -(m10 * det_22_33 - m12 * det_20_33 + m13 * det_20_32);
396
+ const cofact_02 = +(m10 * det_21_33 - m11 * det_20_33 + m13 * det_20_31);
397
+ const cofact_03 = -(m10 * det_21_32 - m11 * det_20_32 + m12 * det_20_31);
398
+ return (m00 * cofact_00 + m01 * cofact_01 + m02 * cofact_02 + m03 * cofact_03);
399
+ }
400
+ /**
401
+ * Returns the translation component of the transformation matrix as a Vector
402
+ */
403
+ get translation() {
404
+ return new Vector3_1.Vector3(this._m[12], this._m[13], this._m[14]);
405
+ }
406
+ /**
407
+ * Returns the scale of the transformation matrix as a vector
408
+ */
409
+ get scale() {
410
+ const x = Math.sqrt(this._m[0] * this._m[0] +
411
+ this._m[1] * this._m[1] +
412
+ this._m[2] * this._m[2]);
413
+ let y = Math.sqrt(this._m[4] * this._m[4] +
414
+ this._m[5] * this._m[5] +
415
+ this._m[6] * this._m[6]);
416
+ const z = Math.sqrt(this._m[8] * this._m[8] +
417
+ this._m[9] * this._m[9] +
418
+ this._m[10] * this._m[10]);
419
+ if (this.determinate <= 0) {
420
+ y = -y;
421
+ }
422
+ return new Vector3_1.Vector3(x, y, z);
423
+ }
424
+ /**
425
+ * Returns the rotation components of the transformation matrix as a Quaternion
426
+ */
427
+ get rotation() {
428
+ return Quaternion_1.Quaternion.FromRotationMatrix(this.rotationMatrix);
429
+ }
430
+ /**
431
+ * Returns just the rotation matrix of the transformation matrix
432
+ */
433
+ get rotationMatrix() {
434
+ const scale = this.scale;
435
+ const sx = 1 / scale.x;
436
+ const sy = 1 / scale.y;
437
+ const sz = 1 / scale.z;
438
+ const rMatrixValues = [
439
+ this._m[0] * sx,
440
+ this._m[1] * sx,
441
+ this._m[2] * sx,
442
+ 0.0,
443
+ this._m[4] * sy,
444
+ this._m[5] * sy,
445
+ this._m[6] * sy,
446
+ 0.0,
447
+ this._m[8] * sz,
448
+ this._m[9] * sz,
449
+ this._m[10] * sz,
450
+ 0.0,
451
+ 0.0,
452
+ 0.0,
453
+ 0.0,
454
+ 1.0,
455
+ ];
456
+ return new Matrix(rMatrixValues);
457
+ }
458
+ get m() {
459
+ return [...this._m];
460
+ }
461
+ constructor(m) {
462
+ this._m = m;
463
+ }
464
+ }
465
+ exports.Matrix = Matrix;
466
+ //# sourceMappingURL=Matrix.js.map