@carbonenginejs/runtime 0.1.0-alpha.0 → 0.1.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (935) hide show
  1. package/README.md +58 -125
  2. package/dist/audio/index.js +8 -1
  3. package/dist/audio/index.js.map +1 -1
  4. package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js +84 -0
  5. package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js.map +1 -0
  6. package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js +14 -0
  7. package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js.map +1 -0
  8. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js +26 -0
  9. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js.map +1 -0
  10. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js +27 -0
  11. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js.map +1 -0
  12. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js +27 -0
  13. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js.map +1 -0
  14. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js +25 -0
  15. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js.map +1 -0
  16. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js +26 -0
  17. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js.map +1 -0
  18. package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js +58 -0
  19. package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js.map +1 -0
  20. package/dist/audio/trinity/audio/AudManager.js +1 -1
  21. package/dist/audio/trinity/audio/AudManager.js.map +1 -1
  22. package/dist/audio/trinity/audio/{AudObstructionOcclusion.js → AudObstructionOcclusion/AudObstructionOcclusion.js} +8 -52
  23. package/dist/audio/trinity/audio/AudObstructionOcclusion/AudObstructionOcclusion.js.map +1 -0
  24. package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js +17 -0
  25. package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js.map +1 -0
  26. package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js +46 -0
  27. package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js.map +1 -0
  28. package/dist/audio/trinity/index.js +8 -1
  29. package/dist/audio/trinity/index.js.map +1 -1
  30. package/dist/character/CjsCharacterAppearanceConstruction.js +5 -0
  31. package/dist/character/CjsCharacterAppearanceConstruction.js.map +1 -1
  32. package/dist/character/CjsCharacterAppearanceManager.js +14 -0
  33. package/dist/character/CjsCharacterAppearanceManager.js.map +1 -1
  34. package/dist/character/CjsCharacterFoundationConstruction.js +5 -0
  35. package/dist/character/CjsCharacterFoundationConstruction.js.map +1 -1
  36. package/dist/character/CjsCharacterTexturePolicy.js +5 -0
  37. package/dist/character/CjsCharacterTexturePolicy.js.map +1 -1
  38. package/dist/character/gles/CjsCharacterGlesAppearanceAL.js +17 -0
  39. package/dist/character/gles/CjsCharacterGlesAppearanceAL.js.map +1 -1
  40. package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js +2 -0
  41. package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js.map +1 -1
  42. package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js +5 -0
  43. package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js.map +1 -1
  44. package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js +5 -0
  45. package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js.map +1 -1
  46. package/dist/character/gles/CjsCharacterGlesMorphDeformation.js +2 -0
  47. package/dist/character/gles/CjsCharacterGlesMorphDeformation.js.map +1 -1
  48. package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js +5 -0
  49. package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js.map +1 -1
  50. package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js +5 -0
  51. package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js.map +1 -1
  52. package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js +9 -0
  53. package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js.map +1 -1
  54. package/dist/global/blue/CjsScriptCallback.js +142 -0
  55. package/dist/global/blue/CjsScriptCallback.js.map +1 -0
  56. package/dist/global/blue/index.js +2 -0
  57. package/dist/global/blue/index.js.map +1 -0
  58. package/dist/global/consts/renderContext/formats.js +51 -1
  59. package/dist/global/consts/renderContext/formats.js.map +1 -1
  60. package/dist/global/consts/renderContext/index.js +2 -2
  61. package/dist/global/consts/renderContext/renderStates.js +16 -1
  62. package/dist/global/consts/renderContext/renderStates.js.map +1 -1
  63. package/dist/global/contracts/index.js +0 -1
  64. package/dist/global/contracts/index.js.map +1 -1
  65. package/dist/global/index.js +4 -3
  66. package/dist/global/index.js.map +1 -1
  67. package/dist/global/math/index.js +2 -0
  68. package/dist/global/math/index.js.map +1 -1
  69. package/dist/global/math/mesh.js +70 -16
  70. package/dist/global/math/mesh.js.map +1 -1
  71. package/dist/global/math/noise.js +47 -68
  72. package/dist/global/math/noise.js.map +1 -1
  73. package/dist/global/math/pool.js +18 -3
  74. package/dist/global/math/pool.js.map +1 -1
  75. package/dist/global/math/random.js +52 -0
  76. package/dist/global/math/random.js.map +1 -0
  77. package/dist/global/math/tri3.js +18 -4
  78. package/dist/global/math/tri3.js.map +1 -1
  79. package/dist/global/schema/CjsSchema.js +20 -2
  80. package/dist/global/schema/CjsSchema.js.map +1 -1
  81. package/dist/global/schema/hydration.js +14 -0
  82. package/dist/global/schema/hydration.js.map +1 -1
  83. package/dist/global/utils/bytes.js +22 -4
  84. package/dist/global/utils/bytes.js.map +1 -1
  85. package/dist/global/utils/checksum.js +80 -0
  86. package/dist/global/utils/checksum.js.map +1 -0
  87. package/dist/global/utils/errors/CjsCancellationError.js +36 -0
  88. package/dist/global/utils/errors/CjsCancellationError.js.map +1 -0
  89. package/dist/global/utils/errors/CjsError.js +21 -52
  90. package/dist/global/utils/errors/CjsError.js.map +1 -1
  91. package/dist/global/utils/errors/abort.js +1 -1
  92. package/dist/global/utils/errors/abort.js.map +1 -1
  93. package/dist/global/utils/errors/index.js +2 -1
  94. package/dist/global/utils/errors/index.js.map +1 -1
  95. package/dist/global/utils/index.js +4 -2
  96. package/dist/global/utils/index.js.map +1 -1
  97. package/dist/index.js +95 -35
  98. package/dist/index.js.map +1 -1
  99. package/dist/input/Tr2MainWindow.js +7 -9
  100. package/dist/input/Tr2MainWindow.js.map +1 -1
  101. package/dist/resource/CjsResMan.js +33 -39
  102. package/dist/resource/CjsResMan.js.map +1 -1
  103. package/dist/resource/CjsResource.js +19 -5
  104. package/dist/resource/CjsResource.js.map +1 -1
  105. package/dist/resource/audio/AudioGeometryResData.js +22 -27
  106. package/dist/resource/audio/AudioGeometryResData.js.map +1 -1
  107. package/dist/resource/audio/CjsAudioRes.js +4 -5
  108. package/dist/resource/audio/CjsAudioRes.js.map +1 -1
  109. package/dist/resource/format/CjsBitReader.js +263 -0
  110. package/dist/resource/format/CjsBitReader.js.map +1 -0
  111. package/dist/resource/format/CjsByteReader.js +130 -125
  112. package/dist/resource/format/CjsByteReader.js.map +1 -1
  113. package/dist/resource/format/CjsFormat.js +11 -4
  114. package/dist/resource/format/CjsFormat.js.map +1 -1
  115. package/dist/resource/format/CjsFormatError.js +37 -1
  116. package/dist/resource/format/CjsFormatError.js.map +1 -1
  117. package/dist/resource/format/CjsResourceProbe.js +41 -37
  118. package/dist/resource/format/CjsResourceProbe.js.map +1 -1
  119. package/dist/resource/format/carbonRecordGuard.js +33 -0
  120. package/dist/resource/format/carbonRecordGuard.js.map +1 -0
  121. package/dist/resource/format/imageSignatures.js +202 -0
  122. package/dist/resource/format/imageSignatures.js.map +1 -0
  123. package/dist/resource/format/index.js +2 -1
  124. package/dist/resource/format/index.js.map +1 -1
  125. package/dist/resource/format/jsonPolicies.js +180 -0
  126. package/dist/resource/format/jsonPolicies.js.map +1 -0
  127. package/dist/resource/formats/black/core/helpers.js +18 -29
  128. package/dist/resource/formats/black/core/helpers.js.map +1 -1
  129. package/dist/resource/formats/bnk/CjsBnkFormat.js +4 -3
  130. package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
  131. package/dist/resource/formats/bnk/core/WwiseCursor.js +218 -0
  132. package/dist/resource/formats/bnk/core/WwiseCursor.js.map +1 -0
  133. package/dist/resource/formats/bnk/core/busNodes.js +2 -1
  134. package/dist/resource/formats/bnk/core/busNodes.js.map +1 -1
  135. package/dist/resource/formats/bnk/core/effectNodes.js +2 -1
  136. package/dist/resource/formats/bnk/core/effectNodes.js.map +1 -1
  137. package/dist/resource/formats/bnk/core/eventAction.js +15 -93
  138. package/dist/resource/formats/bnk/core/eventAction.js.map +1 -1
  139. package/dist/resource/formats/bnk/core/globalSettings.js +19 -94
  140. package/dist/resource/formats/bnk/core/globalSettings.js.map +1 -1
  141. package/dist/resource/formats/bnk/core/helpers.js +2 -48
  142. package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
  143. package/dist/resource/formats/bnk/core/musicNodes.js +42 -134
  144. package/dist/resource/formats/bnk/core/musicNodes.js.map +1 -1
  145. package/dist/resource/formats/bnk/core/nodeBase.js +20 -111
  146. package/dist/resource/formats/bnk/core/nodeBase.js.map +1 -1
  147. package/dist/resource/formats/bnk/core/sfxNodes.js +2 -1
  148. package/dist/resource/formats/bnk/core/sfxNodes.js.map +1 -1
  149. package/dist/resource/formats/cmf/CjsCmfFormat.js +242 -228
  150. package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
  151. package/dist/resource/formats/cmf/core/binary.js +54 -60
  152. package/dist/resource/formats/cmf/core/binary.js.map +1 -1
  153. package/dist/resource/formats/dds/CjsDdsFormat.js +5 -3
  154. package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
  155. package/dist/resource/formats/dds/core/bc6h.js +16 -18
  156. package/dist/resource/formats/dds/core/bc6h.js.map +1 -1
  157. package/dist/resource/formats/dds/core/bc7.js +28 -24
  158. package/dist/resource/formats/dds/core/bc7.js.map +1 -1
  159. package/dist/resource/formats/dds/core/helpers.js +7 -133
  160. package/dist/resource/formats/dds/core/helpers.js.map +1 -1
  161. package/dist/resource/formats/dxbc/CjsDxbcFormat.js +3 -2
  162. package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
  163. package/dist/resource/formats/dxbc/core/helpers.js +4 -32
  164. package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
  165. package/dist/resource/formats/fbx/CjsFbxFormat.js +11 -0
  166. package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
  167. package/dist/resource/formats/fbx/core/helpers.js +18 -12
  168. package/dist/resource/formats/fbx/core/helpers.js.map +1 -1
  169. package/dist/resource/formats/flac/CjsFlacFormat.js +4 -9
  170. package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
  171. package/dist/resource/formats/flac/core/helpers.js +1 -62
  172. package/dist/resource/formats/flac/core/helpers.js.map +1 -1
  173. package/dist/resource/formats/gif/CjsGifFormat.js +4 -9
  174. package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
  175. package/dist/resource/formats/gif/core/helpers.js +1 -63
  176. package/dist/resource/formats/gif/core/helpers.js.map +1 -1
  177. package/dist/resource/formats/gltf/CjsGltfFormat.js +4 -3
  178. package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
  179. package/dist/resource/formats/gltf/core/helpers.js +3 -19
  180. package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
  181. package/dist/resource/formats/gr2/CjsGr2Format.js +105 -92
  182. package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
  183. package/dist/resource/formats/gr2/core/container.js +1 -10
  184. package/dist/resource/formats/gr2/core/container.js.map +1 -1
  185. package/dist/resource/formats/gr2/core/helpers.js +24 -35
  186. package/dist/resource/formats/gr2/core/helpers.js.map +1 -1
  187. package/dist/resource/formats/gr2/core/shared.js +193 -189
  188. package/dist/resource/formats/gr2/core/shared.js.map +1 -1
  189. package/dist/resource/formats/hlsl/CjsHlslFormat.js +4 -3
  190. package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
  191. package/dist/resource/formats/hlsl/core/helpers.js +1 -30
  192. package/dist/resource/formats/hlsl/core/helpers.js.map +1 -1
  193. package/dist/resource/formats/jpeg/CjsJpegFormat.js +5 -3
  194. package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
  195. package/dist/resource/formats/jpeg/core/helpers.js +7 -134
  196. package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
  197. package/dist/resource/formats/mp3/CjsMp3Format.js +4 -9
  198. package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
  199. package/dist/resource/formats/mp3/core/helpers.js +1 -64
  200. package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
  201. package/dist/resource/formats/mp4/CjsMp4Format.js +4 -9
  202. package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
  203. package/dist/resource/formats/mp4/core/helpers.js +1 -73
  204. package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
  205. package/dist/resource/formats/obj/CjsObjFormat.js +4 -3
  206. package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
  207. package/dist/resource/formats/obj/core/helpers.js +93 -115
  208. package/dist/resource/formats/obj/core/helpers.js.map +1 -1
  209. package/dist/resource/formats/ogg/CjsOggFormat.js +4 -3
  210. package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
  211. package/dist/resource/formats/ogg/core/helpers.js +1 -15
  212. package/dist/resource/formats/ogg/core/helpers.js.map +1 -1
  213. package/dist/resource/formats/ogg/core/vorbis.js +138 -144
  214. package/dist/resource/formats/ogg/core/vorbis.js.map +1 -1
  215. package/dist/resource/formats/pickle/CjsPickleFormat.js +83 -114
  216. package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
  217. package/dist/resource/formats/png/CjsPngFormat.js +5 -3
  218. package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
  219. package/dist/resource/formats/png/core/helpers.js +13 -152
  220. package/dist/resource/formats/png/core/helpers.js.map +1 -1
  221. package/dist/resource/formats/png/core/writer.js +3 -27
  222. package/dist/resource/formats/png/core/writer.js.map +1 -1
  223. package/dist/resource/formats/red/core/helpers.js +19 -29
  224. package/dist/resource/formats/red/core/helpers.js.map +1 -1
  225. package/dist/resource/formats/stl/CjsStlFormat.js +158 -147
  226. package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
  227. package/dist/resource/formats/stl/core/helpers.js +44 -66
  228. package/dist/resource/formats/stl/core/helpers.js.map +1 -1
  229. package/dist/resource/formats/tga/CjsTgaFormat.js +5 -3
  230. package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
  231. package/dist/resource/formats/tga/core/helpers.js +7 -153
  232. package/dist/resource/formats/tga/core/helpers.js.map +1 -1
  233. package/dist/resource/formats/vta/CjsVtaFormat.js +4 -3
  234. package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
  235. package/dist/resource/formats/vta/core/helpers.js +1 -17
  236. package/dist/resource/formats/vta/core/helpers.js.map +1 -1
  237. package/dist/resource/formats/wav/CjsWavFormat.js +4 -3
  238. package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
  239. package/dist/resource/formats/wav/core/helpers.js +1 -15
  240. package/dist/resource/formats/wav/core/helpers.js.map +1 -1
  241. package/dist/resource/formats/webgl/CjsWebglFormat.js +4 -3
  242. package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
  243. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +69 -9
  244. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
  245. package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +12 -3
  246. package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -1
  247. package/dist/resource/formats/webgl/core/helpers.js +39 -68
  248. package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
  249. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +4 -3
  250. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
  251. package/dist/resource/formats/webgpu/core/helpers.js +4 -30
  252. package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
  253. package/dist/resource/formats/webm/CjsWebmFormat.js +4 -9
  254. package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
  255. package/dist/resource/formats/webm/core/helpers.js +1 -73
  256. package/dist/resource/formats/webm/core/helpers.js.map +1 -1
  257. package/dist/resource/formats/webp/CjsWebpFormat.js +4 -9
  258. package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
  259. package/dist/resource/formats/webp/core/helpers.js +1 -62
  260. package/dist/resource/formats/webp/core/helpers.js.map +1 -1
  261. package/dist/resource/formats/wem/CjsWemFormat.js +4 -3
  262. package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
  263. package/dist/resource/formats/wem/core/bitStream.js +83 -106
  264. package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
  265. package/dist/resource/formats/wem/core/codebookLibrary.js +52 -52
  266. package/dist/resource/formats/wem/core/codebookLibrary.js.map +1 -1
  267. package/dist/resource/formats/wem/core/helpers.js +1 -15
  268. package/dist/resource/formats/wem/core/helpers.js.map +1 -1
  269. package/dist/resource/formats/wem/core/wemToOgg.js +67 -67
  270. package/dist/resource/formats/wem/core/wemToOgg.js.map +1 -1
  271. package/dist/resource/geometry/MeshDecalData.js +23 -25
  272. package/dist/resource/geometry/MeshDecalData.js.map +1 -1
  273. package/dist/resource/geometry/MeshDecalLodData.js +14 -23
  274. package/dist/resource/geometry/MeshDecalLodData.js.map +1 -1
  275. package/dist/resource/geometry/TriGeometryRes.js +299 -284
  276. package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
  277. package/dist/resource/geometry/TriGeometryResAreaData.js +30 -31
  278. package/dist/resource/geometry/TriGeometryResAreaData.js.map +1 -1
  279. package/dist/resource/geometry/TriGeometryResJointData.js +16 -24
  280. package/dist/resource/geometry/TriGeometryResJointData.js.map +1 -1
  281. package/dist/resource/geometry/TriGeometryResLodData.js +50 -41
  282. package/dist/resource/geometry/TriGeometryResLodData.js.map +1 -1
  283. package/dist/resource/geometry/TriGeometryResMeshData.js +32 -32
  284. package/dist/resource/geometry/TriGeometryResMeshData.js.map +1 -1
  285. package/dist/resource/geometry/TriGeometryResSkeletonData.js +14 -23
  286. package/dist/resource/geometry/TriGeometryResSkeletonData.js.map +1 -1
  287. package/dist/resource/geometry/TriJointBinding.js +16 -24
  288. package/dist/resource/geometry/TriJointBinding.js.map +1 -1
  289. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js +22 -27
  290. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js.map +1 -1
  291. package/dist/resource/geometry/TriRtGeometryConstants.js +50 -41
  292. package/dist/resource/geometry/TriRtGeometryConstants.js.map +1 -1
  293. package/dist/resource/geometry/granny/GStateBindingCallbackData.js +12 -22
  294. package/dist/resource/geometry/granny/GStateBindingCallbackData.js.map +1 -1
  295. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js +30 -31
  296. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -1
  297. package/dist/resource/index.js +1 -1
  298. package/dist/resource/shader/reflection/Tr2EffectConstant.js +16 -17
  299. package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -1
  300. package/dist/resource/shader/reflection/Tr2EffectDescription.js +26 -28
  301. package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
  302. package/dist/resource/shader/reflection/Tr2EffectLibrary.js +24 -25
  303. package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
  304. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +21 -22
  305. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
  306. package/dist/resource/shader/reflection/Tr2EffectResource.js +25 -26
  307. package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
  308. package/dist/resource/shader/reflection/Tr2EffectStageInput.js +69 -72
  309. package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
  310. package/dist/resource/shader/reflection/Tr2EffectTechnique.js +17 -18
  311. package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
  312. package/dist/resource/shader/reflection/Tr2Pass.js +42 -43
  313. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
  314. package/dist/resource/shader/reflection/Tr2RenderStateSetup.js +26 -5
  315. package/dist/resource/shader/reflection/Tr2RenderStateSetup.js.map +1 -1
  316. package/dist/resource/shader/reflection/carbonRecordFields.js +87 -90
  317. package/dist/resource/shader/reflection/carbonRecordFields.js.map +1 -1
  318. package/dist/resource/shader/sampler/Tr2SamplerSetup.js +32 -34
  319. package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
  320. package/dist/resource/texture/CjsTextureArrayRes.js +1 -6
  321. package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -1
  322. package/dist/resource/texture/Tr2TextureLodManager.js +35 -27
  323. package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -1
  324. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js +16 -24
  325. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js.map +1 -1
  326. package/dist/resource/texture/Tr2TexturePackChannel.js +16 -24
  327. package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -1
  328. package/dist/resource/texture/Tr2TexturePipeline.js +24 -20
  329. package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
  330. package/dist/resource/texture/Tr2TexturePipelineParams.js +14 -23
  331. package/dist/resource/texture/Tr2TexturePipelineParams.js.map +1 -1
  332. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +18 -25
  333. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
  334. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +11 -16
  335. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
  336. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +14 -23
  337. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
  338. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +12 -22
  339. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
  340. package/dist/resource/texture/Tr2TexturePipelineStepPack.js +38 -26
  341. package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
  342. package/dist/resource/worker/CjsResManMainThreadLoader.js +2 -5
  343. package/dist/resource/worker/CjsResManMainThreadLoader.js.map +1 -1
  344. package/dist/resource/worker/CjsResManWorkerLoader.js +6 -7
  345. package/dist/resource/worker/CjsResManWorkerLoader.js.map +1 -1
  346. package/dist/resource/worker/protocol.js +18 -1
  347. package/dist/resource/worker/protocol.js.map +1 -1
  348. package/dist/sof/EveSOF.js +2 -222
  349. package/dist/sof/EveSOF.js.map +1 -1
  350. package/dist/sof/SofDocumentBuilder.js +205 -0
  351. package/dist/sof/SofDocumentBuilder.js.map +1 -0
  352. package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js +16 -0
  353. package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js.map +1 -0
  354. package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js +16 -0
  355. package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js.map +1 -0
  356. package/dist/sof/faction/EveSOFDataFactionColorSet.js +3 -27
  357. package/dist/sof/faction/EveSOFDataFactionColorSet.js.map +1 -1
  358. package/dist/sof/faction/index.js +3 -1
  359. package/dist/sof/faction/index.js.map +1 -1
  360. package/dist/sof/generic/ErrSOFAreaShaderNotFound.js +18 -0
  361. package/dist/sof/generic/ErrSOFAreaShaderNotFound.js.map +1 -0
  362. package/dist/sof/generic/ErrSOFDecalShaderNotFound.js +18 -0
  363. package/dist/sof/generic/ErrSOFDecalShaderNotFound.js.map +1 -0
  364. package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js +21 -0
  365. package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js.map +1 -0
  366. package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js +21 -0
  367. package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js.map +1 -0
  368. package/dist/sof/generic/EveSOFDataGeneric.js +5 -69
  369. package/dist/sof/generic/EveSOFDataGeneric.js.map +1 -1
  370. package/dist/sof/generic/index.js +5 -1
  371. package/dist/sof/generic/index.js.map +1 -1
  372. package/dist/sof/index.js +23 -7
  373. package/dist/sof/index.js.map +1 -1
  374. package/dist/sof/pattern/ErrSOFProjectionNotFound.js +20 -0
  375. package/dist/sof/pattern/ErrSOFProjectionNotFound.js.map +1 -0
  376. package/dist/sof/pattern/EveSOFDataPattern.js +2 -17
  377. package/dist/sof/pattern/EveSOFDataPattern.js.map +1 -1
  378. package/dist/sof/pattern/index.js +2 -1
  379. package/dist/sof/pattern/index.js.map +1 -1
  380. package/dist/sof/shared/ErrSOFAreaTypeNotFound.js +16 -0
  381. package/dist/sof/shared/ErrSOFAreaTypeNotFound.js.map +1 -0
  382. package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js +16 -0
  383. package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js.map +1 -0
  384. package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js +16 -0
  385. package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js.map +1 -0
  386. package/dist/sof/shared/EveSOFDataArea.js +2 -13
  387. package/dist/sof/shared/EveSOFDataArea.js.map +1 -1
  388. package/dist/sof/shared/EveSOFDataLogoSet.js +3 -27
  389. package/dist/sof/shared/EveSOFDataLogoSet.js.map +1 -1
  390. package/dist/sof/shared/EveSOFDataParameter.js +2 -146
  391. package/dist/sof/shared/EveSOFDataParameter.js.map +1 -1
  392. package/dist/sof/shared/EveSOFDataParameterBool.js +40 -0
  393. package/dist/sof/shared/EveSOFDataParameterBool.js.map +1 -0
  394. package/dist/sof/shared/EveSOFDataParameterColor.js +36 -0
  395. package/dist/sof/shared/EveSOFDataParameterColor.js.map +1 -0
  396. package/dist/sof/shared/EveSOFDataParameterFloat.js +37 -0
  397. package/dist/sof/shared/EveSOFDataParameterFloat.js.map +1 -0
  398. package/dist/sof/shared/EveSOFDataParameterInt.js +37 -0
  399. package/dist/sof/shared/EveSOFDataParameterInt.js.map +1 -0
  400. package/dist/sof/shared/EveSOFDataParameterVector2.js +37 -0
  401. package/dist/sof/shared/EveSOFDataParameterVector2.js.map +1 -0
  402. package/dist/sof/shared/EveSOFDataParameterVector3.js +37 -0
  403. package/dist/sof/shared/EveSOFDataParameterVector3.js.map +1 -0
  404. package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js → EveSOFDataSpotLightAttachment.js} +1 -1
  405. package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js.map → EveSOFDataSpotLightAttachment.js.map} +1 -1
  406. package/dist/sof/shared/index.js +13 -4
  407. package/dist/sof/shared/index.js.map +1 -1
  408. package/dist/sof/sofDocumentValues.js +33 -0
  409. package/dist/sof/sofDocumentValues.js.map +1 -0
  410. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js +168 -0
  411. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js.map +1 -0
  412. package/dist/trinity/controllers/{ITr2Controller.js → ITr2Controller/ITr2Controller.js} +2 -134
  413. package/dist/trinity/controllers/ITr2Controller/ITr2Controller.js.map +1 -0
  414. package/dist/trinity/controllers/Tr2Controller.js +2 -1
  415. package/dist/trinity/controllers/Tr2Controller.js.map +1 -1
  416. package/dist/trinity/controllers/Tr2ControllerReference.js +2 -1
  417. package/dist/trinity/controllers/Tr2ControllerReference.js.map +1 -1
  418. package/dist/trinity/controllers/action/ITr2ControllerAction.js +2 -1
  419. package/dist/trinity/controllers/action/ITr2ControllerAction.js.map +1 -1
  420. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js +10 -9
  421. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js.map +1 -1
  422. package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js +26 -0
  423. package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js.map +1 -0
  424. package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js +24 -0
  425. package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js.map +1 -0
  426. package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js +387 -0
  427. package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js.map +1 -0
  428. package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js +4 -1011
  429. package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js.map +1 -1
  430. package/dist/trinity/controllers/expression/expressionRuntime.js +605 -0
  431. package/dist/trinity/controllers/expression/expressionRuntime.js.map +1 -0
  432. package/dist/trinity/controllers/index.js +5 -2
  433. package/dist/trinity/controllers/index.js.map +1 -1
  434. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js +2 -1
  435. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js.map +1 -1
  436. package/dist/trinity/controllers/timeline/Tr2TimelineController.js +2 -1
  437. package/dist/trinity/controllers/timeline/Tr2TimelineController.js.map +1 -1
  438. package/dist/trinity/core/ITr2Updateable.js +2 -1
  439. package/dist/trinity/core/ITr2Updateable.js.map +1 -1
  440. package/dist/trinity/core/Tr2Blitter.js +6 -3
  441. package/dist/trinity/core/Tr2Blitter.js.map +1 -1
  442. package/dist/trinity/core/Tr2Denoiser.js +256 -0
  443. package/dist/trinity/core/Tr2Denoiser.js.map +1 -0
  444. package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js +115 -0
  445. package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js.map +1 -0
  446. package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js +79 -0
  447. package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js.map +1 -0
  448. package/dist/trinity/core/{Tr2GpuResourcePool.js → Tr2GpuResourcePool/Tr2GpuResourcePool.js} +63 -151
  449. package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -0
  450. package/dist/trinity/core/{Tr2QuadRenderer.js → Tr2QuadRenderer/Tr2QuadRenderer.js} +8 -30
  451. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRenderer.js.map +1 -0
  452. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js +38 -0
  453. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js.map +1 -0
  454. package/dist/trinity/core/Tr2RenderUtils.js +20 -3
  455. package/dist/trinity/core/Tr2RenderUtils.js.map +1 -1
  456. package/dist/trinity/core/Tr2Renderer.js +146 -1
  457. package/dist/trinity/core/Tr2Renderer.js.map +1 -1
  458. package/dist/trinity/core/Tr2ShadowMap.js +135 -14
  459. package/dist/trinity/core/Tr2ShadowMap.js.map +1 -1
  460. package/dist/trinity/core/{Tr2TextureArray.js → Tr2TextureArray/Tr2TextureArray.js} +3 -58
  461. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -0
  462. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js +61 -0
  463. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js.map +1 -0
  464. package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js +26 -0
  465. package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js.map +1 -0
  466. package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js +29 -0
  467. package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js.map +1 -0
  468. package/dist/trinity/core/batch/{ITriRenderBatchAccumulator.js → TriRenderBatch/ITriRenderBatchAccumulator.js} +30 -30
  469. package/dist/trinity/core/batch/TriRenderBatch/ITriRenderBatchAccumulator.js.map +1 -0
  470. package/dist/trinity/core/batch/{Tr2RenderBatch.js → TriRenderBatch/Tr2RenderBatch.js} +81 -154
  471. package/dist/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js.map +1 -0
  472. package/dist/trinity/core/batch/{TriRenderBatchAccumulator.js → TriRenderBatch/TriRenderBatchAccumulator.js} +7 -38
  473. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAccumulator.js.map +1 -0
  474. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js +61 -0
  475. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js.map +1 -0
  476. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js +40 -0
  477. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js.map +1 -0
  478. package/dist/trinity/core/batch/TriRenderBatchMap.js +6 -1
  479. package/dist/trinity/core/batch/TriRenderBatchMap.js.map +1 -1
  480. package/dist/trinity/core/context/Tr2RenderContext.js +75 -57
  481. package/dist/trinity/core/context/Tr2RenderContext.js.map +1 -1
  482. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js +67 -0
  483. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js.map +1 -0
  484. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js +50 -0
  485. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js.map +1 -0
  486. package/dist/trinity/core/device/Tr2DepthStencil.js +186 -13
  487. package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
  488. package/dist/trinity/core/device/{Tr2RingBuffer.js → Tr2RingBuffer/Tr2RingBuffer.js} +27 -79
  489. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js.map +1 -0
  490. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js +114 -0
  491. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js.map +1 -0
  492. package/dist/trinity/core/device/{Tr2SuballocatedBuffer.js → Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js} +5 -59
  493. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js.map +1 -0
  494. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js +80 -0
  495. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js.map +1 -0
  496. package/dist/trinity/core/index.js +42 -15
  497. package/dist/trinity/core/index.js.map +1 -1
  498. package/dist/trinity/core/lighting/Tr2LightManager.js +6 -1
  499. package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
  500. package/dist/trinity/core/mesh/{ITr2ImpostorSource.js → ITr2ImpostorSource/ITr2ImpostorSource.js} +6 -28
  501. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSource.js.map +1 -0
  502. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js +32 -0
  503. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js.map +1 -0
  504. package/dist/trinity/core/mesh/{ITr2InstanceData.js → ITr2InstanceData/ITr2InstanceData.js} +5 -29
  505. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceData.js.map +1 -0
  506. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js +33 -0
  507. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js.map +1 -0
  508. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js +2 -1
  509. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js.map +1 -1
  510. package/dist/trinity/core/mesh/Tr2MeshBase.js +7 -1
  511. package/dist/trinity/core/mesh/Tr2MeshBase.js.map +1 -1
  512. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js +2 -1
  513. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js.map +1 -1
  514. package/dist/trinity/core/mesh/TriGeometryResAllocations.js +6 -2
  515. package/dist/trinity/core/mesh/TriGeometryResAllocations.js.map +1 -1
  516. package/dist/trinity/core/rawData/CjsConstantLayout.js +196 -0
  517. package/dist/trinity/core/rawData/CjsConstantLayout.js.map +1 -0
  518. package/dist/trinity/core/rawData/CjsPerFrameLayouts.js +8 -3
  519. package/dist/trinity/core/rawData/CjsPerFrameLayouts.js.map +1 -1
  520. package/dist/trinity/core/rawData/CjsPerObjectLayouts.js +40 -732
  521. package/dist/trinity/core/rawData/CjsPerObjectLayouts.js.map +1 -1
  522. package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js +34 -0
  523. package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js.map +1 -0
  524. package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js +69 -0
  525. package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js.map +1 -0
  526. package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js +59 -0
  527. package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js.map +1 -0
  528. package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js +37 -0
  529. package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js.map +1 -0
  530. package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js +44 -0
  531. package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js.map +1 -0
  532. package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js +31 -0
  533. package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js.map +1 -0
  534. package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js +29 -0
  535. package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js.map +1 -0
  536. package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js +39 -0
  537. package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js.map +1 -0
  538. package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js +30 -0
  539. package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js.map +1 -0
  540. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js +78 -0
  541. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js.map +1 -0
  542. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js +169 -0
  543. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js.map +1 -0
  544. package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js +107 -0
  545. package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js.map +1 -0
  546. package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js +44 -0
  547. package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js.map +1 -0
  548. package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js +34 -0
  549. package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js.map +1 -0
  550. package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js +82 -0
  551. package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js.map +1 -0
  552. package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js +42 -0
  553. package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js.map +1 -0
  554. package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js +55 -0
  555. package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js.map +1 -0
  556. package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js +59 -0
  557. package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js.map +1 -0
  558. package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js +59 -0
  559. package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js.map +1 -0
  560. package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js +55 -0
  561. package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js.map +1 -0
  562. package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js +55 -0
  563. package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js.map +1 -0
  564. package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js +59 -0
  565. package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js.map +1 -0
  566. package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js +55 -0
  567. package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js.map +1 -0
  568. package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js +55 -0
  569. package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js.map +1 -0
  570. package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js +55 -0
  571. package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js.map +1 -0
  572. package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js +55 -0
  573. package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js.map +1 -0
  574. package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js +59 -0
  575. package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js.map +1 -0
  576. package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js +55 -0
  577. package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js.map +1 -0
  578. package/dist/trinity/core/rawData/{Tr2PerObjectData.js → perObjectData/Tr2PerObjectData.js} +110 -62
  579. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectData.js.map +1 -0
  580. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js +104 -0
  581. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js.map +1 -0
  582. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js +87 -0
  583. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js.map +1 -0
  584. package/dist/trinity/core/variable/TriVariable.js +83 -83
  585. package/dist/trinity/core/variable/TriVariable.js.map +1 -1
  586. package/dist/trinity/core/vertex/{Tr2VertexDefinition.js → Tr2VertexDefinition/Tr2VertexDefinition.js} +4 -20
  587. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js.map +1 -0
  588. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js +29 -0
  589. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js.map +1 -0
  590. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +116 -36
  591. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
  592. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js +50 -92
  593. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js.map +1 -1
  594. package/dist/trinity/eve/EveModularObjectModifier.js +9 -5
  595. package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
  596. package/dist/trinity/eve/IEveInheritPropertiesOwner.js +2 -1
  597. package/dist/trinity/eve/IEveInheritPropertiesOwner.js.map +1 -1
  598. package/dist/trinity/eve/IEveSpaceObject2.js +2 -1
  599. package/dist/trinity/eve/IEveSpaceObject2.js.map +1 -1
  600. package/dist/trinity/eve/IEveTransform.js +2 -1
  601. package/dist/trinity/eve/IEveTransform.js.map +1 -1
  602. package/dist/trinity/eve/attachment/banner/EveBannerSet.js +2 -2
  603. package/dist/trinity/eve/attachment/banner/EveBannerSet.js.map +1 -1
  604. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js +109 -133
  605. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js.map +1 -1
  606. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js +40 -0
  607. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js.map +1 -0
  608. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js +1 -1
  609. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -1
  610. package/dist/trinity/eve/attachment/decal/DecalMeshCache.js +2 -14
  611. package/dist/trinity/eve/attachment/decal/DecalMeshCache.js.map +1 -1
  612. package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js +18 -0
  613. package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js.map +1 -0
  614. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js +1 -1
  615. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -1
  616. package/dist/trinity/eve/attachment/haze/EveHazeSet.js +1 -1
  617. package/dist/trinity/eve/attachment/haze/EveHazeSet.js.map +1 -1
  618. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js +1 -1
  619. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js.map +1 -1
  620. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js +2 -2
  621. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -1
  622. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js +1 -1
  623. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -1
  624. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js +4 -2
  625. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js.map +1 -1
  626. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +143 -139
  627. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
  628. package/dist/trinity/eve/camera/EveCamera.js +1 -1
  629. package/dist/trinity/eve/camera/EveCamera.js.map +1 -1
  630. package/dist/trinity/eve/child/EveChildBoosterSet.js +12 -1
  631. package/dist/trinity/eve/child/EveChildBoosterSet.js.map +1 -1
  632. package/dist/trinity/eve/child/EveChildCloud2.js +178 -151
  633. package/dist/trinity/eve/child/EveChildCloud2.js.map +1 -1
  634. package/dist/trinity/eve/child/EveChildContainer.js +141 -141
  635. package/dist/trinity/eve/child/EveChildContainer.js.map +1 -1
  636. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +87 -0
  637. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -0
  638. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js +46 -0
  639. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js.map +1 -0
  640. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js +35 -0
  641. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js.map +1 -0
  642. package/dist/trinity/eve/child/{EveChildInstancedMeshes.js → EveChildInstancedMeshes/EveChildInstancedMeshes.js} +42 -163
  643. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -0
  644. package/dist/trinity/eve/child/EveChildMesh.js +218 -218
  645. package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
  646. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js +53 -0
  647. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js.map +1 -0
  648. package/dist/trinity/eve/child/{EveChildPartData.js → EveChildPartData/EveChildPartDataPartData.js} +9 -45
  649. package/dist/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js.map +1 -0
  650. package/dist/trinity/eve/child/EveChildParticleSystem.js +30 -29
  651. package/dist/trinity/eve/child/EveChildParticleSystem.js.map +1 -1
  652. package/dist/trinity/eve/child/EveChildTransform.js +5 -0
  653. package/dist/trinity/eve/child/EveChildTransform.js.map +1 -1
  654. package/dist/trinity/eve/child/EveChildTurret.js +7 -0
  655. package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
  656. package/dist/trinity/eve/index.js +10 -4
  657. package/dist/trinity/eve/index.js.map +1 -1
  658. package/dist/trinity/eve/lights/Tr2Light.js +5 -0
  659. package/dist/trinity/eve/lights/Tr2Light.js.map +1 -1
  660. package/dist/trinity/eve/overlays/overlayBatches.js +6 -1
  661. package/dist/trinity/eve/overlays/overlayBatches.js.map +1 -1
  662. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js +4 -4
  663. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js.map +1 -1
  664. package/dist/trinity/eve/renderable/stretch/EveStretch2.js +76 -71
  665. package/dist/trinity/eve/renderable/stretch/EveStretch2.js.map +1 -1
  666. package/dist/trinity/eve/renderable/stretch/EveStretch3.js +1 -1
  667. package/dist/trinity/eve/renderable/stretch/EveStretch3.js.map +1 -1
  668. package/dist/trinity/eve/spaceObject/EveShip2.js +3 -3
  669. package/dist/trinity/eve/spaceObject/EveShip2.js.map +1 -1
  670. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +408 -407
  671. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  672. package/dist/trinity/eve/ui/EveTacticalOverlay.js +1 -1
  673. package/dist/trinity/eve/ui/EveTacticalOverlay.js.map +1 -1
  674. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js +9 -9
  675. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js.map +1 -1
  676. package/dist/trinity/eve/ui/lines/EveLineSet.js +27 -25
  677. package/dist/trinity/eve/ui/lines/EveLineSet.js.map +1 -1
  678. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js +3 -2
  679. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -1
  680. package/dist/trinity/generated/index.js +0 -1
  681. package/dist/trinity/generated/index.js.map +1 -1
  682. package/dist/trinity/generated/trinityCore/index.js +0 -1
  683. package/dist/trinity/generated/trinityCore/index.js.map +1 -1
  684. package/dist/trinity/index.js +59 -23
  685. package/dist/trinity/index.js.map +1 -1
  686. package/dist/trinity/particle/{ITr2GenericEmitter.js → ITr2GenericEmitter/ITr2GenericEmitter.js} +4 -32
  687. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitter.js.map +1 -0
  688. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js +36 -0
  689. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js.map +1 -0
  690. package/dist/trinity/particle/Tr2ParticleSystem.js +4 -2
  691. package/dist/trinity/particle/Tr2ParticleSystem.js.map +1 -1
  692. package/dist/trinity/particle/element/Tr2ParticleElementData.js +15 -4
  693. package/dist/trinity/particle/element/Tr2ParticleElementData.js.map +1 -1
  694. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js +21 -20
  695. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js.map +1 -1
  696. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +23 -22
  697. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
  698. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js +14 -13
  699. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js.map +1 -1
  700. package/dist/trinity/particle/index.js +2 -1
  701. package/dist/trinity/particle/index.js.map +1 -1
  702. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js +7 -1
  703. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js.map +1 -1
  704. package/dist/trinity/shader/Tr2Effect.js +131 -58
  705. package/dist/trinity/shader/Tr2Effect.js.map +1 -1
  706. package/dist/trinity/shader/Tr2EffectStateManager.js +17 -5
  707. package/dist/trinity/shader/Tr2EffectStateManager.js.map +1 -1
  708. package/dist/trinity/shader/Tr2Material.js +21 -4
  709. package/dist/trinity/shader/Tr2Material.js.map +1 -1
  710. package/dist/trinity/shader/material/Tr2EffectPassParameters.js +4 -1
  711. package/dist/trinity/shader/material/Tr2EffectPassParameters.js.map +1 -1
  712. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js +2 -2
  713. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
  714. package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js +79 -0
  715. package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js.map +1 -0
  716. package/dist/trinityal/{Tr2DeviceResourceAL.js → Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js} +77 -79
  717. package/dist/trinityal/Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js.map +1 -0
  718. package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js +24 -0
  719. package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js.map +1 -0
  720. package/dist/trinityal/Tr2DrawUPHelper.js +2 -1
  721. package/dist/trinityal/Tr2DrawUPHelper.js.map +1 -1
  722. package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js +45 -0
  723. package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js.map +1 -0
  724. package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js +154 -0
  725. package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js.map +1 -0
  726. package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js +48 -0
  727. package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js.map +1 -0
  728. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js +75 -0
  729. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js.map +1 -0
  730. package/dist/trinityal/{Tr2HalHelperStructures.js → Tr2HalHelperStructures/Tr2TextureSubresource.js} +11 -115
  731. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -0
  732. package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js +51 -0
  733. package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js.map +1 -0
  734. package/dist/trinityal/{Tr2RenderPassAL.js → Tr2RenderPassAL/Tr2ColorAttachment.js} +5 -28
  735. package/dist/trinityal/Tr2RenderPassAL/Tr2ColorAttachment.js.map +1 -0
  736. package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js +38 -0
  737. package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js.map +1 -0
  738. package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js +80 -0
  739. package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js.map +1 -0
  740. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js +76 -0
  741. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js.map +1 -0
  742. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js +96 -0
  743. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js.map +1 -0
  744. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js +196 -0
  745. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js.map +1 -0
  746. package/dist/trinityal/index.js +22 -9
  747. package/dist/trinityal/index.js.map +1 -1
  748. package/dist/trinityal/stub/Tr2BufferALStub.js +86 -141
  749. package/dist/trinityal/stub/Tr2BufferALStub.js.map +1 -1
  750. package/dist/trinityal/stub/Tr2CapsALStub.js +17 -0
  751. package/dist/trinityal/stub/Tr2CapsALStub.js.map +1 -1
  752. package/dist/trinityal/stub/Tr2ConstantBufferALStub.js +57 -41
  753. package/dist/trinityal/stub/Tr2ConstantBufferALStub.js.map +1 -1
  754. package/dist/trinityal/stub/Tr2FenceALStub.js +18 -2
  755. package/dist/trinityal/stub/Tr2FenceALStub.js.map +1 -1
  756. package/dist/trinityal/stub/Tr2GpuTimerALStub.js +97 -0
  757. package/dist/trinityal/stub/Tr2GpuTimerALStub.js.map +1 -0
  758. package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js +124 -0
  759. package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js.map +1 -0
  760. package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js +146 -0
  761. package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js.map +1 -0
  762. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js +28 -0
  763. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js.map +1 -0
  764. package/dist/trinityal/stub/{Tr2RenderContextALStub.js → Tr2RenderContextALStub/Tr2RenderContextALStub.js} +70 -75
  765. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -0
  766. package/dist/trinityal/stub/Tr2SamplerStateALStub.js +47 -31
  767. package/dist/trinityal/stub/Tr2SamplerStateALStub.js.map +1 -1
  768. package/dist/trinityal/stub/Tr2ShaderALStub.js +61 -45
  769. package/dist/trinityal/stub/Tr2ShaderALStub.js.map +1 -1
  770. package/dist/trinityal/stub/Tr2ShaderProgramALStub.js +51 -33
  771. package/dist/trinityal/stub/Tr2ShaderProgramALStub.js.map +1 -1
  772. package/dist/trinityal/stub/Tr2SwapChainALStub.js +61 -45
  773. package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
  774. package/dist/trinityal/stub/Tr2TextureALStub.js +188 -171
  775. package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
  776. package/dist/trinityal/stub/Tr2VertexLayoutALStub.js +43 -27
  777. package/dist/trinityal/stub/Tr2VertexLayoutALStub.js.map +1 -1
  778. package/dist/trinityal/stub/{Tr2VideoAdapterInfoALStub.js → Tr2VideoAdapterInfoStub.js} +16 -1
  779. package/dist/trinityal/stub/Tr2VideoAdapterInfoStub.js.map +1 -0
  780. package/dist/trinityal/stub/index.js +8 -4
  781. package/dist/trinityal/stub/index.js.map +1 -1
  782. package/dist/trinityal/vertexLayoutMatch.js +2 -2
  783. package/dist/trinityal/vertexLayoutMatch.js.map +1 -1
  784. package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js +105 -90
  785. package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js.map +1 -1
  786. package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js +17 -0
  787. package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js.map +1 -1
  788. package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js +15 -0
  789. package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js.map +1 -1
  790. package/dist/trinityal/webgpu/CjsWebgpuDevice.js +2 -2
  791. package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
  792. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +900 -938
  793. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
  794. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js +56 -60
  795. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js.map +1 -1
  796. package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js +16 -1
  797. package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js.map +1 -1
  798. package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js +100 -379
  799. package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js.map +1 -1
  800. package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js +330 -0
  801. package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js.map +1 -0
  802. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +15 -0
  803. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
  804. package/dist/trinityal/webgpu/core/{constantArena.js → CjsWebgpuConstantArena.js} +1 -1
  805. package/dist/trinityal/webgpu/core/CjsWebgpuConstantArena.js.map +1 -0
  806. package/dist/trinityal/webgpu/core/{batchGroups.js → CjsWebgpuEncodeState.js} +1 -1
  807. package/dist/trinityal/webgpu/core/CjsWebgpuEncodeState.js.map +1 -0
  808. package/dist/trinityal/webgpu/core/{perFrameSource.js → CjsWebgpuPerFrameSource.js} +1 -1
  809. package/dist/trinityal/webgpu/core/CjsWebgpuPerFrameSource.js.map +1 -0
  810. package/dist/trinityal/webgpu/core/{pipelineCache.js → CjsWebgpuPipelineCache.js} +1 -1
  811. package/dist/trinityal/webgpu/core/CjsWebgpuPipelineCache.js.map +1 -0
  812. package/dist/trinityal/webgpu/core/{psoDescription.js → CjsWebgpuPsoDescription.js} +2 -2
  813. package/dist/trinityal/webgpu/core/CjsWebgpuPsoDescription.js.map +1 -0
  814. package/dist/trinityal/webgpu/core/{renderTarget.js → CjsWebgpuRenderTarget.js} +1 -1
  815. package/dist/trinityal/webgpu/core/CjsWebgpuRenderTarget.js.map +1 -0
  816. package/dist/trinityal/webgpu/core/{samplerSource.js → CjsWebgpuSamplerSource.js} +1 -1
  817. package/dist/trinityal/webgpu/core/CjsWebgpuSamplerSource.js.map +1 -0
  818. package/dist/trinityal/webgpu/core/{textureSource.js → CjsWebgpuTextureSource.js} +1 -1
  819. package/dist/trinityal/webgpu/core/CjsWebgpuTextureSource.js.map +1 -0
  820. package/dist/trinityal/webgpu/core/{trinityBatchDispatcher.js → CjsWebgpuTrinityBatchDispatcher.js} +4 -4
  821. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchDispatcher.js.map +1 -0
  822. package/dist/trinityal/webgpu/core/{trinityBatchResolver.js → CjsWebgpuTrinityBatchResolver.js} +81 -81
  823. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchResolver.js.map +1 -0
  824. package/dist/trinityal/webgpu/core/{trinityPassEncoder.js → CjsWebgpuTrinityPassEncoder.js} +2 -2
  825. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityPassEncoder.js.map +1 -0
  826. package/dist/trinityal/webgpu/core/{workQueue.js → CjsWebgpuWorkQueue.js} +1 -1
  827. package/dist/trinityal/webgpu/core/CjsWebgpuWorkQueue.js.map +1 -0
  828. package/dist/trinityal/webgpu/internal.js +12 -11
  829. package/dist/trinityal/webgpu/internal.js.map +1 -1
  830. package/docs/audio/reference/classes/trinity.md +44 -34
  831. package/docs/character/architecture.md +276 -0
  832. package/docs/character/reference/character-appearance-plans.md +30 -66
  833. package/docs/character/reference/prepared-libraries.md +14 -30
  834. package/docs/global/reference/api.md +2 -1
  835. package/docs/global/reference/classes/README.md +53 -71
  836. package/docs/global/reference/classes/dropped.md +16 -0
  837. package/docs/resource/README.md +19 -15
  838. package/docs/resource/architecture.md +9 -2
  839. package/docs/resource/concepts/format-capabilities.md +124 -80
  840. package/docs/resource/concepts/shared-format-helpers.md +94 -0
  841. package/docs/resource/formats/README.md +230 -224
  842. package/docs/resource/formats/bitknit2.md +221 -0
  843. package/docs/resource/formats/carbon-effect-container.md +184 -269
  844. package/docs/resource/formats/gr2.md +6 -1
  845. package/docs/resource/formats/schemabound.md +28 -48
  846. package/docs/resource/formats/static.md +70 -97
  847. package/docs/resource/formats/webgl/carbon-constant-layouts.md +8 -8
  848. package/docs/resource/formats/webgl/decl-io.md +165 -256
  849. package/docs/resource/formats/webgl/memory-structured.md +64 -142
  850. package/docs/resource/formats/webgl/texture-sample.md +109 -138
  851. package/docs/resource/formats/webgpu/formats/carbon-webgpu.md +38 -69
  852. package/docs/resource/formats/webgpu/guides/effect-packaging.md +54 -116
  853. package/docs/resource/formats/webgpu/reference/api.md +64 -67
  854. package/docs/resource/formats/webgpu/reference/wgsl-compatibility.md +158 -345
  855. package/docs/resource/reference/classes/core.md +256 -236
  856. package/docs/resource/reference/classes/formats.md +1668 -1672
  857. package/docs/resource/reference/workers.md +4 -2
  858. package/docs/sof/reference/classes/core.md +1 -1
  859. package/docs/sof/reference/classes/faction.md +2 -2
  860. package/docs/sof/reference/classes/generic.md +4 -4
  861. package/docs/sof/reference/classes/pattern.md +1 -1
  862. package/docs/sof/reference/classes/shared.md +10 -10
  863. package/docs/trinity/architecture.md +55 -44
  864. package/docs/trinity/concepts/generated-class-lifecycle.md +10 -15
  865. package/docs/trinity/reference/classes/curves-and-utilities.md +496 -506
  866. package/docs/trinity/reference/classes/dropped.md +0 -189
  867. package/docs/trinity/reference/classes/eve-runtime.md +8 -8
  868. package/docs/trinity/reference/classes/generated.md +0 -10
  869. package/docs/trinity/reference/classes/particle.md +2 -2
  870. package/docs/trinity/reference/classes/trinity-core.md +1554 -1256
  871. package/docs/trinity/reference/implementation-status.md +50 -75
  872. package/docs/trinity/reference/main-semantic-extraction.md +13 -17
  873. package/docs/trinityal/reference/classes/README.md +77 -27
  874. package/docs/trinityal/reference/classes/dropped.md +92 -0
  875. package/docs/trinityal/webgpu/README.md +3 -1
  876. package/docs/trinityal/webgpu/architecture.md +121 -228
  877. package/docs/trinityal/webgpu/reference/api.md +5 -5
  878. package/docs/trinityal/webgpu/reference/classes/README.md +13 -13
  879. package/format-notices/gr2/NOTICE +18 -12
  880. package/format-notices/gr2/THIRD-PARTY-NOTICES.md +5 -5
  881. package/package.json +4 -1
  882. package/dist/audio/trinity/audio/AudActionLog.js +0 -173
  883. package/dist/audio/trinity/audio/AudActionLog.js.map +0 -1
  884. package/dist/audio/trinity/audio/AudObstructionOcclusion.js.map +0 -1
  885. package/dist/global/contracts/CjsScriptCallback.js +0 -94
  886. package/dist/global/contracts/CjsScriptCallback.js.map +0 -1
  887. package/dist/trinity/controllers/ITr2Controller.js.map +0 -1
  888. package/dist/trinity/core/Tr2GpuResourcePool.js.map +0 -1
  889. package/dist/trinity/core/Tr2QuadRenderer.js.map +0 -1
  890. package/dist/trinity/core/Tr2TextureArray.js.map +0 -1
  891. package/dist/trinity/core/batch/ITriRenderBatchAccumulator.js.map +0 -1
  892. package/dist/trinity/core/batch/Tr2RenderBatch.js.map +0 -1
  893. package/dist/trinity/core/batch/TriRenderBatchAccumulator.js.map +0 -1
  894. package/dist/trinity/core/context/CjsShadowMapExecutor.js +0 -43
  895. package/dist/trinity/core/context/CjsShadowMapExecutor.js.map +0 -1
  896. package/dist/trinity/core/context/CjsVolumetricsExecutor.js +0 -64
  897. package/dist/trinity/core/context/CjsVolumetricsExecutor.js.map +0 -1
  898. package/dist/trinity/core/context/Tr2VisibilityResults.js +0 -109
  899. package/dist/trinity/core/context/Tr2VisibilityResults.js.map +0 -1
  900. package/dist/trinity/core/device/Tr2RingBuffer.js.map +0 -1
  901. package/dist/trinity/core/device/Tr2SuballocatedBuffer.js.map +0 -1
  902. package/dist/trinity/core/mesh/ITr2ImpostorSource.js.map +0 -1
  903. package/dist/trinity/core/mesh/ITr2InstanceData.js.map +0 -1
  904. package/dist/trinity/core/rawData/Tr2PerObjectData.js.map +0 -1
  905. package/dist/trinity/core/rawData/constantLayout.js +0 -175
  906. package/dist/trinity/core/rawData/constantLayout.js.map +0 -1
  907. package/dist/trinity/core/vertex/Tr2VertexDefinition.js.map +0 -1
  908. package/dist/trinity/eve/child/EveChildInstancedMeshes.js.map +0 -1
  909. package/dist/trinity/eve/child/EveChildPartData.js.map +0 -1
  910. package/dist/trinity/generated/trinityCore/Tr2Denoiser.js +0 -47
  911. package/dist/trinity/generated/trinityCore/Tr2Denoiser.js.map +0 -1
  912. package/dist/trinity/particle/ITr2GenericEmitter.js.map +0 -1
  913. package/dist/trinityal/Tr2DeviceResourceAL.js.map +0 -1
  914. package/dist/trinityal/Tr2HalHelperStructures.js.map +0 -1
  915. package/dist/trinityal/Tr2RenderPassAL.js.map +0 -1
  916. package/dist/trinityal/Tr2ResourceSetAL.js +0 -419
  917. package/dist/trinityal/Tr2ResourceSetAL.js.map +0 -1
  918. package/dist/trinityal/Tr2SamplerDescription.js +0 -72
  919. package/dist/trinityal/Tr2SamplerDescription.js.map +0 -1
  920. package/dist/trinityal/stub/Tr2QueryALStub.js +0 -326
  921. package/dist/trinityal/stub/Tr2QueryALStub.js.map +0 -1
  922. package/dist/trinityal/stub/Tr2RenderContextALStub.js.map +0 -1
  923. package/dist/trinityal/stub/Tr2VideoAdapterInfoALStub.js.map +0 -1
  924. package/dist/trinityal/webgpu/core/batchGroups.js.map +0 -1
  925. package/dist/trinityal/webgpu/core/constantArena.js.map +0 -1
  926. package/dist/trinityal/webgpu/core/perFrameSource.js.map +0 -1
  927. package/dist/trinityal/webgpu/core/pipelineCache.js.map +0 -1
  928. package/dist/trinityal/webgpu/core/psoDescription.js.map +0 -1
  929. package/dist/trinityal/webgpu/core/renderTarget.js.map +0 -1
  930. package/dist/trinityal/webgpu/core/samplerSource.js.map +0 -1
  931. package/dist/trinityal/webgpu/core/textureSource.js.map +0 -1
  932. package/dist/trinityal/webgpu/core/trinityBatchDispatcher.js.map +0 -1
  933. package/dist/trinityal/webgpu/core/trinityBatchResolver.js.map +0 -1
  934. package/dist/trinityal/webgpu/core/trinityPassEncoder.js.map +0 -1
  935. package/dist/trinityal/webgpu/core/workQueue.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"pool.js","sources":["../../../../src/global/math/pool.js"],"sourcesContent":["import {\r\n GL_BYTE,\r\n GL_UNSIGNED_BYTE,\r\n GL_SHORT,\r\n GL_UNSIGNED_SHORT,\r\n GL_INT,\r\n GL_UNSIGNED_INT,\r\n GL_FLOAT\r\n} from \"../consts/constants.js\";\r\n\r\n\r\nfunction loop(n, f)\r\n{\r\n const result = Array(n);\r\n for (let i = 0; i < n; ++i) result[i] = f(i);\r\n return result;\r\n}\r\n\r\nfunction nextPow16(v)\r\n{\r\n for (let i = 16; i <= (1 << 28); i *= 16)\r\n {\r\n if (v <= i) return i;\r\n }\r\n return 0;\r\n}\r\n\r\nfunction log2(v)\r\n{\r\n let r, shift;\r\n r = (v > 0xFFFF) << 4;\r\n v >>>= r;\r\n shift = (v > 0xFF) << 3;\r\n v >>>= shift;\r\n r |= shift;\r\n shift = (v > 0xF) << 2;\r\n v >>>= shift;\r\n r |= shift;\r\n shift = (v > 0x3) << 1;\r\n v >>>= shift;\r\n r |= shift;\r\n return r | (v >> 1);\r\n}\r\n\r\n/** Creates a reusable typed-array pool for a supported graphics scalar type. */\r\nexport function createPool()\r\n{\r\n\r\n const bufferPool = loop(8, function ()\r\n {\r\n return [];\r\n });\r\n\r\n function free(buf)\r\n {\r\n bufferPool[log2(buf.byteLength) >> 2].push(buf);\r\n }\r\n\r\n function alloc(n)\r\n {\r\n let sz = nextPow16(n),\r\n bin = bufferPool[log2(sz) >> 2];\r\n\r\n if (bin.length > 0) return bin.pop();\r\n\r\n return new ArrayBuffer(sz);\r\n }\r\n\r\n /**\r\n * Shortcut to allocating a float 32 array\r\n * @param {Number} length\r\n * @returns {Float32Array}\r\n */\r\n function allocF32(length)\r\n {\r\n const result = new Float32Array(alloc(4 * length), 0, length);\r\n return result.length !== length ? result.subarray(0, length) : result;\r\n }\r\n\r\n /**\r\n * Allocated a typed array of a given size\r\n * @param {Number|Function}type\r\n * @param {Number} n\r\n * @returns {Int8Array|Uint8Array|Int16Array|Uint16Array|Int32Array|Uint32Array|Float32Array|null}\r\n */\r\n function allocType(type, n)\r\n {\r\n let result = null;\r\n switch (type)\r\n {\r\n case GL_BYTE:\r\n case Int8Array:\r\n result = new Int8Array(alloc(n), 0, n);\r\n break;\r\n\r\n case GL_UNSIGNED_BYTE:\r\n case Uint8Array:\r\n result = new Uint8Array(alloc(n), 0, n);\r\n break;\r\n\r\n case GL_SHORT:\r\n case Int16Array:\r\n result = new Int16Array(alloc(2 * n), 0, n);\r\n break;\r\n\r\n case GL_UNSIGNED_SHORT:\r\n case Uint16Array:\r\n result = new Uint16Array(alloc(2 * n), 0, n);\r\n break;\r\n\r\n case GL_INT:\r\n case Int32Array:\r\n result = new Int32Array(alloc(4 * n), 0, n);\r\n break;\r\n\r\n case GL_UNSIGNED_INT:\r\n case Uint32Array:\r\n result = new Uint32Array(alloc(4 * n), 0, n);\r\n break;\r\n\r\n case GL_FLOAT:\r\n case Float32Array:\r\n result = new Float32Array(alloc(4 * n), 0, n);\r\n break;\r\n\r\n default:\r\n return null;\r\n }\r\n\r\n if (result.length !== n)\r\n {\r\n return result.subarray(0, n);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n function freeType(array)\r\n {\r\n free(array.buffer);\r\n }\r\n\r\n return {\r\n allocF32,\r\n allocType,\r\n unalloc: freeType,\r\n freeType,\r\n free\r\n };\r\n\r\n}\r\n\r\nexport const pool = createPool();\r\n\r\nexport const {\r\n allocF32,\r\n allocType,\r\n unalloc,\r\n freeType,\r\n free\r\n} = pool;\r\n"],"names":["loop","n","f","result","Array","i","nextPow16","v","log2","r","shift","createPool","bufferPool","free","buf","byteLength","push","alloc","sz","bin","length","pop","ArrayBuffer","allocF32","Float32Array","subarray","allocType","type","GL_BYTE","Int8Array","GL_UNSIGNED_BYTE","Uint8Array","GL_SHORT","Int16Array","GL_UNSIGNED_SHORT","Uint16Array","GL_INT","Int32Array","GL_UNSIGNED_INT","Uint32Array","GL_FLOAT","freeType","array","buffer","unalloc","pool"],"mappings":"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"}
1
+ {"version":3,"file":"pool.js","sources":["../../../../src/global/math/pool.js"],"sourcesContent":["import {\r\n GL_BYTE,\r\n GL_UNSIGNED_BYTE,\r\n GL_SHORT,\r\n GL_UNSIGNED_SHORT,\r\n GL_INT,\r\n GL_UNSIGNED_INT,\r\n GL_FLOAT\r\n} from \"../consts/constants.js\";\r\n\r\n// A LIVE ESM binding, deliberately. gl-matrix reassigns this when a consumer\r\n// calls `setMatrixArrayType`, and an ESM import reflects that reassignment,\r\n// so the pool keeps following it rather than capturing the type at load.\r\nimport { ARRAY_TYPE } from \"gl-matrix/esm/common.js\";\r\n\r\n\r\nfunction loop(n, f)\r\n{\r\n const result = Array(n);\r\n for (let i = 0; i < n; ++i) result[i] = f(i);\r\n return result;\r\n}\r\n\r\nfunction nextPow16(v)\r\n{\r\n for (let i = 16; i <= (1 << 28); i *= 16)\r\n {\r\n if (v <= i) return i;\r\n }\r\n return 0;\r\n}\r\n\r\nfunction log2(v)\r\n{\r\n let r, shift;\r\n r = (v > 0xFFFF) << 4;\r\n v >>>= r;\r\n shift = (v > 0xFF) << 3;\r\n v >>>= shift;\r\n r |= shift;\r\n shift = (v > 0xF) << 2;\r\n v >>>= shift;\r\n r |= shift;\r\n shift = (v > 0x3) << 1;\r\n v >>>= shift;\r\n r |= shift;\r\n return r | (v >> 1);\r\n}\r\n\r\n/** Creates a reusable typed-array pool for a supported graphics scalar type. */\r\nexport function createPool()\r\n{\r\n\r\n const bufferPool = loop(8, function ()\r\n {\r\n return [];\r\n });\r\n\r\n function free(buf)\r\n {\r\n bufferPool[log2(buf.byteLength) >> 2].push(buf);\r\n }\r\n\r\n function alloc(n)\r\n {\r\n let sz = nextPow16(n),\r\n bin = bufferPool[log2(sz) >> 2];\r\n\r\n if (bin.length > 0) return bin.pop();\r\n\r\n return new ArrayBuffer(sz);\r\n }\r\n\r\n /**\r\n * Shortcut to allocating an array of gl-matrix's own scalar type.\r\n *\r\n * The name says F32 and in every environment we ship it IS Float32Array,\r\n * because that is what `glMatrix.ARRAY_TYPE` defaults to. But gl-matrix owns\r\n * that choice and exposes `setMatrixArrayType` to change it, so hardcoding\r\n * the type here is a real defect: `vec3.alloc()` would hand back a narrower\r\n * array than `vec3.create()` the moment anything overrode it, and every\r\n * pooled temporary in the math tree would silently round. Following\r\n * `ARRAY_TYPE` is what makes a pooled vector interchangeable with a created\r\n * one. Inherited from ccpwgl, where the same hardcoding is still present.\r\n *\r\n * @param {Number} length\r\n * @returns {Float32Array|Float64Array} gl-matrix's scalar type.\r\n */\r\n function allocF32(length)\r\n {\r\n // gl-matrix falls back to plain `Array` only where Float32Array does not\r\n // exist, which cannot happen anywhere this runs; the pool hands out views\r\n // over a shared ArrayBuffer, so it needs a real typed array either way.\r\n const\r\n ScalarArray = ARRAY_TYPE.BYTES_PER_ELEMENT ? ARRAY_TYPE : Float32Array,\r\n result = new ScalarArray(alloc(ScalarArray.BYTES_PER_ELEMENT * length), 0, length);\r\n\r\n return result.length !== length ? result.subarray(0, length) : result;\r\n }\r\n\r\n /**\r\n * Allocated a typed array of a given size\r\n * @param {Number|Function}type\r\n * @param {Number} n\r\n * @returns {Int8Array|Uint8Array|Int16Array|Uint16Array|Int32Array|Uint32Array|Float32Array|null}\r\n */\r\n function allocType(type, n)\r\n {\r\n let result = null;\r\n switch (type)\r\n {\r\n case GL_BYTE:\r\n case Int8Array:\r\n result = new Int8Array(alloc(n), 0, n);\r\n break;\r\n\r\n case GL_UNSIGNED_BYTE:\r\n case Uint8Array:\r\n result = new Uint8Array(alloc(n), 0, n);\r\n break;\r\n\r\n case GL_SHORT:\r\n case Int16Array:\r\n result = new Int16Array(alloc(2 * n), 0, n);\r\n break;\r\n\r\n case GL_UNSIGNED_SHORT:\r\n case Uint16Array:\r\n result = new Uint16Array(alloc(2 * n), 0, n);\r\n break;\r\n\r\n case GL_INT:\r\n case Int32Array:\r\n result = new Int32Array(alloc(4 * n), 0, n);\r\n break;\r\n\r\n case GL_UNSIGNED_INT:\r\n case Uint32Array:\r\n result = new Uint32Array(alloc(4 * n), 0, n);\r\n break;\r\n\r\n case GL_FLOAT:\r\n case Float32Array:\r\n result = new Float32Array(alloc(4 * n), 0, n);\r\n break;\r\n\r\n default:\r\n return null;\r\n }\r\n\r\n if (result.length !== n)\r\n {\r\n return result.subarray(0, n);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n function freeType(array)\r\n {\r\n free(array.buffer);\r\n }\r\n\r\n return {\r\n allocF32,\r\n allocType,\r\n unalloc: freeType,\r\n freeType,\r\n free\r\n };\r\n\r\n}\r\n\r\nexport const pool = createPool();\r\n\r\nexport const {\r\n allocF32,\r\n allocType,\r\n unalloc,\r\n freeType,\r\n free\r\n} = pool;\r\n"],"names":["loop","n","f","result","Array","i","nextPow16","v","log2","r","shift","createPool","bufferPool","free","buf","byteLength","push","alloc","sz","bin","length","pop","ArrayBuffer","allocF32","ScalarArray","ARRAY_TYPE","BYTES_PER_ELEMENT","Float32Array","subarray","allocType","type","GL_BYTE","Int8Array","GL_UNSIGNED_BYTE","Uint8Array","GL_SHORT","Int16Array","GL_UNSIGNED_SHORT","Uint16Array","GL_INT","Int32Array","GL_UNSIGNED_INT","Uint32Array","GL_FLOAT","freeType","array","buffer","unalloc","pool"],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ // Source: trinity/trinity/TriMath.cpp
2
+ // trinity/trinity/Curves/Tr2CurveRandomAxisRotation.cpp
3
+ //
4
+ // Carbon reaches for the C++ standard library's Mersenne Twister directly -
5
+ // `std::mt19937 randGen( seed )` in TriPerlinNoise's constructor (TriMath.cpp:
6
+ // 1023), and `std::default_random_engine`, which is mt19937 under MSVC, in
7
+ // Tr2CurveRandomAxisRotation (:5, :9). JavaScript ships no such generator and a
8
+ // persisted seed must reproduce Carbon's sequence exactly, so the engine itself
9
+ // is ported. That is the platform forcing the divergence, not a design choice.
10
+ //
11
+ // It is a CALLABLE, not a class, because that is how Carbon uses it - `randGen()`
12
+ // - and because the math tree declares namespaces of functions, not classes.
13
+ // Two independent copies of this generator existed before it was one: inline in
14
+ // noise.js and as a private class beside Tr2CurveRandomAxisRotation.
15
+
16
+ const random = {};
17
+ const STATE_WORDS = 624;
18
+ const TWIST_OFFSET = 397;
19
+
20
+ /**
21
+ * Builds a seeded MT19937 engine.
22
+ *
23
+ * @param {number} seed Unsigned 32-bit seed.
24
+ * @returns {() => number} Returns the next 32-bit unsigned value on each call.
25
+ */
26
+ random.mt19937 = function (seed) {
27
+ const state = new Uint32Array(STATE_WORDS);
28
+ state[0] = Number(seed) >>> 0;
29
+ for (let index = 1; index < STATE_WORDS; index++) {
30
+ const previous = state[index - 1] ^ state[index - 1] >>> 30;
31
+ state[index] = Math.imul(1812433253, previous) + index >>> 0;
32
+ }
33
+ let cursor = STATE_WORDS;
34
+ return function () {
35
+ if (cursor >= STATE_WORDS) {
36
+ for (let index = 0; index < STATE_WORDS; index++) {
37
+ const bits = state[index] & 0x80000000 | state[(index + 1) % STATE_WORDS] & 0x7fffffff;
38
+ state[index] = state[(index + TWIST_OFFSET) % STATE_WORDS] ^ bits >>> 1 ^ (bits & 1 ? 0x9908b0df : 0);
39
+ }
40
+ cursor = 0;
41
+ }
42
+ let value = state[cursor++];
43
+ value ^= value >>> 11;
44
+ value ^= value << 7 & 0x9d2c5680;
45
+ value ^= value << 15 & 0xefc60000;
46
+ value ^= value >>> 18;
47
+ return value >>> 0;
48
+ };
49
+ };
50
+
51
+ export { random };
52
+ //# sourceMappingURL=random.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"random.js","sources":["../../../../src/global/math/random.js"],"sourcesContent":["// Source: trinity/trinity/TriMath.cpp\n// trinity/trinity/Curves/Tr2CurveRandomAxisRotation.cpp\n//\n// Carbon reaches for the C++ standard library's Mersenne Twister directly -\n// `std::mt19937 randGen( seed )` in TriPerlinNoise's constructor (TriMath.cpp:\n// 1023), and `std::default_random_engine`, which is mt19937 under MSVC, in\n// Tr2CurveRandomAxisRotation (:5, :9). JavaScript ships no such generator and a\n// persisted seed must reproduce Carbon's sequence exactly, so the engine itself\n// is ported. That is the platform forcing the divergence, not a design choice.\n//\n// It is a CALLABLE, not a class, because that is how Carbon uses it - `randGen()`\n// - and because the math tree declares namespaces of functions, not classes.\n// Two independent copies of this generator existed before it was one: inline in\n// noise.js and as a private class beside Tr2CurveRandomAxisRotation.\n\nexport const random = {};\n\nconst STATE_WORDS = 624;\nconst TWIST_OFFSET = 397;\n\n/**\n * Builds a seeded MT19937 engine.\n *\n * @param {number} seed Unsigned 32-bit seed.\n * @returns {() => number} Returns the next 32-bit unsigned value on each call.\n */\nrandom.mt19937 = function(seed)\n{\n const state = new Uint32Array(STATE_WORDS);\n\n state[0] = Number(seed) >>> 0;\n for (let index = 1; index < STATE_WORDS; index++)\n {\n const previous = state[index - 1] ^ state[index - 1] >>> 30;\n state[index] = Math.imul(1812433253, previous) + index >>> 0;\n }\n\n let cursor = STATE_WORDS;\n\n return function()\n {\n if (cursor >= STATE_WORDS)\n {\n for (let index = 0; index < STATE_WORDS; index++)\n {\n const bits = state[index] & 0x80000000 | state[(index + 1) % STATE_WORDS] & 0x7fffffff;\n state[index] = state[(index + TWIST_OFFSET) % STATE_WORDS] ^ bits >>> 1 ^ (bits & 1 ? 0x9908b0df : 0);\n }\n cursor = 0;\n }\n\n let value = state[cursor++];\n\n value ^= value >>> 11;\n value ^= value << 7 & 0x9d2c5680;\n value ^= value << 15 & 0xefc60000;\n value ^= value >>> 18;\n return value >>> 0;\n };\n};\n"],"names":["random","STATE_WORDS","TWIST_OFFSET","mt19937","seed","state","Uint32Array","Number","index","previous","Math","imul","cursor","bits","value"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,MAAMA,MAAM,GAAG;AAEtB,MAAMC,WAAW,GAAG,GAAG;AACvB,MAAMC,YAAY,GAAG,GAAG;;AAExB;AACA;AACA;AACA;AACA;AACA;AACAF,MAAM,CAACG,OAAO,GAAG,UAASC,IAAI,EAC9B;AACI,EAAA,MAAMC,KAAK,GAAG,IAAIC,WAAW,CAACL,WAAW,CAAC;EAE1CI,KAAK,CAAC,CAAC,CAAC,GAAGE,MAAM,CAACH,IAAI,CAAC,KAAK,CAAC;EAC7B,KAAK,IAAII,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGP,WAAW,EAAEO,KAAK,EAAE,EAChD;AACI,IAAA,MAAMC,QAAQ,GAAGJ,KAAK,CAACG,KAAK,GAAG,CAAC,CAAC,GAAGH,KAAK,CAACG,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE;AAC3DH,IAAAA,KAAK,CAACG,KAAK,CAAC,GAAGE,IAAI,CAACC,IAAI,CAAC,UAAU,EAAEF,QAAQ,CAAC,GAAGD,KAAK,KAAK,CAAC;AAChE,EAAA;EAEA,IAAII,MAAM,GAAGX,WAAW;AAExB,EAAA,OAAO,YACP;IACI,IAAIW,MAAM,IAAIX,WAAW,EACzB;MACI,KAAK,IAAIO,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGP,WAAW,EAAEO,KAAK,EAAE,EAChD;AACI,QAAA,MAAMK,IAAI,GAAGR,KAAK,CAACG,KAAK,CAAC,GAAG,UAAU,GAAGH,KAAK,CAAC,CAACG,KAAK,GAAG,CAAC,IAAIP,WAAW,CAAC,GAAG,UAAU;QACtFI,KAAK,CAACG,KAAK,CAAC,GAAGH,KAAK,CAAC,CAACG,KAAK,GAAGN,YAAY,IAAID,WAAW,CAAC,GAAGY,IAAI,KAAK,CAAC,IAAIA,IAAI,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC;AACzG,MAAA;AACAD,MAAAA,MAAM,GAAG,CAAC;AACd,IAAA;AAEA,IAAA,IAAIE,KAAK,GAAGT,KAAK,CAACO,MAAM,EAAE,CAAC;IAE3BE,KAAK,IAAIA,KAAK,KAAK,EAAE;AACrBA,IAAAA,KAAK,IAAIA,KAAK,IAAI,CAAC,GAAG,UAAU;AAChCA,IAAAA,KAAK,IAAIA,KAAK,IAAI,EAAE,GAAG,UAAU;IACjCA,KAAK,IAAIA,KAAK,KAAK,EAAE;IACrB,OAAOA,KAAK,KAAK,CAAC;EACtB,CAAC;AACL,CAAC;;;;"}
@@ -208,6 +208,13 @@ tri3.intersectsOrientedBox = function () {
208
208
  // Nine edge-cross axes, with Carbon's own vertex pairs. Built once: the
209
209
  // vectors are stable across calls, and a decal tests every triangle of a
210
210
  // hull against this.
211
+ //
212
+ // Each row is read positionally in the loop below, which is what the old
213
+ // destructuring form used to name:
214
+ //
215
+ // [ edge, ax, bx, ay, by, az, bz ]
216
+ //
217
+ // one vertex pair per box axis: x at [1],[2], y at [3],[4], z at [5],[6].
211
218
  const edgeAxes = [[e[0], v[0], v[2], v[0], v[2], v[1], v[2]], [e[1], v[0], v[2], v[0], v[2], v[0], v[1]], [e[2], v[0], v[1], v[0], v[1], v[1], v[2]]];
212
219
 
213
220
  // A separating plane at the cross product of a triangle edge and a unit-box
@@ -252,13 +259,20 @@ tri3.intersectsOrientedBox = function () {
252
259
  }
253
260
  if (vec3.dot(vmin, normal) > 0) return false;
254
261
  if (vec3.dot(vmax, normal) < 0) return false;
255
- for (const [edge, ax, bx, ay, by, az, bz] of edgeAxes) {
262
+
263
+ // An indexed loop, NOT `for...of` with destructuring. A decal runs this
264
+ // over every triangle of a hull, so this is the hottest loop in the file,
265
+ // and that form costs an array iterator plus a seven-way destructure on
266
+ // every call. The rows are read positionally below for the same reason.
267
+ for (let axis = 0; axis < edgeAxes.length; axis++) {
268
+ const row = edgeAxes[axis];
269
+ const edge = row[0];
256
270
  const fex = Math.abs(edge[0]);
257
271
  const fey = Math.abs(edge[1]);
258
272
  const fez = Math.abs(edge[2]);
259
- if (!axisTest(edge[2], -edge[1], fez, fey, ax, bx, 1, 2)) return false;
260
- if (!axisTest(-edge[2], edge[0], fez, fex, ay, by, 0, 2)) return false;
261
- if (!axisTest(edge[1], -edge[0], fey, fex, az, bz, 0, 1)) return false;
273
+ if (!axisTest(edge[2], -edge[1], fez, fey, row[1], row[2], 1, 2)) return false;
274
+ if (!axisTest(-edge[2], edge[0], fez, fex, row[3], row[4], 0, 2)) return false;
275
+ if (!axisTest(edge[1], -edge[0], fey, fex, row[5], row[6], 0, 1)) return false;
262
276
  }
263
277
  return true;
264
278
  };
@@ -1 +1 @@
1
- {"version":3,"file":"tri3.js","sources":["../../../../src/global/math/tri3.js"],"sourcesContent":["import { vec3 } from \"./vec3.js\";\nimport { mat3 } from \"./mat3.js\";\nimport { pln } from \"./pln.js\";\nimport { lne3 } from \"./lne3.js\";\nimport { pool } from \"./pool.js\";\n\n/**\n * 3d Triangle\n *\n * @typedef {Float32Array} tri3\n */\n\nexport const tri3 = {};\n\n/**\n * Allocates a pooled tri3\n * @returns {Float32Array|tri3}\n */\ntri3.alloc = function()\n{\n return pool.allocF32(9);\n};\n\n/**\n * Unallocates a pooled tri3\n * @param {tri3|Float32Array} a\n */\ntri3.unalloc = function(a)\n{\n pool.freeType(a);\n};\n\n/**\n * Gets a subarray of a tri3's first vertex\n *\n * @param {tri3} a\n * @returns {vec3}\n */\ntri3.$v1 = lne3.$start;\n\n/**\n * Gets a subarray of a tri3's second vertex\n *\n * @param {tri3} a\n * @returns {vec3}\n */\ntri3.$v2 = lne3.$end;\n\n/**\n * Gets a subarray of a tri3's third vertex\n *\n * @param {tri3} a\n * @returns {vec3}\n */\ntri3.$v3 = function(a)\n{\n return a.subarray(6, 9);\n};\n\n/**\n * Gets the area of a triangle\n *\n * @param {tri3} a\n * @returns {number}\n */\ntri3.area = function(a)\n{\n let ax = a[6] - a[3],\n ay = a[7] - a[4],\n az = a[8] - a[5],\n bx = a[0] - a[3],\n by = a[1] - a[4],\n bz = a[2] - a[5];\n // Cross product\n let x = ay * bz - az * by,\n y = az * bx - ax * bz,\n z = ax * by - ay * bx;\n // Return half length\n return Math.sqrt(x * x + y * y + z * z) * 0.5;\n};\n\n/**\n * Creates a tri3\n *\n * @returns {tri3}\n */\ntri3.create = function()\n{\n let out = new Float32Array(9);\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n return out;\n};\n\n/**\n * Clones a tri3\n *\n * @param {tri3} a\n * @returns {tri3}\n */\ntri3.clone = mat3.clone;\n\n/**\n * Checks if a tri3 contains a point\n *\n * @param {tri3} a\n * @param {vec3} point\n * @returns {boolean}\n */\ntri3.contains = (function()\n{\n let vec3_0;\n return function(a, point)\n {\n if (!vec3_0) vec3_0 = vec3.create();\n tri3.getBaryCentricCoordinates(vec3_0, a, point);\n return (vec3_0[0] >= 0) && (vec3_0[1] >= 0) && ((vec3_0[0] + vec3_0[1]) <= 1);\n };\n})();\n\n/**\n * Copies a tri3\n *\n * @param {tri3} a\n * @param {tri3} b\n * @returns {tri3} a\n */\ntri3.copy = mat3.copy;\n\n/**\n * Sets a tri3 from vertices\n *\n * @param {tri3} out\n * @param {vec3} v1\n * @param {vec3} v2\n * @param {vec3} v3\n * @returns {tri3} out\n */\ntri3.fromVertices = function(out, v1, v2, v3)\n{\n out[0] = v1[0];\n out[1] = v1[1];\n out[2] = v1[2];\n out[3] = v2[0];\n out[4] = v2[1];\n out[5] = v2[2];\n out[6] = v3[0];\n out[7] = v3[1];\n out[8] = v3[2];\n return out;\n};\n\n/**\n * Sets a tri3 from an array at an option offset\n *\n * @param {tri3} out\n * @param {Array} arr\n * @param {number} [offset=0]\n * @returns {tri3} out\n */\n/**\n * Whether a triangle overlaps an axis-aligned box.\n *\n * A cheap reject only: it tests the box's three slabs and answers true whenever\n * no slab separates the triangle, so a triangle that straddles a corner without\n * touching the box still passes. Carbon uses it as the broad phase in front of\n * the oriented-box test (BoundingBox.cpp:569-588) and so should any caller.\n *\n * @param {tri3} a\n * @param {vec3} min\n * @param {vec3} max\n * @returns {boolean} false only when a slab separates the triangle\n */\ntri3.intersectsBounds = function(a, min, max)\n{\n for (let axis = 0; axis < 3; axis++)\n {\n const lo = min[axis];\n const hi = max[axis];\n\n if (a[axis] < lo && a[axis + 3] < lo && a[axis + 6] < lo) return false;\n if (a[axis] > hi && a[axis + 3] > hi && a[axis + 6] > hi) return false;\n }\n\n return true;\n};\n\n/**\n * Whether a triangle overlaps an oriented box, by separating-axis test.\n *\n * The box is given as the INVERSE of the transform that maps the unit box\n * (-1,-1,-1)..(1,1,1) onto it, so the triangle is moved into unit-box space and\n * tested there - which is why no box axes appear below.\n *\n * Ported from Carbon (BoundingBox.cpp:626-732) including the vertex pairs its\n * edge tests use. Those pairs are NOT the symmetric set a textbook\n * separating-axis test would pick, and two of them look like slips; they are\n * reproduced exactly because this decides which hull triangles a decal covers,\n * and a \"corrected\" test would silently disagree with the client about where a\n * decal reaches.\n *\n * @param {tri3} a\n * @param {mat4} invOrientedBox inverse of the box transform\n * @returns {boolean} true when no separating axis was found\n */\ntri3.intersectsOrientedBox = (function()\n{\n const v = [ vec3.create(), vec3.create(), vec3.create() ];\n const e = [ vec3.create(), vec3.create(), vec3.create() ];\n const normal = vec3.create();\n const vmin = vec3.create();\n const vmax = vec3.create();\n\n // Nine edge-cross axes, with Carbon's own vertex pairs. Built once: the\n // vectors are stable across calls, and a decal tests every triangle of a\n // hull against this.\n const edgeAxes = [\n [ e[0], v[0], v[2], v[0], v[2], v[1], v[2] ],\n [ e[1], v[0], v[2], v[0], v[2], v[0], v[1] ],\n [ e[2], v[0], v[1], v[0], v[1], v[1], v[2] ]\n ];\n\n // A separating plane at the cross product of a triangle edge and a unit-box\n // axis. The box half-extent is 1 on every axis, so the radius is just\n // |a| + |b| (Carbon's AxisTest, BoundingBox.cpp:601-611).\n function axisTest(ca, cb, fa, fb, p, q, axis0, axis1)\n {\n let p0 = ca * p[axis0] + cb * p[axis1];\n let p2 = ca * q[axis0] + cb * q[axis1];\n\n if (p2 < p0)\n {\n const swap = p0;\n p0 = p2;\n p2 = swap;\n }\n\n const rad = fa + fb;\n\n return !(p0 > rad || p2 < -rad);\n }\n\n return function(a, invOrientedBox)\n {\n for (let i = 0; i < 3; i++)\n {\n vec3.set(v[i], a[i * 3], a[i * 3 + 1], a[i * 3 + 2]);\n vec3.transformMat4(v[i], v[i], invOrientedBox);\n }\n\n // The unit box's own six faces.\n for (let axis = 0; axis < 3; axis++)\n {\n if (v[0][axis] < -1 && v[1][axis] < -1 && v[2][axis] < -1) return false;\n if (v[0][axis] > 1 && v[1][axis] > 1 && v[2][axis] > 1) return false;\n }\n\n vec3.subtract(e[0], v[1], v[0]);\n vec3.subtract(e[1], v[2], v[1]);\n vec3.subtract(e[2], v[0], v[2]);\n\n // The triangle's own plane.\n vec3.cross(normal, e[0], e[1]);\n\n for (let i = 0; i < 3; i++)\n {\n if (normal[i] > 0)\n {\n vmin[i] = -1 - v[0][i];\n vmax[i] = 1 - v[0][i];\n }\n else\n {\n vmin[i] = 1 - v[0][i];\n vmax[i] = -1 - v[0][i];\n }\n }\n\n if (vec3.dot(vmin, normal) > 0) return false;\n if (vec3.dot(vmax, normal) < 0) return false;\n\n for (const [ edge, ax, bx, ay, by, az, bz ] of edgeAxes)\n {\n const fex = Math.abs(edge[0]);\n const fey = Math.abs(edge[1]);\n const fez = Math.abs(edge[2]);\n\n if (!axisTest(edge[2], -edge[1], fez, fey, ax, bx, 1, 2)) return false;\n if (!axisTest(-edge[2], edge[0], fez, fex, ay, by, 0, 2)) return false;\n if (!axisTest(edge[1], -edge[0], fey, fex, az, bz, 0, 1)) return false;\n }\n\n return true;\n };\n})();\n\ntri3.fromArray = mat3.fromArray;\n\n/**\n * Gets bary centric coordinates\n *\n * @author three.js (converted)\n * @param {vec3} out\n * @param {tri3} a\n * @param {vec3} point\n * @returns {tri3} out\n */\ntri3.getBaryCentricCoordinates = function(out, a, point)\n{\n let ax = a[6] - a[0],\n ay = a[7] - a[1],\n az = a[8] - a[2],\n\n bx = a[3] - a[0],\n by = a[4] - a[1],\n bz = a[5] - a[2],\n\n cx = point[0] - a[0],\n cy = point[1] - a[1],\n cz = point[2] - a[2];\n\n let dot00 = ax * ax + ay * ay + az * az,\n dot01 = ax * bx + ay * by + az * bz,\n dot02 = ax * cx + ay * cy + az * cz,\n dot11 = bx * bx + by * by + bz * bz,\n dot12 = bx * cx + by * cy + bz * cz;\n\n let denom = (dot00 * dot11 - dot01 * dot01);\n\n if (denom === 0)\n {\n out[0] = -2;\n out[1] = -1;\n out[2] = -1;\n throw new Error(\"Denominator error\");\n }\n else\n {\n let invDenom = 1 / denom;\n let u = (dot11 * dot02 - dot01 * dot12) * invDenom;\n let v = (dot00 * dot12 - dot01 * dot02) * invDenom;\n out[0] = 1 - u - v;\n out[1] = v;\n out[2] = u;\n }\n return out;\n};\n\n/**\n *\n * @author three.js (converted)\n * @param {lne3} out\n * @param {tri3} a\n * @param {vec3} point\n * @returns {*}\n */\ntri3.getClosestEdgeToPoint = (function()\n{\n let v0, v1, edgeList;\n\n return function getClosestEdgeToPoint(out, a, point, debug)\n {\n if (!v0)\n {\n v0 = vec3.create();\n v1 = vec3.create();\n edgeList = [ lne3.create(), lne3.create(), lne3.create() ];\n }\n\n // Get the closest point on the triangle to the supplied point\n let closestPointOnTriangle = tri3.getClosestPointToPoint(v0, a, point);\n\n // Convert the triangle's vertices to edges\n lne3.set(edgeList[0], a[0], a[1], a[2], a[3], a[4], a[5]); // vert a - vert b\n lne3.set(edgeList[1], a[3], a[4], a[5], a[6], a[7], a[8]); // vert b - vert c\n lne3.set(edgeList[2], a[6], a[7], a[8], a[0], a[1], a[2]); // vert c - vert a\n\n let minDistance = Infinity,\n edgeIndex;\n\n for (let i = 0; i < edgeList.length; i++)\n {\n // Get the closest point on the triangles edge to the closest point on the triangle to the supplied point\n let closestPointOnLine = lne3.getClosestPointToPoint(v1, edgeList[i], closestPointOnTriangle, true);\n let distance = vec3.squaredDistance(closestPointOnLine, closestPointOnTriangle);\n if (distance < minDistance)\n {\n minDistance = distance;\n out[0] = edgeList[i][0];\n out[1] = edgeList[i][1];\n out[2] = edgeList[i][2];\n out[3] = edgeList[i][3];\n out[4] = edgeList[i][4];\n out[5] = edgeList[i][5];\n edgeIndex = i;\n }\n }\n\n // Temporary\n if (debug)\n {\n switch(edgeIndex)\n {\n case 0:\n debug.edgeStart = 0;\n debug.edgeEnd = 1;\n break;\n\n case 1:\n debug.edgeStart = 1;\n debug.edgeEnd = 2;\n break;\n\n default:\n debug.edgeStart = 2;\n debug.edgeEnd = 0;\n break;\n }\n }\n\n return out;\n };\n})();\n\n/**\n * Gets the closest point on a triangle to another point\n *\n * @author three.js (converted)\n * @param {vec3} out - receiving vec3\n * @param {vec3} a - tri3 to operate on\n * @param {vec3} point - the point\n * @returns {vec3} vecOut - receiving vec3\n */\ntri3.getClosestPointToPoint = (function()\n{\n let plane, edgeList, projectedPoint, closestPoint, vec3_0, vec3_1, vec3_2;\n\n return function getClosestPointToPoint(out, a, point)\n {\n if (!plane)\n {\n plane = pln.create();\n edgeList = [ lne3.create(), lne3.create(), lne3.create() ];\n projectedPoint = vec3.create();\n closestPoint = vec3.create();\n vec3_0 = vec3.create();\n vec3_1 = vec3.create();\n vec3_2 = vec3.create();\n }\n\n // Replace with subarray tri3.v1 .v2 .v3 ?\n tri3.getV1(vec3_0, a);\n tri3.getV2(vec3_1, a);\n tri3.getV3(vec3_2, a);\n\n // project the point onto the plane of the triangle\n pln.fromCoplanarPoints(plane, vec3_0, vec3_1, vec3_2);\n pln.getProjectedPoint(projectedPoint, plane, point);\n\n // check if the projection lies within the triangle\n if (tri3.contains(a, projectedPoint) === true)\n {\n out[0] = projectedPoint[0];\n out[1] = projectedPoint[1];\n out[2] = projectedPoint[2];\n }\n // if not, the point falls outside the triangle.\n // the result is the closest point to the triangle's edges or vertices\n else\n {\n lne3.set(edgeList[0], a[0], a[1], a[2], a[3], a[4], a[5]);\n lne3.set(edgeList[1], a[3], a[4], a[5], a[6], a[7], a[8]);\n lne3.set(edgeList[2], a[6], a[7], a[8], a[0], a[1], a[2]);\n\n let minDistance = Infinity;\n for (let i = 0; i < edgeList.length; i++)\n {\n lne3.getClosestPointToPoint(closestPoint, edgeList[i], projectedPoint, true);\n let distance = vec3.squaredDistance(projectedPoint, closestPoint);\n if (distance < minDistance)\n {\n minDistance = distance;\n out[0] = closestPoint[0];\n out[1] = closestPoint[1];\n out[2] = closestPoint[2];\n }\n }\n }\n return out;\n };\n})();\n\n/**\n * Gets the closest vertex to a given point\n *\n * @param {vec3} out\n * @param {tri3} a\n * @param {vec3} point\n * @returns {vec3} out\n */\ntri3.getClosestVertexToPoint = (function()\n{\n let vec3_0, vec3_1, vec3_2;\n\n return function(out, a, point, debug)\n {\n if (!vec3_0)\n {\n vec3_0 = vec3.create();\n vec3_1 = vec3.create();\n vec3_2 = vec3.create();\n }\n\n // Get the closest point on the triangle to the supplied point\n tri3.getClosestPointToPoint(out, a, point);\n\n let minDistance = Infinity,\n distance,\n x, y, z,\n vertices = [\n tri3.getV1(vec3_0, a),\n tri3.getV2(vec3_1, a),\n tri3.getV3(vec3_2, a)\n ];\n\n let foundIndex;\n // Find the closest triangle vertex\n for (let i = 0; i < vertices.length; i++)\n {\n distance = vec3.squaredDistance(vertices[i], out);\n if (distance < minDistance)\n {\n minDistance = distance;\n x = vertices[i][0];\n y = vertices[i][1];\n z = vertices[i][2];\n foundIndex = i;\n }\n }\n\n if (debug) debug.closest = foundIndex;\n\n out[0] = x;\n out[1] = y;\n out[2] = z;\n return out;\n };\n})();\n\n/**\n * Sets a vec3 as the midpoint of a triangle\n *\n * @param {vec3} out - receiving vec3\n * @param {tri3} a - tri3 to get the midpoint of -\n * @returns {vec3} out - receiving vec3\n */\ntri3.getMidpoint = function(out, a)\n{\n let s = 1 / 3;\n out[0] = (a[0] + a[3] + a[6]) * s;\n out[1] = (a[1] + a[4] + a[7]) * s;\n out[2] = (a[2] + a[5] + a[8]) * s;\n return out;\n};\n\nlet tri3_0 = null;\n\n/**\n * Gets normal vertices\n *\n * @param {vec3} out\n * @param {vec3} v1\n * @param {vec3} v2\n * @param {vec3} v3\n * @return {vec3} out\n */\ntri3.getNormalFromVertices = function(out, v1, v2, v3)\n{\n if (!tri3_0) tri3_0 = tri3.create();\n tri3.fromVertices(tri3_0, v1, v2, v3);\n return tri3.getNormal(out, tri3_0);\n};\n\n/**\n * Gets a triangle's normal\n *\n * @param {vec3} out\n * @param {tri3} a\n * @returns {vec3} out\n */\ntri3.getNormal = function(out, a)\n{\n let ax = a[6] - a[3],\n ay = a[7] - a[4],\n az = a[8] - a[5],\n bx = a[0] - a[3],\n by = a[1] - a[4],\n bz = a[2] - a[5];\n\n // Get cross product\n let x = ay * bz - az * by,\n y = az * bx - ax * bz,\n z = ax * by - ay * bx;\n\n // Normalize\n let len = x * x + y * y + z * z;\n if (len > 0)\n {\n len = 1 / Math.sqrt(len);\n out[0] = x * len;\n out[1] = y * len;\n out[2] = z * len;\n }\n else\n {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n throw new Error(\"Normalization error\");\n }\n return out;\n};\n\n/**\n * Sets a vec3 with the tri3's first vert\n *\n * @param {vec3} out - receiving vec3\n * @param {tri3} a - source tri3\n * @returns {vec3} [out] - receiving vec3\n */\ntri3.getV1 = lne3.getStart;\n\n/**\n * Sets a vec3 with the tri3's second vert\n *\n * @param {vec3} out - receiving vec3\n * @param {tri3} a - source tri3\n * @returns {vec3} [out] - receiving vec3\n */\ntri3.getV2 = lne3.getEnd;\n\n/**\n * Sets a vec3 with the tri3's third vert\n *\n * @param {vec3} out - receiving vec3\n * @param {tri3} v - source tri3\n * @returns {vec3} [out] - receiving vec3\n */\ntri3.getV3 = function(out, v)\n{\n out[0] = v[6];\n out[1] = v[7];\n out[2] = v[8];\n return out;\n};\n\n/**\n * Sets the first position of a triangle\n * @param {tri3} out\n * @param {vec3} v\n * @returns {tri3} out\n */\ntri3.setV1 = lne3.setStart;\n\n/**\n * Sets the second position of a triangle\n * @param {tri3} out\n * @param {vec3} v\n * @returns {tri3} out\n */\ntri3.setV2 = lne3.setEnd;\n\n/**\n * Sets the second position of a triangle\n * @param {tri3} out\n * @param {vec3} v\n * @returns {tri3} out\n */\ntri3.setV3 = function(out, v)\n{\n out[6] = v[0];\n out[7] = v[1];\n out[8] = v[2];\n return out;\n};\n\n/**\n * Sets an array at an optional offset\n *\n * @param {mat3} a\n * @param {Array} arr\n * @param {number} [index=0]\n * @returns {mat3} a\n */\ntri3.toArray = mat3.toArray;\n\n/**\n * Extracts the vertices of a tri3\n *\n * @param {tri3} a\n * @param {vec3} v1\n * @param {vec3} v2\n * @param {vec3} v3\n */\ntri3.toVertices = function(a, v1, v2, v3)\n{\n v1[0] = a[0];\n v1[1] = a[1];\n v1[2] = a[2];\n v2[0] = a[3];\n v2[1] = a[4];\n v2[2] = a[5];\n v3[0] = a[6];\n v3[1] = a[7];\n v3[2] = a[8];\n return a;\n};\n\nlet vec3_0, vec3_1, vec3_2;\n\n/**\n * Transforms a tri3 by a mat4\n * TODO: Optimize\n * @param {tri3} out\n * @param {tri3} a\n * @param {mat4} m\n * @return {tri3}\n */\ntri3.transformMat4 = function(out, a, m)\n{\n if (!vec3_0)\n {\n vec3_0 = vec3.create();\n vec3_1 = vec3.create();\n vec3_2 = vec3.create();\n }\n\n tri3.getV1(vec3_0, a);\n tri3.getV2(vec3_1, a);\n tri3.getV3(vec3_2, a);\n\n vec3.transformMat4(vec3_0, vec3_0, m);\n vec3.transformMat4(vec3_1, vec3_1, m);\n vec3.transformMat4(vec3_2, vec3_2, m);\n\n return tri3.fromVertices(out, vec3_0, vec3_1, vec3_2);\n};\n\nexport const {\n alloc,\n unalloc,\n $v1,\n $v2,\n $v3,\n area,\n create,\n clone,\n contains,\n copy,\n fromVertices,\n fromArray,\n getBaryCentricCoordinates,\n getClosestEdgeToPoint,\n getClosestPointToPoint,\n getClosestVertexToPoint,\n getMidpoint,\n getNormalFromVertices,\n getNormal,\n getV1,\n intersectsBounds,\n intersectsOrientedBox,\n getV2,\n getV3,\n setV1,\n setV2,\n setV3,\n toArray,\n toVertices,\n transformMat4\n} = tri3;\n\n"],"names":["tri3","alloc","pool","allocF32","unalloc","a","freeType","$v1","lne3","$start","$v2","$end","$v3","subarray","area","ax","ay","az","bx","by","bz","x","y","z","Math","sqrt","create","out","Float32Array","clone","mat3","contains","vec3_0","point","vec3","getBaryCentricCoordinates","copy","fromVertices","v1","v2","v3","intersectsBounds","min","max","axis","lo","hi","intersectsOrientedBox","v","e","normal","vmin","vmax","edgeAxes","axisTest","ca","cb","fa","fb","p","q","axis0","axis1","p0","p2","swap","rad","invOrientedBox","i","set","transformMat4","subtract","cross","dot","edge","fex","abs","fey","fez","fromArray","cx","cy","cz","dot00","dot01","dot02","dot11","dot12","denom","Error","invDenom","u","getClosestEdgeToPoint","v0","edgeList","debug","closestPointOnTriangle","getClosestPointToPoint","minDistance","Infinity","edgeIndex","length","closestPointOnLine","distance","squaredDistance","edgeStart","edgeEnd","plane","projectedPoint","closestPoint","vec3_1","vec3_2","pln","getV1","getV2","getV3","fromCoplanarPoints","getProjectedPoint","getClosestVertexToPoint","vertices","foundIndex","closest","getMidpoint","s","tri3_0","getNormalFromVertices","getNormal","len","getStart","getEnd","setV1","setStart","setV2","setEnd","setV3","toArray","toVertices","m"],"mappings":"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"}
1
+ {"version":3,"file":"tri3.js","sources":["../../../../src/global/math/tri3.js"],"sourcesContent":["import { vec3 } from \"./vec3.js\";\nimport { mat3 } from \"./mat3.js\";\nimport { pln } from \"./pln.js\";\nimport { lne3 } from \"./lne3.js\";\nimport { pool } from \"./pool.js\";\n\n/**\n * 3d Triangle\n *\n * @typedef {Float32Array} tri3\n */\n\nexport const tri3 = {};\n\n/**\n * Allocates a pooled tri3\n * @returns {Float32Array|tri3}\n */\ntri3.alloc = function()\n{\n return pool.allocF32(9);\n};\n\n/**\n * Unallocates a pooled tri3\n * @param {tri3|Float32Array} a\n */\ntri3.unalloc = function(a)\n{\n pool.freeType(a);\n};\n\n/**\n * Gets a subarray of a tri3's first vertex\n *\n * @param {tri3} a\n * @returns {vec3}\n */\ntri3.$v1 = lne3.$start;\n\n/**\n * Gets a subarray of a tri3's second vertex\n *\n * @param {tri3} a\n * @returns {vec3}\n */\ntri3.$v2 = lne3.$end;\n\n/**\n * Gets a subarray of a tri3's third vertex\n *\n * @param {tri3} a\n * @returns {vec3}\n */\ntri3.$v3 = function(a)\n{\n return a.subarray(6, 9);\n};\n\n/**\n * Gets the area of a triangle\n *\n * @param {tri3} a\n * @returns {number}\n */\ntri3.area = function(a)\n{\n let ax = a[6] - a[3],\n ay = a[7] - a[4],\n az = a[8] - a[5],\n bx = a[0] - a[3],\n by = a[1] - a[4],\n bz = a[2] - a[5];\n // Cross product\n let x = ay * bz - az * by,\n y = az * bx - ax * bz,\n z = ax * by - ay * bx;\n // Return half length\n return Math.sqrt(x * x + y * y + z * z) * 0.5;\n};\n\n/**\n * Creates a tri3\n *\n * @returns {tri3}\n */\ntri3.create = function()\n{\n let out = new Float32Array(9);\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n return out;\n};\n\n/**\n * Clones a tri3\n *\n * @param {tri3} a\n * @returns {tri3}\n */\ntri3.clone = mat3.clone;\n\n/**\n * Checks if a tri3 contains a point\n *\n * @param {tri3} a\n * @param {vec3} point\n * @returns {boolean}\n */\ntri3.contains = (function()\n{\n let vec3_0;\n return function(a, point)\n {\n if (!vec3_0) vec3_0 = vec3.create();\n tri3.getBaryCentricCoordinates(vec3_0, a, point);\n return (vec3_0[0] >= 0) && (vec3_0[1] >= 0) && ((vec3_0[0] + vec3_0[1]) <= 1);\n };\n})();\n\n/**\n * Copies a tri3\n *\n * @param {tri3} a\n * @param {tri3} b\n * @returns {tri3} a\n */\ntri3.copy = mat3.copy;\n\n/**\n * Sets a tri3 from vertices\n *\n * @param {tri3} out\n * @param {vec3} v1\n * @param {vec3} v2\n * @param {vec3} v3\n * @returns {tri3} out\n */\ntri3.fromVertices = function(out, v1, v2, v3)\n{\n out[0] = v1[0];\n out[1] = v1[1];\n out[2] = v1[2];\n out[3] = v2[0];\n out[4] = v2[1];\n out[5] = v2[2];\n out[6] = v3[0];\n out[7] = v3[1];\n out[8] = v3[2];\n return out;\n};\n\n/**\n * Sets a tri3 from an array at an option offset\n *\n * @param {tri3} out\n * @param {Array} arr\n * @param {number} [offset=0]\n * @returns {tri3} out\n */\n/**\n * Whether a triangle overlaps an axis-aligned box.\n *\n * A cheap reject only: it tests the box's three slabs and answers true whenever\n * no slab separates the triangle, so a triangle that straddles a corner without\n * touching the box still passes. Carbon uses it as the broad phase in front of\n * the oriented-box test (BoundingBox.cpp:569-588) and so should any caller.\n *\n * @param {tri3} a\n * @param {vec3} min\n * @param {vec3} max\n * @returns {boolean} false only when a slab separates the triangle\n */\ntri3.intersectsBounds = function(a, min, max)\n{\n for (let axis = 0; axis < 3; axis++)\n {\n const lo = min[axis];\n const hi = max[axis];\n\n if (a[axis] < lo && a[axis + 3] < lo && a[axis + 6] < lo) return false;\n if (a[axis] > hi && a[axis + 3] > hi && a[axis + 6] > hi) return false;\n }\n\n return true;\n};\n\n/**\n * Whether a triangle overlaps an oriented box, by separating-axis test.\n *\n * The box is given as the INVERSE of the transform that maps the unit box\n * (-1,-1,-1)..(1,1,1) onto it, so the triangle is moved into unit-box space and\n * tested there - which is why no box axes appear below.\n *\n * Ported from Carbon (BoundingBox.cpp:626-732) including the vertex pairs its\n * edge tests use. Those pairs are NOT the symmetric set a textbook\n * separating-axis test would pick, and two of them look like slips; they are\n * reproduced exactly because this decides which hull triangles a decal covers,\n * and a \"corrected\" test would silently disagree with the client about where a\n * decal reaches.\n *\n * @param {tri3} a\n * @param {mat4} invOrientedBox inverse of the box transform\n * @returns {boolean} true when no separating axis was found\n */\ntri3.intersectsOrientedBox = (function()\n{\n const v = [ vec3.create(), vec3.create(), vec3.create() ];\n const e = [ vec3.create(), vec3.create(), vec3.create() ];\n const normal = vec3.create();\n const vmin = vec3.create();\n const vmax = vec3.create();\n\n // Nine edge-cross axes, with Carbon's own vertex pairs. Built once: the\n // vectors are stable across calls, and a decal tests every triangle of a\n // hull against this.\n //\n // Each row is read positionally in the loop below, which is what the old\n // destructuring form used to name:\n //\n // [ edge, ax, bx, ay, by, az, bz ]\n //\n // one vertex pair per box axis: x at [1],[2], y at [3],[4], z at [5],[6].\n const edgeAxes = [\n [ e[0], v[0], v[2], v[0], v[2], v[1], v[2] ],\n [ e[1], v[0], v[2], v[0], v[2], v[0], v[1] ],\n [ e[2], v[0], v[1], v[0], v[1], v[1], v[2] ]\n ];\n\n // A separating plane at the cross product of a triangle edge and a unit-box\n // axis. The box half-extent is 1 on every axis, so the radius is just\n // |a| + |b| (Carbon's AxisTest, BoundingBox.cpp:601-611).\n function axisTest(ca, cb, fa, fb, p, q, axis0, axis1)\n {\n let p0 = ca * p[axis0] + cb * p[axis1];\n let p2 = ca * q[axis0] + cb * q[axis1];\n\n if (p2 < p0)\n {\n const swap = p0;\n p0 = p2;\n p2 = swap;\n }\n\n const rad = fa + fb;\n\n return !(p0 > rad || p2 < -rad);\n }\n\n return function(a, invOrientedBox)\n {\n for (let i = 0; i < 3; i++)\n {\n vec3.set(v[i], a[i * 3], a[i * 3 + 1], a[i * 3 + 2]);\n vec3.transformMat4(v[i], v[i], invOrientedBox);\n }\n\n // The unit box's own six faces.\n for (let axis = 0; axis < 3; axis++)\n {\n if (v[0][axis] < -1 && v[1][axis] < -1 && v[2][axis] < -1) return false;\n if (v[0][axis] > 1 && v[1][axis] > 1 && v[2][axis] > 1) return false;\n }\n\n vec3.subtract(e[0], v[1], v[0]);\n vec3.subtract(e[1], v[2], v[1]);\n vec3.subtract(e[2], v[0], v[2]);\n\n // The triangle's own plane.\n vec3.cross(normal, e[0], e[1]);\n\n for (let i = 0; i < 3; i++)\n {\n if (normal[i] > 0)\n {\n vmin[i] = -1 - v[0][i];\n vmax[i] = 1 - v[0][i];\n }\n else\n {\n vmin[i] = 1 - v[0][i];\n vmax[i] = -1 - v[0][i];\n }\n }\n\n if (vec3.dot(vmin, normal) > 0) return false;\n if (vec3.dot(vmax, normal) < 0) return false;\n\n // An indexed loop, NOT `for...of` with destructuring. A decal runs this\n // over every triangle of a hull, so this is the hottest loop in the file,\n // and that form costs an array iterator plus a seven-way destructure on\n // every call. The rows are read positionally below for the same reason.\n for (let axis = 0; axis < edgeAxes.length; axis++)\n {\n const row = edgeAxes[axis];\n const edge = row[0];\n const fex = Math.abs(edge[0]);\n const fey = Math.abs(edge[1]);\n const fez = Math.abs(edge[2]);\n\n if (!axisTest(edge[2], -edge[1], fez, fey, row[1], row[2], 1, 2)) return false;\n if (!axisTest(-edge[2], edge[0], fez, fex, row[3], row[4], 0, 2)) return false;\n if (!axisTest(edge[1], -edge[0], fey, fex, row[5], row[6], 0, 1)) return false;\n }\n\n return true;\n };\n})();\n\ntri3.fromArray = mat3.fromArray;\n\n/**\n * Gets bary centric coordinates\n *\n * @author three.js (converted)\n * @param {vec3} out\n * @param {tri3} a\n * @param {vec3} point\n * @returns {tri3} out\n */\ntri3.getBaryCentricCoordinates = function(out, a, point)\n{\n let ax = a[6] - a[0],\n ay = a[7] - a[1],\n az = a[8] - a[2],\n\n bx = a[3] - a[0],\n by = a[4] - a[1],\n bz = a[5] - a[2],\n\n cx = point[0] - a[0],\n cy = point[1] - a[1],\n cz = point[2] - a[2];\n\n let dot00 = ax * ax + ay * ay + az * az,\n dot01 = ax * bx + ay * by + az * bz,\n dot02 = ax * cx + ay * cy + az * cz,\n dot11 = bx * bx + by * by + bz * bz,\n dot12 = bx * cx + by * cy + bz * cz;\n\n let denom = (dot00 * dot11 - dot01 * dot01);\n\n if (denom === 0)\n {\n out[0] = -2;\n out[1] = -1;\n out[2] = -1;\n throw new Error(\"Denominator error\");\n }\n else\n {\n let invDenom = 1 / denom;\n let u = (dot11 * dot02 - dot01 * dot12) * invDenom;\n let v = (dot00 * dot12 - dot01 * dot02) * invDenom;\n out[0] = 1 - u - v;\n out[1] = v;\n out[2] = u;\n }\n return out;\n};\n\n/**\n *\n * @author three.js (converted)\n * @param {lne3} out\n * @param {tri3} a\n * @param {vec3} point\n * @returns {*}\n */\ntri3.getClosestEdgeToPoint = (function()\n{\n let v0, v1, edgeList;\n\n return function getClosestEdgeToPoint(out, a, point, debug)\n {\n if (!v0)\n {\n v0 = vec3.create();\n v1 = vec3.create();\n edgeList = [ lne3.create(), lne3.create(), lne3.create() ];\n }\n\n // Get the closest point on the triangle to the supplied point\n let closestPointOnTriangle = tri3.getClosestPointToPoint(v0, a, point);\n\n // Convert the triangle's vertices to edges\n lne3.set(edgeList[0], a[0], a[1], a[2], a[3], a[4], a[5]); // vert a - vert b\n lne3.set(edgeList[1], a[3], a[4], a[5], a[6], a[7], a[8]); // vert b - vert c\n lne3.set(edgeList[2], a[6], a[7], a[8], a[0], a[1], a[2]); // vert c - vert a\n\n let minDistance = Infinity,\n edgeIndex;\n\n for (let i = 0; i < edgeList.length; i++)\n {\n // Get the closest point on the triangles edge to the closest point on the triangle to the supplied point\n let closestPointOnLine = lne3.getClosestPointToPoint(v1, edgeList[i], closestPointOnTriangle, true);\n let distance = vec3.squaredDistance(closestPointOnLine, closestPointOnTriangle);\n if (distance < minDistance)\n {\n minDistance = distance;\n out[0] = edgeList[i][0];\n out[1] = edgeList[i][1];\n out[2] = edgeList[i][2];\n out[3] = edgeList[i][3];\n out[4] = edgeList[i][4];\n out[5] = edgeList[i][5];\n edgeIndex = i;\n }\n }\n\n // Temporary\n if (debug)\n {\n switch(edgeIndex)\n {\n case 0:\n debug.edgeStart = 0;\n debug.edgeEnd = 1;\n break;\n\n case 1:\n debug.edgeStart = 1;\n debug.edgeEnd = 2;\n break;\n\n default:\n debug.edgeStart = 2;\n debug.edgeEnd = 0;\n break;\n }\n }\n\n return out;\n };\n})();\n\n/**\n * Gets the closest point on a triangle to another point\n *\n * @author three.js (converted)\n * @param {vec3} out - receiving vec3\n * @param {vec3} a - tri3 to operate on\n * @param {vec3} point - the point\n * @returns {vec3} vecOut - receiving vec3\n */\ntri3.getClosestPointToPoint = (function()\n{\n let plane, edgeList, projectedPoint, closestPoint, vec3_0, vec3_1, vec3_2;\n\n return function getClosestPointToPoint(out, a, point)\n {\n if (!plane)\n {\n plane = pln.create();\n edgeList = [ lne3.create(), lne3.create(), lne3.create() ];\n projectedPoint = vec3.create();\n closestPoint = vec3.create();\n vec3_0 = vec3.create();\n vec3_1 = vec3.create();\n vec3_2 = vec3.create();\n }\n\n // Replace with subarray tri3.v1 .v2 .v3 ?\n tri3.getV1(vec3_0, a);\n tri3.getV2(vec3_1, a);\n tri3.getV3(vec3_2, a);\n\n // project the point onto the plane of the triangle\n pln.fromCoplanarPoints(plane, vec3_0, vec3_1, vec3_2);\n pln.getProjectedPoint(projectedPoint, plane, point);\n\n // check if the projection lies within the triangle\n if (tri3.contains(a, projectedPoint) === true)\n {\n out[0] = projectedPoint[0];\n out[1] = projectedPoint[1];\n out[2] = projectedPoint[2];\n }\n // if not, the point falls outside the triangle.\n // the result is the closest point to the triangle's edges or vertices\n else\n {\n lne3.set(edgeList[0], a[0], a[1], a[2], a[3], a[4], a[5]);\n lne3.set(edgeList[1], a[3], a[4], a[5], a[6], a[7], a[8]);\n lne3.set(edgeList[2], a[6], a[7], a[8], a[0], a[1], a[2]);\n\n let minDistance = Infinity;\n for (let i = 0; i < edgeList.length; i++)\n {\n lne3.getClosestPointToPoint(closestPoint, edgeList[i], projectedPoint, true);\n let distance = vec3.squaredDistance(projectedPoint, closestPoint);\n if (distance < minDistance)\n {\n minDistance = distance;\n out[0] = closestPoint[0];\n out[1] = closestPoint[1];\n out[2] = closestPoint[2];\n }\n }\n }\n return out;\n };\n})();\n\n/**\n * Gets the closest vertex to a given point\n *\n * @param {vec3} out\n * @param {tri3} a\n * @param {vec3} point\n * @returns {vec3} out\n */\ntri3.getClosestVertexToPoint = (function()\n{\n let vec3_0, vec3_1, vec3_2;\n\n return function(out, a, point, debug)\n {\n if (!vec3_0)\n {\n vec3_0 = vec3.create();\n vec3_1 = vec3.create();\n vec3_2 = vec3.create();\n }\n\n // Get the closest point on the triangle to the supplied point\n tri3.getClosestPointToPoint(out, a, point);\n\n let minDistance = Infinity,\n distance,\n x, y, z,\n vertices = [\n tri3.getV1(vec3_0, a),\n tri3.getV2(vec3_1, a),\n tri3.getV3(vec3_2, a)\n ];\n\n let foundIndex;\n // Find the closest triangle vertex\n for (let i = 0; i < vertices.length; i++)\n {\n distance = vec3.squaredDistance(vertices[i], out);\n if (distance < minDistance)\n {\n minDistance = distance;\n x = vertices[i][0];\n y = vertices[i][1];\n z = vertices[i][2];\n foundIndex = i;\n }\n }\n\n if (debug) debug.closest = foundIndex;\n\n out[0] = x;\n out[1] = y;\n out[2] = z;\n return out;\n };\n})();\n\n/**\n * Sets a vec3 as the midpoint of a triangle\n *\n * @param {vec3} out - receiving vec3\n * @param {tri3} a - tri3 to get the midpoint of -\n * @returns {vec3} out - receiving vec3\n */\ntri3.getMidpoint = function(out, a)\n{\n let s = 1 / 3;\n out[0] = (a[0] + a[3] + a[6]) * s;\n out[1] = (a[1] + a[4] + a[7]) * s;\n out[2] = (a[2] + a[5] + a[8]) * s;\n return out;\n};\n\nlet tri3_0 = null;\n\n/**\n * Gets normal vertices\n *\n * @param {vec3} out\n * @param {vec3} v1\n * @param {vec3} v2\n * @param {vec3} v3\n * @return {vec3} out\n */\ntri3.getNormalFromVertices = function(out, v1, v2, v3)\n{\n if (!tri3_0) tri3_0 = tri3.create();\n tri3.fromVertices(tri3_0, v1, v2, v3);\n return tri3.getNormal(out, tri3_0);\n};\n\n/**\n * Gets a triangle's normal\n *\n * @param {vec3} out\n * @param {tri3} a\n * @returns {vec3} out\n */\ntri3.getNormal = function(out, a)\n{\n let ax = a[6] - a[3],\n ay = a[7] - a[4],\n az = a[8] - a[5],\n bx = a[0] - a[3],\n by = a[1] - a[4],\n bz = a[2] - a[5];\n\n // Get cross product\n let x = ay * bz - az * by,\n y = az * bx - ax * bz,\n z = ax * by - ay * bx;\n\n // Normalize\n let len = x * x + y * y + z * z;\n if (len > 0)\n {\n len = 1 / Math.sqrt(len);\n out[0] = x * len;\n out[1] = y * len;\n out[2] = z * len;\n }\n else\n {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n throw new Error(\"Normalization error\");\n }\n return out;\n};\n\n/**\n * Sets a vec3 with the tri3's first vert\n *\n * @param {vec3} out - receiving vec3\n * @param {tri3} a - source tri3\n * @returns {vec3} [out] - receiving vec3\n */\ntri3.getV1 = lne3.getStart;\n\n/**\n * Sets a vec3 with the tri3's second vert\n *\n * @param {vec3} out - receiving vec3\n * @param {tri3} a - source tri3\n * @returns {vec3} [out] - receiving vec3\n */\ntri3.getV2 = lne3.getEnd;\n\n/**\n * Sets a vec3 with the tri3's third vert\n *\n * @param {vec3} out - receiving vec3\n * @param {tri3} v - source tri3\n * @returns {vec3} [out] - receiving vec3\n */\ntri3.getV3 = function(out, v)\n{\n out[0] = v[6];\n out[1] = v[7];\n out[2] = v[8];\n return out;\n};\n\n/**\n * Sets the first position of a triangle\n * @param {tri3} out\n * @param {vec3} v\n * @returns {tri3} out\n */\ntri3.setV1 = lne3.setStart;\n\n/**\n * Sets the second position of a triangle\n * @param {tri3} out\n * @param {vec3} v\n * @returns {tri3} out\n */\ntri3.setV2 = lne3.setEnd;\n\n/**\n * Sets the second position of a triangle\n * @param {tri3} out\n * @param {vec3} v\n * @returns {tri3} out\n */\ntri3.setV3 = function(out, v)\n{\n out[6] = v[0];\n out[7] = v[1];\n out[8] = v[2];\n return out;\n};\n\n/**\n * Sets an array at an optional offset\n *\n * @param {mat3} a\n * @param {Array} arr\n * @param {number} [index=0]\n * @returns {mat3} a\n */\ntri3.toArray = mat3.toArray;\n\n/**\n * Extracts the vertices of a tri3\n *\n * @param {tri3} a\n * @param {vec3} v1\n * @param {vec3} v2\n * @param {vec3} v3\n */\ntri3.toVertices = function(a, v1, v2, v3)\n{\n v1[0] = a[0];\n v1[1] = a[1];\n v1[2] = a[2];\n v2[0] = a[3];\n v2[1] = a[4];\n v2[2] = a[5];\n v3[0] = a[6];\n v3[1] = a[7];\n v3[2] = a[8];\n return a;\n};\n\nlet vec3_0, vec3_1, vec3_2;\n\n/**\n * Transforms a tri3 by a mat4\n * TODO: Optimize\n * @param {tri3} out\n * @param {tri3} a\n * @param {mat4} m\n * @return {tri3}\n */\ntri3.transformMat4 = function(out, a, m)\n{\n if (!vec3_0)\n {\n vec3_0 = vec3.create();\n vec3_1 = vec3.create();\n vec3_2 = vec3.create();\n }\n\n tri3.getV1(vec3_0, a);\n tri3.getV2(vec3_1, a);\n tri3.getV3(vec3_2, a);\n\n vec3.transformMat4(vec3_0, vec3_0, m);\n vec3.transformMat4(vec3_1, vec3_1, m);\n vec3.transformMat4(vec3_2, vec3_2, m);\n\n return tri3.fromVertices(out, vec3_0, vec3_1, vec3_2);\n};\n\nexport const {\n alloc,\n unalloc,\n $v1,\n $v2,\n $v3,\n area,\n create,\n clone,\n contains,\n copy,\n fromVertices,\n fromArray,\n getBaryCentricCoordinates,\n getClosestEdgeToPoint,\n getClosestPointToPoint,\n getClosestVertexToPoint,\n getMidpoint,\n getNormalFromVertices,\n getNormal,\n getV1,\n intersectsBounds,\n intersectsOrientedBox,\n getV2,\n getV3,\n setV1,\n setV2,\n setV3,\n toArray,\n toVertices,\n transformMat4\n} = tri3;\n\n"],"names":["tri3","alloc","pool","allocF32","unalloc","a","freeType","$v1","lne3","$start","$v2","$end","$v3","subarray","area","ax","ay","az","bx","by","bz","x","y","z","Math","sqrt","create","out","Float32Array","clone","mat3","contains","vec3_0","point","vec3","getBaryCentricCoordinates","copy","fromVertices","v1","v2","v3","intersectsBounds","min","max","axis","lo","hi","intersectsOrientedBox","v","e","normal","vmin","vmax","edgeAxes","axisTest","ca","cb","fa","fb","p","q","axis0","axis1","p0","p2","swap","rad","invOrientedBox","i","set","transformMat4","subtract","cross","dot","length","row","edge","fex","abs","fey","fez","fromArray","cx","cy","cz","dot00","dot01","dot02","dot11","dot12","denom","Error","invDenom","u","getClosestEdgeToPoint","v0","edgeList","debug","closestPointOnTriangle","getClosestPointToPoint","minDistance","Infinity","edgeIndex","closestPointOnLine","distance","squaredDistance","edgeStart","edgeEnd","plane","projectedPoint","closestPoint","vec3_1","vec3_2","pln","getV1","getV2","getV3","fromCoplanarPoints","getProjectedPoint","getClosestVertexToPoint","vertices","foundIndex","closest","getMidpoint","s","tri3_0","getNormalFromVertices","getNormal","len","getStart","getEnd","setV1","setStart","setV2","setEnd","setV3","toArray","toVertices","m"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { defaultValueForCarbonField, coerceCarbonMathInto, coerceCarbonTypedArrayInto, normalizeCarbonValue, exportCarbonValue } from './types/carbonTypes.js';
1
+ import { defaultValueForCarbonField, coerceCarbonMathInto, coerceCarbonTypedArrayInto, cloneCarbonValue, normalizeCarbonValue, exportCarbonValue } from './types/carbonTypes.js';
2
2
  import { composeNotifyDecorator } from '../compose/notify.js';
3
3
  import { cast, composeInterfaceDecorator } from '../compose/interface.js';
4
4
  import { createValuesTransport, composeValuesDecorator } from '../compose/values.js';
@@ -372,7 +372,18 @@ class CjsSchema {
372
372
  static #statelessTransport = createValuesTransport({
373
373
  GetFields: Constructor => getEffectiveFields(Constructor),
374
374
  Export: (value, field, options) => exportCarbonValue(value, field.type),
375
- Import: (value, field) => normalizeCarbonValue(value, field.type),
375
+ // A live instance of a registered class is ALIASED, never copied - the
376
+ // rule the model path applies through its brand (CjsModel.js, the
377
+ // isModelInstance early return). A class off the base carries no brand,
378
+ // so without this a reference field would receive a plain-object copy
379
+ // and shared identity across the graph would silently split.
380
+ Import: (value, field) => {
381
+ if (isLiveSchemaInstance(value)) return value;
382
+ if (Array.isArray(value) && value.some(isLiveSchemaInstance)) {
383
+ return value.map(item => isLiveSchemaInstance(item) ? item : cloneCarbonValue(item));
384
+ }
385
+ return normalizeCarbonValue(value, field.type);
386
+ },
376
387
  CoerceInto: (current, incoming, field) => coerceCarbonMathInto(current, incoming, field.type) ?? coerceCarbonTypedArrayInto(current, incoming, field.type),
377
388
  IsEquivalent: (a, b) => a === b
378
389
  });
@@ -1213,6 +1224,13 @@ function defineHiddenInheritedFields(Constructor, fieldNames) {
1213
1224
  schema.hiddenInherited.add(fieldName);
1214
1225
  }
1215
1226
  }
1227
+
1228
+ // A live instance of a registered class, from this copy or a sibling one -
1229
+ // getClassName reads the cross-copy stamp. Plain bags, arrays, typed arrays
1230
+ // and the reader's `{ _sourceClassName }` carriers all answer false.
1231
+ function isLiveSchemaInstance(value) {
1232
+ return !!value && typeof value === "object" && !Array.isArray(value) && !ArrayBuffer.isView(value) && CjsSchema.getClassName(value.constructor) !== null;
1233
+ }
1216
1234
  function getEffectiveFields(Constructor) {
1217
1235
  const ordered = [];
1218
1236
  const byName = new Map();