@carbonenginejs/runtime-trinity 0.6.0 → 0.8.0

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 (1091) hide show
  1. package/README.md +35 -243
  2. package/dist/controllers/CjsControllerExpressionProgram.js +157 -0
  3. package/dist/controllers/CjsControllerExpressionProgram.js.map +1 -1
  4. package/dist/controllers/ITr2ControllerAction.js +57 -0
  5. package/dist/controllers/ITr2ControllerAction.js.map +1 -1
  6. package/dist/controllers/Tr2ActionAnimateCurveSet.js +10 -0
  7. package/dist/controllers/Tr2ActionAnimateCurveSet.js.map +1 -1
  8. package/dist/controllers/Tr2ActionAnimateValue.js +26 -0
  9. package/dist/controllers/Tr2ActionAnimateValue.js.map +1 -1
  10. package/dist/controllers/Tr2ActionBindRTPC.js +11 -0
  11. package/dist/controllers/Tr2ActionBindRTPC.js.map +1 -1
  12. package/dist/controllers/Tr2ActionCallback.js +5 -0
  13. package/dist/controllers/Tr2ActionCallback.js.map +1 -1
  14. package/dist/controllers/Tr2ActionChildEffect.js +63 -0
  15. package/dist/controllers/Tr2ActionChildEffect.js.map +1 -1
  16. package/dist/controllers/Tr2ActionOverlay.js +68 -0
  17. package/dist/controllers/Tr2ActionOverlay.js.map +1 -1
  18. package/dist/controllers/Tr2ActionPlayCurveSet.js +16 -0
  19. package/dist/controllers/Tr2ActionPlayCurveSet.js.map +1 -1
  20. package/dist/controllers/Tr2ActionPlayMeshAnimation.js +29 -0
  21. package/dist/controllers/Tr2ActionPlayMeshAnimation.js.map +1 -1
  22. package/dist/controllers/Tr2ActionPlaySound.js +11 -0
  23. package/dist/controllers/Tr2ActionPlaySound.js.map +1 -1
  24. package/dist/controllers/Tr2ActionPython.js +11 -0
  25. package/dist/controllers/Tr2ActionPython.js.map +1 -1
  26. package/dist/controllers/Tr2ActionResetClipSphereCenter.js +17 -0
  27. package/dist/controllers/Tr2ActionResetClipSphereCenter.js.map +1 -1
  28. package/dist/controllers/Tr2ActionSetAttenuationScaling.js +5 -0
  29. package/dist/controllers/Tr2ActionSetAttenuationScaling.js.map +1 -1
  30. package/dist/controllers/Tr2ActionSetAudioEmitterPrefix.js +5 -0
  31. package/dist/controllers/Tr2ActionSetAudioEmitterPrefix.js.map +1 -1
  32. package/dist/controllers/Tr2ActionSetAudioSwitch.js +5 -0
  33. package/dist/controllers/Tr2ActionSetAudioSwitch.js.map +1 -1
  34. package/dist/controllers/Tr2ActionSetExternalControllerVariable.js +23 -0
  35. package/dist/controllers/Tr2ActionSetExternalControllerVariable.js.map +1 -1
  36. package/dist/controllers/Tr2ActionSetShaderOption.js +5 -0
  37. package/dist/controllers/Tr2ActionSetShaderOption.js.map +1 -1
  38. package/dist/controllers/Tr2ActionSetValue.js +35 -0
  39. package/dist/controllers/Tr2ActionSetValue.js.map +1 -1
  40. package/dist/controllers/Tr2ActionSpawnParticles.js +10 -0
  41. package/dist/controllers/Tr2ActionSpawnParticles.js.map +1 -1
  42. package/dist/controllers/Tr2BindingPoint.js +67 -0
  43. package/dist/controllers/Tr2BindingPoint.js.map +1 -1
  44. package/dist/controllers/Tr2Controller.js +37 -0
  45. package/dist/controllers/Tr2Controller.js.map +1 -1
  46. package/dist/controllers/Tr2ControllerEventHandler.js +10 -0
  47. package/dist/controllers/Tr2ControllerEventHandler.js.map +1 -1
  48. package/dist/controllers/Tr2ControllerExpression.js +17 -0
  49. package/dist/controllers/Tr2ControllerExpression.js.map +1 -1
  50. package/dist/controllers/Tr2ControllerFloatVariable.js +6 -0
  51. package/dist/controllers/Tr2ControllerFloatVariable.js.map +1 -1
  52. package/dist/controllers/Tr2ControllerReference.js +11 -0
  53. package/dist/controllers/Tr2ControllerReference.js.map +1 -1
  54. package/dist/controllers/Tr2StateMachine.js +17 -0
  55. package/dist/controllers/Tr2StateMachine.js.map +1 -1
  56. package/dist/controllers/Tr2StateMachineState.js +47 -0
  57. package/dist/controllers/Tr2StateMachineState.js.map +1 -1
  58. package/dist/controllers/Tr2StateMachineTransition.js +29 -0
  59. package/dist/controllers/Tr2StateMachineTransition.js.map +1 -1
  60. package/dist/controllers/Tr2SyncToAnimation.js +5 -0
  61. package/dist/controllers/Tr2SyncToAnimation.js.map +1 -1
  62. package/dist/controllers/Tr2TimelineController.js +61 -0
  63. package/dist/controllers/Tr2TimelineController.js.map +1 -1
  64. package/dist/controllers/contracts.js +24 -1
  65. package/dist/controllers/contracts.js.map +1 -1
  66. package/dist/controllers/index.js +1 -1
  67. package/dist/curves/CjsGrannyCurves.js +150 -0
  68. package/dist/curves/CjsGrannyCurves.js.map +1 -1
  69. package/dist/curves/Tr2BoneMatrixCurve.js +23 -0
  70. package/dist/curves/Tr2BoneMatrixCurve.js.map +1 -1
  71. package/dist/curves/Tr2CameraFollowCurveKey.js +6 -0
  72. package/dist/curves/Tr2CameraFollowCurveKey.js.map +1 -1
  73. package/dist/curves/Tr2CurveColor.js +6 -0
  74. package/dist/curves/Tr2CurveColor.js.map +1 -1
  75. package/dist/curves/Tr2CurveColorMixer.js +6 -0
  76. package/dist/curves/Tr2CurveColorMixer.js.map +1 -1
  77. package/dist/curves/Tr2CurveCombiner.js +5 -0
  78. package/dist/curves/Tr2CurveCombiner.js.map +1 -1
  79. package/dist/curves/Tr2CurveConstant.js +16 -0
  80. package/dist/curves/Tr2CurveConstant.js.map +1 -1
  81. package/dist/curves/Tr2CurveEulerRotation.js +5 -0
  82. package/dist/curves/Tr2CurveEulerRotation.js.map +1 -1
  83. package/dist/curves/Tr2CurveEulerRotationExpression.js +66 -0
  84. package/dist/curves/Tr2CurveEulerRotationExpression.js.map +1 -1
  85. package/dist/curves/Tr2CurveQuaternion.js +5 -0
  86. package/dist/curves/Tr2CurveQuaternion.js.map +1 -1
  87. package/dist/curves/Tr2CurveQuaternionKey.js +5 -0
  88. package/dist/curves/Tr2CurveQuaternionKey.js.map +1 -1
  89. package/dist/curves/Tr2CurveRandomAxisRotation.js +28 -0
  90. package/dist/curves/Tr2CurveRandomAxisRotation.js.map +1 -1
  91. package/dist/curves/Tr2CurveScalar.js +35 -0
  92. package/dist/curves/Tr2CurveScalar.js.map +1 -1
  93. package/dist/curves/Tr2CurveScalarExpression.js +11 -0
  94. package/dist/curves/Tr2CurveScalarExpression.js.map +1 -1
  95. package/dist/curves/Tr2CurveScalarKey.js +6 -0
  96. package/dist/curves/Tr2CurveScalarKey.js.map +1 -1
  97. package/dist/curves/Tr2CurveSetRange.js +5 -0
  98. package/dist/curves/Tr2CurveSetRange.js.map +1 -1
  99. package/dist/curves/Tr2CurveVector2.js +5 -0
  100. package/dist/curves/Tr2CurveVector2.js.map +1 -1
  101. package/dist/curves/Tr2CurveVector3.js +5 -0
  102. package/dist/curves/Tr2CurveVector3.js.map +1 -1
  103. package/dist/curves/Tr2CurveVector3Expression.js +71 -0
  104. package/dist/curves/Tr2CurveVector3Expression.js.map +1 -1
  105. package/dist/curves/Tr2CurveVector3Lerp.js +6 -0
  106. package/dist/curves/Tr2CurveVector3Lerp.js.map +1 -1
  107. package/dist/curves/Tr2DistanceTracker.js +6 -0
  108. package/dist/curves/Tr2DistanceTracker.js.map +1 -1
  109. package/dist/curves/Tr2FollowCurve.js +6 -0
  110. package/dist/curves/Tr2FollowCurve.js.map +1 -1
  111. package/dist/curves/Tr2GrannyEventTrack.js +5 -0
  112. package/dist/curves/Tr2GrannyEventTrack.js.map +1 -1
  113. package/dist/curves/Tr2GrannyTrack.js +6 -0
  114. package/dist/curves/Tr2GrannyTrack.js.map +1 -1
  115. package/dist/curves/Tr2GrannyTransformTrack.js +6 -0
  116. package/dist/curves/Tr2GrannyTransformTrack.js.map +1 -1
  117. package/dist/curves/Tr2GrannyVectorTrack.js +5 -0
  118. package/dist/curves/Tr2GrannyVectorTrack.js.map +1 -1
  119. package/dist/curves/Tr2MatrixKey.js +5 -0
  120. package/dist/curves/Tr2MatrixKey.js.map +1 -1
  121. package/dist/curves/Tr2ObjectFollowCurveKey.js +6 -0
  122. package/dist/curves/Tr2ObjectFollowCurveKey.js.map +1 -1
  123. package/dist/curves/Tr2QuaternionLerpCurve.js +6 -0
  124. package/dist/curves/Tr2QuaternionLerpCurve.js.map +1 -1
  125. package/dist/curves/Tr2RotationAdapter.js +6 -0
  126. package/dist/curves/Tr2RotationAdapter.js.map +1 -1
  127. package/dist/curves/Tr2ScalarExprKey.js +18 -0
  128. package/dist/curves/Tr2ScalarExprKey.js.map +1 -1
  129. package/dist/curves/Tr2ScalarExprKeyCurve.js +23 -0
  130. package/dist/curves/Tr2ScalarExprKeyCurve.js.map +1 -1
  131. package/dist/curves/Tr2ScalarFader.js +11 -0
  132. package/dist/curves/Tr2ScalarFader.js.map +1 -1
  133. package/dist/curves/Tr2TranslationAdapter.js +6 -0
  134. package/dist/curves/Tr2TranslationAdapter.js.map +1 -1
  135. package/dist/curves/TriColorSequencer.js +6 -0
  136. package/dist/curves/TriColorSequencer.js.map +1 -1
  137. package/dist/curves/TriCurveSet.js +23 -0
  138. package/dist/curves/TriCurveSet.js.map +1 -1
  139. package/dist/curves/TriEventCurve.js +23 -0
  140. package/dist/curves/TriEventCurve.js.map +1 -1
  141. package/dist/curves/TriEventKey.js +5 -0
  142. package/dist/curves/TriEventKey.js.map +1 -1
  143. package/dist/curves/TriPerlinCurve.js +30 -0
  144. package/dist/curves/TriPerlinCurve.js.map +1 -1
  145. package/dist/curves/TriVectorSequencer.js +6 -0
  146. package/dist/curves/TriVectorSequencer.js.map +1 -1
  147. package/dist/eve/AudioGameObject.js +89 -1
  148. package/dist/eve/AudioGameObject.js.map +1 -1
  149. package/dist/eve/BackAndForthData.js +7 -0
  150. package/dist/eve/BackAndForthData.js.map +1 -1
  151. package/dist/eve/CjsDistributionRandom.js +6 -0
  152. package/dist/eve/CjsDistributionRandom.js.map +1 -1
  153. package/dist/eve/CjsEveThrottleableState.js +11 -0
  154. package/dist/eve/CjsEveThrottleableState.js.map +1 -1
  155. package/dist/eve/EveChildUpdateParams.js +7 -0
  156. package/dist/eve/EveChildUpdateParams.js.map +1 -1
  157. package/dist/eve/EveComponentTypes.js.map +1 -1
  158. package/dist/eve/EveCustomMask.js +58 -27
  159. package/dist/eve/EveCustomMask.js.map +1 -1
  160. package/dist/eve/EveDistanceField.js +84 -0
  161. package/dist/eve/EveDistanceField.js.map +1 -1
  162. package/dist/eve/EveEntity.js +138 -0
  163. package/dist/eve/EveEntity.js.map +1 -0
  164. package/dist/eve/EveImpactOverlay.js +61 -0
  165. package/dist/eve/EveImpactOverlay.js.map +1 -1
  166. package/dist/eve/EveLODHelper.js +17 -13
  167. package/dist/eve/EveLODHelper.js.map +1 -1
  168. package/dist/eve/EveLineData.js +2 -0
  169. package/dist/eve/EveLineData.js.map +1 -1
  170. package/dist/eve/EveThrottleable.js +11 -0
  171. package/dist/eve/EveThrottleable.js.map +1 -1
  172. package/dist/eve/FollowASplineData.js +7 -0
  173. package/dist/eve/FollowASplineData.js.map +1 -1
  174. package/dist/eve/FormationData.js +6 -0
  175. package/dist/eve/FormationData.js.map +1 -1
  176. package/dist/eve/InertiaData.js +7 -0
  177. package/dist/eve/InertiaData.js.map +1 -1
  178. package/dist/eve/PlacementDataWithIdentifier.js +7 -0
  179. package/dist/eve/PlacementDataWithIdentifier.js.map +1 -1
  180. package/dist/eve/PlayFXData.js +7 -0
  181. package/dist/eve/PlayFXData.js.map +1 -1
  182. package/dist/eve/SeekTargetData.js +7 -0
  183. package/dist/eve/SeekTargetData.js.map +1 -1
  184. package/dist/eve/{EveSpaceObjectAttachmentUtils.js → attachment/EveSpaceObjectAttachmentUtils.js} +11 -11
  185. package/dist/eve/attachment/EveSpaceObjectAttachmentUtils.js.map +1 -0
  186. package/dist/eve/attachment/banner/EveBannerItem.js +70 -0
  187. package/dist/eve/attachment/banner/EveBannerItem.js.map +1 -0
  188. package/dist/eve/{EveBannerLight.js → attachment/banner/EveBannerLight.js} +13 -2
  189. package/dist/eve/attachment/banner/EveBannerLight.js.map +1 -0
  190. package/dist/eve/attachment/banner/EveBannerSet.js +537 -0
  191. package/dist/eve/attachment/banner/EveBannerSet.js.map +1 -0
  192. package/dist/eve/{EveBoosterSet2.js → attachment/booster/EveBoosterSet2.js} +204 -35
  193. package/dist/eve/attachment/booster/EveBoosterSet2.js.map +1 -0
  194. package/dist/eve/{EveBoosterSet2Renderable.js → attachment/booster/EveBoosterSet2Renderable.js} +205 -12
  195. package/dist/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -0
  196. package/dist/eve/{EveTrailsSet.js → attachment/booster/EveTrailsSet.js} +49 -1
  197. package/dist/eve/attachment/booster/EveTrailsSet.js.map +1 -0
  198. package/dist/eve/attachment/decal/EveSpaceObjectDecal.js +512 -0
  199. package/dist/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -0
  200. package/dist/eve/{EveHazeSet.js → attachment/haze/EveHazeSet.js} +65 -6
  201. package/dist/eve/attachment/haze/EveHazeSet.js.map +1 -0
  202. package/dist/eve/attachment/haze/EveHazeSetItem.js +64 -0
  203. package/dist/eve/attachment/haze/EveHazeSetItem.js.map +1 -0
  204. package/dist/eve/{EveHazeSetLight.js → attachment/haze/EveHazeSetLight.js} +13 -2
  205. package/dist/eve/attachment/haze/EveHazeSetLight.js.map +1 -0
  206. package/dist/eve/attachment/itemSetBounds.js +131 -0
  207. package/dist/eve/attachment/itemSetBounds.js.map +1 -0
  208. package/dist/eve/{EvePlaneLight.js → attachment/plane/EvePlaneLight.js} +14 -2
  209. package/dist/eve/attachment/plane/EvePlaneLight.js.map +1 -0
  210. package/dist/eve/{EvePlaneSet.js → attachment/plane/EvePlaneSet.js} +119 -7
  211. package/dist/eve/attachment/plane/EvePlaneSet.js.map +1 -0
  212. package/dist/eve/attachment/plane/EvePlaneSetItem.js +72 -0
  213. package/dist/eve/attachment/plane/EvePlaneSetItem.js.map +1 -0
  214. package/dist/eve/{EveSpotlightLight.js → attachment/spotlight/EveSpotlightLight.js} +13 -2
  215. package/dist/eve/attachment/spotlight/EveSpotlightLight.js.map +1 -0
  216. package/dist/eve/{EveSpotlightSet.js → attachment/spotlight/EveSpotlightSet.js} +86 -6
  217. package/dist/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -0
  218. package/dist/eve/attachment/spotlight/EveSpotlightSetItem.js +61 -0
  219. package/dist/eve/attachment/spotlight/EveSpotlightSetItem.js.map +1 -0
  220. package/dist/eve/{EveSpriteLight.js → attachment/sprite/EveSpriteLight.js} +14 -2
  221. package/dist/eve/attachment/sprite/EveSpriteLight.js.map +1 -0
  222. package/dist/eve/{EveSpriteLineSet.js → attachment/sprite/EveSpriteLineSet.js} +69 -7
  223. package/dist/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -0
  224. package/dist/eve/{EveSpriteLineSetItem.js → attachment/sprite/EveSpriteLineSetItem.js} +29 -4
  225. package/dist/eve/attachment/sprite/EveSpriteLineSetItem.js.map +1 -0
  226. package/dist/eve/{EveSpriteSet.js → attachment/sprite/EveSpriteSet.js} +87 -8
  227. package/dist/eve/attachment/sprite/EveSpriteSet.js.map +1 -0
  228. package/dist/{generated/eve/attachment/sprites → eve/attachment/sprite}/EveSpriteSetItem.js +23 -26
  229. package/dist/eve/attachment/sprite/EveSpriteSetItem.js.map +1 -0
  230. package/dist/eve/attachment/turrets/EveTurretFiringFX.js +184 -2
  231. package/dist/eve/attachment/turrets/EveTurretFiringFX.js.map +1 -1
  232. package/dist/eve/attachment/turrets/EveTurretSet.js +236 -7
  233. package/dist/eve/attachment/turrets/EveTurretSet.js.map +1 -1
  234. package/dist/eve/attachment/turrets/EveTurretTarget.js +112 -0
  235. package/dist/eve/attachment/turrets/EveTurretTarget.js.map +1 -1
  236. package/dist/eve/camera/EveCamera.js +644 -0
  237. package/dist/eve/camera/EveCamera.js.map +1 -0
  238. package/dist/eve/child/EveChildAudio.js +63 -0
  239. package/dist/eve/child/EveChildAudio.js.map +1 -1
  240. package/dist/eve/child/EveChildBehaviorSystem.js +412 -0
  241. package/dist/eve/child/EveChildBehaviorSystem.js.map +1 -0
  242. package/dist/{generated/eve → eve}/child/EveChildBulletStorm.js +41 -3
  243. package/dist/eve/child/EveChildBulletStorm.js.map +1 -0
  244. package/dist/eve/child/EveChildContainer.js +175 -16
  245. package/dist/eve/child/EveChildContainer.js.map +1 -1
  246. package/dist/eve/child/EveChildEffectPropagator.js +1 -1
  247. package/dist/eve/child/EveChildEffectPropagator.js.map +1 -1
  248. package/dist/eve/child/EveChildFogVolume.js +72 -0
  249. package/dist/eve/child/EveChildFogVolume.js.map +1 -1
  250. package/dist/eve/child/EveChildInheritProperties.js +17 -0
  251. package/dist/eve/child/EveChildInheritProperties.js.map +1 -1
  252. package/dist/eve/child/EveChildInstancedMeshes.js +211 -1
  253. package/dist/eve/child/EveChildInstancedMeshes.js.map +1 -1
  254. package/dist/eve/child/EveChildLightingOverride.js +74 -0
  255. package/dist/eve/child/EveChildLightingOverride.js.map +1 -1
  256. package/dist/{generated/eve → eve}/child/EveChildLink.js +17 -16
  257. package/dist/eve/child/EveChildLink.js.map +1 -0
  258. package/dist/eve/child/EveChildMesh.js +351 -105
  259. package/dist/eve/child/EveChildMesh.js.map +1 -1
  260. package/dist/eve/child/EveChildSpherePin.js +108 -0
  261. package/dist/eve/child/EveChildSpherePin.js.map +1 -0
  262. package/dist/eve/child/EveChildTransform.js +44 -1
  263. package/dist/eve/child/EveChildTransform.js.map +1 -1
  264. package/dist/eve/child/IEveSpaceObjectChild.js +5 -0
  265. package/dist/eve/child/IEveSpaceObjectChild.js.map +1 -1
  266. package/dist/eve/child/behaviors/CollisionAvoidance.js +112 -0
  267. package/dist/eve/child/behaviors/CollisionAvoidance.js.map +1 -0
  268. package/dist/eve/child/behaviors/InclusionVolume.js +131 -0
  269. package/dist/eve/child/behaviors/InclusionVolume.js.map +1 -0
  270. package/dist/eve/child/behaviors/Wander.js +99 -0
  271. package/dist/eve/child/behaviors/Wander.js.map +1 -0
  272. package/dist/{generated/eve → eve}/child/behaviors/enums.js +1 -1
  273. package/dist/eve/child/behaviors/enums.js.map +1 -0
  274. package/dist/eve/child/behaviors/lifecycle/ProcessLifetime.js +540 -0
  275. package/dist/eve/child/behaviors/lifecycle/ProcessLifetime.js.map +1 -0
  276. package/dist/eve/{ProcessLifetimeData.js → child/behaviors/lifecycle/ProcessLifetimeData.js} +8 -2
  277. package/dist/eve/child/behaviors/lifecycle/ProcessLifetimeData.js.map +1 -0
  278. package/dist/eve/child/behaviors/{SplineTunnel.js → tunnels/SplineTunnel.js} +9 -7
  279. package/dist/eve/child/behaviors/tunnels/SplineTunnel.js.map +1 -0
  280. package/dist/eve/child/behaviors/tunnels/SplineTunnelGroup.js +211 -0
  281. package/dist/eve/child/behaviors/tunnels/SplineTunnelGroup.js.map +1 -0
  282. package/dist/eve/child/behaviors/{SplineTunnelPoint.js → tunnels/SplineTunnelPoint.js} +3 -3
  283. package/dist/eve/child/behaviors/tunnels/SplineTunnelPoint.js.map +1 -0
  284. package/dist/eve/child/lineSetPaths/EveBezierCurve.js +65 -0
  285. package/dist/eve/child/lineSetPaths/EveBezierCurve.js.map +1 -1
  286. package/dist/eve/child/lineSetPaths/EveCircle.js +63 -0
  287. package/dist/eve/child/lineSetPaths/EveCircle.js.map +1 -1
  288. package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierAttachToBone.js +24 -16
  289. package/dist/eve/child/modifiers/EveChildModifierAttachToBone.js.map +1 -0
  290. package/dist/eve/child/modifiers/EveChildModifierBillboard2D.js +5 -0
  291. package/dist/eve/child/modifiers/EveChildModifierBillboard2D.js.map +1 -1
  292. package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierBillboard3D.js +22 -19
  293. package/dist/eve/child/modifiers/EveChildModifierBillboard3D.js.map +1 -0
  294. package/dist/eve/child/modifiers/EveChildModifierBooster.js +6 -0
  295. package/dist/eve/child/modifiers/EveChildModifierBooster.js.map +1 -1
  296. package/dist/eve/child/modifiers/EveChildModifierCameraOrientedRotationConstrained.js +5 -0
  297. package/dist/eve/child/modifiers/EveChildModifierCameraOrientedRotationConstrained.js.map +1 -1
  298. package/dist/eve/child/modifiers/EveChildModifierHalo.js +5 -0
  299. package/dist/eve/child/modifiers/EveChildModifierHalo.js.map +1 -1
  300. package/dist/eve/child/modifiers/EveChildModifierHaloInverted.js +6 -0
  301. package/dist/eve/child/modifiers/EveChildModifierHaloInverted.js.map +1 -1
  302. package/dist/eve/child/modifiers/EveChildModifierSRT.js +5 -0
  303. package/dist/eve/child/modifiers/EveChildModifierSRT.js.map +1 -1
  304. package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierStretch.js +31 -17
  305. package/dist/eve/child/modifiers/EveChildModifierStretch.js.map +1 -0
  306. package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierTranslateWithCamera.js +16 -14
  307. package/dist/eve/child/modifiers/EveChildModifierTranslateWithCamera.js.map +1 -0
  308. package/dist/{generated/eve → eve}/child/procedural/EveChildProceduralContainer.js +11 -4
  309. package/dist/eve/child/procedural/EveChildProceduralContainer.js.map +1 -0
  310. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodAttributeMap.js +12 -12
  311. package/dist/eve/child/procedural/selection/EveProceduralMethodAttributeMap.js.map +1 -0
  312. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js +6 -6
  313. package/dist/eve/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js.map +1 -0
  314. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodCycling.js +12 -12
  315. package/dist/eve/child/procedural/selection/EveProceduralMethodCycling.js.map +1 -0
  316. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodCyclingParameter.js +8 -8
  317. package/dist/eve/child/procedural/selection/EveProceduralMethodCyclingParameter.js.map +1 -0
  318. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodRandom.js +17 -17
  319. package/dist/eve/child/procedural/selection/EveProceduralMethodRandom.js.map +1 -0
  320. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodRandomParameter.js +7 -7
  321. package/dist/eve/child/procedural/selection/EveProceduralMethodRandomParameter.js.map +1 -0
  322. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodThresholdParameter.js +7 -7
  323. package/dist/eve/child/procedural/selection/EveProceduralMethodThresholdParameter.js.map +1 -0
  324. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodThresholds.js +17 -17
  325. package/dist/eve/child/procedural/selection/EveProceduralMethodThresholds.js.map +1 -0
  326. package/dist/{generated/eve → eve}/distribution/EveBaseDistributionMethod.js +132 -3
  327. package/dist/eve/distribution/EveBaseDistributionMethod.js.map +1 -0
  328. package/dist/{generated/eve → eve}/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js +12 -1
  329. package/dist/eve/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js.map +1 -0
  330. package/dist/{generated/eve → eve}/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js +9 -1
  331. package/dist/eve/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js.map +1 -0
  332. package/dist/{generated/eve → eve}/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js +12 -1
  333. package/dist/eve/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js.map +1 -0
  334. package/dist/eve/distribution/attributeModifiers/enums.js.map +1 -0
  335. package/dist/{generated/eve → eve}/distribution/placement/EveDistributionPlacementGeneratorLocators.js +16 -3
  336. package/dist/eve/distribution/placement/EveDistributionPlacementGeneratorLocators.js.map +1 -0
  337. package/dist/{generated/eve → eve}/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js +31 -3
  338. package/dist/eve/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js.map +1 -0
  339. package/dist/{generated/eve → eve}/distribution/placement/EveDistributionPlacementGeneratorVolume.js +34 -3
  340. package/dist/eve/distribution/placement/EveDistributionPlacementGeneratorVolume.js.map +1 -0
  341. package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js +14 -2
  342. package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js.map +1 -0
  343. package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js +13 -2
  344. package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js.map +1 -0
  345. package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js +13 -2
  346. package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js.map +1 -0
  347. package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js +13 -2
  348. package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js.map +1 -0
  349. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerBurst.js +19 -1
  350. package/dist/eve/distribution/spawners/EveDistributionSpawnerBurst.js.map +1 -0
  351. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerControllerTrigger.js +25 -1
  352. package/dist/eve/distribution/spawners/EveDistributionSpawnerControllerTrigger.js.map +1 -0
  353. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerInterval.js +17 -1
  354. package/dist/eve/distribution/spawners/EveDistributionSpawnerInterval.js.map +1 -0
  355. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerTriggerPlane.js +20 -1
  356. package/dist/eve/distribution/spawners/EveDistributionSpawnerTriggerPlane.js.map +1 -0
  357. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerTriggerSnake.js +20 -1
  358. package/dist/eve/distribution/spawners/EveDistributionSpawnerTriggerSnake.js.map +1 -0
  359. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerTriggerSphere.js +20 -1
  360. package/dist/eve/distribution/spawners/EveDistributionSpawnerTriggerSphere.js.map +1 -0
  361. package/dist/{generated/eve/effect → eve/effect/lensflare}/EveLensflare.js +44 -2
  362. package/dist/eve/effect/lensflare/EveLensflare.js.map +1 -0
  363. package/dist/eve/effect/multiEffect/EveMultiEffect.js +302 -0
  364. package/dist/eve/effect/multiEffect/EveMultiEffect.js.map +1 -0
  365. package/dist/eve/effect/multiEffect/EveMultiEffectParameter.js +92 -0
  366. package/dist/eve/effect/multiEffect/EveMultiEffectParameter.js.map +1 -0
  367. package/dist/eve/index.js +117 -47
  368. package/dist/eve/index.js.map +1 -1
  369. package/dist/eve/lights/CjsLightData.js +7 -0
  370. package/dist/eve/lights/CjsLightData.js.map +1 -1
  371. package/dist/eve/lights/Tr2Light.js +41 -0
  372. package/dist/eve/lights/Tr2Light.js.map +1 -1
  373. package/dist/eve/lights/Tr2PointLight.js +5 -0
  374. package/dist/eve/lights/Tr2PointLight.js.map +1 -1
  375. package/dist/eve/lights/Tr2SpotLight.js +5 -0
  376. package/dist/eve/lights/Tr2SpotLight.js.map +1 -1
  377. package/dist/eve/lights/Tr2TexturedPointLight.js +10 -0
  378. package/dist/eve/lights/Tr2TexturedPointLight.js.map +1 -1
  379. package/dist/eve/lights/lightConversion.js +29 -27
  380. package/dist/eve/lights/lightConversion.js.map +1 -1
  381. package/dist/eve/{EveLocator2.js → locator/EveLocator2.js} +20 -1
  382. package/dist/eve/locator/EveLocator2.js.map +1 -0
  383. package/dist/eve/{EveLocatorSets.js → locator/EveLocatorSets.js} +43 -1
  384. package/dist/eve/locator/EveLocatorSets.js.map +1 -0
  385. package/dist/eve/{Locator.js → locator/Locator.js} +6 -1
  386. package/dist/eve/locator/Locator.js.map +1 -0
  387. package/dist/eve/{LocatorData.js → locator/LocatorData.js} +3 -1
  388. package/dist/eve/locator/LocatorData.js.map +1 -0
  389. package/dist/eve/overlays/EveMeshOverlayEffect.js +208 -0
  390. package/dist/eve/overlays/EveMeshOverlayEffect.js.map +1 -0
  391. package/dist/eve/{EveParticleDirectForce.js → particles/force/EveParticleDirectForce.js} +5 -5
  392. package/dist/eve/particles/force/EveParticleDirectForce.js.map +1 -0
  393. package/dist/eve/{EveParticleDragForce.js → particles/force/EveParticleDragForce.js} +5 -5
  394. package/dist/eve/particles/force/EveParticleDragForce.js.map +1 -0
  395. package/dist/eve/{EveParticleSpring.js → particles/force/EveParticleSpring.js} +6 -6
  396. package/dist/eve/particles/force/EveParticleSpring.js.map +1 -0
  397. package/dist/{generated/eve/scene → eve/particles/static}/EveSceneStaticParticles.js +70 -36
  398. package/dist/eve/particles/static/EveSceneStaticParticles.js.map +1 -0
  399. package/dist/eve/perObjectData/childPerObjectRecords.js +90 -0
  400. package/dist/eve/perObjectData/childPerObjectRecords.js.map +1 -0
  401. package/dist/eve/renderable/stretch/CjsStretchRuntime.js +76 -0
  402. package/dist/eve/renderable/stretch/CjsStretchRuntime.js.map +1 -1
  403. package/dist/eve/renderable/stretch/EveFiringEffectElementContainer.js +85 -1
  404. package/dist/eve/renderable/stretch/EveFiringEffectElementContainer.js.map +1 -1
  405. package/dist/eve/renderable/stretch/EveLocalPositionCurve.js +91 -0
  406. package/dist/eve/renderable/stretch/EveLocalPositionCurve.js.map +1 -1
  407. package/dist/eve/renderable/stretch/EveRemotePositionCurve.js +36 -0
  408. package/dist/eve/renderable/stretch/EveRemotePositionCurve.js.map +1 -1
  409. package/dist/eve/renderable/stretch/EveStretch.js +158 -9
  410. package/dist/eve/renderable/stretch/EveStretch.js.map +1 -1
  411. package/dist/eve/renderable/stretch/EveStretch2.js +121 -12
  412. package/dist/eve/renderable/stretch/EveStretch2.js.map +1 -1
  413. package/dist/eve/renderable/stretch/EveStretch3.js +261 -8
  414. package/dist/eve/renderable/stretch/EveStretch3.js.map +1 -1
  415. package/dist/eve/scene/EveSpaceScene.js +342 -6
  416. package/dist/eve/scene/EveSpaceScene.js.map +1 -1
  417. package/dist/{generated/eve/scene → eve/scene/components}/EveComponentCollection.js +24 -1
  418. package/dist/eve/scene/components/EveComponentCollection.js.map +1 -0
  419. package/dist/{generated/eve/scene → eve/scene/components}/EveComponentRegistry.js +74 -2
  420. package/dist/eve/scene/components/EveComponentRegistry.js.map +1 -0
  421. package/dist/eve/scene/picking/EvePickingContext.js +61 -0
  422. package/dist/eve/scene/picking/EvePickingContext.js.map +1 -0
  423. package/dist/eve/scene/shadows/TriShadowFrustum.js +70 -0
  424. package/dist/eve/scene/shadows/TriShadowFrustum.js.map +1 -0
  425. package/dist/eve/scene/shadows/TriShadowOrthoFrustum.js +129 -0
  426. package/dist/eve/scene/shadows/TriShadowOrthoFrustum.js.map +1 -0
  427. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js +19 -19
  428. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js.map +1 -0
  429. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js +19 -19
  430. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js.map +1 -0
  431. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js +12 -12
  432. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js.map +1 -0
  433. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js +12 -12
  434. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js.map +1 -0
  435. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js +30 -30
  436. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js.map +1 -0
  437. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js +9 -9
  438. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js.map +1 -0
  439. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js +23 -23
  440. package/dist/eve/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js.map +1 -0
  441. package/dist/eve/smartLights/attributeModifiers/enums.js.map +1 -0
  442. package/dist/{generated/eve → eve}/socket/EveSocketParameterBindingBase.js +26 -1
  443. package/dist/eve/socket/EveSocketParameterBindingBase.js.map +1 -0
  444. package/dist/{generated/eve → eve}/socket/EveSocketParameterBool.js +17 -1
  445. package/dist/eve/socket/EveSocketParameterBool.js.map +1 -0
  446. package/dist/{generated/eve → eve}/socket/EveSocketParameterColor.js +21 -5
  447. package/dist/eve/socket/EveSocketParameterColor.js.map +1 -0
  448. package/dist/eve/socket/EveSocketParameterFilePath.js +5 -5
  449. package/dist/eve/socket/EveSocketParameterFilePath.js.map +1 -1
  450. package/dist/{generated/eve → eve}/socket/EveSocketParameterFloat.js +17 -1
  451. package/dist/eve/socket/EveSocketParameterFloat.js.map +1 -0
  452. package/dist/{generated/eve → eve}/socket/EveSocketParameterInt.js +17 -1
  453. package/dist/eve/socket/EveSocketParameterInt.js.map +1 -0
  454. package/dist/{generated/eve → eve}/socket/EveSocketParameterString.js +42 -2
  455. package/dist/eve/socket/EveSocketParameterString.js.map +1 -0
  456. package/dist/{generated/eve → eve}/socket/EveSocketParameterVector2.js +17 -1
  457. package/dist/eve/socket/EveSocketParameterVector2.js.map +1 -0
  458. package/dist/{generated/eve → eve}/socket/EveSocketParameterVector3.js +17 -1
  459. package/dist/eve/socket/EveSocketParameterVector3.js.map +1 -0
  460. package/dist/{generated/eve → eve}/socket/EveSocketParameterVector4.js +17 -1
  461. package/dist/eve/socket/EveSocketParameterVector4.js.map +1 -0
  462. package/dist/eve/spaceObject/EveEffectRoot2.js +58 -31
  463. package/dist/eve/spaceObject/EveEffectRoot2.js.map +1 -1
  464. package/dist/eve/spaceObject/EveMissile.js +49 -1
  465. package/dist/eve/spaceObject/EveMissile.js.map +1 -1
  466. package/dist/eve/spaceObject/EveMissileWarhead.js +100 -1
  467. package/dist/eve/spaceObject/EveMissileWarhead.js.map +1 -1
  468. package/dist/eve/spaceObject/EveMobile.js +104 -0
  469. package/dist/eve/spaceObject/EveMobile.js.map +1 -1
  470. package/dist/eve/spaceObject/EveRootTransform.js +17 -0
  471. package/dist/eve/spaceObject/EveRootTransform.js.map +1 -1
  472. package/dist/{generated/eve → eve}/spaceObject/EveShip2.js +32 -12
  473. package/dist/eve/spaceObject/EveShip2.js.map +1 -0
  474. package/dist/eve/spaceObject/EveSpaceObject2.js +726 -199
  475. package/dist/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  476. package/dist/eve/spaceObject/EveTransform.js +143 -5
  477. package/dist/eve/spaceObject/EveTransform.js.map +1 -1
  478. package/dist/eve/spaceObject/IEveSpaceObject2ParentData.js +70 -0
  479. package/dist/eve/spaceObject/IEveSpaceObject2ParentData.js.map +1 -0
  480. package/dist/eve/spaceObject/createEveSpaceObjectMainPerObjectValues.js +19 -16
  481. package/dist/eve/spaceObject/createEveSpaceObjectMainPerObjectValues.js.map +1 -1
  482. package/dist/eve/spaceObject/fxAttributes/EveCameraFxAttributes.js +92 -0
  483. package/dist/eve/spaceObject/fxAttributes/EveCameraFxAttributes.js.map +1 -0
  484. package/dist/eve/spaceObject/fxAttributes/EveSpaceObjectFxAttributes.js +158 -0
  485. package/dist/eve/spaceObject/fxAttributes/EveSpaceObjectFxAttributes.js.map +1 -0
  486. package/dist/{generated/eve/spaceObject → eve/spaceObject/planet}/EvePlanet.js +2 -2
  487. package/dist/eve/spaceObject/planet/EvePlanet.js.map +1 -0
  488. package/dist/{generated/eve → eve}/spaceObject/swarm/EveSwarmRenderable.js +102 -64
  489. package/dist/eve/spaceObject/swarm/EveSwarmRenderable.js.map +1 -0
  490. package/dist/eve/ui/EveEllipseDefinition.js +15 -0
  491. package/dist/eve/ui/EveEllipseDefinition.js.map +1 -1
  492. package/dist/eve/ui/EveEllipseSet.js +42 -0
  493. package/dist/eve/ui/EveEllipseSet.js.map +1 -1
  494. package/dist/{generated/eve → eve}/ui/EveSpherePin.js +76 -11
  495. package/dist/eve/ui/EveSpherePin.js.map +1 -0
  496. package/dist/eve/ui/EveSprite2dBracket.js +5 -0
  497. package/dist/eve/ui/EveSprite2dBracket.js.map +1 -1
  498. package/dist/eve/ui/EveUiObject.js +11 -0
  499. package/dist/eve/ui/EveUiObject.js.map +1 -1
  500. package/dist/{generated/eve/ui → eve/ui/lines}/EveLineSet.js +67 -6
  501. package/dist/eve/ui/lines/EveLineSet.js.map +1 -0
  502. package/dist/eve/ui/tacticalOverlay/EveTacticalOverlayTrackObject.js +78 -0
  503. package/dist/eve/ui/tacticalOverlay/EveTacticalOverlayTrackObject.js.map +1 -0
  504. package/dist/{generated/eve/ui → eve/ui/tacticalOverlay}/EveTacticalTrails.js +22 -2
  505. package/dist/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -0
  506. package/dist/eve/virtualCamera/EveVirtualCamera.js +152 -0
  507. package/dist/eve/virtualCamera/EveVirtualCamera.js.map +1 -1
  508. package/dist/eve/virtualCamera/EveVirtualCameraSystem.js +65 -0
  509. package/dist/eve/virtualCamera/EveVirtualCameraSystem.js.map +1 -1
  510. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatAdd.js +17 -0
  511. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatAdd.js.map +1 -1
  512. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatBase.js +19 -0
  513. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatBase.js.map +1 -1
  514. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatDamping.js +17 -0
  515. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatDamping.js.map +1 -1
  516. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatNoise.js +29 -0
  517. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatNoise.js.map +1 -1
  518. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatSet.js +15 -0
  519. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatSet.js.map +1 -1
  520. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Base.js +38 -0
  521. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Base.js.map +1 -1
  522. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Damping.js +17 -0
  523. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Damping.js.map +1 -1
  524. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Inertia.js +18 -0
  525. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Inertia.js.map +1 -1
  526. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveBetween.js +20 -0
  527. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveBetween.js.map +1 -1
  528. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveForward.js +20 -0
  529. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveForward.js.map +1 -1
  530. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveRight.js +11 -0
  531. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveRight.js.map +1 -1
  532. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveUp.js +14 -0
  533. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveUp.js.map +1 -1
  534. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Offset.js +16 -0
  535. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Offset.js.map +1 -1
  536. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Orbit.js +20 -0
  537. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Orbit.js.map +1 -1
  538. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Shake.js +36 -0
  539. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Shake.js.map +1 -1
  540. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionBase.js +36 -0
  541. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionBase.js.map +1 -1
  542. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionCut.js +11 -0
  543. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionCut.js.map +1 -1
  544. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionLerp.js +37 -0
  545. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionLerp.js.map +1 -1
  546. package/dist/eve/volume/EveBoxVolume.js +59 -0
  547. package/dist/eve/volume/EveBoxVolume.js.map +1 -1
  548. package/dist/eve/volume/EveEllipsoidVolume.js +54 -0
  549. package/dist/eve/volume/EveEllipsoidVolume.js.map +1 -1
  550. package/dist/eve/volume/EveSphereVolume.js +34 -0
  551. package/dist/eve/volume/EveSphereVolume.js.map +1 -1
  552. package/dist/generated/eve/child/EveChildCloud2.js +138 -138
  553. package/dist/generated/eve/child/EveChildCloud2.js.map +1 -1
  554. package/dist/generated/eve/child/EveChildParticleSystem.js +10 -4
  555. package/dist/generated/eve/child/EveChildParticleSystem.js.map +1 -1
  556. package/dist/generated/eve/child/EveChildSocket.js +1 -1
  557. package/dist/generated/eve/child/EveChildSocket.js.map +1 -1
  558. package/dist/generated/eve/child/behaviors/BackAndForth.js +14 -17
  559. package/dist/generated/eve/child/behaviors/BackAndForth.js.map +1 -1
  560. package/dist/generated/eve/child/behaviors/BehaviorGroup.js +2 -2
  561. package/dist/generated/eve/child/behaviors/BehaviorGroup.js.map +1 -1
  562. package/dist/generated/eve/child/behaviors/EveKDdroneManagementTree.js +26 -29
  563. package/dist/generated/eve/child/behaviors/EveKDdroneManagementTree.js.map +1 -1
  564. package/dist/generated/eve/child/behaviors/FollowASpline.js +13 -17
  565. package/dist/generated/eve/child/behaviors/FollowASpline.js.map +1 -1
  566. package/dist/generated/eve/child/behaviors/PlayFX.js +14 -14
  567. package/dist/generated/eve/child/behaviors/PlayFX.js.map +1 -1
  568. package/dist/generated/eve/child/behaviors/SeekTarget.js +1 -1
  569. package/dist/generated/eve/child/behaviors/SeekTarget.js.map +1 -1
  570. package/dist/generated/eve/child/behaviors/index.js +0 -6
  571. package/dist/generated/eve/child/behaviors/index.js.map +1 -1
  572. package/dist/generated/eve/child/index.js +0 -23
  573. package/dist/generated/eve/child/index.js.map +1 -1
  574. package/dist/generated/eve/effect/index.js +0 -3
  575. package/dist/generated/eve/effect/index.js.map +1 -1
  576. package/dist/generated/eve/index.js +0 -88
  577. package/dist/generated/eve/index.js.map +1 -1
  578. package/dist/generated/eve/scene/index.js +0 -6
  579. package/dist/generated/eve/scene/index.js.map +1 -1
  580. package/dist/generated/eve/smartLights/EveSmartLightColorShareGroup.js +20 -20
  581. package/dist/generated/eve/smartLights/EveSmartLightColorShareGroup.js.map +1 -1
  582. package/dist/generated/eve/smartLights/EveSmartLightPointLight.js +1 -1
  583. package/dist/generated/eve/smartLights/EveSmartLightPointLight.js.map +1 -1
  584. package/dist/generated/eve/smartLights/index.js +0 -8
  585. package/dist/generated/eve/smartLights/index.js.map +1 -1
  586. package/dist/generated/eve/spaceObject/index.js +0 -4
  587. package/dist/generated/eve/spaceObject/index.js.map +1 -1
  588. package/dist/generated/eve/spaceObject/swarm/EveSwarm.js +11 -11
  589. package/dist/generated/eve/spaceObject/swarm/EveSwarm.js.map +1 -1
  590. package/dist/generated/eve/spaceObject/swarm/index.js +0 -1
  591. package/dist/generated/eve/spaceObject/swarm/index.js.map +1 -1
  592. package/dist/generated/eve/ui/index.js +0 -4
  593. package/dist/generated/eve/ui/index.js.map +1 -1
  594. package/dist/generated/index.js +0 -93
  595. package/dist/generated/index.js.map +1 -1
  596. package/dist/generated/trinityCore/index.js +0 -5
  597. package/dist/generated/trinityCore/index.js.map +1 -1
  598. package/dist/index.js +130 -155
  599. package/dist/index.js.map +1 -1
  600. package/dist/particle/Tr2GpuSharedEmitter.js +39 -0
  601. package/dist/particle/Tr2GpuSharedEmitter.js.map +1 -1
  602. package/dist/particle/Tr2GpuUniqueEmitter.js +5 -0
  603. package/dist/particle/Tr2GpuUniqueEmitter.js.map +1 -1
  604. package/dist/particle/Tr2ParticleAttractorForce.js +10 -0
  605. package/dist/particle/Tr2ParticleAttractorForce.js.map +1 -1
  606. package/dist/particle/Tr2ParticleDirectForce.js +7 -0
  607. package/dist/particle/Tr2ParticleDirectForce.js.map +1 -1
  608. package/dist/particle/Tr2ParticleDragForce.js +7 -0
  609. package/dist/particle/Tr2ParticleDragForce.js.map +1 -1
  610. package/dist/particle/Tr2ParticleElementDeclaration.js +5 -0
  611. package/dist/particle/Tr2ParticleElementDeclaration.js.map +1 -1
  612. package/dist/particle/Tr2ParticleFluidDragForce.js +10 -0
  613. package/dist/particle/Tr2ParticleFluidDragForce.js.map +1 -1
  614. package/dist/particle/Tr2ParticleSpring.js +10 -0
  615. package/dist/particle/Tr2ParticleSpring.js.map +1 -1
  616. package/dist/particle/Tr2ParticleVortexForce.js +10 -0
  617. package/dist/particle/Tr2ParticleVortexForce.js.map +1 -1
  618. package/dist/particle/particleElementBinding.js +12 -0
  619. package/dist/particle/particleElementBinding.js.map +1 -1
  620. package/dist/postProcess/Tr2PPBloomEffect.js +6 -0
  621. package/dist/postProcess/Tr2PPBloomEffect.js.map +1 -1
  622. package/dist/postProcess/Tr2PPDepthOfFieldEffect.js +16 -0
  623. package/dist/postProcess/Tr2PPDepthOfFieldEffect.js.map +1 -1
  624. package/dist/postProcess/Tr2PPGenericEffect.js +7 -0
  625. package/dist/postProcess/Tr2PPGenericEffect.js.map +1 -1
  626. package/dist/postProcess/Tr2PPTaaEffect.js +10 -0
  627. package/dist/postProcess/Tr2PPTaaEffect.js.map +1 -1
  628. package/dist/postProcess/Tr2PPTonemappingEffect.js +5 -0
  629. package/dist/postProcess/Tr2PPTonemappingEffect.js.map +1 -1
  630. package/dist/postProcess/Tr2PostProcess.js +5 -0
  631. package/dist/postProcess/Tr2PostProcess.js.map +1 -1
  632. package/dist/postProcess/Tr2PostProcess2.js +147 -0
  633. package/dist/postProcess/Tr2PostProcess2.js.map +1 -1
  634. package/dist/postProcess/Tr2PostProcessAttributes.js +89 -0
  635. package/dist/postProcess/Tr2PostProcessAttributes.js.map +1 -1
  636. package/dist/renderJob/Tr2RenderJobs.js +34 -0
  637. package/dist/renderJob/Tr2RenderJobs.js.map +1 -1
  638. package/dist/renderJob/TriRenderJob.js +59 -0
  639. package/dist/renderJob/TriRenderJob.js.map +1 -1
  640. package/dist/renderJob/TriRenderStep.js +20 -0
  641. package/dist/renderJob/TriRenderStep.js.map +1 -1
  642. package/dist/renderJob/TriStepClear.js +18 -0
  643. package/dist/renderJob/TriStepClear.js.map +1 -1
  644. package/dist/renderJob/TriStepCopyRenderTarget.js +51 -0
  645. package/dist/renderJob/TriStepCopyRenderTarget.js.map +1 -1
  646. package/dist/renderJob/TriStepEnableWireframeMode.js +9 -0
  647. package/dist/renderJob/TriStepEnableWireframeMode.js.map +1 -1
  648. package/dist/renderJob/TriStepGenerateMipMaps.js +9 -0
  649. package/dist/renderJob/TriStepGenerateMipMaps.js.map +1 -1
  650. package/dist/renderJob/TriStepPopDepthStencil.js +6 -0
  651. package/dist/renderJob/TriStepPopDepthStencil.js.map +1 -1
  652. package/dist/renderJob/TriStepPopProjection.js +6 -0
  653. package/dist/renderJob/TriStepPopProjection.js.map +1 -1
  654. package/dist/renderJob/TriStepPopRenderTarget.js +12 -0
  655. package/dist/renderJob/TriStepPopRenderTarget.js.map +1 -1
  656. package/dist/renderJob/TriStepPopViewTransform.js +6 -0
  657. package/dist/renderJob/TriStepPopViewTransform.js.map +1 -1
  658. package/dist/renderJob/TriStepPopViewport.js +6 -0
  659. package/dist/renderJob/TriStepPopViewport.js.map +1 -1
  660. package/dist/renderJob/TriStepPresentSwapChain.js +12 -0
  661. package/dist/renderJob/TriStepPresentSwapChain.js.map +1 -1
  662. package/dist/renderJob/TriStepPushDepthStencil.js +17 -0
  663. package/dist/renderJob/TriStepPushDepthStencil.js.map +1 -1
  664. package/dist/renderJob/TriStepPushProjection.js +6 -0
  665. package/dist/renderJob/TriStepPushProjection.js.map +1 -1
  666. package/dist/renderJob/TriStepPushRenderTarget.js +9 -0
  667. package/dist/renderJob/TriStepPushRenderTarget.js.map +1 -1
  668. package/dist/renderJob/TriStepPushViewTransform.js +6 -0
  669. package/dist/renderJob/TriStepPushViewTransform.js.map +1 -1
  670. package/dist/renderJob/TriStepPushViewport.js +6 -0
  671. package/dist/renderJob/TriStepPushViewport.js.map +1 -1
  672. package/dist/renderJob/TriStepRemoteSync.js +17 -0
  673. package/dist/renderJob/TriStepRemoteSync.js.map +1 -1
  674. package/dist/renderJob/TriStepResolve.js +13 -0
  675. package/dist/renderJob/TriStepResolve.js.map +1 -1
  676. package/dist/renderJob/TriStepRunJob.js +12 -0
  677. package/dist/renderJob/TriStepRunJob.js.map +1 -1
  678. package/dist/renderJob/TriStepSetDepthStencil.js +12 -0
  679. package/dist/renderJob/TriStepSetDepthStencil.js.map +1 -1
  680. package/dist/renderJob/TriStepSetProjection.js +14 -0
  681. package/dist/renderJob/TriStepSetProjection.js.map +1 -1
  682. package/dist/renderJob/TriStepSetRenderState.js +20 -0
  683. package/dist/renderJob/TriStepSetRenderState.js.map +1 -1
  684. package/dist/renderJob/TriStepSetRenderTarget.js +12 -0
  685. package/dist/renderJob/TriStepSetRenderTarget.js.map +1 -1
  686. package/dist/renderJob/TriStepSetStdRndStates.js +18 -0
  687. package/dist/renderJob/TriStepSetStdRndStates.js.map +1 -1
  688. package/dist/renderJob/TriStepSetView.js +29 -2
  689. package/dist/renderJob/TriStepSetView.js.map +1 -1
  690. package/dist/renderJob/TriStepSetViewport.js +17 -0
  691. package/dist/renderJob/TriStepSetViewport.js.map +1 -1
  692. package/dist/renderJob/TriStepSetVisualizationMode.js +19 -0
  693. package/dist/renderJob/TriStepSetVisualizationMode.js.map +1 -1
  694. package/dist/shader/Tr2Effect.js +217 -2
  695. package/dist/shader/Tr2Effect.js.map +1 -1
  696. package/dist/shader/Tr2Material.js +41 -0
  697. package/dist/shader/Tr2Material.js.map +1 -1
  698. package/dist/shader/index.js +1 -11
  699. package/dist/shader/index.js.map +1 -1
  700. package/dist/shader/material/Tr2EffectLibraryParameters.js +7 -0
  701. package/dist/shader/material/Tr2EffectLibraryParameters.js.map +1 -1
  702. package/dist/shader/material/Tr2EffectPassParameters.js +23 -0
  703. package/dist/shader/material/Tr2EffectPassParameters.js.map +1 -1
  704. package/dist/shader/material/Tr2MaterialStageInput.js +15 -0
  705. package/dist/shader/material/Tr2MaterialStageInput.js.map +1 -1
  706. package/dist/shader/parameter/CjsParameter.js +94 -0
  707. package/dist/shader/parameter/CjsParameter.js.map +1 -1
  708. package/dist/shader/parameter/CjsVectorParameter.js +20 -0
  709. package/dist/shader/parameter/CjsVectorParameter.js.map +1 -1
  710. package/dist/shader/parameter/Tr2FloatParameter.js +53 -0
  711. package/dist/shader/parameter/Tr2FloatParameter.js.map +1 -1
  712. package/dist/shader/parameter/Tr2GeometryBufferParameter.js +39 -0
  713. package/dist/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
  714. package/dist/shader/parameter/Tr2Matrix4Parameter.js +54 -0
  715. package/dist/shader/parameter/Tr2Matrix4Parameter.js.map +1 -1
  716. package/dist/shader/parameter/Tr2RuntimeTextureParameter.js +54 -0
  717. package/dist/shader/parameter/Tr2RuntimeTextureParameter.js.map +1 -1
  718. package/dist/shader/parameter/Tr2TextureAnimationParameter.js +35 -0
  719. package/dist/shader/parameter/Tr2TextureAnimationParameter.js.map +1 -1
  720. package/dist/shader/parameter/Tr2Vector2Parameter.js +86 -0
  721. package/dist/shader/parameter/Tr2Vector2Parameter.js.map +1 -1
  722. package/dist/shader/parameter/Tr2Vector3Parameter.js +95 -0
  723. package/dist/shader/parameter/Tr2Vector3Parameter.js.map +1 -1
  724. package/dist/shader/parameter/Tr2Vector4Parameter.js +105 -0
  725. package/dist/shader/parameter/Tr2Vector4Parameter.js.map +1 -1
  726. package/dist/shader/parameter/TriFloatArrayParameter.js +26 -0
  727. package/dist/shader/parameter/TriFloatArrayParameter.js.map +1 -1
  728. package/dist/shader/parameter/TriTextureParameter.js +84 -0
  729. package/dist/shader/parameter/TriTextureParameter.js.map +1 -1
  730. package/dist/shader/parameter/TriTransformParameter.js +2 -0
  731. package/dist/shader/parameter/TriTransformParameter.js.map +1 -1
  732. package/dist/shader/parameter/TriVariableParameter.js +38 -0
  733. package/dist/shader/parameter/TriVariableParameter.js.map +1 -1
  734. package/dist/shader/parameter/TriVector4.js +2 -0
  735. package/dist/shader/parameter/TriVector4.js.map +1 -1
  736. package/dist/shader/reflection/Tr2ShaderOption.js +6 -1
  737. package/dist/shader/reflection/Tr2ShaderOption.js.map +1 -1
  738. package/dist/shader/support/CjsVariableStore.js +140 -0
  739. package/dist/shader/support/CjsVariableStore.js.map +1 -1
  740. package/dist/shader/support/Tr2ShaderBuffer.js +15 -0
  741. package/dist/shader/support/Tr2ShaderBuffer.js.map +1 -1
  742. package/dist/trinityCore/CjsBatchManager.js +62 -2
  743. package/dist/trinityCore/CjsBatchManager.js.map +1 -1
  744. package/dist/trinityCore/GrannyBoneOffset.js +51 -0
  745. package/dist/trinityCore/GrannyBoneOffset.js.map +1 -1
  746. package/dist/trinityCore/ITriRenderBatchAccumulator.js +65 -3
  747. package/dist/trinityCore/ITriRenderBatchAccumulator.js.map +1 -1
  748. package/dist/trinityCore/Tr2DirectInstanceData.js +19 -0
  749. package/dist/trinityCore/Tr2DirectInstanceData.js.map +1 -1
  750. package/dist/trinityCore/Tr2ExpressionTermInfo.js +21 -0
  751. package/dist/trinityCore/Tr2ExpressionTermInfo.js.map +1 -1
  752. package/dist/trinityCore/Tr2GpuBuffer.js +5 -0
  753. package/dist/trinityCore/Tr2GpuBuffer.js.map +1 -1
  754. package/dist/{generated/trinityCore → trinityCore}/Tr2GrannyAnimation.js +137 -8
  755. package/dist/trinityCore/Tr2GrannyAnimation.js.map +1 -0
  756. package/dist/trinityCore/Tr2InstancedMesh.js +52 -0
  757. package/dist/trinityCore/Tr2InstancedMesh.js.map +1 -1
  758. package/dist/trinityCore/Tr2MaterialParameterStore.js +5 -0
  759. package/dist/trinityCore/Tr2MaterialParameterStore.js.map +1 -1
  760. package/dist/trinityCore/Tr2Mesh.js +37 -0
  761. package/dist/trinityCore/Tr2Mesh.js.map +1 -1
  762. package/dist/trinityCore/Tr2MeshArea.js +78 -0
  763. package/dist/trinityCore/Tr2MeshArea.js.map +1 -1
  764. package/dist/trinityCore/Tr2MeshBase.js +98 -2
  765. package/dist/trinityCore/Tr2MeshBase.js.map +1 -1
  766. package/dist/trinityCore/Tr2PerObjectData.js +10 -0
  767. package/dist/trinityCore/Tr2PerObjectData.js.map +1 -1
  768. package/dist/trinityCore/Tr2PickType.js +33 -0
  769. package/dist/trinityCore/Tr2PickType.js.map +1 -0
  770. package/dist/trinityCore/Tr2RenderBatch.js +137 -0
  771. package/dist/trinityCore/Tr2RenderBatch.js.map +1 -1
  772. package/dist/trinityCore/Tr2RenderContext.js +271 -0
  773. package/dist/trinityCore/Tr2RenderContext.js.map +1 -1
  774. package/dist/trinityCore/Tr2RuntimeInstanceData.js +179 -0
  775. package/dist/trinityCore/Tr2RuntimeInstanceData.js.map +1 -1
  776. package/dist/trinityCore/Tr2ShLightingManager.js +397 -0
  777. package/dist/trinityCore/Tr2ShLightingManager.js.map +1 -0
  778. package/dist/trinityCore/Tr2VariableStore.js +26 -0
  779. package/dist/trinityCore/Tr2VariableStore.js.map +1 -1
  780. package/dist/trinityCore/Tr2VisibilityResults.js +5 -0
  781. package/dist/trinityCore/Tr2VisibilityResults.js.map +1 -1
  782. package/dist/trinityCore/TriDevice.js +5 -0
  783. package/dist/trinityCore/TriDevice.js.map +1 -1
  784. package/dist/trinityCore/TriFrustum.js +21 -14
  785. package/dist/trinityCore/TriFrustum.js.map +1 -1
  786. package/dist/trinityCore/TriObserverLocal.js +43 -0
  787. package/dist/trinityCore/TriObserverLocal.js.map +1 -1
  788. package/dist/trinityCore/TriProjection.js +86 -32
  789. package/dist/trinityCore/TriProjection.js.map +1 -1
  790. package/dist/trinityCore/TriRect.js +12 -0
  791. package/dist/trinityCore/TriRect.js.map +1 -1
  792. package/dist/trinityCore/TriRenderBatchAccumulator.js +46 -0
  793. package/dist/trinityCore/TriRenderBatchAccumulator.js.map +1 -1
  794. package/dist/trinityCore/TriRenderBatchMap.js +39 -2
  795. package/dist/trinityCore/TriRenderBatchMap.js.map +1 -1
  796. package/dist/trinityCore/TriSettings.js +38 -0
  797. package/dist/trinityCore/TriSettings.js.map +1 -1
  798. package/dist/trinityCore/TriVariable.js +30 -0
  799. package/dist/trinityCore/TriVariable.js.map +1 -1
  800. package/dist/trinityCore/TriView.js +16 -1
  801. package/dist/trinityCore/TriView.js.map +1 -1
  802. package/dist/trinityCore/TriViewport.js +12 -0
  803. package/dist/trinityCore/TriViewport.js.map +1 -1
  804. package/dist/trinityCore/{Tr2BindingVector3.js → binding/Tr2BindingVector3.js} +1 -1
  805. package/dist/trinityCore/binding/Tr2BindingVector3.js.map +1 -0
  806. package/dist/trinityCore/binding/Tr2DynamicBinding.js +266 -0
  807. package/dist/trinityCore/binding/Tr2DynamicBinding.js.map +1 -0
  808. package/dist/trinityCore/binding/Tr2ExternalParameter.js +392 -0
  809. package/dist/trinityCore/binding/Tr2ExternalParameter.js.map +1 -0
  810. package/dist/trinityCore/{Tr2PyValueBinding.js → binding/Tr2PyValueBinding.js} +30 -6
  811. package/dist/trinityCore/binding/Tr2PyValueBinding.js.map +1 -0
  812. package/dist/trinityCore/binding/TriValueBinding.js +648 -0
  813. package/dist/trinityCore/binding/TriValueBinding.js.map +1 -0
  814. package/dist/trinityCore/index.js +11 -4
  815. package/dist/trinityCore/index.js.map +1 -1
  816. package/dist/trinityCore/pickRay.js +84 -0
  817. package/dist/trinityCore/pickRay.js.map +1 -0
  818. package/dist/trinityCore/rawData/CjsPerFrameLayouts.js +517 -0
  819. package/dist/trinityCore/rawData/CjsPerFrameLayouts.js.map +1 -0
  820. package/dist/trinityCore/rawData/CjsPerObjectLayouts.js +790 -0
  821. package/dist/trinityCore/rawData/CjsPerObjectLayouts.js.map +1 -0
  822. package/dist/trinityCore/rawData/RawData.js +323 -39
  823. package/dist/trinityCore/rawData/RawData.js.map +1 -1
  824. package/dist/trinityCore/rawData/TriPoolAllocator.js +357 -0
  825. package/dist/trinityCore/rawData/TriPoolAllocator.js.map +1 -0
  826. package/dist/trinityCore/rawData/constantLayout.js +175 -0
  827. package/dist/trinityCore/rawData/constantLayout.js.map +1 -0
  828. package/dist/utilities/Range.js +53 -0
  829. package/dist/utilities/Range.js.map +1 -1
  830. package/docs/README.md +88 -0
  831. package/docs/architecture.md +162 -0
  832. package/docs/concepts/eve-runtime-behavior.md +86 -0
  833. package/docs/concepts/generated-class-lifecycle.md +116 -0
  834. package/docs/reference/api.md +76 -0
  835. package/docs/reference/classes/eve-runtime.md +106 -0
  836. package/docs/reference/classes/trinity-core.md +26 -0
  837. package/docs/reference/implementation-status.md +104 -0
  838. package/docs/reference/main-semantic-extraction.md +104 -0
  839. package/package.json +34 -24
  840. package/dist/eve/DecalVSPerObjectData.js +0 -34
  841. package/dist/eve/DecalVSPerObjectData.js.map +0 -1
  842. package/dist/eve/EveBannerItem.js +0 -43
  843. package/dist/eve/EveBannerItem.js.map +0 -1
  844. package/dist/eve/EveBannerLight.js.map +0 -1
  845. package/dist/eve/EveBannerSet.js +0 -190
  846. package/dist/eve/EveBannerSet.js.map +0 -1
  847. package/dist/eve/EveBasicPerObjectData.js +0 -31
  848. package/dist/eve/EveBasicPerObjectData.js.map +0 -1
  849. package/dist/eve/EveBoosterSet2.js.map +0 -1
  850. package/dist/eve/EveBoosterSet2Renderable.js.map +0 -1
  851. package/dist/eve/EveChildSpherePinPerObjectData.js +0 -37
  852. package/dist/eve/EveChildSpherePinPerObjectData.js.map +0 -1
  853. package/dist/eve/EveHazeSet.js.map +0 -1
  854. package/dist/eve/EveHazeSetLight.js.map +0 -1
  855. package/dist/eve/EveLocator2.js.map +0 -1
  856. package/dist/eve/EveLocatorSets.js.map +0 -1
  857. package/dist/eve/EveParticleDirectForce.js.map +0 -1
  858. package/dist/eve/EveParticleDragForce.js.map +0 -1
  859. package/dist/eve/EveParticleSpring.js.map +0 -1
  860. package/dist/eve/EvePerObjectPSData.js +0 -29
  861. package/dist/eve/EvePerObjectPSData.js.map +0 -1
  862. package/dist/eve/EvePerObjectVSData.js +0 -29
  863. package/dist/eve/EvePerObjectVSData.js.map +0 -1
  864. package/dist/eve/EvePlaneLight.js.map +0 -1
  865. package/dist/eve/EvePlaneSet.js.map +0 -1
  866. package/dist/eve/EvePlaneSetItem.js +0 -45
  867. package/dist/eve/EvePlaneSetItem.js.map +0 -1
  868. package/dist/eve/EveSpaceObjectAttachmentUtils.js.map +0 -1
  869. package/dist/eve/EveSpaceObjectDecal.js +0 -150
  870. package/dist/eve/EveSpaceObjectDecal.js.map +0 -1
  871. package/dist/eve/EveSpaceObjectPSData.js +0 -73
  872. package/dist/eve/EveSpaceObjectPSData.js.map +0 -1
  873. package/dist/eve/EveSpaceObjectVSData.js +0 -79
  874. package/dist/eve/EveSpaceObjectVSData.js.map +0 -1
  875. package/dist/eve/EveSpacePerObjectData.js +0 -97
  876. package/dist/eve/EveSpacePerObjectData.js.map +0 -1
  877. package/dist/eve/EveSpherePinPerObjectData.js +0 -37
  878. package/dist/eve/EveSpherePinPerObjectData.js.map +0 -1
  879. package/dist/eve/EveSpotlightLight.js.map +0 -1
  880. package/dist/eve/EveSpotlightSet.js.map +0 -1
  881. package/dist/eve/EveSpriteLight.js.map +0 -1
  882. package/dist/eve/EveSpriteLineSet.js.map +0 -1
  883. package/dist/eve/EveSpriteLineSetItem.js.map +0 -1
  884. package/dist/eve/EveSpriteSet.js.map +0 -1
  885. package/dist/eve/EveTrailsSet.js.map +0 -1
  886. package/dist/eve/Locator.js.map +0 -1
  887. package/dist/eve/LocatorData.js.map +0 -1
  888. package/dist/eve/ProcessLifetimeData.js.map +0 -1
  889. package/dist/eve/attachment/turrets/EveTurretSetPSData.js +0 -47
  890. package/dist/eve/attachment/turrets/EveTurretSetPSData.js.map +0 -1
  891. package/dist/eve/attachment/turrets/EveTurretSetVSData.js +0 -62
  892. package/dist/eve/attachment/turrets/EveTurretSetVSData.js.map +0 -1
  893. package/dist/eve/child/behaviors/SplineTunnel.js.map +0 -1
  894. package/dist/eve/child/behaviors/SplineTunnelPoint.js.map +0 -1
  895. package/dist/eve/perObjectData/DecalPSPerObjectData.js +0 -56
  896. package/dist/eve/perObjectData/DecalPSPerObjectData.js.map +0 -1
  897. package/dist/eve/perObjectData/EveMissileWarheadPerObjectData.js +0 -31
  898. package/dist/eve/perObjectData/EveMissileWarheadPerObjectData.js.map +0 -1
  899. package/dist/eve/perObjectData/EveTurretSetPerObjectData.js +0 -36
  900. package/dist/eve/perObjectData/EveTurretSetPerObjectData.js.map +0 -1
  901. package/dist/eve/perObjectData/MergeMorphsConstantBuffer.js +0 -64
  902. package/dist/eve/perObjectData/MergeMorphsConstantBuffer.js.map +0 -1
  903. package/dist/generated/eve/EveCamera.js +0 -264
  904. package/dist/generated/eve/EveCamera.js.map +0 -1
  905. package/dist/generated/eve/EveEntity.js +0 -81
  906. package/dist/generated/eve/EveEntity.js.map +0 -1
  907. package/dist/generated/eve/attachment/decal/index.js +0 -2
  908. package/dist/generated/eve/attachment/decal/index.js.map +0 -1
  909. package/dist/generated/eve/attachment/haze/EveHazeSetItem.js +0 -52
  910. package/dist/generated/eve/attachment/haze/EveHazeSetItem.js.map +0 -1
  911. package/dist/generated/eve/attachment/haze/index.js +0 -2
  912. package/dist/generated/eve/attachment/haze/index.js.map +0 -1
  913. package/dist/generated/eve/attachment/index.js +0 -5
  914. package/dist/generated/eve/attachment/index.js.map +0 -1
  915. package/dist/generated/eve/attachment/spotlights/EveSpotlightSetItem.js +0 -55
  916. package/dist/generated/eve/attachment/spotlights/EveSpotlightSetItem.js.map +0 -1
  917. package/dist/generated/eve/attachment/spotlights/index.js +0 -2
  918. package/dist/generated/eve/attachment/spotlights/index.js.map +0 -1
  919. package/dist/generated/eve/attachment/sprites/EveSpriteSetItem.js.map +0 -1
  920. package/dist/generated/eve/attachment/sprites/index.js +0 -2
  921. package/dist/generated/eve/attachment/sprites/index.js.map +0 -1
  922. package/dist/generated/eve/attachment/turrets/enums.js +0 -32
  923. package/dist/generated/eve/attachment/turrets/enums.js.map +0 -1
  924. package/dist/generated/eve/attachment/turrets/index.js +0 -2
  925. package/dist/generated/eve/attachment/turrets/index.js.map +0 -1
  926. package/dist/generated/eve/child/EveChildBehaviorSystem.js +0 -357
  927. package/dist/generated/eve/child/EveChildBehaviorSystem.js.map +0 -1
  928. package/dist/generated/eve/child/EveChildBulletStorm.js.map +0 -1
  929. package/dist/generated/eve/child/EveChildLink.js.map +0 -1
  930. package/dist/generated/eve/child/EveChildSpherePin.js +0 -54
  931. package/dist/generated/eve/child/EveChildSpherePin.js.map +0 -1
  932. package/dist/generated/eve/child/behaviors/CollisionAvoidance.js +0 -85
  933. package/dist/generated/eve/child/behaviors/CollisionAvoidance.js.map +0 -1
  934. package/dist/generated/eve/child/behaviors/InclusionVolume.js +0 -104
  935. package/dist/generated/eve/child/behaviors/InclusionVolume.js.map +0 -1
  936. package/dist/generated/eve/child/behaviors/ProcessLifetime.js +0 -458
  937. package/dist/generated/eve/child/behaviors/ProcessLifetime.js.map +0 -1
  938. package/dist/generated/eve/child/behaviors/SplineTunnelGroup.js +0 -161
  939. package/dist/generated/eve/child/behaviors/SplineTunnelGroup.js.map +0 -1
  940. package/dist/generated/eve/child/behaviors/Wander.js +0 -92
  941. package/dist/generated/eve/child/behaviors/Wander.js.map +0 -1
  942. package/dist/generated/eve/child/behaviors/enums.js.map +0 -1
  943. package/dist/generated/eve/child/modifiers/EveChildModifierAttachToBone.js.map +0 -1
  944. package/dist/generated/eve/child/modifiers/EveChildModifierBillboard3D.js.map +0 -1
  945. package/dist/generated/eve/child/modifiers/EveChildModifierStretch.js.map +0 -1
  946. package/dist/generated/eve/child/modifiers/EveChildModifierTranslateWithCamera.js.map +0 -1
  947. package/dist/generated/eve/child/modifiers/index.js +0 -5
  948. package/dist/generated/eve/child/modifiers/index.js.map +0 -1
  949. package/dist/generated/eve/child/procedural/EveChildProceduralContainer.js.map +0 -1
  950. package/dist/generated/eve/child/procedural/index.js +0 -10
  951. package/dist/generated/eve/child/procedural/index.js.map +0 -1
  952. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodAttributeMap.js.map +0 -1
  953. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js.map +0 -1
  954. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodCycling.js.map +0 -1
  955. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodCyclingParameter.js.map +0 -1
  956. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodRandom.js.map +0 -1
  957. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodRandomParameter.js.map +0 -1
  958. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodThresholdParameter.js.map +0 -1
  959. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodThresholds.js.map +0 -1
  960. package/dist/generated/eve/child/procedural/selection/index.js +0 -9
  961. package/dist/generated/eve/child/procedural/selection/index.js.map +0 -1
  962. package/dist/generated/eve/distribution/EveBaseDistributionMethod.js.map +0 -1
  963. package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js.map +0 -1
  964. package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js.map +0 -1
  965. package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js.map +0 -1
  966. package/dist/generated/eve/distribution/attributeModifiers/enums.js.map +0 -1
  967. package/dist/generated/eve/distribution/attributeModifiers/index.js +0 -5
  968. package/dist/generated/eve/distribution/attributeModifiers/index.js.map +0 -1
  969. package/dist/generated/eve/distribution/index.js +0 -19
  970. package/dist/generated/eve/distribution/index.js.map +0 -1
  971. package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorLocators.js.map +0 -1
  972. package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js.map +0 -1
  973. package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorVolume.js.map +0 -1
  974. package/dist/generated/eve/distribution/placement/index.js +0 -4
  975. package/dist/generated/eve/distribution/placement/index.js.map +0 -1
  976. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js.map +0 -1
  977. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js.map +0 -1
  978. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js.map +0 -1
  979. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js.map +0 -1
  980. package/dist/generated/eve/distribution/spawnModifiers/index.js +0 -5
  981. package/dist/generated/eve/distribution/spawnModifiers/index.js.map +0 -1
  982. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerBurst.js.map +0 -1
  983. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerControllerTrigger.js.map +0 -1
  984. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerInterval.js.map +0 -1
  985. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerPlane.js.map +0 -1
  986. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerSnake.js.map +0 -1
  987. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerSphere.js.map +0 -1
  988. package/dist/generated/eve/distribution/spawners/index.js +0 -7
  989. package/dist/generated/eve/distribution/spawners/index.js.map +0 -1
  990. package/dist/generated/eve/effect/EveLensflare.js.map +0 -1
  991. package/dist/generated/eve/effect/EveMultiEffect.js +0 -84
  992. package/dist/generated/eve/effect/EveMultiEffect.js.map +0 -1
  993. package/dist/generated/eve/effect/EveMultiEffectParameter.js +0 -45
  994. package/dist/generated/eve/effect/EveMultiEffectParameter.js.map +0 -1
  995. package/dist/generated/eve/fxAttributes/EveCameraFxAttributes.js +0 -47
  996. package/dist/generated/eve/fxAttributes/EveCameraFxAttributes.js.map +0 -1
  997. package/dist/generated/eve/fxAttributes/EveSpaceObjectFxAttributes.js +0 -63
  998. package/dist/generated/eve/fxAttributes/EveSpaceObjectFxAttributes.js.map +0 -1
  999. package/dist/generated/eve/fxAttributes/index.js +0 -3
  1000. package/dist/generated/eve/fxAttributes/index.js.map +0 -1
  1001. package/dist/generated/eve/overlays/EveMeshOverlayEffect.js +0 -58
  1002. package/dist/generated/eve/overlays/EveMeshOverlayEffect.js.map +0 -1
  1003. package/dist/generated/eve/overlays/index.js +0 -2
  1004. package/dist/generated/eve/overlays/index.js.map +0 -1
  1005. package/dist/generated/eve/perObjectData/EveBoosterSetPerObjectData.js +0 -66
  1006. package/dist/generated/eve/perObjectData/EveBoosterSetPerObjectData.js.map +0 -1
  1007. package/dist/generated/eve/perObjectData/EveChildBulletStormPerObjectData.js +0 -39
  1008. package/dist/generated/eve/perObjectData/EveChildBulletStormPerObjectData.js.map +0 -1
  1009. package/dist/generated/eve/perObjectData/EveDecalPerObjectData.js +0 -34
  1010. package/dist/generated/eve/perObjectData/EveDecalPerObjectData.js.map +0 -1
  1011. package/dist/generated/eve/perObjectData/EveSceneStaticParticlesPerObjectData.js +0 -32
  1012. package/dist/generated/eve/perObjectData/EveSceneStaticParticlesPerObjectData.js.map +0 -1
  1013. package/dist/generated/eve/perObjectData/index.js +0 -5
  1014. package/dist/generated/eve/perObjectData/index.js.map +0 -1
  1015. package/dist/generated/eve/scene/EveComponentCollection.js.map +0 -1
  1016. package/dist/generated/eve/scene/EveComponentRegistry.js.map +0 -1
  1017. package/dist/generated/eve/scene/EvePickingContext.js +0 -43
  1018. package/dist/generated/eve/scene/EvePickingContext.js.map +0 -1
  1019. package/dist/generated/eve/scene/EveSceneStaticParticles.js.map +0 -1
  1020. package/dist/generated/eve/scene/TriShadowFrustum.js +0 -83
  1021. package/dist/generated/eve/scene/TriShadowFrustum.js.map +0 -1
  1022. package/dist/generated/eve/scene/TriShadowOrthoFrustum.js +0 -140
  1023. package/dist/generated/eve/scene/TriShadowOrthoFrustum.js.map +0 -1
  1024. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js.map +0 -1
  1025. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js.map +0 -1
  1026. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js.map +0 -1
  1027. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js.map +0 -1
  1028. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js.map +0 -1
  1029. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js.map +0 -1
  1030. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js.map +0 -1
  1031. package/dist/generated/eve/smartLights/attributeModifiers/enums.js.map +0 -1
  1032. package/dist/generated/eve/smartLights/attributeModifiers/index.js +0 -9
  1033. package/dist/generated/eve/smartLights/attributeModifiers/index.js.map +0 -1
  1034. package/dist/generated/eve/socket/EveSocketParameterBindingBase.js.map +0 -1
  1035. package/dist/generated/eve/socket/EveSocketParameterBool.js.map +0 -1
  1036. package/dist/generated/eve/socket/EveSocketParameterColor.js.map +0 -1
  1037. package/dist/generated/eve/socket/EveSocketParameterFloat.js.map +0 -1
  1038. package/dist/generated/eve/socket/EveSocketParameterInt.js.map +0 -1
  1039. package/dist/generated/eve/socket/EveSocketParameterString.js.map +0 -1
  1040. package/dist/generated/eve/socket/EveSocketParameterVector2.js.map +0 -1
  1041. package/dist/generated/eve/socket/EveSocketParameterVector3.js.map +0 -1
  1042. package/dist/generated/eve/socket/EveSocketParameterVector4.js.map +0 -1
  1043. package/dist/generated/eve/socket/index.js +0 -10
  1044. package/dist/generated/eve/socket/index.js.map +0 -1
  1045. package/dist/generated/eve/spaceObject/EvePlanet.js.map +0 -1
  1046. package/dist/generated/eve/spaceObject/EveShip2.js.map +0 -1
  1047. package/dist/generated/eve/spaceObject/IEveSpaceObject2.js +0 -46
  1048. package/dist/generated/eve/spaceObject/IEveSpaceObject2.js.map +0 -1
  1049. package/dist/generated/eve/spaceObject/swarm/EveSwarmRenderable.js.map +0 -1
  1050. package/dist/generated/eve/ui/EveLineSet.js.map +0 -1
  1051. package/dist/generated/eve/ui/EveSpherePin.js.map +0 -1
  1052. package/dist/generated/eve/ui/EveTacticalOverlayTrackObject.js +0 -44
  1053. package/dist/generated/eve/ui/EveTacticalOverlayTrackObject.js.map +0 -1
  1054. package/dist/generated/eve/ui/EveTacticalTrails.js.map +0 -1
  1055. package/dist/generated/trinityCore/Tr2DynamicBinding.js +0 -58
  1056. package/dist/generated/trinityCore/Tr2DynamicBinding.js.map +0 -1
  1057. package/dist/generated/trinityCore/Tr2ExternalParameter.js +0 -164
  1058. package/dist/generated/trinityCore/Tr2ExternalParameter.js.map +0 -1
  1059. package/dist/generated/trinityCore/Tr2GrannyAnimation.js.map +0 -1
  1060. package/dist/generated/trinityCore/Tr2ShLightingManager.js +0 -48
  1061. package/dist/generated/trinityCore/Tr2ShLightingManager.js.map +0 -1
  1062. package/dist/generated/trinityCore/TriValueBinding.js +0 -249
  1063. package/dist/generated/trinityCore/TriValueBinding.js.map +0 -1
  1064. package/dist/shader/Tr2Shader.js +0 -150
  1065. package/dist/shader/Tr2Shader.js.map +0 -1
  1066. package/dist/shader/reflection/Tr2EffectConstant.js +0 -61
  1067. package/dist/shader/reflection/Tr2EffectConstant.js.map +0 -1
  1068. package/dist/shader/reflection/Tr2EffectDefine.js +0 -34
  1069. package/dist/shader/reflection/Tr2EffectDefine.js.map +0 -1
  1070. package/dist/shader/reflection/Tr2EffectDescription.js +0 -34
  1071. package/dist/shader/reflection/Tr2EffectDescription.js.map +0 -1
  1072. package/dist/shader/reflection/Tr2EffectLibrary.js +0 -61
  1073. package/dist/shader/reflection/Tr2EffectLibrary.js.map +0 -1
  1074. package/dist/shader/reflection/Tr2EffectParameterAnnotation.js +0 -54
  1075. package/dist/shader/reflection/Tr2EffectParameterAnnotation.js.map +0 -1
  1076. package/dist/shader/reflection/Tr2EffectResource.js +0 -63
  1077. package/dist/shader/reflection/Tr2EffectResource.js.map +0 -1
  1078. package/dist/shader/reflection/Tr2EffectStageInput.js +0 -58
  1079. package/dist/shader/reflection/Tr2EffectStageInput.js.map +0 -1
  1080. package/dist/shader/reflection/Tr2EffectTechnique.js +0 -40
  1081. package/dist/shader/reflection/Tr2EffectTechnique.js.map +0 -1
  1082. package/dist/shader/reflection/Tr2Pass.js +0 -46
  1083. package/dist/shader/reflection/Tr2Pass.js.map +0 -1
  1084. package/dist/shader/sampler/Tr2SamplerSetup.js +0 -34
  1085. package/dist/shader/sampler/Tr2SamplerSetup.js.map +0 -1
  1086. package/dist/trinityCore/Tr2BindingVector3.js.map +0 -1
  1087. package/dist/trinityCore/Tr2PyValueBinding.js.map +0 -1
  1088. package/dist/trinityCore/rawData/RawDataStore.js +0 -232
  1089. package/dist/trinityCore/rawData/RawDataStore.js.map +0 -1
  1090. /package/dist/{generated/eve → eve}/distribution/attributeModifiers/enums.js +0 -0
  1091. /package/dist/{generated/eve → eve}/smartLights/attributeModifiers/enums.js +0 -0
@@ -1,44 +1,59 @@
1
1
  import { identity as _identity, applyDecs2311 as _applyDecs2311 } from '../_virtual/_rollupPluginBabelHelpers.js';
2
2
  import { mat4 } from '@carbonenginejs/runtime-utils/mat4';
3
3
  import { CjsModel } from '@carbonenginejs/runtime-utils/model';
4
- import { type, io, carbon, impl } from '@carbonenginejs/runtime-utils/schema';
4
+ import { io, type, carbon, impl } from '@carbonenginejs/runtime-utils/schema';
5
5
 
6
- let _initProto, _initClass, _init_projectionType, _init_extra_projectionType, _init_fov, _init_extra_fov, _init_aspect, _init_extra_aspect, _init_left, _init_extra_left, _init_right, _init_extra_right, _init_bottom, _init_extra_bottom, _init_top, _init_extra_top, _init_zn, _init_extra_zn, _init_zf, _init_extra_zf, _init_customTransform, _init_extra_customTransform, _init_transform, _init_extra_transform;
6
+ let _initProto, _initClass, _init_transform, _init_extra_transform;
7
+
8
+ /**
9
+ * The camera projection: the selected projection mode with its parameters, plus
10
+ * the 4x4 matrix built from them.
11
+ */
7
12
  let _TriProjection;
8
13
  new class extends _identity {
9
14
  static [class TriProjection extends CjsModel {
10
15
  static {
11
16
  ({
12
- e: [_init_projectionType, _init_extra_projectionType, _init_fov, _init_extra_fov, _init_aspect, _init_extra_aspect, _init_left, _init_extra_left, _init_right, _init_extra_right, _init_bottom, _init_extra_bottom, _init_top, _init_extra_top, _init_zn, _init_extra_zn, _init_zf, _init_extra_zf, _init_customTransform, _init_extra_customTransform, _init_transform, _init_extra_transform, _initProto],
17
+ e: [_init_transform, _init_extra_transform, _initProto],
13
18
  c: [_TriProjection, _initClass]
14
19
  } = _applyDecs2311(this, [type.define({
15
20
  className: "TriProjection",
16
21
  family: "trinityCore"
17
- })], [[[type, type.int8], 16, "projectionType"], [[type, type.float32], 16, "fov"], [[type, type.float32], 16, "aspect"], [[type, type.float32], 16, "left"], [[type, type.float32], 16, "right"], [[type, type.float32], 16, "bottom"], [[type, type.float32], 16, "top"], [[type, type.float32], 16, "zn"], [[type, type.float32], 16, "zf"], [[type, type.mat4], 16, "customTransform"], [[io, io.read, type, type.mat4], 16, "transform"], [[carbon, carbon.method, impl, impl.implemented], 18, "PerspectiveFov"], [[carbon, carbon.method, impl, impl.implemented], 18, "PerspectiveOffCenter"], [[carbon, carbon.method, impl, impl.implemented], 18, "PerspectiveOrthographic"], [[carbon, carbon.method, impl, impl.adapted], 18, "CustomProjection"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetProjectionType"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetMatrixWithoutViewAdjustment"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetTransform"]], 0, void 0, CjsModel));
22
+ })], [[[io, io.read, type, type.mat4], 16, "transform"], [[carbon, carbon.method, impl, impl.implemented], 18, "PerspectiveFov"], [[carbon, carbon.method, impl, impl.implemented], 18, "PerspectiveOffCenter"], [[carbon, carbon.method, impl, impl.implemented], 18, "PerspectiveOrthographic"], [[carbon, carbon.method, impl, impl.adapted], 18, "CustomProjection"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetProjectionType"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetMatrixWithoutViewAdjustment"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetTransform"]], 0, void 0, CjsModel));
18
23
  }
19
24
  constructor(...args) {
20
25
  super(...args);
21
26
  _init_extra_transform(this);
22
27
  }
23
- projectionType = (_initProto(this), _init_projectionType(this, 0));
24
- fov = (_init_extra_projectionType(this), _init_fov(this, 0));
25
- aspect = (_init_extra_fov(this), _init_aspect(this, 0));
26
- left = (_init_extra_aspect(this), _init_left(this, 0));
27
- right = (_init_extra_left(this), _init_right(this, 0));
28
- bottom = (_init_extra_right(this), _init_bottom(this, 0));
29
- top = (_init_extra_bottom(this), _init_top(this, 0));
30
- zn = (_init_extra_top(this), _init_zn(this, 0));
31
- zf = (_init_extra_zn(this), _init_zf(this, 0));
32
- customTransform = (_init_extra_zf(this), _init_customTransform(this, mat4.create()));
33
- transform = (_init_extra_customTransform(this), _init_transform(this, mat4.create()));
28
+ projectionType = (_initProto(this), 0);
29
+ fov = 0;
30
+ aspect = 0;
31
+ left = 0;
32
+ right = 0;
33
+ bottom = 0;
34
+ top = 0;
35
+ zn = 0;
36
+ zf = 0;
37
+ customTransform = mat4.create();
38
+ transform = _init_transform(this, mat4.create());
39
+
40
+ /**
41
+ * Selects the field-of-view perspective mode, storing fov (in radians), aspect
42
+ * and the near/far planes, and rebuilds the transform.
43
+ */
34
44
  PerspectiveFov(fov, aspect, zn, zf) {
35
45
  this.projectionType = _TriProjection.FOV;
36
46
  this.fov = fov;
37
47
  this.aspect = aspect;
38
48
  this.zn = zn;
39
49
  this.zf = zf;
40
- _TriProjection.#perspectiveFovLH(this.transform, fov, aspect, zn, zf);
50
+ _TriProjection.#perspectiveFov(this.transform, fov, aspect, zn, zf);
41
51
  }
52
+
53
+ /**
54
+ * Selects the off-centre perspective mode from explicit frustum edges measured
55
+ * at the near plane, and rebuilds the transform.
56
+ */
42
57
  PerspectiveOffCenter(left, right, bottom, top, zn, zf) {
43
58
  this.projectionType = _TriProjection.OFF_CENTER;
44
59
  this.left = left;
@@ -47,74 +62,113 @@ new class extends _identity {
47
62
  this.top = top;
48
63
  this.zn = zn;
49
64
  this.zf = zf;
50
- _TriProjection.#perspectiveOffCenterLH(this.transform, left, right, bottom, top, zn, zf);
65
+ _TriProjection.#perspectiveOffCenter(this.transform, left, right, bottom, top, zn, zf);
51
66
  }
67
+
68
+ /**
69
+ * Selects the orthographic mode; width and height are stored in the left and
70
+ * top slots and front/back in the near and far slots.
71
+ */
52
72
  PerspectiveOrthographic(width, height, front, back) {
53
73
  this.projectionType = _TriProjection.ORTHO;
54
74
  this.left = width;
55
75
  this.top = height;
56
76
  this.zn = front;
57
77
  this.zf = back;
58
- _TriProjection.#orthoLH(this.transform, width, height, front, back);
78
+ _TriProjection.#ortho(this.transform, width, height, front, back);
59
79
  }
80
+
81
+ /**
82
+ * Adopts a caller-supplied matrix verbatim as the projection, copying it
83
+ * rather than retaining the caller's buffer.
84
+ */
60
85
  CustomProjection(value) {
61
86
  this.projectionType = _TriProjection.CUSTOM;
62
87
  mat4.copy(this.customTransform, value);
63
88
  mat4.copy(this.transform, value);
64
89
  }
90
+
91
+ /** The active mode, one of the FOV, OFF_CENTER, ORTHO or CUSTOM constants. */
65
92
  GetProjectionType() {
66
93
  return this.projectionType;
67
94
  }
95
+
96
+ /**
97
+ * Rebuilds the projection matrix from the stored parameters, without any view-dependent adjustment; an unset projection type yields identity.
98
+ * @param {mat4} [out] Caller-owned destination; a new matrix is allocated when omitted.
99
+ * @returns {mat4} The destination matrix.
100
+ */
68
101
  GetMatrixWithoutViewAdjustment(out = mat4.create()) {
69
102
  switch (this.projectionType) {
70
103
  case _TriProjection.FOV:
71
- return _TriProjection.#perspectiveFovLH(out, this.fov, this.aspect, this.zn, this.zf);
104
+ return _TriProjection.#perspectiveFov(out, this.fov, this.aspect, this.zn, this.zf);
72
105
  case _TriProjection.OFF_CENTER:
73
- return _TriProjection.#perspectiveOffCenterLH(out, this.left, this.right, this.bottom, this.top, this.zn, this.zf);
106
+ return _TriProjection.#perspectiveOffCenter(out, this.left, this.right, this.bottom, this.top, this.zn, this.zf);
74
107
  case _TriProjection.ORTHO:
75
- return _TriProjection.#orthoLH(out, this.left, this.top, this.zn, this.zf);
108
+ return _TriProjection.#ortho(out, this.left, this.top, this.zn, this.zf);
76
109
  case _TriProjection.CUSTOM:
77
110
  return mat4.copy(out, this.customTransform);
78
111
  default:
79
112
  return mat4.identity(out);
80
113
  }
81
114
  }
115
+
116
+ /**
117
+ * Rebuilds the cached transform field from the current parameters, then copies
118
+ * it into out (a fresh matrix when omitted) and returns it.
119
+ */
82
120
  GetTransform(out = mat4.create()) {
83
121
  this.GetMatrixWithoutViewAdjustment(this.transform);
84
122
  return mat4.copy(out, this.transform);
85
123
  }
124
+
125
+ /**
126
+ * Builds the right-handed field-of-view perspective matrix with a zero-to-one
127
+ * depth range (w takes -z).
128
+ */
129
+
130
+ /**
131
+ * Builds the right-handed off-centre perspective matrix from the near-plane
132
+ * frustum edges; the vertical terms follow Carbon's top-above-bottom
133
+ * convention and so carry the opposite sign to the usual form.
134
+ */
135
+
136
+ /**
137
+ * Builds the orthographic matrix from width, height and the near/far planes,
138
+ * with a zero-to-one depth range.
139
+ */
86
140
  }];
87
141
  FOV = 1;
88
142
  OFF_CENTER = 2;
89
143
  ORTHO = 3;
90
144
  CUSTOM = 4;
91
- #perspectiveFovLH(out, fov, aspect, zn, zf) {
145
+ #perspectiveFov(out, fov, aspect, zn, zf) {
92
146
  const yScale = 1 / Math.tan(fov * 0.5);
93
147
  const xScale = yScale / aspect;
94
148
  out.fill(0);
95
149
  out[0] = xScale;
96
150
  out[5] = yScale;
97
- out[10] = zf / (zf - zn);
98
- out[11] = 1;
151
+ out[10] = zf / (zn - zf);
152
+ out[11] = -1;
99
153
  out[14] = zn * zf / (zn - zf);
100
154
  return out;
101
155
  }
102
- #perspectiveOffCenterLH(out, left, right, bottom, top, zn, zf) {
156
+ #perspectiveOffCenter(out, left, right, bottom, top, zn, zf) {
103
157
  out.fill(0);
104
158
  out[0] = 2 * zn / (right - left);
105
- out[5] = 2 * zn / (top - bottom);
106
- out[8] = (left + right) / (left - right);
107
- out[9] = (top + bottom) / (bottom - top);
108
- out[10] = zf / (zf - zn);
109
- out[11] = 1;
159
+ out[5] = -2 * zn / (bottom - top);
160
+ out[8] = 1 + 2 * left / (right - left);
161
+ out[9] = -1 - 2 * top / (bottom - top);
162
+ out[10] = zf / (zn - zf);
163
+ out[11] = -1;
110
164
  out[14] = zn * zf / (zn - zf);
111
165
  return out;
112
166
  }
113
- #orthoLH(out, width, height, zn, zf) {
167
+ #ortho(out, width, height, zn, zf) {
114
168
  mat4.identity(out);
115
169
  out[0] = 2 / width;
116
170
  out[5] = 2 / height;
117
- out[10] = 1 / (zf - zn);
171
+ out[10] = 1 / (zn - zf);
118
172
  out[14] = zn / (zn - zf);
119
173
  return out;
120
174
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TriProjection.js","sources":["../../../src/trinityCore/TriProjection.js"],"sourcesContent":["// Source: E:\\carbonengine\\trinity\\trinity\\TriProjection.h\n// Source: E:\\carbonengine\\trinity\\trinity\\TriProjection.cpp\n// Source: E:\\carbonengine\\trinity\\trinity\\TriProjection_Blue.cpp\nimport { mat4 } from \"@carbonenginejs/runtime-utils/mat4\";\nimport { CjsModel } from \"@carbonenginejs/runtime-utils/model\";\nimport { carbon, impl, io, type } from \"@carbonenginejs/runtime-utils/schema\";\n\n\n@type.define({\n className: \"TriProjection\",\n family: \"trinityCore\"\n})\nexport class TriProjection extends CjsModel\n{\n static FOV = 1;\n\n static OFF_CENTER = 2;\n\n static ORTHO = 3;\n\n static CUSTOM = 4;\n\n @type.int8\n projectionType = 0;\n\n @type.float32\n fov = 0;\n\n @type.float32\n aspect = 0;\n\n @type.float32\n left = 0;\n\n @type.float32\n right = 0;\n\n @type.float32\n bottom = 0;\n\n @type.float32\n top = 0;\n\n @type.float32\n zn = 0;\n\n @type.float32\n zf = 0;\n\n @type.mat4\n customTransform = mat4.create();\n\n @io.read\n @type.mat4\n transform = mat4.create();\n\n @carbon.method\n @impl.implemented\n PerspectiveFov(fov, aspect, zn, zf)\n {\n this.projectionType = TriProjection.FOV;\n this.fov = fov;\n this.aspect = aspect;\n this.zn = zn;\n this.zf = zf;\n TriProjection.#perspectiveFovLH(this.transform, fov, aspect, zn, zf);\n }\n\n @carbon.method\n @impl.implemented\n PerspectiveOffCenter(left, right, bottom, top, zn, zf)\n {\n this.projectionType = TriProjection.OFF_CENTER;\n this.left = left;\n this.right = right;\n this.bottom = bottom;\n this.top = top;\n this.zn = zn;\n this.zf = zf;\n TriProjection.#perspectiveOffCenterLH(this.transform, left, right, bottom, top, zn, zf);\n }\n\n @carbon.method\n @impl.implemented\n PerspectiveOrthographic(width, height, front, back)\n {\n this.projectionType = TriProjection.ORTHO;\n this.left = width;\n this.top = height;\n this.zn = front;\n this.zf = back;\n TriProjection.#orthoLH(this.transform, width, height, front, back);\n }\n\n @carbon.method\n @impl.adapted\n CustomProjection(value)\n {\n this.projectionType = TriProjection.CUSTOM;\n mat4.copy(this.customTransform, value);\n mat4.copy(this.transform, value);\n }\n\n @carbon.method\n @impl.implemented\n GetProjectionType()\n {\n return this.projectionType;\n }\n\n @carbon.method\n @impl.adapted\n GetMatrixWithoutViewAdjustment(out = mat4.create())\n {\n switch (this.projectionType)\n {\n case TriProjection.FOV:\n return TriProjection.#perspectiveFovLH(out, this.fov, this.aspect, this.zn, this.zf);\n case TriProjection.OFF_CENTER:\n return TriProjection.#perspectiveOffCenterLH(out, this.left, this.right, this.bottom, this.top, this.zn, this.zf);\n case TriProjection.ORTHO:\n return TriProjection.#orthoLH(out, this.left, this.top, this.zn, this.zf);\n case TriProjection.CUSTOM:\n return mat4.copy(out, this.customTransform);\n default:\n return mat4.identity(out);\n }\n }\n\n @carbon.method\n @impl.adapted\n GetTransform(out = mat4.create())\n {\n this.GetMatrixWithoutViewAdjustment(this.transform);\n return mat4.copy(out, this.transform);\n }\n\n static #perspectiveFovLH(out, fov, aspect, zn, zf)\n {\n const yScale = 1 / Math.tan(fov * 0.5);\n const xScale = yScale / aspect;\n out.fill(0);\n out[0] = xScale;\n out[5] = yScale;\n out[10] = zf / (zf - zn);\n out[11] = 1;\n out[14] = zn * zf / (zn - zf);\n return out;\n }\n\n static #perspectiveOffCenterLH(out, left, right, bottom, top, zn, zf)\n {\n out.fill(0);\n out[0] = 2 * zn / (right - left);\n out[5] = 2 * zn / (top - bottom);\n out[8] = (left + right) / (left - right);\n out[9] = (top + bottom) / (bottom - top);\n out[10] = zf / (zf - zn);\n out[11] = 1;\n out[14] = zn * zf / (zn - zf);\n return out;\n }\n\n static #orthoLH(out, width, height, zn, zf)\n {\n mat4.identity(out);\n out[0] = 2 / width;\n out[5] = 2 / height;\n out[10] = 1 / (zf - zn);\n out[14] = zn / (zn - zf);\n return out;\n }\n}\n"],"names":["_TriProjection","_identity","TriProjection","CjsModel","e","_init_projectionType","_init_extra_projectionType","_init_fov","_init_extra_fov","_init_aspect","_init_extra_aspect","_init_left","_init_extra_left","_init_right","_init_extra_right","_init_bottom","_init_extra_bottom","_init_top","_init_extra_top","_init_zn","_init_extra_zn","_init_zf","_init_extra_zf","_init_customTransform","_init_extra_customTransform","_init_transform","_init_extra_transform","_initProto","c","_initClass","_applyDecs","type","define","className","family","int8","float32","mat4","io","read","carbon","method","impl","implemented","adapted","constructor","args","projectionType","fov","aspect","left","right","bottom","top","zn","zf","customTransform","create","transform","PerspectiveFov","FOV","PerspectiveOffCenter","OFF_CENTER","PerspectiveOrthographic","width","height","front","back","ORTHO","CustomProjection","value","CUSTOM","copy","GetProjectionType","GetMatrixWithoutViewAdjustment","out","identity","GetTransform","#perspectiveFovLH","yScale","Math","tan","xScale","fill","#perspectiveOffCenterLH","#orthoLH"],"mappings":"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"}
1
+ {"version":3,"file":"TriProjection.js","sources":["../../../src/trinityCore/TriProjection.js"],"sourcesContent":["// Source: E:\\carbonengine\\trinity\\trinity\\TriProjection.h\r\n// Source: E:\\carbonengine\\trinity\\trinity\\TriProjection.cpp\r\n// Source: E:\\carbonengine\\trinity\\trinity\\TriProjection_Blue.cpp\r\nimport { mat4 } from \"@carbonenginejs/runtime-utils/mat4\";\r\nimport { CjsModel } from \"@carbonenginejs/runtime-utils/model\";\r\nimport { carbon, impl, io, type } from \"@carbonenginejs/runtime-utils/schema\";\r\n\r\n\r\n/**\r\n * The camera projection: the selected projection mode with its parameters, plus\r\n * the 4x4 matrix built from them.\r\n */\r\n@type.define({\r\n className: \"TriProjection\",\r\n family: \"trinityCore\"\r\n})\r\nexport class TriProjection extends CjsModel\r\n{\r\n static FOV = 1;\r\n\r\n static OFF_CENTER = 2;\r\n\r\n static ORTHO = 3;\r\n\r\n static CUSTOM = 4;\r\n\r\n projectionType = 0;\r\n\r\n fov = 0;\r\n\r\n aspect = 0;\r\n\r\n left = 0;\r\n\r\n right = 0;\r\n\r\n bottom = 0;\r\n\r\n top = 0;\r\n\r\n zn = 0;\r\n\r\n zf = 0;\r\n\r\n customTransform = mat4.create();\r\n\r\n @io.read\r\n @type.mat4\r\n transform = mat4.create();\r\n\r\n /**\r\n * Selects the field-of-view perspective mode, storing fov (in radians), aspect\r\n * and the near/far planes, and rebuilds the transform.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n PerspectiveFov(fov, aspect, zn, zf)\r\n {\r\n this.projectionType = TriProjection.FOV;\r\n this.fov = fov;\r\n this.aspect = aspect;\r\n this.zn = zn;\r\n this.zf = zf;\r\n TriProjection.#perspectiveFov(this.transform, fov, aspect, zn, zf);\r\n }\r\n\r\n /**\r\n * Selects the off-centre perspective mode from explicit frustum edges measured\r\n * at the near plane, and rebuilds the transform.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n PerspectiveOffCenter(left, right, bottom, top, zn, zf)\r\n {\r\n this.projectionType = TriProjection.OFF_CENTER;\r\n this.left = left;\r\n this.right = right;\r\n this.bottom = bottom;\r\n this.top = top;\r\n this.zn = zn;\r\n this.zf = zf;\r\n TriProjection.#perspectiveOffCenter(this.transform, left, right, bottom, top, zn, zf);\r\n }\r\n\r\n /**\r\n * Selects the orthographic mode; width and height are stored in the left and\r\n * top slots and front/back in the near and far slots.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n PerspectiveOrthographic(width, height, front, back)\r\n {\r\n this.projectionType = TriProjection.ORTHO;\r\n this.left = width;\r\n this.top = height;\r\n this.zn = front;\r\n this.zf = back;\r\n TriProjection.#ortho(this.transform, width, height, front, back);\r\n }\r\n\r\n /**\r\n * Adopts a caller-supplied matrix verbatim as the projection, copying it\r\n * rather than retaining the caller's buffer.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n CustomProjection(value)\r\n {\r\n this.projectionType = TriProjection.CUSTOM;\r\n mat4.copy(this.customTransform, value);\r\n mat4.copy(this.transform, value);\r\n }\r\n\r\n /** The active mode, one of the FOV, OFF_CENTER, ORTHO or CUSTOM constants. */\r\n @carbon.method\r\n @impl.implemented\r\n GetProjectionType()\r\n {\r\n return this.projectionType;\r\n }\r\n\r\n /**\r\n * Rebuilds the projection matrix from the stored parameters, without any view-dependent adjustment; an unset projection type yields identity.\r\n * @param {mat4} [out] Caller-owned destination; a new matrix is allocated when omitted.\r\n * @returns {mat4} The destination matrix.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetMatrixWithoutViewAdjustment(out = mat4.create())\r\n {\r\n switch (this.projectionType)\r\n {\r\n case TriProjection.FOV:\r\n return TriProjection.#perspectiveFov(out, this.fov, this.aspect, this.zn, this.zf);\r\n case TriProjection.OFF_CENTER:\r\n return TriProjection.#perspectiveOffCenter(out, this.left, this.right, this.bottom, this.top, this.zn, this.zf);\r\n case TriProjection.ORTHO:\r\n return TriProjection.#ortho(out, this.left, this.top, this.zn, this.zf);\r\n case TriProjection.CUSTOM:\r\n return mat4.copy(out, this.customTransform);\r\n default:\r\n return mat4.identity(out);\r\n }\r\n }\r\n\r\n /**\r\n * Rebuilds the cached transform field from the current parameters, then copies\r\n * it into out (a fresh matrix when omitted) and returns it.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetTransform(out = mat4.create())\r\n {\r\n this.GetMatrixWithoutViewAdjustment(this.transform);\r\n return mat4.copy(out, this.transform);\r\n }\r\n\r\n /**\r\n * Builds the right-handed field-of-view perspective matrix with a zero-to-one\r\n * depth range (w takes -z).\r\n */\r\n static #perspectiveFov(out, fov, aspect, zn, zf)\r\n {\r\n const yScale = 1 / Math.tan(fov * 0.5);\r\n const xScale = yScale / aspect;\r\n out.fill(0);\r\n out[0] = xScale;\r\n out[5] = yScale;\r\n out[10] = zf / (zn - zf);\r\n out[11] = -1;\r\n out[14] = zn * zf / (zn - zf);\r\n return out;\r\n }\r\n\r\n /**\r\n * Builds the right-handed off-centre perspective matrix from the near-plane\r\n * frustum edges; the vertical terms follow Carbon's top-above-bottom\r\n * convention and so carry the opposite sign to the usual form.\r\n */\r\n static #perspectiveOffCenter(out, left, right, bottom, top, zn, zf)\r\n {\r\n out.fill(0);\r\n out[0] = 2 * zn / (right - left);\r\n out[5] = -2 * zn / (bottom - top);\r\n out[8] = 1 + 2 * left / (right - left);\r\n out[9] = -1 - 2 * top / (bottom - top);\r\n out[10] = zf / (zn - zf);\r\n out[11] = -1;\r\n out[14] = zn * zf / (zn - zf);\r\n return out;\r\n }\r\n\r\n /**\r\n * Builds the orthographic matrix from width, height and the near/far planes,\r\n * with a zero-to-one depth range.\r\n */\r\n static #ortho(out, width, height, zn, zf)\r\n {\r\n mat4.identity(out);\r\n out[0] = 2 / width;\r\n out[5] = 2 / height;\r\n out[10] = 1 / (zn - zf);\r\n out[14] = zn / (zn - zf);\r\n return out;\r\n }\r\n}\r\n"],"names":["_TriProjection","_identity","TriProjection","CjsModel","e","_init_transform","_init_extra_transform","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","read","mat4","carbon","method","impl","implemented","adapted","constructor","args","projectionType","fov","aspect","left","right","bottom","top","zn","zf","customTransform","create","transform","PerspectiveFov","FOV","PerspectiveOffCenter","OFF_CENTER","PerspectiveOrthographic","width","height","front","back","ORTHO","CustomProjection","value","CUSTOM","copy","GetProjectionType","GetMatrixWithoutViewAdjustment","out","identity","GetTransform","#perspectiveFov","yScale","Math","tan","xScale","fill","#perspectiveOffCenter","#ortho"],"mappings":"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"}
@@ -3,6 +3,8 @@ import { CjsModel } from '@carbonenginejs/runtime-utils/model';
3
3
  import { io, type, carbon, impl } from '@carbonenginejs/runtime-utils/schema';
4
4
 
5
5
  let _initProto, _initClass, _init_left, _init_extra_left, _init_top, _init_extra_top, _init_right, _init_extra_right, _init_bottom, _init_extra_bottom;
6
+
7
+ /** An integer screen rectangle given by its left, top, right and bottom edges. */
6
8
  let _TriRect;
7
9
  class TriRect extends CjsModel {
8
10
  static {
@@ -22,12 +24,22 @@ class TriRect extends CjsModel {
22
24
  top = (_init_extra_left(this), _init_top(this, 0));
23
25
  right = (_init_extra_top(this), _init_right(this, 0));
24
26
  bottom = (_init_extra_right(this), _init_bottom(this, 0));
27
+
28
+ /**
29
+ * Python-style constructor hook; assigns all four edges, each defaulting to
30
+ * zero.
31
+ */
25
32
  __init__(left = 0, top = 0, right = 0, bottom = 0) {
26
33
  this.left = left;
27
34
  this.top = top;
28
35
  this.right = right;
29
36
  this.bottom = bottom;
30
37
  }
38
+
39
+ /**
40
+ * Assigns the supplied edges, leaving any edge passed as undefined at its
41
+ * current value.
42
+ */
31
43
  SetRect(left, top, right, bottom) {
32
44
  if (left !== undefined) {
33
45
  this.left = left;
@@ -1 +1 @@
1
- {"version":3,"file":"TriRect.js","sources":["../../../src/trinityCore/TriRect.js"],"sourcesContent":["// Source: E:\\carbonengine\\trinity\\trinity\\TriRect.h\n// Source: E:\\carbonengine\\trinity\\trinity\\TriRect.cpp\n// Source: E:\\carbonengine\\trinity\\trinity\\TriRect_Blue.cpp\nimport { CjsModel } from \"@carbonenginejs/runtime-utils/model\";\nimport { carbon, impl, io, type } from \"@carbonenginejs/runtime-utils/schema\";\n\n\n@type.define({\n className: \"TriRect\",\n family: \"trinityCore\"\n})\nexport class TriRect extends CjsModel\n{\n @io.persist\n @type.int32\n left = 0;\n\n @io.persist\n @type.int32\n top = 0;\n\n @io.persist\n @type.int32\n right = 0;\n\n @io.persist\n @type.int32\n bottom = 0;\n\n @carbon.method\n @impl.adapted\n __init__(left = 0, top = 0, right = 0, bottom = 0)\n {\n this.left = left;\n this.top = top;\n this.right = right;\n this.bottom = bottom;\n }\n\n @carbon.method\n @impl.adapted\n SetRect(left, top, right, bottom)\n {\n if (left !== undefined)\n {\n this.left = left;\n }\n if (top !== undefined)\n {\n this.top = top;\n }\n if (right !== undefined)\n {\n this.right = right;\n }\n if (bottom !== undefined)\n {\n this.bottom = bottom;\n }\n }\n}\n"],"names":["_TriRect","TriRect","CjsModel","e","_init_left","_init_extra_left","_init_top","_init_extra_top","_init_right","_init_extra_right","_init_bottom","_init_extra_bottom","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persist","int32","carbon","method","impl","adapted","constructor","args","left","top","right","bottom","__init__","SetRect","undefined"],"mappings":"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"}
1
+ {"version":3,"file":"TriRect.js","sources":["../../../src/trinityCore/TriRect.js"],"sourcesContent":["// Source: E:\\carbonengine\\trinity\\trinity\\TriRect.h\n// Source: E:\\carbonengine\\trinity\\trinity\\TriRect.cpp\n// Source: E:\\carbonengine\\trinity\\trinity\\TriRect_Blue.cpp\nimport { CjsModel } from \"@carbonenginejs/runtime-utils/model\";\nimport { carbon, impl, io, type } from \"@carbonenginejs/runtime-utils/schema\";\n\n\n/** An integer screen rectangle given by its left, top, right and bottom edges. */\n@type.define({\n className: \"TriRect\",\n family: \"trinityCore\"\n})\nexport class TriRect extends CjsModel\n{\n @io.persist\n @type.int32\n left = 0;\n\n @io.persist\n @type.int32\n top = 0;\n\n @io.persist\n @type.int32\n right = 0;\n\n @io.persist\n @type.int32\n bottom = 0;\n\n /**\n * Python-style constructor hook; assigns all four edges, each defaulting to\n * zero.\n */\n @carbon.method\n @impl.adapted\n __init__(left = 0, top = 0, right = 0, bottom = 0)\n {\n this.left = left;\n this.top = top;\n this.right = right;\n this.bottom = bottom;\n }\n\n /**\n * Assigns the supplied edges, leaving any edge passed as undefined at its\n * current value.\n */\n @carbon.method\n @impl.adapted\n SetRect(left, top, right, bottom)\n {\n if (left !== undefined)\n {\n this.left = left;\n }\n if (top !== undefined)\n {\n this.top = top;\n }\n if (right !== undefined)\n {\n this.right = right;\n }\n if (bottom !== undefined)\n {\n this.bottom = bottom;\n }\n }\n}\n"],"names":["_TriRect","TriRect","CjsModel","e","_init_left","_init_extra_left","_init_top","_init_extra_top","_init_right","_init_extra_right","_init_bottom","_init_extra_bottom","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persist","int32","carbon","method","impl","adapted","constructor","args","left","top","right","bottom","__init__","SetRect","undefined"],"mappings":"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"}
@@ -38,13 +38,28 @@ const EffectKeyGenerator = {
38
38
  return RenderBatchSortType.RENDERBATCHSORTTYPE_SORT;
39
39
  }
40
40
  };
41
+
42
+ /**
43
+ * Concrete GPU-free batch accumulator: collects committed batches into a
44
+ * GDPR-eligible and a plain vector, then sorts and group-counts them on
45
+ * Finalize.
46
+ */
41
47
  class TriRenderBatchAccumulator extends ITriRenderBatchAccumulator {
48
+ /**
49
+ * Creates an empty accumulator whose key generator decides sorting and GDPR
50
+ * eligibility, defaulting to the effect-sorted one.
51
+ */
42
52
  constructor(keyGenerator = EffectKeyGenerator) {
43
53
  super();
44
54
  this.keyGenerator = keyGenerator;
45
55
  this.gdprBatches = [];
46
56
  this.batches = [];
47
57
  }
58
+
59
+ /**
60
+ * Drops both batch vectors and resets user data and rendering mode to their
61
+ * defaults.
62
+ */
48
63
  Clear() {
49
64
  this.userData = 0;
50
65
  this.renderingMode = RenderingMode.RM_ANY;
@@ -58,6 +73,14 @@ class TriRenderBatchAccumulator extends ITriRenderBatchAccumulator {
58
73
  // batch's rendering mode is overwritten with the accumulator's mode (faithful
59
74
  // to Carbon). Commit takes ownership of the batch; do not reuse it afterwards.
60
75
  // Returns whether the batch was accepted (JS addition; Carbon returns void).
76
+
77
+ /**
78
+ * Collects a batch, dropping invalid ones and routing GDPR-eligible batches
79
+ * (allowed by the key generator, GDR-compatible material, triangle list,
80
+ * indexed) to the GDPR vector; the batch's rendering mode is overwritten with
81
+ * the accumulator's and ownership passes here, so the caller must not reuse
82
+ * the batch. Returns whether it was accepted.
83
+ */
61
84
  Commit(batch) {
62
85
  if (!batch.IsValid()) return false;
63
86
  if (this.keyGenerator.ALLOW_GDPR && batch.material?.CompatibleWithGdr?.() && batch.topology === D3dPrimitiveTopology.TRIANGLELIST && batch.indexBuffer) {
@@ -71,6 +94,12 @@ class TriRenderBatchAccumulator extends ITriRenderBatchAccumulator {
71
94
 
72
95
  // Folds another accumulator's batches into this one, then clears the source.
73
96
  // Mirrors Carbon TransferFrom (per-thread accumulator merge).
97
+
98
+ /**
99
+ * Folds another accumulator's batches into this one and clears the source; the
100
+ * source's GDPR batches land in the plain vector when this accumulator does
101
+ * not allow GDPR.
102
+ */
74
103
  TransferFrom(source) {
75
104
  const sourceGdpr = source.GetGdprBatches();
76
105
  const sourceBatches = source.GetBatches();
@@ -82,9 +111,13 @@ class TriRenderBatchAccumulator extends ITriRenderBatchAccumulator {
82
111
  for (const batch of sourceBatches) this.batches.push(batch);
83
112
  source.Clear();
84
113
  }
114
+
115
+ /** The live GDPR-eligible batch vector, not a copy. */
85
116
  GetGdprBatches() {
86
117
  return this.gdprBatches;
87
118
  }
119
+
120
+ /** The live plain batch vector, not a copy. */
88
121
  GetBatches() {
89
122
  return this.batches;
90
123
  }
@@ -92,6 +125,12 @@ class TriRenderBatchAccumulator extends ITriRenderBatchAccumulator {
92
125
  // Sorts and group-counts the collected batches. No-op for the order-preserving
93
126
  // key generator; effect/GDPR generators sort both vectors and stamp each
94
127
  // bin-run's length onto its leading batch's groupCount.
128
+
129
+ /**
130
+ * Sorts and group-counts the collected batches: a no-op for the
131
+ * order-preserving key generator, a full bin partition of both vectors for
132
+ * GDPR-enabled ones, and a plain comparator sort otherwise.
133
+ */
95
134
  Finalize() {
96
135
  const sortType = this.keyGenerator.GetSortType();
97
136
  if (sortType === RenderBatchSortType.RENDERBATCHSORTTYPE_NONE) return;
@@ -107,9 +146,16 @@ class TriRenderBatchAccumulator extends ITriRenderBatchAccumulator {
107
146
  return 0;
108
147
  });
109
148
  }
149
+
150
+ /** Total batches across both vectors. */
110
151
  GetBatchCount() {
111
152
  return this.gdprBatches.length + this.batches.length;
112
153
  }
154
+
155
+ /**
156
+ * Whether the batches are effect-sorted, so consecutive batches can share one
157
+ * state-set, rather than order-preserving.
158
+ */
113
159
  IsChainedByEffect() {
114
160
  return this.keyGenerator.GetSortType() !== RenderBatchSortType.RENDERBATCHSORTTYPE_NONE;
115
161
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TriRenderBatchAccumulator.js","sources":["../../../src/trinityCore/TriRenderBatchAccumulator.js"],"sourcesContent":["// Ported from CarbonEngine (MIT, (c) 2026 CCP Games) - https://github.com/carbonengine/trinity\n// trinity/TriRenderBatch.h (TriRenderBatchAccumulator<KeyGenerator>,\n// DefaultKeyGenerator, EffectKeyGenerator)\n//\n// GPU-free render-batch accumulator: collects committed batches into two vectors\n// (GDPR-eligible and plain), then sorts / group-counts them on Finalize. The\n// engine adapter reads GetGdprBatches()/GetBatches()/IsChainedByEffect() from a\n// finalized accumulator and issues the actual draws.\nimport { RenderingMode } from \"@carbonenginejs/runtime-utils/graphics\";\nimport { D3dPrimitiveTopology } from \"@carbonenginejs/runtime-utils/d3d\";\nimport { RenderBatchSortType } from \"../generated/trinityCore/enums.js\";\nimport { ITriRenderBatchAccumulator } from \"./ITriRenderBatchAccumulator.js\";\nimport { CanBeBinned, OrderOf, Tr2GdprBatchFullPartition } from \"./Tr2RenderBatch.js\";\n\n\n// Unsorted, order-preserving, single vector, no GDPR. Used for transparent /\n// order-dependent passes (which are pre-sorted by object distance CPU-side).\nexport const DefaultKeyGenerator = {\n ALLOW_GDPR: false,\n\n Less(_batch1, _batch2)\n {\n return false;\n },\n\n GetSortType()\n {\n return RenderBatchSortType.RENDERBATCHSORTTYPE_NONE;\n }\n};\n\n// Effect-sorted (shader, then vertex declaration); GDPR-enabled. Used for\n// opaque / decal / depth / additive / shadow passes.\nexport const EffectKeyGenerator = {\n ALLOW_GDPR: true,\n\n Less(batch1, batch2)\n {\n const shaderOrder = OrderOf(batch1.shader) - OrderOf(batch2.shader);\n if (shaderOrder !== 0) return shaderOrder < 0;\n return batch1.vertexDeclaration < batch2.vertexDeclaration;\n },\n\n GetSortType()\n {\n return RenderBatchSortType.RENDERBATCHSORTTYPE_SORT;\n }\n};\n\nexport class TriRenderBatchAccumulator extends ITriRenderBatchAccumulator\n{\n constructor(keyGenerator = EffectKeyGenerator)\n {\n super();\n this.keyGenerator = keyGenerator;\n\n this.gdprBatches = [];\n\n this.batches = [];\n }\n\n Clear()\n {\n this.userData = 0;\n this.renderingMode = RenderingMode.RM_ANY;\n this.gdprBatches.length = 0;\n this.batches.length = 0;\n }\n\n // Collects a batch. Invalid batches (no shader) are dropped. GDPR-eligible\n // batches (allowed by the key generator, GDR-compatible material, triangle\n // topology, indexed) go to the GDPR vector; the rest to the plain vector. The\n // batch's rendering mode is overwritten with the accumulator's mode (faithful\n // to Carbon). Commit takes ownership of the batch; do not reuse it afterwards.\n // Returns whether the batch was accepted (JS addition; Carbon returns void).\n Commit(batch)\n {\n if (!batch.IsValid()) return false;\n\n if (this.keyGenerator.ALLOW_GDPR\n && batch.material?.CompatibleWithGdr?.()\n && batch.topology === D3dPrimitiveTopology.TRIANGLELIST\n && batch.indexBuffer)\n {\n this.gdprBatches.push(batch);\n }\n else\n {\n this.batches.push(batch);\n }\n batch.renderingMode = this.renderingMode;\n return true;\n }\n\n // Folds another accumulator's batches into this one, then clears the source.\n // Mirrors Carbon TransferFrom (per-thread accumulator merge).\n TransferFrom(source)\n {\n const sourceGdpr = source.GetGdprBatches();\n const sourceBatches = source.GetBatches();\n\n if (this.keyGenerator.ALLOW_GDPR)\n {\n for (const batch of sourceGdpr) this.gdprBatches.push(batch);\n }\n else\n {\n for (const batch of sourceGdpr) this.batches.push(batch);\n }\n for (const batch of sourceBatches) this.batches.push(batch);\n\n source.Clear();\n }\n\n GetGdprBatches()\n {\n return this.gdprBatches;\n }\n\n GetBatches()\n {\n return this.batches;\n }\n\n // Sorts and group-counts the collected batches. No-op for the order-preserving\n // key generator; effect/GDPR generators sort both vectors and stamp each\n // bin-run's length onto its leading batch's groupCount.\n Finalize()\n {\n const sortType = this.keyGenerator.GetSortType();\n if (sortType === RenderBatchSortType.RENDERBATCHSORTTYPE_NONE) return;\n\n if (this.keyGenerator.ALLOW_GDPR)\n {\n Tr2GdprBatchFullPartition(this.gdprBatches);\n Tr2GdprBatchFullPartition(this.batches);\n return;\n }\n\n const keyGenerator = this.keyGenerator;\n this.batches.sort((batch1, batch2) =>\n {\n if (keyGenerator.Less(batch1, batch2)) return -1;\n if (keyGenerator.Less(batch2, batch1)) return 1;\n return 0;\n });\n }\n\n GetBatchCount()\n {\n return this.gdprBatches.length + this.batches.length;\n }\n\n IsChainedByEffect()\n {\n return this.keyGenerator.GetSortType() !== RenderBatchSortType.RENDERBATCHSORTTYPE_NONE;\n }\n}\n"],"names":["DefaultKeyGenerator","ALLOW_GDPR","Less","_batch1","_batch2","GetSortType","RenderBatchSortType","RENDERBATCHSORTTYPE_NONE","EffectKeyGenerator","batch1","batch2","shaderOrder","OrderOf","shader","vertexDeclaration","RENDERBATCHSORTTYPE_SORT","TriRenderBatchAccumulator","ITriRenderBatchAccumulator","constructor","keyGenerator","gdprBatches","batches","Clear","userData","renderingMode","RenderingMode","RM_ANY","length","Commit","batch","IsValid","material","CompatibleWithGdr","topology","D3dPrimitiveTopology","TRIANGLELIST","indexBuffer","push","TransferFrom","source","sourceGdpr","GetGdprBatches","sourceBatches","GetBatches","Finalize","sortType","Tr2GdprBatchFullPartition","sort","GetBatchCount","IsChainedByEffect"],"mappings":"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"}
1
+ {"version":3,"file":"TriRenderBatchAccumulator.js","sources":["../../../src/trinityCore/TriRenderBatchAccumulator.js"],"sourcesContent":["// Ported from CarbonEngine (MIT, (c) 2026 CCP Games) - https://github.com/carbonengine/trinity\n// trinity/TriRenderBatch.h (TriRenderBatchAccumulator<KeyGenerator>,\n// DefaultKeyGenerator, EffectKeyGenerator)\n//\n// GPU-free render-batch accumulator: collects committed batches into two vectors\n// (GDPR-eligible and plain), then sorts / group-counts them on Finalize. The\n// engine adapter reads GetGdprBatches()/GetBatches()/IsChainedByEffect() from a\n// finalized accumulator and issues the actual draws.\nimport { RenderingMode } from \"@carbonenginejs/runtime-utils/graphics\";\nimport { D3dPrimitiveTopology } from \"@carbonenginejs/runtime-utils/d3d\";\nimport { RenderBatchSortType } from \"../generated/trinityCore/enums.js\";\nimport { ITriRenderBatchAccumulator } from \"./ITriRenderBatchAccumulator.js\";\nimport { CanBeBinned, OrderOf, Tr2GdprBatchFullPartition } from \"./Tr2RenderBatch.js\";\n\n\n// Unsorted, order-preserving, single vector, no GDPR. Used for transparent /\n// order-dependent passes (which are pre-sorted by object distance CPU-side).\nexport const DefaultKeyGenerator = {\n ALLOW_GDPR: false,\n\n Less(_batch1, _batch2)\n {\n return false;\n },\n\n GetSortType()\n {\n return RenderBatchSortType.RENDERBATCHSORTTYPE_NONE;\n }\n};\n\n// Effect-sorted (shader, then vertex declaration); GDPR-enabled. Used for\n// opaque / decal / depth / additive / shadow passes.\nexport const EffectKeyGenerator = {\n ALLOW_GDPR: true,\n\n Less(batch1, batch2)\n {\n const shaderOrder = OrderOf(batch1.shader) - OrderOf(batch2.shader);\n if (shaderOrder !== 0) return shaderOrder < 0;\n return batch1.vertexDeclaration < batch2.vertexDeclaration;\n },\n\n GetSortType()\n {\n return RenderBatchSortType.RENDERBATCHSORTTYPE_SORT;\n }\n};\n\n/**\n * Concrete GPU-free batch accumulator: collects committed batches into a\n * GDPR-eligible and a plain vector, then sorts and group-counts them on\n * Finalize.\n */\nexport class TriRenderBatchAccumulator extends ITriRenderBatchAccumulator\n{\n /**\n * Creates an empty accumulator whose key generator decides sorting and GDPR\n * eligibility, defaulting to the effect-sorted one.\n */\n constructor(keyGenerator = EffectKeyGenerator)\n {\n super();\n this.keyGenerator = keyGenerator;\n\n this.gdprBatches = [];\n\n this.batches = [];\n }\n\n /**\n * Drops both batch vectors and resets user data and rendering mode to their\n * defaults.\n */\n Clear()\n {\n this.userData = 0;\n this.renderingMode = RenderingMode.RM_ANY;\n this.gdprBatches.length = 0;\n this.batches.length = 0;\n }\n\n // Collects a batch. Invalid batches (no shader) are dropped. GDPR-eligible\n // batches (allowed by the key generator, GDR-compatible material, triangle\n // topology, indexed) go to the GDPR vector; the rest to the plain vector. The\n // batch's rendering mode is overwritten with the accumulator's mode (faithful\n // to Carbon). Commit takes ownership of the batch; do not reuse it afterwards.\n // Returns whether the batch was accepted (JS addition; Carbon returns void).\n\n /**\n * Collects a batch, dropping invalid ones and routing GDPR-eligible batches\n * (allowed by the key generator, GDR-compatible material, triangle list,\n * indexed) to the GDPR vector; the batch's rendering mode is overwritten with\n * the accumulator's and ownership passes here, so the caller must not reuse\n * the batch. Returns whether it was accepted.\n */\n Commit(batch)\n {\n if (!batch.IsValid()) return false;\n\n if (this.keyGenerator.ALLOW_GDPR\n && batch.material?.CompatibleWithGdr?.()\n && batch.topology === D3dPrimitiveTopology.TRIANGLELIST\n && batch.indexBuffer)\n {\n this.gdprBatches.push(batch);\n }\n else\n {\n this.batches.push(batch);\n }\n batch.renderingMode = this.renderingMode;\n return true;\n }\n\n // Folds another accumulator's batches into this one, then clears the source.\n // Mirrors Carbon TransferFrom (per-thread accumulator merge).\n\n /**\n * Folds another accumulator's batches into this one and clears the source; the\n * source's GDPR batches land in the plain vector when this accumulator does\n * not allow GDPR.\n */\n TransferFrom(source)\n {\n const sourceGdpr = source.GetGdprBatches();\n const sourceBatches = source.GetBatches();\n\n if (this.keyGenerator.ALLOW_GDPR)\n {\n for (const batch of sourceGdpr) this.gdprBatches.push(batch);\n }\n else\n {\n for (const batch of sourceGdpr) this.batches.push(batch);\n }\n for (const batch of sourceBatches) this.batches.push(batch);\n\n source.Clear();\n }\n\n /** The live GDPR-eligible batch vector, not a copy. */\n GetGdprBatches()\n {\n return this.gdprBatches;\n }\n\n /** The live plain batch vector, not a copy. */\n GetBatches()\n {\n return this.batches;\n }\n\n // Sorts and group-counts the collected batches. No-op for the order-preserving\n // key generator; effect/GDPR generators sort both vectors and stamp each\n // bin-run's length onto its leading batch's groupCount.\n\n /**\n * Sorts and group-counts the collected batches: a no-op for the\n * order-preserving key generator, a full bin partition of both vectors for\n * GDPR-enabled ones, and a plain comparator sort otherwise.\n */\n Finalize()\n {\n const sortType = this.keyGenerator.GetSortType();\n if (sortType === RenderBatchSortType.RENDERBATCHSORTTYPE_NONE) return;\n\n if (this.keyGenerator.ALLOW_GDPR)\n {\n Tr2GdprBatchFullPartition(this.gdprBatches);\n Tr2GdprBatchFullPartition(this.batches);\n return;\n }\n\n const keyGenerator = this.keyGenerator;\n this.batches.sort((batch1, batch2) =>\n {\n if (keyGenerator.Less(batch1, batch2)) return -1;\n if (keyGenerator.Less(batch2, batch1)) return 1;\n return 0;\n });\n }\n\n /** Total batches across both vectors. */\n GetBatchCount()\n {\n return this.gdprBatches.length + this.batches.length;\n }\n\n /**\n * Whether the batches are effect-sorted, so consecutive batches can share one\n * state-set, rather than order-preserving.\n */\n IsChainedByEffect()\n {\n return this.keyGenerator.GetSortType() !== RenderBatchSortType.RENDERBATCHSORTTYPE_NONE;\n }\n}\n"],"names":["DefaultKeyGenerator","ALLOW_GDPR","Less","_batch1","_batch2","GetSortType","RenderBatchSortType","RENDERBATCHSORTTYPE_NONE","EffectKeyGenerator","batch1","batch2","shaderOrder","OrderOf","shader","vertexDeclaration","RENDERBATCHSORTTYPE_SORT","TriRenderBatchAccumulator","ITriRenderBatchAccumulator","constructor","keyGenerator","gdprBatches","batches","Clear","userData","renderingMode","RenderingMode","RM_ANY","length","Commit","batch","IsValid","material","CompatibleWithGdr","topology","D3dPrimitiveTopology","TRIANGLELIST","indexBuffer","push","TransferFrom","source","sourceGdpr","GetGdprBatches","sourceBatches","GetBatches","Finalize","sortType","Tr2GdprBatchFullPartition","sort","GetBatchCount","IsChainedByEffect"],"mappings":"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"}
@@ -10,11 +10,22 @@ import { TriRenderBatchAccumulator, DefaultKeyGenerator, EffectKeyGenerator } fr
10
10
  // TriBatchType) plus the GetBatchesFromRenderables/FinalizeBatches/ClearBatches
11
11
  // flow, exposed as methods on a cohesive object rather than a free function. The
12
12
  // engine adapter reads the finalized per-type accumulators and issues draws.
13
+
14
+ /**
15
+ * One render-batch accumulator per TriBatchType, with the scene-level collect,
16
+ * finalize and clear flow over them.
17
+ */
13
18
  class TriRenderBatchMap {
14
19
  // batchTypes: iterable of TriBatchType values to collect. createAccumulator:
15
20
  // optional (batchType) => accumulator factory. The default matches Carbon's
16
21
  // key-generator selection: order-preserving for TRANSPARENT (the producer
17
22
  // inserts back-to-front), effect-sorted for everything else.
23
+
24
+ /**
25
+ * Creates one accumulator per requested batch type; by default TRANSPARENT
26
+ * gets the order-preserving key generator (the producer inserts back-to-front)
27
+ * and every other type the effect-sorted one.
28
+ */
18
29
  constructor(batchTypes, createAccumulator = null) {
19
30
  this.accumulators = new Map();
20
31
  const factory = createAccumulator ?? (batchType => new TriRenderBatchAccumulator(batchType === TriBatchType.TRIBATCHTYPE_TRANSPARENT ? DefaultKeyGenerator : EffectKeyGenerator));
@@ -22,18 +33,28 @@ class TriRenderBatchMap {
22
33
  this.accumulators.set(batchType, factory(batchType));
23
34
  }
24
35
  }
36
+
37
+ /** The accumulator for one batch type, or null when that type is not collected. */
25
38
  GetAccumulator(batchType) {
26
39
  return this.accumulators.get(batchType) ?? null;
27
40
  }
28
41
 
29
42
  // Bind the per-object-data store (from the render context) onto every
30
43
  // accumulator - GetPerObjectData Allocs pooled records through it.
31
- SetRawDataStore(store) {
44
+
45
+ /**
46
+ * Binds the per-object-data store onto every accumulator, since
47
+ * GetPerObjectData leases pooled records through it; returns this for
48
+ * chaining.
49
+ */
50
+ SetTriPoolAllocator(store) {
32
51
  for (const accumulator of this.accumulators.values()) {
33
- accumulator.SetRawDataStore(store);
52
+ accumulator.SetTriPoolAllocator(store);
34
53
  }
35
54
  return this;
36
55
  }
56
+
57
+ /** The collected batch types, in insertion order, as a new array. */
37
58
  GetBatchTypes() {
38
59
  return Array.from(this.accumulators.keys());
39
60
  }
@@ -42,6 +63,13 @@ class TriRenderBatchMap {
42
63
  // renderable (keyed off the pool accumulator, by convention the OPAQUE one),
43
64
  // then GetBatches into each registered batch type. Renderables are expected
44
65
  // pre-culled; visibility/frustum filtering is a scene concern upstream.
66
+
67
+ /**
68
+ * Serial form of Carbon's GetBatchesFromRenderables: one GetPerObjectData per
69
+ * renderable, keyed off the pool accumulator (by convention the OPAQUE one),
70
+ * then GetBatches into every registered batch type. Renderables are expected
71
+ * pre-culled.
72
+ */
45
73
  CollectFromRenderables(renderables, reason = Tr2RenderReason.TR2RENDERREASON_NORMAL) {
46
74
  if (!renderables) return;
47
75
  const poolAccumulator = this.accumulators.get(TriBatchType.TRIBATCHTYPE_OPAQUE) ?? this.accumulators.values().next().value ?? null;
@@ -53,12 +81,21 @@ class TriRenderBatchMap {
53
81
  }
54
82
  }
55
83
  }
84
+
85
+ /** Sorts and group-counts every accumulator. */
56
86
  Finalize() {
57
87
  for (const accumulator of this.accumulators.values()) accumulator.Finalize();
58
88
  }
89
+
90
+ /**
91
+ * Clears every accumulator; the accumulators themselves are retained and
92
+ * reused next frame.
93
+ */
59
94
  Clear() {
60
95
  for (const accumulator of this.accumulators.values()) accumulator.Clear();
61
96
  }
97
+
98
+ /** Total batches collected across every batch type. */
62
99
  GetBatchCount() {
63
100
  let count = 0;
64
101
  for (const accumulator of this.accumulators.values()) count += accumulator.GetBatchCount();
@@ -1 +1 @@
1
- {"version":3,"file":"TriRenderBatchMap.js","sources":["../../../src/trinityCore/TriRenderBatchMap.js"],"sourcesContent":["// Ported from CarbonEngine (MIT, (c) 2026 CCP Games) - https://github.com/carbonengine/trinity\n// trinity/Eve/EveSpaceScene.h (BatchMap typedef)\n// trinity/Eve/EveSpaceScene.cpp (GetBatchesFromRenderables / FinalizeBatches / ClearBatches)\n//\n// GPU-free scene batch collection. Wraps Carbon's BatchMap (one accumulator per\n// TriBatchType) plus the GetBatchesFromRenderables/FinalizeBatches/ClearBatches\n// flow, exposed as methods on a cohesive object rather than a free function. The\n// engine adapter reads the finalized per-type accumulators and issues draws.\nimport { TriBatchType } from \"@carbonenginejs/runtime-utils/graphics\";\nimport { Tr2RenderReason } from \"../generated/trinityCore/enums.js\";\nimport { TriRenderBatchAccumulator, DefaultKeyGenerator, EffectKeyGenerator } from \"./TriRenderBatchAccumulator.js\";\n\n\nexport class TriRenderBatchMap\n{\n // batchTypes: iterable of TriBatchType values to collect. createAccumulator:\n // optional (batchType) => accumulator factory. The default matches Carbon's\n // key-generator selection: order-preserving for TRANSPARENT (the producer\n // inserts back-to-front), effect-sorted for everything else.\n constructor(batchTypes, createAccumulator = null)\n {\n this.accumulators = new Map();\n\n const factory = createAccumulator ?? ((batchType) => new TriRenderBatchAccumulator(\n batchType === TriBatchType.TRIBATCHTYPE_TRANSPARENT ? DefaultKeyGenerator : EffectKeyGenerator));\n for (const batchType of batchTypes)\n {\n this.accumulators.set(batchType, factory(batchType));\n }\n }\n\n GetAccumulator(batchType)\n {\n return this.accumulators.get(batchType) ?? null;\n }\n\n // Bind the per-object-data store (from the render context) onto every\n // accumulator - GetPerObjectData Allocs pooled records through it.\n SetRawDataStore(store)\n {\n for (const accumulator of this.accumulators.values())\n {\n accumulator.SetRawDataStore(store);\n }\n\n return this;\n }\n\n GetBatchTypes()\n {\n return Array.from(this.accumulators.keys());\n }\n\n // Serial form of Carbon GetBatchesFromRenderables: one GetPerObjectData per\n // renderable (keyed off the pool accumulator, by convention the OPAQUE one),\n // then GetBatches into each registered batch type. Renderables are expected\n // pre-culled; visibility/frustum filtering is a scene concern upstream.\n CollectFromRenderables(renderables, reason = Tr2RenderReason.TR2RENDERREASON_NORMAL)\n {\n if (!renderables) return;\n\n const poolAccumulator = this.accumulators.get(TriBatchType.TRIBATCHTYPE_OPAQUE)\n ?? this.accumulators.values().next().value\n ?? null;\n\n for (const renderable of renderables)\n {\n if (!renderable) continue;\n\n const perObjectData = renderable.GetPerObjectData?.(poolAccumulator) ?? null;\n for (const [ batchType, accumulator ] of this.accumulators)\n {\n renderable.GetBatches?.(accumulator, batchType, perObjectData, reason);\n }\n }\n }\n\n Finalize()\n {\n for (const accumulator of this.accumulators.values()) accumulator.Finalize();\n }\n\n Clear()\n {\n for (const accumulator of this.accumulators.values()) accumulator.Clear();\n }\n\n GetBatchCount()\n {\n let count = 0;\n for (const accumulator of this.accumulators.values()) count += accumulator.GetBatchCount();\n return count;\n }\n}\n"],"names":["TriRenderBatchMap","constructor","batchTypes","createAccumulator","accumulators","Map","factory","batchType","TriRenderBatchAccumulator","TriBatchType","TRIBATCHTYPE_TRANSPARENT","DefaultKeyGenerator","EffectKeyGenerator","set","GetAccumulator","get","SetRawDataStore","store","accumulator","values","GetBatchTypes","Array","from","keys","CollectFromRenderables","renderables","reason","Tr2RenderReason","TR2RENDERREASON_NORMAL","poolAccumulator","TRIBATCHTYPE_OPAQUE","next","value","renderable","perObjectData","GetPerObjectData","GetBatches","Finalize","Clear","GetBatchCount","count"],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMO,MAAMA,iBAAiB,CAC9B;AACE;AACA;AACA;AACA;AACAC,EAAAA,WAAWA,CAACC,UAAU,EAAEC,iBAAiB,GAAG,IAAI,EAChD;AACE,IAAA,IAAI,CAACC,YAAY,GAAG,IAAIC,GAAG,EAAE;AAE7B,IAAA,MAAMC,OAAO,GAAGH,iBAAiB,KAAMI,SAAS,IAAK,IAAIC,yBAAyB,CAChFD,SAAS,KAAKE,YAAY,CAACC,wBAAwB,GAAGC,mBAAmB,GAAGC,kBAAkB,CAAC,CAAC;AAClG,IAAA,KAAK,MAAML,SAAS,IAAIL,UAAU,EAClC;MACE,IAAI,CAACE,YAAY,CAACS,GAAG,CAACN,SAAS,EAAED,OAAO,CAACC,SAAS,CAAC,CAAC;AACtD,IAAA;AACF,EAAA;EAEAO,cAAcA,CAACP,SAAS,EACxB;IACE,OAAO,IAAI,CAACH,YAAY,CAACW,GAAG,CAACR,SAAS,CAAC,IAAI,IAAI;AACjD,EAAA;;AAEA;AACA;EACAS,eAAeA,CAACC,KAAK,EACrB;IACE,KAAK,MAAMC,WAAW,IAAI,IAAI,CAACd,YAAY,CAACe,MAAM,EAAE,EACpD;AACED,MAAAA,WAAW,CAACF,eAAe,CAACC,KAAK,CAAC;AACpC,IAAA;AAEA,IAAA,OAAO,IAAI;AACb,EAAA;AAEAG,EAAAA,aAAaA,GACb;IACE,OAAOC,KAAK,CAACC,IAAI,CAAC,IAAI,CAAClB,YAAY,CAACmB,IAAI,EAAE,CAAC;AAC7C,EAAA;;AAEA;AACA;AACA;AACA;EACAC,sBAAsBA,CAACC,WAAW,EAAEC,MAAM,GAAGC,eAAe,CAACC,sBAAsB,EACnF;IACE,IAAI,CAACH,WAAW,EAAE;IAElB,MAAMI,eAAe,GAAG,IAAI,CAACzB,YAAY,CAACW,GAAG,CAACN,YAAY,CAACqB,mBAAmB,CAAC,IAC1E,IAAI,CAAC1B,YAAY,CAACe,MAAM,EAAE,CAACY,IAAI,EAAE,CAACC,KAAK,IACvC,IAAI;AAET,IAAA,KAAK,MAAMC,UAAU,IAAIR,WAAW,EACpC;MACE,IAAI,CAACQ,UAAU,EAAE;MAEjB,MAAMC,aAAa,GAAGD,UAAU,CAACE,gBAAgB,GAAGN,eAAe,CAAC,IAAI,IAAI;MAC5E,KAAK,MAAM,CAAEtB,SAAS,EAAEW,WAAW,CAAE,IAAI,IAAI,CAACd,YAAY,EAC1D;QACE6B,UAAU,CAACG,UAAU,GAAGlB,WAAW,EAAEX,SAAS,EAAE2B,aAAa,EAAER,MAAM,CAAC;AACxE,MAAA;AACF,IAAA;AACF,EAAA;AAEAW,EAAAA,QAAQA,GACR;AACE,IAAA,KAAK,MAAMnB,WAAW,IAAI,IAAI,CAACd,YAAY,CAACe,MAAM,EAAE,EAAED,WAAW,CAACmB,QAAQ,EAAE;AAC9E,EAAA;AAEAC,EAAAA,KAAKA,GACL;AACE,IAAA,KAAK,MAAMpB,WAAW,IAAI,IAAI,CAACd,YAAY,CAACe,MAAM,EAAE,EAAED,WAAW,CAACoB,KAAK,EAAE;AAC3E,EAAA;AAEAC,EAAAA,aAAaA,GACb;IACE,IAAIC,KAAK,GAAG,CAAC;AACb,IAAA,KAAK,MAAMtB,WAAW,IAAI,IAAI,CAACd,YAAY,CAACe,MAAM,EAAE,EAAEqB,KAAK,IAAItB,WAAW,CAACqB,aAAa,EAAE;AAC1F,IAAA,OAAOC,KAAK;AACd,EAAA;AACF;;;;"}
1
+ {"version":3,"file":"TriRenderBatchMap.js","sources":["../../../src/trinityCore/TriRenderBatchMap.js"],"sourcesContent":["// Ported from CarbonEngine (MIT, (c) 2026 CCP Games) - https://github.com/carbonengine/trinity\n// trinity/Eve/EveSpaceScene.h (BatchMap typedef)\n// trinity/Eve/EveSpaceScene.cpp (GetBatchesFromRenderables / FinalizeBatches / ClearBatches)\n//\n// GPU-free scene batch collection. Wraps Carbon's BatchMap (one accumulator per\n// TriBatchType) plus the GetBatchesFromRenderables/FinalizeBatches/ClearBatches\n// flow, exposed as methods on a cohesive object rather than a free function. The\n// engine adapter reads the finalized per-type accumulators and issues draws.\nimport { TriBatchType } from \"@carbonenginejs/runtime-utils/graphics\";\nimport { Tr2RenderReason } from \"../generated/trinityCore/enums.js\";\nimport { TriRenderBatchAccumulator, DefaultKeyGenerator, EffectKeyGenerator } from \"./TriRenderBatchAccumulator.js\";\n\n\n/**\n * One render-batch accumulator per TriBatchType, with the scene-level collect,\n * finalize and clear flow over them.\n */\nexport class TriRenderBatchMap\n{\n // batchTypes: iterable of TriBatchType values to collect. createAccumulator:\n // optional (batchType) => accumulator factory. The default matches Carbon's\n // key-generator selection: order-preserving for TRANSPARENT (the producer\n // inserts back-to-front), effect-sorted for everything else.\n\n /**\n * Creates one accumulator per requested batch type; by default TRANSPARENT\n * gets the order-preserving key generator (the producer inserts back-to-front)\n * and every other type the effect-sorted one.\n */\n constructor(batchTypes, createAccumulator = null)\n {\n this.accumulators = new Map();\n\n const factory = createAccumulator ?? ((batchType) => new TriRenderBatchAccumulator(\n batchType === TriBatchType.TRIBATCHTYPE_TRANSPARENT ? DefaultKeyGenerator : EffectKeyGenerator));\n for (const batchType of batchTypes)\n {\n this.accumulators.set(batchType, factory(batchType));\n }\n }\n\n /** The accumulator for one batch type, or null when that type is not collected. */\n GetAccumulator(batchType)\n {\n return this.accumulators.get(batchType) ?? null;\n }\n\n // Bind the per-object-data store (from the render context) onto every\n // accumulator - GetPerObjectData Allocs pooled records through it.\n\n /**\n * Binds the per-object-data store onto every accumulator, since\n * GetPerObjectData leases pooled records through it; returns this for\n * chaining.\n */\n SetTriPoolAllocator(store)\n {\n for (const accumulator of this.accumulators.values())\n {\n accumulator.SetTriPoolAllocator(store);\n }\n\n return this;\n }\n\n /** The collected batch types, in insertion order, as a new array. */\n GetBatchTypes()\n {\n return Array.from(this.accumulators.keys());\n }\n\n // Serial form of Carbon GetBatchesFromRenderables: one GetPerObjectData per\n // renderable (keyed off the pool accumulator, by convention the OPAQUE one),\n // then GetBatches into each registered batch type. Renderables are expected\n // pre-culled; visibility/frustum filtering is a scene concern upstream.\n\n /**\n * Serial form of Carbon's GetBatchesFromRenderables: one GetPerObjectData per\n * renderable, keyed off the pool accumulator (by convention the OPAQUE one),\n * then GetBatches into every registered batch type. Renderables are expected\n * pre-culled.\n */\n CollectFromRenderables(renderables, reason = Tr2RenderReason.TR2RENDERREASON_NORMAL)\n {\n if (!renderables) return;\n\n const poolAccumulator = this.accumulators.get(TriBatchType.TRIBATCHTYPE_OPAQUE)\n ?? this.accumulators.values().next().value\n ?? null;\n\n for (const renderable of renderables)\n {\n if (!renderable) continue;\n\n const perObjectData = renderable.GetPerObjectData?.(poolAccumulator) ?? null;\n for (const [ batchType, accumulator ] of this.accumulators)\n {\n renderable.GetBatches?.(accumulator, batchType, perObjectData, reason);\n }\n }\n }\n\n /** Sorts and group-counts every accumulator. */\n Finalize()\n {\n for (const accumulator of this.accumulators.values()) accumulator.Finalize();\n }\n\n /**\n * Clears every accumulator; the accumulators themselves are retained and\n * reused next frame.\n */\n Clear()\n {\n for (const accumulator of this.accumulators.values()) accumulator.Clear();\n }\n\n /** Total batches collected across every batch type. */\n GetBatchCount()\n {\n let count = 0;\n for (const accumulator of this.accumulators.values()) count += accumulator.GetBatchCount();\n return count;\n }\n}\n"],"names":["TriRenderBatchMap","constructor","batchTypes","createAccumulator","accumulators","Map","factory","batchType","TriRenderBatchAccumulator","TriBatchType","TRIBATCHTYPE_TRANSPARENT","DefaultKeyGenerator","EffectKeyGenerator","set","GetAccumulator","get","SetTriPoolAllocator","store","accumulator","values","GetBatchTypes","Array","from","keys","CollectFromRenderables","renderables","reason","Tr2RenderReason","TR2RENDERREASON_NORMAL","poolAccumulator","TRIBATCHTYPE_OPAQUE","next","value","renderable","perObjectData","GetPerObjectData","GetBatches","Finalize","Clear","GetBatchCount","count"],"mappings":"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"}