@lightningjs/renderer 3.0.0-beta3 → 3.0.0-beta4

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 (379) hide show
  1. package/COPYING +1 -0
  2. package/LICENSE +202 -202
  3. package/NOTICE +3 -3
  4. package/README.md +147 -147
  5. package/dist/src/core/CoreNode.d.ts +3 -2
  6. package/dist/src/core/CoreNode.js +13 -7
  7. package/dist/src/core/CoreNode.js.map +1 -1
  8. package/dist/src/core/CoreTextNode.d.ts +2 -0
  9. package/dist/src/core/CoreTextNode.js +7 -0
  10. package/dist/src/core/CoreTextNode.js.map +1 -1
  11. package/dist/src/core/CoreTextureManager.d.ts +2 -0
  12. package/dist/src/core/CoreTextureManager.js +7 -5
  13. package/dist/src/core/CoreTextureManager.js.map +1 -1
  14. package/dist/src/core/Stage.d.ts +5 -0
  15. package/dist/src/core/Stage.js +10 -5
  16. package/dist/src/core/Stage.js.map +1 -1
  17. package/dist/src/core/lib/validateImageBitmap.d.ts +2 -1
  18. package/dist/src/core/lib/validateImageBitmap.js +4 -4
  19. package/dist/src/core/lib/validateImageBitmap.js.map +1 -1
  20. package/dist/src/core/platforms/Platform.d.ts +37 -0
  21. package/dist/src/{main-api/IRenderDriver.js → core/platforms/Platform.js} +4 -2
  22. package/dist/src/core/platforms/Platform.js.map +1 -0
  23. package/dist/src/core/platforms/web/WebPlatform.d.ts +9 -0
  24. package/dist/src/core/platforms/web/WebPlatform.js +58 -0
  25. package/dist/src/core/platforms/web/WebPlatform.js.map +1 -0
  26. package/dist/src/core/renderers/CoreRenderer.d.ts +3 -1
  27. package/dist/src/core/renderers/CoreRenderer.js.map +1 -1
  28. package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -1
  29. package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +3 -1
  30. package/dist/src/core/renderers/webgl/WebGlRenderer.js +86 -60
  31. package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -1
  32. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js +35 -35
  33. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +45 -45
  34. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +61 -61
  35. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +93 -93
  36. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +63 -63
  37. package/dist/src/core/renderers/webgl/shaders/SdfShader.js +62 -62
  38. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +15 -15
  39. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +6 -6
  40. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +15 -15
  41. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +15 -15
  42. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +15 -15
  43. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +42 -42
  44. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js +44 -44
  45. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +3 -3
  46. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +22 -22
  47. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +28 -28
  48. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +10 -10
  49. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +37 -37
  50. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +19 -19
  51. package/dist/src/core/shaders/webgl/Border.js +59 -59
  52. package/dist/src/core/shaders/webgl/Default.js +47 -47
  53. package/dist/src/core/shaders/webgl/DefaultBatched.js +61 -61
  54. package/dist/src/core/shaders/webgl/HolePunch.js +32 -32
  55. package/dist/src/core/shaders/webgl/LinearGradient.js +36 -36
  56. package/dist/src/core/shaders/webgl/RadialGradient.js +33 -33
  57. package/dist/src/core/shaders/webgl/Rounded.js +71 -71
  58. package/dist/src/core/shaders/webgl/RoundedWithBorder.js +66 -66
  59. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +79 -79
  60. package/dist/src/core/shaders/webgl/RoundedWithShadow.js +54 -54
  61. package/dist/src/core/shaders/webgl/SdfShader.js +62 -62
  62. package/dist/src/core/shaders/webgl/Shadow.js +83 -83
  63. package/dist/src/core/temp.js +77 -0
  64. package/dist/src/core/temp.js.map +1 -0
  65. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +5 -0
  66. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +1 -1
  67. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +1 -1
  68. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js +50 -2
  69. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +1 -1
  70. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +6 -2
  71. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
  72. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.d.ts +1 -1
  73. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +66 -8
  74. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +1 -1
  75. package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +13 -0
  76. package/dist/src/core/text-rendering/renderers/TextRenderer.js +3 -0
  77. package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +1 -1
  78. package/dist/src/core/textures/ImageTexture.d.ts +1 -0
  79. package/dist/src/core/textures/ImageTexture.js +5 -3
  80. package/dist/src/core/textures/ImageTexture.js.map +1 -1
  81. package/dist/src/core/textures/Texture.d.ts +9 -2
  82. package/dist/src/core/textures/Texture.js +18 -6
  83. package/dist/src/core/textures/Texture.js.map +1 -1
  84. package/dist/src/main-api/Renderer.d.ts +12 -0
  85. package/dist/src/main-api/Renderer.js +14 -2
  86. package/dist/src/main-api/Renderer.js.map +1 -1
  87. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  88. package/exports/canvas-shaders.ts +28 -28
  89. package/exports/canvas.ts +45 -45
  90. package/exports/index.ts +90 -90
  91. package/exports/inspector.ts +24 -24
  92. package/exports/utils.ts +44 -44
  93. package/exports/webgl-shaders.ts +28 -28
  94. package/exports/webgl.ts +50 -50
  95. package/package.json +1 -2
  96. package/scripts/please-use-pnpm.js +13 -13
  97. package/src/common/CommonTypes.ts +146 -146
  98. package/src/common/EventEmitter.ts +77 -77
  99. package/src/common/IAnimationController.ts +92 -92
  100. package/src/common/IEventEmitter.ts +28 -28
  101. package/src/core/CoreNode.test.ts +203 -203
  102. package/src/core/CoreNode.ts +2494 -2486
  103. package/src/core/CoreShaderManager.ts +188 -188
  104. package/src/core/CoreTextNode.ts +448 -439
  105. package/src/core/CoreTextureManager.ts +601 -597
  106. package/src/core/Stage.ts +754 -738
  107. package/src/core/TextureMemoryManager.ts +395 -395
  108. package/src/core/animations/AnimationManager.ts +38 -38
  109. package/src/core/animations/CoreAnimation.ts +284 -284
  110. package/src/core/animations/CoreAnimationController.ts +157 -157
  111. package/src/core/lib/ContextSpy.ts +41 -41
  112. package/src/core/lib/ImageWorker.ts +280 -280
  113. package/src/core/lib/Matrix3d.ts +244 -244
  114. package/src/core/lib/RenderCoords.ts +71 -71
  115. package/src/core/lib/WebGlContextWrapper.ts +1374 -1374
  116. package/src/core/lib/textureCompression.ts +152 -152
  117. package/src/core/lib/textureSvg.ts +78 -78
  118. package/src/core/lib/utils.ts +386 -386
  119. package/src/core/lib/validateImageBitmap.ts +87 -76
  120. package/src/core/platform.ts +64 -64
  121. package/src/core/platforms/Platform.ts +77 -0
  122. package/src/core/platforms/web/WebPlatform.ts +84 -0
  123. package/src/core/renderers/CoreContextTexture.ts +43 -43
  124. package/src/core/renderers/CoreRenderOp.ts +22 -22
  125. package/src/core/renderers/CoreRenderer.ts +109 -107
  126. package/src/core/renderers/CoreShaderNode.ts +165 -165
  127. package/src/core/renderers/CoreShaderProgram.ts +23 -23
  128. package/src/core/renderers/canvas/CanvasRenderer.ts +298 -298
  129. package/src/core/renderers/canvas/CanvasShaderNode.ts +99 -99
  130. package/src/core/renderers/canvas/CanvasTexture.ts +156 -156
  131. package/src/core/renderers/canvas/internal/C2DShaderUtils.ts +220 -220
  132. package/src/core/renderers/canvas/internal/ColorUtils.ts +85 -85
  133. package/src/core/renderers/webgl/WebGlCtxRenderTexture.ts +86 -86
  134. package/src/core/renderers/webgl/WebGlCtxSubTexture.ts +50 -50
  135. package/src/core/renderers/webgl/WebGlCtxTexture.ts +301 -301
  136. package/src/core/renderers/webgl/WebGlRenderOp.ts +161 -161
  137. package/src/core/renderers/webgl/WebGlRenderer.ts +750 -720
  138. package/src/core/renderers/webgl/WebGlShaderNode.ts +437 -437
  139. package/src/core/renderers/webgl/WebGlShaderProgram.ts +318 -318
  140. package/src/core/renderers/webgl/internal/BufferCollection.ts +54 -54
  141. package/src/core/renderers/webgl/internal/RendererUtils.ts +155 -155
  142. package/src/core/renderers/webgl/internal/ShaderUtils.ts +281 -281
  143. package/src/core/renderers/webgl/internal/WebGlUtils.ts +35 -35
  144. package/src/core/shaders/canvas/Border.ts +78 -78
  145. package/src/core/shaders/canvas/HolePunch.ts +62 -62
  146. package/src/core/shaders/canvas/LinearGradient.ts +69 -69
  147. package/src/core/shaders/canvas/RadialGradient.ts +113 -113
  148. package/src/core/shaders/canvas/Rounded.ts +55 -55
  149. package/src/core/shaders/canvas/RoundedWithBorder.ts +68 -68
  150. package/src/core/shaders/canvas/RoundedWithBorderAndShadow.ts +88 -88
  151. package/src/core/shaders/canvas/RoundedWithShadow.ts +69 -69
  152. package/src/core/shaders/canvas/Shadow.ts +52 -52
  153. package/src/core/shaders/canvas/utils/render.ts +151 -151
  154. package/src/core/shaders/templates/BorderTemplate.ts +115 -115
  155. package/src/core/shaders/templates/HolePunchTemplate.ts +82 -82
  156. package/src/core/shaders/templates/LinearGradientTemplate.ts +71 -71
  157. package/src/core/shaders/templates/RadialGradientTemplate.ts +81 -81
  158. package/src/core/shaders/templates/RoundedTemplate.ts +98 -98
  159. package/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.ts +38 -38
  160. package/src/core/shaders/templates/RoundedWithBorderTemplate.ts +35 -35
  161. package/src/core/shaders/templates/RoundedWithShadowTemplate.ts +35 -35
  162. package/src/core/shaders/templates/ShadowTemplate.ts +106 -106
  163. package/src/core/shaders/templates/shaderUtils.ts +47 -47
  164. package/src/core/shaders/webgl/Border.ts +96 -96
  165. package/src/core/shaders/webgl/Default.ts +89 -89
  166. package/src/core/shaders/webgl/DefaultBatched.ts +129 -129
  167. package/src/core/shaders/webgl/HolePunch.ts +78 -78
  168. package/src/core/shaders/webgl/LinearGradient.ts +81 -81
  169. package/src/core/shaders/webgl/RadialGradient.ts +84 -84
  170. package/src/core/shaders/webgl/Rounded.ts +117 -117
  171. package/src/core/shaders/webgl/RoundedWithBorder.ts +114 -114
  172. package/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts +133 -133
  173. package/src/core/shaders/webgl/RoundedWithShadow.ts +98 -98
  174. package/src/core/shaders/webgl/SdfShader.ts +134 -134
  175. package/src/core/shaders/webgl/Shadow.ts +115 -115
  176. package/src/core/text-rendering/TextRenderingUtils.ts +36 -36
  177. package/src/core/text-rendering/TextTextureRendererUtils.ts +263 -263
  178. package/src/core/text-rendering/TrFontManager.ts +183 -183
  179. package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +176 -176
  180. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.ts +139 -139
  181. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.test.ts +173 -173
  182. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +171 -171
  183. package/src/core/text-rendering/font-face-types/TrFontFace.ts +187 -187
  184. package/src/core/text-rendering/font-face-types/WebTrFontFace.ts +94 -94
  185. package/src/core/text-rendering/font-face-types/utils.ts +39 -39
  186. package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +514 -509
  187. package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +863 -815
  188. package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +846 -840
  189. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.test.ts +48 -48
  190. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.ts +66 -66
  191. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.ts +52 -52
  192. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.ts +32 -32
  193. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts +117 -117
  194. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.test.ts +133 -133
  195. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.ts +38 -38
  196. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +497 -408
  197. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.test.ts +49 -49
  198. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.ts +52 -52
  199. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.test.ts +205 -205
  200. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.ts +93 -93
  201. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts +40 -40
  202. package/src/core/text-rendering/renderers/TextRenderer.ts +567 -550
  203. package/src/core/textures/ColorTexture.ts +102 -102
  204. package/src/core/textures/ImageTexture.ts +410 -399
  205. package/src/core/textures/NoiseTexture.ts +104 -104
  206. package/src/core/textures/RenderTexture.ts +85 -85
  207. package/src/core/textures/SubTexture.ts +205 -205
  208. package/src/core/textures/Texture.ts +358 -337
  209. package/src/core/utils.ts +227 -227
  210. package/src/env.d.ts +7 -7
  211. package/src/main-api/INode.ts +100 -100
  212. package/src/main-api/Inspector.ts +522 -522
  213. package/src/main-api/Renderer.ts +675 -649
  214. package/src/main-api/utils.ts +45 -45
  215. package/src/utils.ts +267 -267
  216. package/dist/exports/core-api.d.ts +0 -74
  217. package/dist/exports/core-api.js +0 -96
  218. package/dist/exports/core-api.js.map +0 -1
  219. package/dist/exports/main-api.d.ts +0 -30
  220. package/dist/exports/main-api.js +0 -45
  221. package/dist/exports/main-api.js.map +0 -1
  222. package/dist/src/core/CoreExtension.d.ts +0 -12
  223. package/dist/src/core/CoreExtension.js +0 -29
  224. package/dist/src/core/CoreExtension.js.map +0 -1
  225. package/dist/src/core/CoreStuff.js +0 -138
  226. package/dist/src/core/CoreStuff.js.map +0 -1
  227. package/dist/src/core/CoreTexturizer.d.ts +0 -14
  228. package/dist/src/core/CoreTexturizer.js +0 -47
  229. package/dist/src/core/CoreTexturizer.js.map +0 -1
  230. package/dist/src/core/LngNode.d.ts +0 -736
  231. package/dist/src/core/LngNode.js +0 -1174
  232. package/dist/src/core/LngNode.js.map +0 -1
  233. package/dist/src/core/Matrix2DContext.d.ts +0 -15
  234. package/dist/src/core/Matrix2DContext.js +0 -45
  235. package/dist/src/core/Matrix2DContext.js.map +0 -1
  236. package/dist/src/core/ShaderNode.d.ts +0 -10
  237. package/dist/src/core/ShaderNode.js +0 -30
  238. package/dist/src/core/ShaderNode.js.map +0 -1
  239. package/dist/src/core/TextNode.d.ts +0 -103
  240. package/dist/src/core/TextNode.js +0 -331
  241. package/dist/src/core/TextNode.js.map +0 -1
  242. package/dist/src/core/lib/Coords.d.ts +0 -14
  243. package/dist/src/core/lib/Coords.js +0 -55
  244. package/dist/src/core/lib/Coords.js.map +0 -1
  245. package/dist/src/core/lib/glm/common.d.ts +0 -162
  246. package/dist/src/core/lib/glm/common.js +0 -81
  247. package/dist/src/core/lib/glm/common.js.map +0 -1
  248. package/dist/src/core/lib/glm/index.d.ts +0 -11
  249. package/dist/src/core/lib/glm/index.js +0 -30
  250. package/dist/src/core/lib/glm/index.js.map +0 -1
  251. package/dist/src/core/lib/glm/mat2.d.ts +0 -219
  252. package/dist/src/core/lib/glm/mat2.js +0 -396
  253. package/dist/src/core/lib/glm/mat2.js.map +0 -1
  254. package/dist/src/core/lib/glm/mat2d.d.ts +0 -237
  255. package/dist/src/core/lib/glm/mat2d.js +0 -442
  256. package/dist/src/core/lib/glm/mat2d.js.map +0 -1
  257. package/dist/src/core/lib/glm/mat3.d.ts +0 -283
  258. package/dist/src/core/lib/glm/mat3.js +0 -680
  259. package/dist/src/core/lib/glm/mat3.js.map +0 -1
  260. package/dist/src/core/lib/glm/mat4.d.ts +0 -550
  261. package/dist/src/core/lib/glm/mat4.js +0 -1802
  262. package/dist/src/core/lib/glm/mat4.js.map +0 -1
  263. package/dist/src/core/lib/glm/quat.d.ts +0 -363
  264. package/dist/src/core/lib/glm/quat.js +0 -693
  265. package/dist/src/core/lib/glm/quat.js.map +0 -1
  266. package/dist/src/core/lib/glm/quat2.d.ts +0 -356
  267. package/dist/src/core/lib/glm/quat2.js +0 -754
  268. package/dist/src/core/lib/glm/quat2.js.map +0 -1
  269. package/dist/src/core/lib/glm/vec2.d.ts +0 -365
  270. package/dist/src/core/lib/glm/vec2.js +0 -569
  271. package/dist/src/core/lib/glm/vec2.js.map +0 -1
  272. package/dist/src/core/lib/glm/vec3.d.ts +0 -406
  273. package/dist/src/core/lib/glm/vec3.js +0 -720
  274. package/dist/src/core/lib/glm/vec3.js.map +0 -1
  275. package/dist/src/core/lib/glm/vec4.d.ts +0 -330
  276. package/dist/src/core/lib/glm/vec4.js +0 -608
  277. package/dist/src/core/lib/glm/vec4.js.map +0 -1
  278. package/dist/src/core/renderers/CoreShaderManager.d.ts +0 -19
  279. package/dist/src/core/renderers/CoreShaderManager.js +0 -33
  280. package/dist/src/core/renderers/CoreShaderManager.js.map +0 -1
  281. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.d.ts +0 -27
  282. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.js +0 -82
  283. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.js.map +0 -1
  284. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.d.ts +0 -11
  285. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.js +0 -34
  286. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.js.map +0 -1
  287. package/dist/src/core/scene/Scene.d.ts +0 -59
  288. package/dist/src/core/scene/Scene.js +0 -106
  289. package/dist/src/core/scene/Scene.js.map +0 -1
  290. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.d.ts +0 -20
  291. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js +0 -55
  292. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js.map +0 -1
  293. package/dist/src/main-api/ICoreDriver.d.ts +0 -27
  294. package/dist/src/main-api/ICoreDriver.js +0 -20
  295. package/dist/src/main-api/ICoreDriver.js.map +0 -1
  296. package/dist/src/main-api/IRenderDriver.d.ts +0 -20
  297. package/dist/src/main-api/IRenderDriver.js.map +0 -1
  298. package/dist/src/main-api/IShaderController.d.ts +0 -14
  299. package/dist/src/main-api/IShaderController.js +0 -30
  300. package/dist/src/main-api/IShaderController.js.map +0 -1
  301. package/dist/src/main-api/IShaderNode.d.ts +0 -17
  302. package/dist/src/main-api/IShaderNode.js +0 -19
  303. package/dist/src/main-api/IShaderNode.js.map +0 -1
  304. package/dist/src/main-api/RendererMain.d.ts +0 -375
  305. package/dist/src/main-api/RendererMain.js +0 -365
  306. package/dist/src/main-api/RendererMain.js.map +0 -1
  307. package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.d.ts +0 -9
  308. package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.js +0 -38
  309. package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.js.map +0 -1
  310. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.d.ts +0 -56
  311. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js +0 -101
  312. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js.map +0 -1
  313. package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.d.ts +0 -32
  314. package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.js +0 -28
  315. package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.js.map +0 -1
  316. package/dist/src/render-drivers/main/MainCoreDriver.d.ts +0 -24
  317. package/dist/src/render-drivers/main/MainCoreDriver.js +0 -118
  318. package/dist/src/render-drivers/main/MainCoreDriver.js.map +0 -1
  319. package/dist/src/render-drivers/main/MainOnlyNode.d.ts +0 -99
  320. package/dist/src/render-drivers/main/MainOnlyNode.js +0 -396
  321. package/dist/src/render-drivers/main/MainOnlyNode.js.map +0 -1
  322. package/dist/src/render-drivers/main/MainOnlyShaderController.d.ts +0 -6
  323. package/dist/src/render-drivers/main/MainOnlyShaderController.js +0 -15
  324. package/dist/src/render-drivers/main/MainOnlyShaderController.js.map +0 -1
  325. package/dist/src/render-drivers/main/MainOnlyShaderNode.d.ts +0 -7
  326. package/dist/src/render-drivers/main/MainOnlyShaderNode.js +0 -34
  327. package/dist/src/render-drivers/main/MainOnlyShaderNode.js.map +0 -1
  328. package/dist/src/render-drivers/main/MainOnlyTextNode.d.ts +0 -47
  329. package/dist/src/render-drivers/main/MainOnlyTextNode.js +0 -205
  330. package/dist/src/render-drivers/main/MainOnlyTextNode.js.map +0 -1
  331. package/dist/src/render-drivers/main/MainRenderDriver.d.ts +0 -17
  332. package/dist/src/render-drivers/main/MainRenderDriver.js +0 -88
  333. package/dist/src/render-drivers/main/MainRenderDriver.js.map +0 -1
  334. package/dist/src/render-drivers/threadx/NodeStruct.d.ts +0 -90
  335. package/dist/src/render-drivers/threadx/NodeStruct.js +0 -281
  336. package/dist/src/render-drivers/threadx/NodeStruct.js.map +0 -1
  337. package/dist/src/render-drivers/threadx/SharedNode.d.ts +0 -39
  338. package/dist/src/render-drivers/threadx/SharedNode.js +0 -60
  339. package/dist/src/render-drivers/threadx/SharedNode.js.map +0 -1
  340. package/dist/src/render-drivers/threadx/TextNodeStruct.d.ts +0 -44
  341. package/dist/src/render-drivers/threadx/TextNodeStruct.js +0 -201
  342. package/dist/src/render-drivers/threadx/TextNodeStruct.js.map +0 -1
  343. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.d.ts +0 -28
  344. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js +0 -234
  345. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js.map +0 -1
  346. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.d.ts +0 -20
  347. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js +0 -84
  348. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js.map +0 -1
  349. package/dist/src/render-drivers/threadx/ThreadXMainNode.d.ts +0 -44
  350. package/dist/src/render-drivers/threadx/ThreadXMainNode.js +0 -154
  351. package/dist/src/render-drivers/threadx/ThreadXMainNode.js.map +0 -1
  352. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.d.ts +0 -6
  353. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js +0 -16
  354. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js.map +0 -1
  355. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.d.ts +0 -7
  356. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.js +0 -15
  357. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.js.map +0 -1
  358. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.d.ts +0 -28
  359. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js +0 -55
  360. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js.map +0 -1
  361. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.d.ts +0 -21
  362. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js +0 -198
  363. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js.map +0 -1
  364. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.d.ts +0 -70
  365. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js +0 -32
  366. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js.map +0 -1
  367. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.d.ts +0 -19
  368. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js +0 -177
  369. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js.map +0 -1
  370. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.d.ts +0 -27
  371. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js +0 -108
  372. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js.map +0 -1
  373. package/dist/src/render-drivers/threadx/worker/renderer.d.ts +0 -1
  374. package/dist/src/render-drivers/threadx/worker/renderer.js +0 -145
  375. package/dist/src/render-drivers/threadx/worker/renderer.js.map +0 -1
  376. package/dist/src/render-drivers/utils.d.ts +0 -12
  377. package/dist/src/render-drivers/utils.js +0 -69
  378. package/dist/src/render-drivers/utils.js.map +0 -1
  379. /package/dist/src/core/{CoreStuff.d.ts → temp.d.ts} +0 -0
@@ -1,720 +0,0 @@
1
- /*
2
- * If not stated otherwise in this file or this component's LICENSE file the
3
- * following copyright and licenses apply:
4
- *
5
- * Copyright 2023 Comcast Cable Communications Management, LLC.
6
- *
7
- * Licensed under the Apache License, Version 2.0 (the License);
8
- * you may not use this file except in compliance with the License.
9
- * You may obtain a copy of the License at
10
- *
11
- * http://www.apache.org/licenses/LICENSE-2.0
12
- *
13
- * Unless required by applicable law or agreed to in writing, software
14
- * distributed under the License is distributed on an "AS IS" BASIS,
15
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- * See the License for the specific language governing permissions and
17
- * limitations under the License.
18
- */
19
- import { EPSILON, getMatrixArrayType, RANDOM, } from './common.js';
20
- /**
21
- * Creates a new, empty Vec3
22
- *
23
- * @returns {Vec3} a new 3D vector
24
- */
25
- export function create() {
26
- const out = getMatrixArrayType(3);
27
- if (!(out instanceof Float32Array)) {
28
- out[0] = 0;
29
- out[1] = 0;
30
- out[2] = 0;
31
- }
32
- return out;
33
- }
34
- /**
35
- * Creates a new Vec3 initialized with values from an existing vector
36
- *
37
- * @param {Vec3} a vector to clone
38
- * @returns {Vec3} a new 3D vector
39
- */
40
- export function clone(a) {
41
- const out = getMatrixArrayType(3);
42
- out[0] = a[0];
43
- out[1] = a[1];
44
- out[2] = a[2];
45
- return out;
46
- }
47
- /**
48
- * Calculates the length of a Vec3
49
- *
50
- * @param {Vec3} a vector to calculate length of
51
- * @returns {Number} length of a
52
- */
53
- export function length(a) {
54
- const x = a[0];
55
- const y = a[1];
56
- const z = a[2];
57
- return Math.hypot(x, y, z);
58
- }
59
- /**
60
- * Creates a new Vec3 initialized with the given values
61
- *
62
- * @param {Number} x X component
63
- * @param {Number} y Y component
64
- * @param {Number} z Z component
65
- * @returns {Vec3} a new 3D vector
66
- */
67
- export function fromValues(x, y, z) {
68
- const out = getMatrixArrayType(3);
69
- out[0] = x;
70
- out[1] = y;
71
- out[2] = z;
72
- return out;
73
- }
74
- /**
75
- * Copy the values from one Vec3 to another
76
- *
77
- * @param {Vec3} out the receiving vector
78
- * @param {Vec3} a the source vector
79
- * @returns {Vec3} out
80
- */
81
- export function copy(out, a) {
82
- out[0] = a[0];
83
- out[1] = a[1];
84
- out[2] = a[2];
85
- return out;
86
- }
87
- /**
88
- * Set the components of a Vec3 to the given values
89
- *
90
- * @param {Vec3} out the receiving vector
91
- * @param {Number} x X component
92
- * @param {Number} y Y component
93
- * @param {Number} z Z component
94
- * @returns {Vec3} out
95
- */
96
- export function set(out, x, y, z) {
97
- out[0] = x;
98
- out[1] = y;
99
- out[2] = z;
100
- return out;
101
- }
102
- /**
103
- * Adds two Vec3's
104
- *
105
- * @param {Vec3} out the receiving vector
106
- * @param {Vec3} a the first operand
107
- * @param {Vec3} b the second operand
108
- * @returns {Vec3} out
109
- */
110
- export function add(out, a, b) {
111
- out[0] = a[0] + b[0];
112
- out[1] = a[1] + b[1];
113
- out[2] = a[2] + b[2];
114
- return out;
115
- }
116
- /**
117
- * Subtracts vector b from vector a
118
- *
119
- * @param {Vec3} out the receiving vector
120
- * @param {Vec3} a the first operand
121
- * @param {Vec3} b the second operand
122
- * @returns {Vec3} out
123
- */
124
- export function subtract(out, a, b) {
125
- out[0] = a[0] - b[0];
126
- out[1] = a[1] - b[1];
127
- out[2] = a[2] - b[2];
128
- return out;
129
- }
130
- /**
131
- * Multiplies two Vec3's
132
- *
133
- * @param {Vec3} out the receiving vector
134
- * @param {Vec3} a the first operand
135
- * @param {Vec3} b the second operand
136
- * @returns {Vec3} out
137
- */
138
- export function multiply(out, a, b) {
139
- out[0] = a[0] * b[0];
140
- out[1] = a[1] * b[1];
141
- out[2] = a[2] * b[2];
142
- return out;
143
- }
144
- /**
145
- * Divides two Vec3's
146
- *
147
- * @param {Vec3} out the receiving vector
148
- * @param {Vec3} a the first operand
149
- * @param {Vec3} b the second operand
150
- * @returns {Vec3} out
151
- */
152
- export function divide(out, a, b) {
153
- out[0] = a[0] / b[0];
154
- out[1] = a[1] / b[1];
155
- out[2] = a[2] / b[2];
156
- return out;
157
- }
158
- /**
159
- * Math.ceil the components of a Vec3
160
- *
161
- * @param {Vec3} out the receiving vector
162
- * @param {Vec3} a vector to ceil
163
- * @returns {Vec3} out
164
- */
165
- export function ceil(out, a) {
166
- out[0] = Math.ceil(a[0]);
167
- out[1] = Math.ceil(a[1]);
168
- out[2] = Math.ceil(a[2]);
169
- return out;
170
- }
171
- /**
172
- * Math.floor the components of a Vec3
173
- *
174
- * @param {Vec3} out the receiving vector
175
- * @param {Vec3} a vector to floor
176
- * @returns {Vec3} out
177
- */
178
- export function floor(out, a) {
179
- out[0] = Math.floor(a[0]);
180
- out[1] = Math.floor(a[1]);
181
- out[2] = Math.floor(a[2]);
182
- return out;
183
- }
184
- /**
185
- * Returns the minimum of two Vec3's
186
- *
187
- * @param {Vec3} out the receiving vector
188
- * @param {Vec3} a the first operand
189
- * @param {Vec3} b the second operand
190
- * @returns {Vec3} out
191
- */
192
- export function min(out, a, b) {
193
- out[0] = Math.min(a[0], b[0]);
194
- out[1] = Math.min(a[1], b[1]);
195
- out[2] = Math.min(a[2], b[2]);
196
- return out;
197
- }
198
- /**
199
- * Returns the maximum of two Vec3's
200
- *
201
- * @param {Vec3} out the receiving vector
202
- * @param {Vec3} a the first operand
203
- * @param {Vec3} b the second operand
204
- * @returns {Vec3} out
205
- */
206
- export function max(out, a, b) {
207
- out[0] = Math.max(a[0], b[0]);
208
- out[1] = Math.max(a[1], b[1]);
209
- out[2] = Math.max(a[2], b[2]);
210
- return out;
211
- }
212
- /**
213
- * Math.round the components of a Vec3
214
- *
215
- * @param {Vec3} out the receiving vector
216
- * @param {Vec3} a vector to round
217
- * @returns {Vec3} out
218
- */
219
- export function round(out, a) {
220
- out[0] = Math.round(a[0]);
221
- out[1] = Math.round(a[1]);
222
- out[2] = Math.round(a[2]);
223
- return out;
224
- }
225
- /**
226
- * Scales a Vec3 by a scalar number
227
- *
228
- * @param {Vec3} out the receiving vector
229
- * @param {Vec3} a the vector to scale
230
- * @param {Number} b amount to scale the vector by
231
- * @returns {Vec3} out
232
- */
233
- export function scale(out, a, b) {
234
- out[0] = a[0] * b;
235
- out[1] = a[1] * b;
236
- out[2] = a[2] * b;
237
- return out;
238
- }
239
- /**
240
- * Adds two Vec3's after scaling the second operand by a scalar value
241
- *
242
- * @param {Vec3} out the receiving vector
243
- * @param {Vec3} a the first operand
244
- * @param {Vec3} b the second operand
245
- * @param {Number} scale the amount to scale b by before adding
246
- * @returns {Vec3} out
247
- */
248
- export function scaleAndAdd(out, a, b, scale) {
249
- out[0] = a[0] + b[0] * scale;
250
- out[1] = a[1] + b[1] * scale;
251
- out[2] = a[2] + b[2] * scale;
252
- return out;
253
- }
254
- /**
255
- * Calculates the euclidian distance between two Vec3's
256
- *
257
- * @param {Vec3} a the first operand
258
- * @param {Vec3} b the second operand
259
- * @returns {Number} distance between a and b
260
- */
261
- export function distance(a, b) {
262
- const x = b[0] - a[0];
263
- const y = b[1] - a[1];
264
- const z = b[2] - a[2];
265
- return Math.hypot(x, y, z);
266
- }
267
- /**
268
- * Calculates the squared euclidian distance between two Vec3's
269
- *
270
- * @param {Vec3} a the first operand
271
- * @param {Vec3} b the second operand
272
- * @returns {Number} squared distance between a and b
273
- */
274
- export function squaredDistance(a, b) {
275
- const x = b[0] - a[0];
276
- const y = b[1] - a[1];
277
- const z = b[2] - a[2];
278
- return x * x + y * y + z * z;
279
- }
280
- /**
281
- * Calculates the squared length of a Vec3
282
- *
283
- * @param {Vec3} a vector to calculate squared length of
284
- * @returns {Number} squared length of a
285
- */
286
- export function squaredLength(a) {
287
- const x = a[0];
288
- const y = a[1];
289
- const z = a[2];
290
- return x * x + y * y + z * z;
291
- }
292
- /**
293
- * Negates the components of a Vec3
294
- *
295
- * @param {Vec3} out the receiving vector
296
- * @param {Vec3} a vector to negate
297
- * @returns {Vec3} out
298
- */
299
- export function negate(out, a) {
300
- out[0] = -a[0];
301
- out[1] = -a[1];
302
- out[2] = -a[2];
303
- return out;
304
- }
305
- /**
306
- * Returns the inverse of the components of a Vec3
307
- *
308
- * @param {Vec3} out the receiving vector
309
- * @param {Vec3} a vector to invert
310
- * @returns {Vec3} out
311
- */
312
- export function inverse(out, a) {
313
- out[0] = 1.0 / a[0];
314
- out[1] = 1.0 / a[1];
315
- out[2] = 1.0 / a[2];
316
- return out;
317
- }
318
- /**
319
- * Normalize a Vec3
320
- *
321
- * @param {Vec3} out the receiving vector
322
- * @param {Vec3} a vector to normalize
323
- * @returns {Vec3} out
324
- */
325
- export function normalize(out, a) {
326
- const x = a[0];
327
- const y = a[1];
328
- const z = a[2];
329
- let len = x * x + y * y + z * z;
330
- if (len > 0) {
331
- //TODO: evaluate use of glm_invsqrt here?
332
- len = 1 / Math.sqrt(len);
333
- }
334
- out[0] = a[0] * len;
335
- out[1] = a[1] * len;
336
- out[2] = a[2] * len;
337
- return out;
338
- }
339
- /**
340
- * Calculates the dot product of two Vec3's
341
- *
342
- * @param {Vec3} a the first operand
343
- * @param {Vec3} b the second operand
344
- * @returns {Number} dot product of a and b
345
- */
346
- export function dot(a, b) {
347
- return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
348
- }
349
- /**
350
- * Computes the cross product of two Vec3's
351
- *
352
- * @param {Vec3} out the receiving vector
353
- * @param {Vec3} a the first operand
354
- * @param {Vec3} b the second operand
355
- * @returns {Vec3} out
356
- */
357
- export function cross(out, a, b) {
358
- const ax = a[0], ay = a[1], az = a[2];
359
- const bx = b[0], by = b[1], bz = b[2];
360
- out[0] = ay * bz - az * by;
361
- out[1] = az * bx - ax * bz;
362
- out[2] = ax * by - ay * bx;
363
- return out;
364
- }
365
- /**
366
- * Performs a linear interpolation between two Vec3's
367
- *
368
- * @param {Vec3} out the receiving vector
369
- * @param {Vec3} a the first operand
370
- * @param {Vec3} b the second operand
371
- * @param {Number} t interpolation amount, in the range [0-1], between the two inputs
372
- * @returns {Vec3} out
373
- */
374
- export function lerp(out, a, b, t) {
375
- const ax = a[0];
376
- const ay = a[1];
377
- const az = a[2];
378
- out[0] = ax + t * (b[0] - ax);
379
- out[1] = ay + t * (b[1] - ay);
380
- out[2] = az + t * (b[2] - az);
381
- return out;
382
- }
383
- /**
384
- * Performs a spherical linear interpolation between two Vec3's
385
- *
386
- * @param {Vec3} out the receiving vector
387
- * @param {Vec3} a the first operand
388
- * @param {Vec3} b the second operand
389
- * @param {Number} t interpolation amount, in the range [0-1], between the two inputs
390
- * @returns {Vec3} out
391
- */
392
- export function slerp(out, a, b, t) {
393
- const angle = Math.acos(Math.min(Math.max(dot(a, b), -1), 1));
394
- const sinTotal = Math.sin(angle);
395
- const ratioA = Math.sin((1 - t) * angle) / sinTotal;
396
- const ratioB = Math.sin(t * angle) / sinTotal;
397
- out[0] = ratioA * a[0] + ratioB * b[0];
398
- out[1] = ratioA * a[1] + ratioB * b[1];
399
- out[2] = ratioA * a[2] + ratioB * b[2];
400
- return out;
401
- }
402
- /**
403
- * Performs a hermite interpolation with two control points
404
- *
405
- * @param {Vec3} out the receiving vector
406
- * @param {Vec3} a the first operand
407
- * @param {Vec3} b the second operand
408
- * @param {Vec3} c the third operand
409
- * @param {Vec3} d the fourth operand
410
- * @param {Number} t interpolation amount, in the range [0-1], between the two inputs
411
- * @returns {Vec3} out
412
- */
413
- export function hermite(out, a, b, c, d, t) {
414
- const factorTimes2 = t * t;
415
- const factor1 = factorTimes2 * (2 * t - 3) + 1;
416
- const factor2 = factorTimes2 * (t - 2) + t;
417
- const factor3 = factorTimes2 * (t - 1);
418
- const factor4 = factorTimes2 * (3 - 2 * t);
419
- out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;
420
- out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;
421
- out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;
422
- return out;
423
- }
424
- /**
425
- * Performs a bezier interpolation with two control points
426
- *
427
- * @param {Vec3} out the receiving vector
428
- * @param {Vec3} a the first operand
429
- * @param {Vec3} b the second operand
430
- * @param {Vec3} c the third operand
431
- * @param {Vec3} d the fourth operand
432
- * @param {Number} t interpolation amount, in the range [0-1], between the two inputs
433
- * @returns {Vec3} out
434
- */
435
- export function bezier(out, a, b, c, d, t) {
436
- const inverseFactor = 1 - t;
437
- const inverseFactorTimesTwo = inverseFactor * inverseFactor;
438
- const factorTimes2 = t * t;
439
- const factor1 = inverseFactorTimesTwo * inverseFactor;
440
- const factor2 = 3 * t * inverseFactorTimesTwo;
441
- const factor3 = 3 * factorTimes2 * inverseFactor;
442
- const factor4 = factorTimes2 * t;
443
- out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;
444
- out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;
445
- out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;
446
- return out;
447
- }
448
- /**
449
- * Generates a random vector with the given scale
450
- *
451
- * @param {Vec3} out the receiving vector
452
- * @param {Number} [scale] Length of the resulting vector. If omitted, a unit vector will be returned
453
- * @returns {Vec3} out
454
- */
455
- export function random(out, scale) {
456
- scale = scale ?? 1.0;
457
- const r = RANDOM() * 2.0 * Math.PI;
458
- const z = RANDOM() * 2.0 - 1.0;
459
- const zScale = Math.sqrt(1.0 - z * z) * scale;
460
- out[0] = Math.cos(r) * zScale;
461
- out[1] = Math.sin(r) * zScale;
462
- out[2] = z * scale;
463
- return out;
464
- }
465
- /**
466
- * Transforms the Vec3 with a mat4.
467
- * 4th vector component is implicitly '1'
468
- *
469
- * @param {Vec3} out the receiving vector
470
- * @param {Vec3} a the vector to transform
471
- * @param {Mat4} m matrix to transform with
472
- * @returns {Vec3} out
473
- */
474
- export function transformMat4(out, a, m) {
475
- const x = a[0], y = a[1], z = a[2];
476
- let w = m[3] * x + m[7] * y + m[11] * z + m[15];
477
- w = w || 1.0;
478
- out[0] = (m[0] * x + m[4] * y + m[8] * z + m[12]) / w;
479
- out[1] = (m[1] * x + m[5] * y + m[9] * z + m[13]) / w;
480
- out[2] = (m[2] * x + m[6] * y + m[10] * z + m[14]) / w;
481
- return out;
482
- }
483
- /**
484
- * Transforms the Vec3 with a mat3.
485
- *
486
- * @param {Vec3} out the receiving vector
487
- * @param {Vec3} a the vector to transform
488
- * @param {Mat3} m the 3x3 matrix to transform with
489
- * @returns {Vec3} out
490
- */
491
- export function transformMat3(out, a, m) {
492
- const x = a[0], y = a[1], z = a[2];
493
- out[0] = x * m[0] + y * m[3] + z * m[6];
494
- out[1] = x * m[1] + y * m[4] + z * m[7];
495
- out[2] = x * m[2] + y * m[5] + z * m[8];
496
- return out;
497
- }
498
- /**
499
- * Transforms the Vec3 with a quat
500
- * Can also be used for dual quaternions. (Multiply it with the real part)
501
- *
502
- * @param {Vec3} out the receiving vector
503
- * @param {Vec3} a the vector to transform
504
- * @param {Quat} q quaternion to transform with
505
- * @returns {Vec3} out
506
- */
507
- export function transformQuat(out, a, q) {
508
- // benchmarks: https://jsperf.com/quaternion-transform-Vec3-implementations-fixed
509
- const qx = q[0], qy = q[1], qz = q[2], qw = q[3];
510
- const x = a[0], y = a[1], z = a[2]; // var qvec = [qx, qy, qz];
511
- let uvx = qy * z - qz * y, uvy = qz * x - qx * z, uvz = qx * y - qy * x; // var uuv = Vec3.cross([], qvec, uv);
512
- let uuvx = qy * uvz - qz * uvy, uuvy = qz * uvx - qx * uvz, uuvz = qx * uvy - qy * uvx; // Vec3.scale(uv, uv, 2 * w);
513
- const w2 = qw * 2;
514
- uvx *= w2;
515
- uvy *= w2;
516
- uvz *= w2; // Vec3.scale(uuv, uuv, 2);
517
- uuvx *= 2;
518
- uuvy *= 2;
519
- uuvz *= 2; // return Vec3.add(out, a, Vec3.add(out, uv, uuv));
520
- out[0] = x + uvx + uuvx;
521
- out[1] = y + uvy + uuvy;
522
- out[2] = z + uvz + uuvz;
523
- return out;
524
- }
525
- /**
526
- * Rotate a 3D vector around the x-axis
527
- * @param {Vec3} out The receiving Vec3
528
- * @param {Vec3} a The Vec3 point to rotate
529
- * @param {Vec3} b The origin of the rotation
530
- * @param {Number} rad The angle of rotation in radians
531
- * @returns {Vec3} out
532
- */
533
- export function rotateX(out, a, b, rad) {
534
- const p = [], r = []; //Translate point to the origin
535
- p[0] = a[0] - b[0];
536
- p[1] = a[1] - b[1];
537
- p[2] = a[2] - b[2]; //perform rotation
538
- r[0] = p[0];
539
- r[1] = p[1] * Math.cos(rad) - p[2] * Math.sin(rad);
540
- r[2] = p[1] * Math.sin(rad) + p[2] * Math.cos(rad); //translate to correct position
541
- out[0] = r[0] + b[0];
542
- out[1] = r[1] + b[1];
543
- out[2] = r[2] + b[2];
544
- return out;
545
- }
546
- /**
547
- * Rotate a 3D vector around the y-axis
548
- * @param {Vec3} out The receiving Vec3
549
- * @param {Vec3} a The Vec3 point to rotate
550
- * @param {Vec3} b The origin of the rotation
551
- * @param {Number} rad The angle of rotation in radians
552
- * @returns {Vec3} out
553
- */
554
- export function rotateY(out, a, b, rad) {
555
- const p = [], r = []; //Translate point to the origin
556
- p[0] = a[0] - b[0];
557
- p[1] = a[1] - b[1];
558
- p[2] = a[2] - b[2]; //perform rotation
559
- r[0] = p[2] * Math.sin(rad) + p[0] * Math.cos(rad);
560
- r[1] = p[1];
561
- r[2] = p[2] * Math.cos(rad) - p[0] * Math.sin(rad); //translate to correct position
562
- out[0] = r[0] + b[0];
563
- out[1] = r[1] + b[1];
564
- out[2] = r[2] + b[2];
565
- return out;
566
- }
567
- /**
568
- * Rotate a 3D vector around the z-axis
569
- * @param {Vec3} out The receiving Vec3
570
- * @param {Vec3} a The Vec3 point to rotate
571
- * @param {Vec3} b The origin of the rotation
572
- * @param {Number} rad The angle of rotation in radians
573
- * @returns {Vec3} out
574
- */
575
- export function rotateZ(out, a, b, rad) {
576
- const p = [], r = []; //Translate point to the origin
577
- p[0] = a[0] - b[0];
578
- p[1] = a[1] - b[1];
579
- p[2] = a[2] - b[2]; //perform rotation
580
- r[0] = p[0] * Math.cos(rad) - p[1] * Math.sin(rad);
581
- r[1] = p[0] * Math.sin(rad) + p[1] * Math.cos(rad);
582
- r[2] = p[2]; //translate to correct position
583
- out[0] = r[0] + b[0];
584
- out[1] = r[1] + b[1];
585
- out[2] = r[2] + b[2];
586
- return out;
587
- }
588
- /**
589
- * Get the angle between two 3D vectors
590
- * @param {Vec3} a The first operand
591
- * @param {Vec3} b The second operand
592
- * @returns {Number} The angle in radians
593
- */
594
- export function angle(a, b) {
595
- const ax = a[0], ay = a[1], az = a[2], bx = b[0], by = b[1], bz = b[2], mag = Math.sqrt((ax * ax + ay * ay + az * az) * (bx * bx + by * by + bz * bz)), cosine = mag && dot(a, b) / mag;
596
- return Math.acos(Math.min(Math.max(cosine, -1), 1));
597
- }
598
- /**
599
- * Set the components of a Vec3 to zero
600
- *
601
- * @param {Vec3} out the receiving vector
602
- * @returns {Vec3} out
603
- */
604
- export function zero(out) {
605
- out[0] = 0.0;
606
- out[1] = 0.0;
607
- out[2] = 0.0;
608
- return out;
609
- }
610
- /**
611
- * Returns a string representation of a vector
612
- *
613
- * @param {Vec3} a vector to represent as a string
614
- * @returns {String} string representation of the vector
615
- */
616
- export function str(a) {
617
- return `Vec3(${a[0]}, ${a[1]}, ${a[2]})`;
618
- }
619
- /**
620
- * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===)
621
- *
622
- * @param {Vec3} a The first vector.
623
- * @param {Vec3} b The second vector.
624
- * @returns {Boolean} True if the vectors are equal, false otherwise.
625
- */
626
- export function exactEquals(a, b) {
627
- return a[0] === b[0] && a[1] === b[1] && a[2] === b[2];
628
- }
629
- /**
630
- * Returns whether or not the vectors have approximately the same elements in the same position.
631
- *
632
- * @param {Vec3} a The first vector.
633
- * @param {Vec3} b The second vector.
634
- * @returns {Boolean} True if the vectors are equal, false otherwise.
635
- */
636
- export function equals(a, b) {
637
- const a0 = a[0], a1 = a[1], a2 = a[2];
638
- const b0 = b[0], b1 = b[1], b2 = b[2];
639
- return (Math.abs(a0 - b0) <= EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) &&
640
- Math.abs(a1 - b1) <= EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) &&
641
- Math.abs(a2 - b2) <= EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)));
642
- }
643
- /**
644
- * Alias for {@link subtract}
645
- * @function
646
- */
647
- export const sub = subtract;
648
- /**
649
- * Alias for {@link multiply}
650
- * @function
651
- */
652
- export const mul = multiply;
653
- /**
654
- * Alias for {@link divide}
655
- * @function
656
- */
657
- export const div = divide;
658
- /**
659
- * Alias for {@link distance}
660
- * @function
661
- */
662
- export const dist = distance;
663
- /**
664
- * Alias for {@link squaredDistance}
665
- * @function
666
- */
667
- export const sqrDist = squaredDistance;
668
- /**
669
- * Alias for {@link length}
670
- * @function
671
- */
672
- export const len = length;
673
- /**
674
- * Alias for {@link squaredLength}
675
- * @function
676
- */
677
- export const sqrLen = squaredLength;
678
- /**
679
- * Perform some operation over an array of Vec3s.
680
- *
681
- * @param {Array} a the array of vectors to iterate over
682
- * @param {Number} stride Number of elements between the start of each Vec3. If 0 assumes tightly packed
683
- * @param {Number} offset Number of elements to skip at the beginning of the array
684
- * @param {Number} count Number of Vec3s to iterate over. If 0 iterates over entire array
685
- * @param {Function} fn Function to call for each vector in the array
686
- * @param {Object} [arg] additional argument to pass to fn
687
- * @returns {Array} a
688
- * @function
689
- */
690
- export const forEach = (function () {
691
- const vec = [];
692
- return function (a, stride, offset, count, fn, arg) {
693
- let i, l;
694
- if (!stride) {
695
- stride = 3;
696
- }
697
- if (!offset) {
698
- offset = 0;
699
- }
700
- if (count) {
701
- l = Math.min(count * stride + offset, a.length);
702
- }
703
- else {
704
- l = a.length;
705
- }
706
- for (i = offset; i < l; i += stride) {
707
- /* eslint-disable @typescript-eslint/no-non-null-assertion */
708
- vec[0] = a[i];
709
- vec[1] = a[i + 1];
710
- vec[2] = a[i + 2];
711
- /* eslint-enable @typescript-eslint/no-non-null-assertion */
712
- fn(vec, vec, arg);
713
- a[i] = vec[0];
714
- a[i + 1] = vec[1];
715
- a[i + 2] = vec[2];
716
- }
717
- return a;
718
- };
719
- })();
720
- //# sourceMappingURL=vec3.js.map