@jetta/axle-load-calculator 0.3.4 → 0.3.6

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 (285) hide show
  1. package/README.md +13 -1
  2. package/build-cjs/core/contracts/ChassiReference.d.ts +7 -0
  3. package/build-cjs/core/contracts/ChassiReference.d.ts.map +1 -0
  4. package/build-cjs/core/contracts/ChassiReference.js +8 -0
  5. package/build-cjs/core/contracts/MsFaixasContract.d.ts +13 -0
  6. package/build-cjs/core/contracts/MsFaixasContract.d.ts.map +1 -0
  7. package/build-cjs/core/contracts/MsFaixasContract.js +93 -0
  8. package/build-cjs/core/contracts/RotationEnum.d.ts +11 -0
  9. package/build-cjs/core/contracts/RotationEnum.d.ts.map +1 -0
  10. package/build-cjs/core/contracts/RotationEnum.js +12 -0
  11. package/build-cjs/core/contracts/SuspensionType.d.ts +5 -0
  12. package/build-cjs/core/contracts/SuspensionType.d.ts.map +1 -0
  13. package/build-cjs/core/contracts/SuspensionType.js +7 -0
  14. package/build-cjs/core/contracts/TransportRecord.d.ts +5 -0
  15. package/build-cjs/core/contracts/TransportRecord.d.ts.map +1 -0
  16. package/build-cjs/core/contracts/TransportRecord.js +2 -0
  17. package/build-cjs/core/contracts/VehicleType.d.ts +12 -0
  18. package/build-cjs/core/contracts/VehicleType.d.ts.map +1 -0
  19. package/build-cjs/core/contracts/VehicleType.js +13 -0
  20. package/build-cjs/core/contracts/VehicleVersion.d.ts +8 -0
  21. package/build-cjs/core/contracts/VehicleVersion.d.ts.map +1 -0
  22. package/build-cjs/core/contracts/VehicleVersion.js +10 -0
  23. package/build-cjs/core/contracts/WireFlags.d.ts +27 -0
  24. package/build-cjs/core/contracts/WireFlags.d.ts.map +1 -0
  25. package/build-cjs/core/contracts/WireFlags.js +29 -0
  26. package/build-cjs/core/math/FloatTools.d.ts +7 -0
  27. package/build-cjs/core/math/FloatTools.d.ts.map +1 -0
  28. package/build-cjs/core/math/FloatTools.js +17 -0
  29. package/build-cjs/core/math/GaussianElimination.d.ts +8 -0
  30. package/build-cjs/core/math/GaussianElimination.d.ts.map +1 -0
  31. package/build-cjs/core/math/GaussianElimination.js +88 -0
  32. package/build-cjs/core/orchestration/AxleWeightPhysics.d.ts +7 -0
  33. package/build-cjs/core/orchestration/AxleWeightPhysics.d.ts.map +1 -0
  34. package/build-cjs/core/orchestration/AxleWeightPhysics.js +30 -0
  35. package/build-cjs/core/orchestration/CollisionChecker.d.ts +8 -0
  36. package/build-cjs/core/orchestration/CollisionChecker.d.ts.map +1 -0
  37. package/build-cjs/core/orchestration/CollisionChecker.js +63 -0
  38. package/build-cjs/core/orchestration/ConnectorPayloadBuilder.d.ts +11 -0
  39. package/build-cjs/core/orchestration/ConnectorPayloadBuilder.d.ts.map +1 -0
  40. package/build-cjs/core/orchestration/ConnectorPayloadBuilder.js +84 -0
  41. package/build-cjs/core/orchestration/ItemOverlapError.d.ts +7 -0
  42. package/build-cjs/core/orchestration/ItemOverlapError.d.ts.map +1 -0
  43. package/build-cjs/core/orchestration/ItemOverlapError.js +13 -0
  44. package/build-cjs/core/orchestration/JavaMassCenter.d.ts +10 -0
  45. package/build-cjs/core/orchestration/JavaMassCenter.d.ts.map +1 -0
  46. package/build-cjs/core/orchestration/JavaMassCenter.js +135 -0
  47. package/build-cjs/core/orchestration/OutputBuilder.d.ts +7 -0
  48. package/build-cjs/core/orchestration/OutputBuilder.d.ts.map +1 -0
  49. package/build-cjs/core/orchestration/OutputBuilder.js +10 -0
  50. package/build-cjs/core/orchestration/RequestSchema.d.ts +57 -0
  51. package/build-cjs/core/orchestration/RequestSchema.d.ts.map +1 -0
  52. package/build-cjs/core/orchestration/RequestSchema.js +21 -0
  53. package/build-cjs/core/orchestration/WeightByAxisResponse.d.ts +11 -0
  54. package/build-cjs/core/orchestration/WeightByAxisResponse.d.ts.map +1 -0
  55. package/build-cjs/core/orchestration/WeightByAxisResponse.js +2 -0
  56. package/build-cjs/core/orchestration/WeightByAxisTask.d.ts +18 -0
  57. package/build-cjs/core/orchestration/WeightByAxisTask.d.ts.map +1 -0
  58. package/build-cjs/core/orchestration/WeightByAxisTask.js +110 -0
  59. package/build-cjs/core/physics/items/AllocatedItem.d.ts +22 -0
  60. package/build-cjs/core/physics/items/AllocatedItem.d.ts.map +1 -0
  61. package/build-cjs/core/physics/items/AllocatedItem.js +33 -0
  62. package/build-cjs/core/physics/items/AllocatedItemManager.d.ts +31 -0
  63. package/build-cjs/core/physics/items/AllocatedItemManager.d.ts.map +1 -0
  64. package/build-cjs/core/physics/items/AllocatedItemManager.js +42 -0
  65. package/build-cjs/core/physics/items/BindChassiSolver.d.ts +12 -0
  66. package/build-cjs/core/physics/items/BindChassiSolver.d.ts.map +1 -0
  67. package/build-cjs/core/physics/items/BindChassiSolver.js +13 -0
  68. package/build-cjs/core/physics/items/CenterOfMass.d.ts +14 -0
  69. package/build-cjs/core/physics/items/CenterOfMass.d.ts.map +1 -0
  70. package/build-cjs/core/physics/items/CenterOfMass.js +28 -0
  71. package/build-cjs/core/physics/items/ComputeGrouperCenterOfMass.d.ts +19 -0
  72. package/build-cjs/core/physics/items/ComputeGrouperCenterOfMass.d.ts.map +1 -0
  73. package/build-cjs/core/physics/items/ComputeGrouperCenterOfMass.js +32 -0
  74. package/build-cjs/core/physics/items/ItemTemplates.d.ts +32 -0
  75. package/build-cjs/core/physics/items/ItemTemplates.d.ts.map +1 -0
  76. package/build-cjs/core/physics/items/ItemTemplates.js +58 -0
  77. package/build-cjs/core/physics/items/MultiContainerAllocatedItems.d.ts +37 -0
  78. package/build-cjs/core/physics/items/MultiContainerAllocatedItems.d.ts.map +1 -0
  79. package/build-cjs/core/physics/items/MultiContainerAllocatedItems.js +95 -0
  80. package/build-cjs/core/physics/items/RotationTransforms.d.ts +8 -0
  81. package/build-cjs/core/physics/items/RotationTransforms.d.ts.map +1 -0
  82. package/build-cjs/core/physics/items/RotationTransforms.js +24 -0
  83. package/build-cjs/core/physics/items/UnknownItemIdError.d.ts +10 -0
  84. package/build-cjs/core/physics/items/UnknownItemIdError.d.ts.map +1 -0
  85. package/build-cjs/core/physics/items/UnknownItemIdError.js +16 -0
  86. package/build-cjs/core/physics/models/AxleWeightModel.d.ts +32 -0
  87. package/build-cjs/core/physics/models/AxleWeightModel.d.ts.map +1 -0
  88. package/build-cjs/core/physics/models/AxleWeightModel.js +77 -0
  89. package/build-cjs/core/physics/models/BiTruckModel.d.ts +21 -0
  90. package/build-cjs/core/physics/models/BiTruckModel.d.ts.map +1 -0
  91. package/build-cjs/core/physics/models/BiTruckModel.js +64 -0
  92. package/build-cjs/core/physics/models/BiTruckTractorSemiTrailerModel.d.ts +21 -0
  93. package/build-cjs/core/physics/models/BiTruckTractorSemiTrailerModel.d.ts.map +1 -0
  94. package/build-cjs/core/physics/models/BiTruckTractorSemiTrailerModel.js +73 -0
  95. package/build-cjs/core/physics/models/BitremModel.d.ts +33 -0
  96. package/build-cjs/core/physics/models/BitremModel.d.ts.map +1 -0
  97. package/build-cjs/core/physics/models/BitremModel.js +128 -0
  98. package/build-cjs/core/physics/models/ChassiForces.d.ts +30 -0
  99. package/build-cjs/core/physics/models/ChassiForces.d.ts.map +1 -0
  100. package/build-cjs/core/physics/models/ChassiForces.js +43 -0
  101. package/build-cjs/core/physics/models/OldTareModel.d.ts +17 -0
  102. package/build-cjs/core/physics/models/OldTareModel.d.ts.map +1 -0
  103. package/build-cjs/core/physics/models/OldTareModel.js +45 -0
  104. package/build-cjs/core/physics/models/OldTareScale.d.ts +7 -0
  105. package/build-cjs/core/physics/models/OldTareScale.d.ts.map +1 -0
  106. package/build-cjs/core/physics/models/OldTareScale.js +11 -0
  107. package/build-cjs/core/physics/models/OldTareSemireboque.d.ts +7 -0
  108. package/build-cjs/core/physics/models/OldTareSemireboque.d.ts.map +1 -0
  109. package/build-cjs/core/physics/models/OldTareSemireboque.js +40 -0
  110. package/build-cjs/core/physics/models/OldTareTruck.d.ts +7 -0
  111. package/build-cjs/core/physics/models/OldTareTruck.d.ts.map +1 -0
  112. package/build-cjs/core/physics/models/OldTareTruck.js +15 -0
  113. package/build-cjs/core/physics/models/OldTareVanderleia.d.ts +7 -0
  114. package/build-cjs/core/physics/models/OldTareVanderleia.d.ts.map +1 -0
  115. package/build-cjs/core/physics/models/OldTareVanderleia.js +34 -0
  116. package/build-cjs/core/physics/models/PercentageOnAxlesCalculator.d.ts +19 -0
  117. package/build-cjs/core/physics/models/PercentageOnAxlesCalculator.d.ts.map +1 -0
  118. package/build-cjs/core/physics/models/PercentageOnAxlesCalculator.js +43 -0
  119. package/build-cjs/core/physics/models/QuadSemiTrailerModel.d.ts +21 -0
  120. package/build-cjs/core/physics/models/QuadSemiTrailerModel.d.ts.map +1 -0
  121. package/build-cjs/core/physics/models/QuadSemiTrailerModel.js +74 -0
  122. package/build-cjs/core/physics/models/RodotremModel.d.ts +33 -0
  123. package/build-cjs/core/physics/models/RodotremModel.d.ts.map +1 -0
  124. package/build-cjs/core/physics/models/RodotremModel.js +106 -0
  125. package/build-cjs/core/physics/models/SemiDelegate.d.ts +9 -0
  126. package/build-cjs/core/physics/models/SemiDelegate.d.ts.map +1 -0
  127. package/build-cjs/core/physics/models/SemiDelegate.js +2 -0
  128. package/build-cjs/core/physics/models/SemiReboqueBase.d.ts +34 -0
  129. package/build-cjs/core/physics/models/SemiReboqueBase.d.ts.map +1 -0
  130. package/build-cjs/core/physics/models/SemiReboqueBase.js +89 -0
  131. package/build-cjs/core/physics/models/SemiReboqueModel.d.ts +41 -0
  132. package/build-cjs/core/physics/models/SemiReboqueModel.d.ts.map +1 -0
  133. package/build-cjs/core/physics/models/SemiReboqueModel.js +89 -0
  134. package/build-cjs/core/physics/models/SimpleTruckBase.d.ts +29 -0
  135. package/build-cjs/core/physics/models/SimpleTruckBase.d.ts.map +1 -0
  136. package/build-cjs/core/physics/models/SimpleTruckBase.js +61 -0
  137. package/build-cjs/core/physics/models/SimpleTruckModel.d.ts +41 -0
  138. package/build-cjs/core/physics/models/SimpleTruckModel.d.ts.map +1 -0
  139. package/build-cjs/core/physics/models/SimpleTruckModel.js +81 -0
  140. package/build-cjs/core/physics/models/SingleContainerTare.d.ts +18 -0
  141. package/build-cjs/core/physics/models/SingleContainerTare.d.ts.map +1 -0
  142. package/build-cjs/core/physics/models/SingleContainerTare.js +49 -0
  143. package/build-cjs/core/physics/models/TareModel.d.ts +12 -0
  144. package/build-cjs/core/physics/models/TareModel.d.ts.map +1 -0
  145. package/build-cjs/core/physics/models/TareModel.js +40 -0
  146. package/build-cjs/core/physics/models/TruckDelegate.d.ts +9 -0
  147. package/build-cjs/core/physics/models/TruckDelegate.d.ts.map +1 -0
  148. package/build-cjs/core/physics/models/TruckDelegate.js +2 -0
  149. package/build-cjs/core/physics/models/UnrecognizedSuspensionTypeError.d.ts +10 -0
  150. package/build-cjs/core/physics/models/UnrecognizedSuspensionTypeError.d.ts.map +1 -0
  151. package/build-cjs/core/physics/models/UnrecognizedSuspensionTypeError.js +16 -0
  152. package/build-cjs/core/physics/models/UnsupportedVehicleTypeError.d.ts +10 -0
  153. package/build-cjs/core/physics/models/UnsupportedVehicleTypeError.d.ts.map +1 -0
  154. package/build-cjs/core/physics/models/UnsupportedVehicleTypeError.js +16 -0
  155. package/build-cjs/core/physics/models/VanderleiaModel.d.ts +33 -0
  156. package/build-cjs/core/physics/models/VanderleiaModel.d.ts.map +1 -0
  157. package/build-cjs/core/physics/models/VanderleiaModel.js +106 -0
  158. package/build-cjs/core/physics/models/VehicleModel.d.ts +11 -0
  159. package/build-cjs/core/physics/models/VehicleModel.d.ts.map +1 -0
  160. package/build-cjs/core/physics/models/VehicleModel.js +2 -0
  161. package/build-cjs/core/physics/models/deflection/BeamDeflection.d.ts +28 -0
  162. package/build-cjs/core/physics/models/deflection/BeamDeflection.d.ts.map +1 -0
  163. package/build-cjs/core/physics/models/deflection/BeamDeflection.js +82 -0
  164. package/build-cjs/core/physics/models/deflection/BitremDeflection.d.ts +22 -0
  165. package/build-cjs/core/physics/models/deflection/BitremDeflection.d.ts.map +1 -0
  166. package/build-cjs/core/physics/models/deflection/BitremDeflection.js +58 -0
  167. package/build-cjs/core/physics/models/deflection/CreateDeflectionDelegate.d.ts +9 -0
  168. package/build-cjs/core/physics/models/deflection/CreateDeflectionDelegate.d.ts.map +1 -0
  169. package/build-cjs/core/physics/models/deflection/CreateDeflectionDelegate.js +27 -0
  170. package/build-cjs/core/physics/models/deflection/DeflectionDelegate.d.ts +8 -0
  171. package/build-cjs/core/physics/models/deflection/DeflectionDelegate.d.ts.map +1 -0
  172. package/build-cjs/core/physics/models/deflection/DeflectionDelegate.js +2 -0
  173. package/build-cjs/core/physics/models/deflection/DeflectionDelegateFactories.d.ts +36 -0
  174. package/build-cjs/core/physics/models/deflection/DeflectionDelegateFactories.d.ts.map +1 -0
  175. package/build-cjs/core/physics/models/deflection/DeflectionDelegateFactories.js +57 -0
  176. package/build-cjs/core/physics/models/deflection/DeflectionModel.d.ts +19 -0
  177. package/build-cjs/core/physics/models/deflection/DeflectionModel.d.ts.map +1 -0
  178. package/build-cjs/core/physics/models/deflection/DeflectionModel.js +27 -0
  179. package/build-cjs/core/physics/models/deflection/DeflectionModelNotImplementedError.d.ts +9 -0
  180. package/build-cjs/core/physics/models/deflection/DeflectionModelNotImplementedError.d.ts.map +1 -0
  181. package/build-cjs/core/physics/models/deflection/DeflectionModelNotImplementedError.js +15 -0
  182. package/build-cjs/core/physics/models/deflection/DeflectionSupportManager.d.ts +35 -0
  183. package/build-cjs/core/physics/models/deflection/DeflectionSupportManager.d.ts.map +1 -0
  184. package/build-cjs/core/physics/models/deflection/DeflectionSupportManager.js +58 -0
  185. package/build-cjs/core/physics/models/deflection/DeflectionTools.d.ts +6 -0
  186. package/build-cjs/core/physics/models/deflection/DeflectionTools.d.ts.map +1 -0
  187. package/build-cjs/core/physics/models/deflection/DeflectionTools.js +13 -0
  188. package/build-cjs/core/physics/models/deflection/DelegateFactory.d.ts +12 -0
  189. package/build-cjs/core/physics/models/deflection/DelegateFactory.d.ts.map +1 -0
  190. package/build-cjs/core/physics/models/deflection/DelegateFactory.js +2 -0
  191. package/build-cjs/core/physics/models/deflection/IntegrationConstantCalculator.d.ts +25 -0
  192. package/build-cjs/core/physics/models/deflection/IntegrationConstantCalculator.d.ts.map +1 -0
  193. package/build-cjs/core/physics/models/deflection/IntegrationConstantCalculator.js +55 -0
  194. package/build-cjs/core/physics/models/deflection/RodotremDeflection.d.ts +22 -0
  195. package/build-cjs/core/physics/models/deflection/RodotremDeflection.d.ts.map +1 -0
  196. package/build-cjs/core/physics/models/deflection/RodotremDeflection.js +51 -0
  197. package/build-cjs/core/physics/models/deflection/SemiReboqueDeflection.d.ts +21 -0
  198. package/build-cjs/core/physics/models/deflection/SemiReboqueDeflection.d.ts.map +1 -0
  199. package/build-cjs/core/physics/models/deflection/SemiReboqueDeflection.js +35 -0
  200. package/build-cjs/core/physics/models/deflection/SimpleTruckDeflection.d.ts +20 -0
  201. package/build-cjs/core/physics/models/deflection/SimpleTruckDeflection.d.ts.map +1 -0
  202. package/build-cjs/core/physics/models/deflection/SimpleTruckDeflection.js +32 -0
  203. package/build-cjs/core/physics/models/deflection/VanderleiaDeflection.d.ts +21 -0
  204. package/build-cjs/core/physics/models/deflection/VanderleiaDeflection.d.ts.map +1 -0
  205. package/build-cjs/core/physics/models/deflection/VanderleiaDeflection.js +45 -0
  206. package/build-cjs/core/physics/services/AxleWeightOutputBuilder.d.ts +27 -0
  207. package/build-cjs/core/physics/services/AxleWeightOutputBuilder.d.ts.map +1 -0
  208. package/build-cjs/core/physics/services/AxleWeightOutputBuilder.js +47 -0
  209. package/build-cjs/core/physics/services/AxleWeightService.d.ts +20 -0
  210. package/build-cjs/core/physics/services/AxleWeightService.d.ts.map +1 -0
  211. package/build-cjs/core/physics/services/AxleWeightService.js +95 -0
  212. package/build-cjs/core/physics/services/CmAxleWeightService.d.ts +12 -0
  213. package/build-cjs/core/physics/services/CmAxleWeightService.d.ts.map +1 -0
  214. package/build-cjs/core/physics/services/CmAxleWeightService.js +37 -0
  215. package/build-cjs/core/physics/services/ContainerCornerForces.d.ts +33 -0
  216. package/build-cjs/core/physics/services/ContainerCornerForces.d.ts.map +1 -0
  217. package/build-cjs/core/physics/services/ContainerCornerForces.js +88 -0
  218. package/build-cjs/core/physics/transports/AxleManager.d.ts +22 -0
  219. package/build-cjs/core/physics/transports/AxleManager.d.ts.map +1 -0
  220. package/build-cjs/core/physics/transports/AxleManager.js +38 -0
  221. package/build-cjs/core/physics/transports/AxleRecord.d.ts +21 -0
  222. package/build-cjs/core/physics/transports/AxleRecord.d.ts.map +1 -0
  223. package/build-cjs/core/physics/transports/AxleRecord.js +61 -0
  224. package/build-cjs/core/physics/transports/Chassi.d.ts +52 -0
  225. package/build-cjs/core/physics/transports/Chassi.d.ts.map +1 -0
  226. package/build-cjs/core/physics/transports/Chassi.js +109 -0
  227. package/build-cjs/core/physics/transports/ContainerRecord.d.ts +25 -0
  228. package/build-cjs/core/physics/transports/ContainerRecord.d.ts.map +1 -0
  229. package/build-cjs/core/physics/transports/ContainerRecord.js +53 -0
  230. package/build-cjs/core/physics/transports/ContainerSequenceNotFoundError.d.ts +10 -0
  231. package/build-cjs/core/physics/transports/ContainerSequenceNotFoundError.d.ts.map +1 -0
  232. package/build-cjs/core/physics/transports/ContainerSequenceNotFoundError.js +16 -0
  233. package/build-cjs/core/physics/transports/GroupedContainers.d.ts +34 -0
  234. package/build-cjs/core/physics/transports/GroupedContainers.d.ts.map +1 -0
  235. package/build-cjs/core/physics/transports/GroupedContainers.js +73 -0
  236. package/build-cjs/core/physics/transports/GrouperNotFoundError.d.ts +10 -0
  237. package/build-cjs/core/physics/transports/GrouperNotFoundError.d.ts.map +1 -0
  238. package/build-cjs/core/physics/transports/GrouperNotFoundError.js +16 -0
  239. package/build-cjs/core/physics/transports/MergedContainers.d.ts +26 -0
  240. package/build-cjs/core/physics/transports/MergedContainers.d.ts.map +1 -0
  241. package/build-cjs/core/physics/transports/MergedContainers.js +50 -0
  242. package/build-cjs/core/physics/transports/MissingContainerError.d.ts +10 -0
  243. package/build-cjs/core/physics/transports/MissingContainerError.d.ts.map +1 -0
  244. package/build-cjs/core/physics/transports/MissingContainerError.js +16 -0
  245. package/build-cjs/core/physics/transports/Transport.d.ts +33 -0
  246. package/build-cjs/core/physics/transports/Transport.d.ts.map +1 -0
  247. package/build-cjs/core/physics/transports/Transport.js +115 -0
  248. package/build-cjs/core/physics/transports/containerweight/ContainerMaxWeightCalculator.d.ts +21 -0
  249. package/build-cjs/core/physics/transports/containerweight/ContainerMaxWeightCalculator.d.ts.map +1 -0
  250. package/build-cjs/core/physics/transports/containerweight/ContainerMaxWeightCalculator.js +44 -0
  251. package/build-cjs/core/physics/transports/containerweight/ContainerTareCalculator.d.ts +28 -0
  252. package/build-cjs/core/physics/transports/containerweight/ContainerTareCalculator.d.ts.map +1 -0
  253. package/build-cjs/core/physics/transports/containerweight/ContainerTareCalculator.js +59 -0
  254. package/build-cjs/core/physics/transports/containerweight/ContainerWeightModel.d.ts +15 -0
  255. package/build-cjs/core/physics/transports/containerweight/ContainerWeightModel.d.ts.map +1 -0
  256. package/build-cjs/core/physics/transports/containerweight/ContainerWeightModel.js +35 -0
  257. package/build-cjs/core/physics/transports/containerweight/MaxWeightInput.d.ts +10 -0
  258. package/build-cjs/core/physics/transports/containerweight/MaxWeightInput.d.ts.map +1 -0
  259. package/build-cjs/core/physics/transports/containerweight/MaxWeightInput.js +2 -0
  260. package/build-cjs/core/physics/transports/containerweight/MergedContainersWeightCalculator.d.ts +17 -0
  261. package/build-cjs/core/physics/transports/containerweight/MergedContainersWeightCalculator.d.ts.map +1 -0
  262. package/build-cjs/core/physics/transports/containerweight/MergedContainersWeightCalculator.js +35 -0
  263. package/build-cjs/core/physics/transports/containerweight/SingleContainerWeightCalculator.d.ts +20 -0
  264. package/build-cjs/core/physics/transports/containerweight/SingleContainerWeightCalculator.d.ts.map +1 -0
  265. package/build-cjs/core/physics/transports/containerweight/SingleContainerWeightCalculator.js +52 -0
  266. package/build-cjs/core/physics/transports/tare/BitremAxleSplit.d.ts +8 -0
  267. package/build-cjs/core/physics/transports/tare/BitremAxleSplit.d.ts.map +1 -0
  268. package/build-cjs/core/physics/transports/tare/BitremAxleSplit.js +2 -0
  269. package/build-cjs/core/physics/transports/tare/BitremAxleSplitTarget.d.ts +12 -0
  270. package/build-cjs/core/physics/transports/tare/BitremAxleSplitTarget.d.ts.map +1 -0
  271. package/build-cjs/core/physics/transports/tare/BitremAxleSplitTarget.js +2 -0
  272. package/build-cjs/core/physics/transports/tare/BitremAxleSplitter.d.ts +26 -0
  273. package/build-cjs/core/physics/transports/tare/BitremAxleSplitter.d.ts.map +1 -0
  274. package/build-cjs/core/physics/transports/tare/BitremAxleSplitter.js +88 -0
  275. package/build-cjs/core/physics/transports/tare/BitremAxleWeightSplit.d.ts +13 -0
  276. package/build-cjs/core/physics/transports/tare/BitremAxleWeightSplit.d.ts.map +1 -0
  277. package/build-cjs/core/physics/transports/tare/BitremAxleWeightSplit.js +36 -0
  278. package/build-cjs/index.d.ts +25 -0
  279. package/build-cjs/index.d.ts.map +1 -0
  280. package/build-cjs/index.js +35 -0
  281. package/build-cjs/package.json +3 -0
  282. package/package.json +27 -4
  283. package/CHANGELOG.md +0 -71
  284. package/tsconfig.eslint.json +0 -15
  285. package/tsconfig.json +0 -19
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Transport = void 0;
4
+ const WireFlags_js_1 = require("../../contracts/WireFlags.js");
5
+ const VehicleType_js_1 = require("../../contracts/VehicleType.js");
6
+ const VehicleVersion_js_1 = require("../../contracts/VehicleVersion.js");
7
+ const AxleManager_js_1 = require("./AxleManager.js");
8
+ const ContainerRecord_js_1 = require("./ContainerRecord.js");
9
+ const ContainerSequenceNotFoundError_js_1 = require("./ContainerSequenceNotFoundError.js");
10
+ /**
11
+ * Parsed transport matching jettainterface.Transport behavior used by axleweight.
12
+ */
13
+ class Transport {
14
+ id;
15
+ containers;
16
+ amount;
17
+ supported_weight;
18
+ tare;
19
+ axle_manager;
20
+ first_axle_distance;
21
+ vehicle_type;
22
+ vehicle_version;
23
+ suspension_type;
24
+ /**
25
+ * @param transport_data - Raw transport dict.
26
+ */
27
+ constructor(transport_data) {
28
+ this.id = String(transport_data[WireFlags_js_1.WIRE_FLAGS.TRANSPORT_ID]);
29
+ this.containers = read_containers(transport_data);
30
+ this.amount = Number(transport_data[WireFlags_js_1.WIRE_FLAGS.AMOUNT] ?? 0);
31
+ this.supported_weight = Number(transport_data[WireFlags_js_1.WIRE_FLAGS.SUPPORTED_WEIGHT]);
32
+ this.tare = Number(transport_data.tara ?? 0);
33
+ this.axle_manager = new AxleManager_js_1.AxleManager(transport_data);
34
+ this.first_axle_distance = Number(transport_data[WireFlags_js_1.WIRE_FLAGS.FIRST_AXLE_DISTANCE] ?? 0);
35
+ this.vehicle_type = read_vehicle_type(transport_data);
36
+ this.vehicle_version = read_vehicle_version(transport_data);
37
+ this.suspension_type = read_suspension_type(transport_data);
38
+ }
39
+ /**
40
+ * @returns Sorted container sequence indexes.
41
+ */
42
+ list_containers_sequence_indexes() {
43
+ return [...this.containers.keys()].sort((left, right) => left - right);
44
+ }
45
+ /**
46
+ * @param sequence_index - Container sequence.
47
+ * @returns Container record.
48
+ */
49
+ get_container_by_sequence_index(sequence_index) {
50
+ const container = this.containers.get(sequence_index);
51
+ if (!container) {
52
+ throw new ContainerSequenceNotFoundError_js_1.ContainerSequenceNotFoundError(sequence_index);
53
+ }
54
+ return container;
55
+ }
56
+ }
57
+ exports.Transport = Transport;
58
+ /**
59
+ * @param transport_data - Raw transport dict.
60
+ * @returns Containers keyed by sequence.
61
+ */
62
+ function read_containers(transport_data) {
63
+ const map = new Map();
64
+ const list = transport_data[WireFlags_js_1.WIRE_FLAGS.CONTAINERS];
65
+ if (!Array.isArray(list)) {
66
+ return map;
67
+ }
68
+ for (const entry of list) {
69
+ const container = new ContainerRecord_js_1.ContainerRecord(entry);
70
+ map.set(container.sequence_index, container);
71
+ }
72
+ return map;
73
+ }
74
+ /**
75
+ * @param transport_data - Raw transport dict.
76
+ * @returns Vehicle type code.
77
+ */
78
+ function read_vehicle_type(transport_data) {
79
+ const raw = transport_data[WireFlags_js_1.WIRE_FLAGS.VEHICLE_TYPE];
80
+ if (raw === undefined || raw === null) {
81
+ return VehicleType_js_1.VEHICLE_TYPE.CONTAINER;
82
+ }
83
+ return Number(raw);
84
+ }
85
+ /**
86
+ * @param transport_data - Raw transport dict.
87
+ * @returns Resolved vehicle version code.
88
+ */
89
+ function read_vehicle_version(transport_data) {
90
+ const vehicle_type = read_vehicle_type(transport_data);
91
+ const version_code = Number(transport_data[WireFlags_js_1.WIRE_FLAGS.VEHICLE_VERSION] ?? 0);
92
+ if (vehicle_type === VehicleType_js_1.VEHICLE_TYPE.CAMINHAO && version_code === 4) {
93
+ return VehicleVersion_js_1.VEHICLE_VERSION.CAMINHAO_BITRUCK;
94
+ }
95
+ if (vehicle_type === VehicleType_js_1.VEHICLE_TYPE.SEMIREBOQUE) {
96
+ if (version_code === 5 || version_code === 7) {
97
+ return VehicleVersion_js_1.VEHICLE_VERSION.SEMIREBOQUE_QUAD;
98
+ }
99
+ if (version_code === 6) {
100
+ return VehicleVersion_js_1.VEHICLE_VERSION.SEMIREBOQUE_BITRUCK;
101
+ }
102
+ }
103
+ return VehicleVersion_js_1.VEHICLE_VERSION.DEFAULT;
104
+ }
105
+ /**
106
+ * @param transport_data - Raw transport dict.
107
+ * @returns Suspension wire string or null.
108
+ */
109
+ function read_suspension_type(transport_data) {
110
+ const raw = transport_data[WireFlags_js_1.WIRE_FLAGS.SUSPENSION_TYPE];
111
+ if (raw === undefined || raw === null) {
112
+ return null;
113
+ }
114
+ return String(raw);
115
+ }
@@ -0,0 +1,21 @@
1
+ import type { GroupedContainers } from '../GroupedContainers.js';
2
+ import type { MaxWeightInput } from './MaxWeightInput.js';
3
+ /**
4
+ * Applies neck weight cap and redistributes excess to second container.
5
+ */
6
+ export declare class ContainerMaxWeightCalculator {
7
+ private readonly grouped_containers;
8
+ private neck_weight_reduction;
9
+ /**
10
+ * @param grouped_containers - Grouper containers.
11
+ */
12
+ constructor(grouped_containers: GroupedContainers);
13
+ /**
14
+ * @param input - Sequence, share, capacity, and tare.
15
+ * @returns Max supported weight for container.
16
+ */
17
+ calculate(input: MaxWeightInput): number;
18
+ private is_neck;
19
+ private is_second_container;
20
+ }
21
+ //# sourceMappingURL=ContainerMaxWeightCalculator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContainerMaxWeightCalculator.d.ts","sourceRoot":"","sources":["../../../../../src/core/physics/transports/containerweight/ContainerMaxWeightCalculator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAIzD;;GAEG;AACH,qBAAa,4BAA4B;IAOzB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAL/C,OAAO,CAAC,qBAAqB,CAAI;IAEjC;;OAEG;gBAC0B,kBAAkB,EAAE,iBAAiB;IAGlE;;;OAGG;IACH,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM;IAmBxC,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,mBAAmB;CAK9B"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ContainerMaxWeightCalculator = void 0;
4
+ const MAX_NECK_SUPPORTED = 6000;
5
+ /**
6
+ * Applies neck weight cap and redistributes excess to second container.
7
+ */
8
+ class ContainerMaxWeightCalculator {
9
+ grouped_containers;
10
+ neck_weight_reduction = 0;
11
+ /**
12
+ * @param grouped_containers - Grouper containers.
13
+ */
14
+ constructor(grouped_containers) {
15
+ this.grouped_containers = grouped_containers;
16
+ }
17
+ /**
18
+ * @param input - Sequence, share, capacity, and tare.
19
+ * @returns Max supported weight for container.
20
+ */
21
+ calculate(input) {
22
+ const max_supported = input.total_max_supported_weight * input.percentage_of_weight;
23
+ if (this.is_neck(input.sequence_index)) {
24
+ const supported = max_supported - input.tare;
25
+ if (supported > MAX_NECK_SUPPORTED) {
26
+ this.neck_weight_reduction = supported - MAX_NECK_SUPPORTED;
27
+ return input.tare + MAX_NECK_SUPPORTED;
28
+ }
29
+ }
30
+ else if (this.is_second_container(input.sequence_index)) {
31
+ return max_supported + this.neck_weight_reduction;
32
+ }
33
+ return max_supported;
34
+ }
35
+ is_neck(sequence_index) {
36
+ const list = this.grouped_containers.list_containers_sequence_indexes();
37
+ return list.length >= 2 && list[0] === sequence_index;
38
+ }
39
+ is_second_container(sequence_index) {
40
+ const list = this.grouped_containers.list_containers_sequence_indexes();
41
+ return list.length >= 2 && list[1] === sequence_index;
42
+ }
43
+ }
44
+ exports.ContainerMaxWeightCalculator = ContainerMaxWeightCalculator;
@@ -0,0 +1,28 @@
1
+ import type { Transport } from '../Transport.js';
2
+ import type { GroupedContainers } from '../GroupedContainers.js';
3
+ /**
4
+ * Distributes grouper tare across containers (neck gets axle-1 share).
5
+ */
6
+ export declare class ContainerTareCalculator {
7
+ private readonly transport;
8
+ private readonly grouped_containers;
9
+ private revised_tare_percentage;
10
+ private first_neck_tare;
11
+ /**
12
+ * @param transport - Parsed transport.
13
+ * @param grouped_containers - Grouper containers.
14
+ */
15
+ constructor(transport: Transport, grouped_containers: GroupedContainers);
16
+ /**
17
+ * @param sequence_index - Container sequence.
18
+ * @param percentage_of_weight - Lateral area share.
19
+ * @param total_tare - Grouper total tare.
20
+ * @returns Container tare.
21
+ */
22
+ calculate(sequence_index: number, percentage_of_weight: number, total_tare: number): number;
23
+ private is_first_neck;
24
+ private calculate_tare_of_first_neck;
25
+ private tare_percentage_review;
26
+ private axle1_on_neck_tare_contribution;
27
+ }
28
+ //# sourceMappingURL=ContainerTareCalculator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContainerTareCalculator.d.ts","sourceRoot":"","sources":["../../../../../src/core/physics/transports/containerweight/ContainerTareCalculator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAIhE;;GAEG;AACH,qBAAa,uBAAuB;IAU5B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IATvC,OAAO,CAAC,uBAAuB,CAAI;IACnC,OAAO,CAAC,eAAe,CAAI;IAE3B;;;OAGG;gBAEkB,SAAS,EAAE,SAAS,EACpB,kBAAkB,EAAE,iBAAiB;IAI1D;;;;;OAKG;IACH,SAAS,CACL,cAAc,EAAE,MAAM,EACtB,oBAAoB,EAAE,MAAM,EAC5B,UAAU,EAAE,MAAM,GACnB,MAAM;IAWT,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,4BAA4B;IAUpC,OAAO,CAAC,sBAAsB;IAQ9B,OAAO,CAAC,+BAA+B;CAO1C"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ContainerTareCalculator = void 0;
4
+ const NECK_SEQUENCE = 1;
5
+ /**
6
+ * Distributes grouper tare across containers (neck gets axle-1 share).
7
+ */
8
+ class ContainerTareCalculator {
9
+ transport;
10
+ grouped_containers;
11
+ revised_tare_percentage = 0;
12
+ first_neck_tare = 0;
13
+ /**
14
+ * @param transport - Parsed transport.
15
+ * @param grouped_containers - Grouper containers.
16
+ */
17
+ constructor(transport, grouped_containers) {
18
+ this.transport = transport;
19
+ this.grouped_containers = grouped_containers;
20
+ }
21
+ /**
22
+ * @param sequence_index - Container sequence.
23
+ * @param percentage_of_weight - Lateral area share.
24
+ * @param total_tare - Grouper total tare.
25
+ * @returns Container tare.
26
+ */
27
+ calculate(sequence_index, percentage_of_weight, total_tare) {
28
+ if (this.is_first_neck(sequence_index)) {
29
+ this.calculate_tare_of_first_neck(percentage_of_weight);
30
+ this.tare_percentage_review(percentage_of_weight, total_tare);
31
+ return this.first_neck_tare;
32
+ }
33
+ return (percentage_of_weight + this.revised_tare_percentage) * total_tare;
34
+ }
35
+ is_first_neck(sequence_index) {
36
+ return this.grouped_containers.list_containers_sequence_indexes().length >= 2
37
+ && sequence_index === NECK_SEQUENCE;
38
+ }
39
+ calculate_tare_of_first_neck(percentage_of_weight) {
40
+ const neck = this.grouped_containers.get_container_by_sequence_index(NECK_SEQUENCE);
41
+ const axle1 = this.axle1_on_neck_tare_contribution(neck.length);
42
+ const remaining = percentage_of_weight * (this.transport.axle_manager.get_axle(1).tare
43
+ + this.transport.axle_manager.get_axle(2).tare);
44
+ this.first_neck_tare = axle1 + remaining;
45
+ }
46
+ tare_percentage_review(percentage_of_weight, total_tare) {
47
+ const tare = percentage_of_weight * total_tare;
48
+ const change = (this.first_neck_tare - tare) / total_tare;
49
+ const count = this.grouped_containers.list_containers_sequence_indexes().length;
50
+ this.revised_tare_percentage = -change / (count - 1);
51
+ }
52
+ axle1_on_neck_tare_contribution(neck_length) {
53
+ const end_container = this.transport.first_axle_distance + neck_length;
54
+ const end_grouper = this.transport.first_axle_distance + this.grouped_containers.length;
55
+ const share = end_container / end_grouper;
56
+ return share * this.transport.axle_manager.get_axle(0).tare;
57
+ }
58
+ }
59
+ exports.ContainerTareCalculator = ContainerTareCalculator;
@@ -0,0 +1,15 @@
1
+ import type { Transport } from '../Transport.js';
2
+ /**
3
+ * Computes per-container supported cargo capacity.
4
+ */
5
+ export declare class ContainerWeightModel {
6
+ private readonly transport;
7
+ private readonly merged_containers;
8
+ /**
9
+ * @param transport - Parsed transport.
10
+ */
11
+ constructor(transport: Transport);
12
+ /** Updates container supported_weight on transport. */
13
+ calculate(): void;
14
+ }
15
+ //# sourceMappingURL=ContainerWeightModel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContainerWeightModel.d.ts","sourceRoot":"","sources":["../../../../../src/core/physics/transports/containerweight/ContainerWeightModel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAKhD;;GAEG;AACH,qBAAa,oBAAoB;IAOjB,OAAO,CAAC,QAAQ,CAAC,SAAS;IALtC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAkB;IAEpD;;OAEG;gBAC0B,SAAS,EAAE,SAAS;IAKjD,uDAAuD;IACvD,SAAS,IAAI,IAAI;CAgBpB"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ContainerWeightModel = void 0;
4
+ const MergedContainers_js_1 = require("../MergedContainers.js");
5
+ const MergedContainersWeightCalculator_js_1 = require("./MergedContainersWeightCalculator.js");
6
+ const SingleContainerWeightCalculator_js_1 = require("./SingleContainerWeightCalculator.js");
7
+ /**
8
+ * Computes per-container supported cargo capacity.
9
+ */
10
+ class ContainerWeightModel {
11
+ transport;
12
+ merged_containers;
13
+ /**
14
+ * @param transport - Parsed transport.
15
+ */
16
+ constructor(transport) {
17
+ this.transport = transport;
18
+ this.merged_containers = new MergedContainers_js_1.MergedContainers(transport);
19
+ }
20
+ /** Updates container supported_weight on transport. */
21
+ calculate() {
22
+ const axles = this.transport.axle_manager.list_axles_indexes()
23
+ .map((index) => this.transport.axle_manager.get_axle(index));
24
+ new MergedContainersWeightCalculator_js_1.MergedContainersWeightCalculator(this.merged_containers, axles).calculate();
25
+ for (const grouper of this.merged_containers.list_grouper_indexes()) {
26
+ const grouped = this.merged_containers.get_container_by_grouper_index(grouper);
27
+ new SingleContainerWeightCalculator_js_1.SingleContainerWeightCalculator(this.transport, grouped).calculate();
28
+ }
29
+ for (const sequence of this.transport.list_containers_sequence_indexes()) {
30
+ const container = this.transport.get_container_by_sequence_index(sequence);
31
+ container.supported_weight = container.max_supported_weight - container.tare;
32
+ }
33
+ }
34
+ }
35
+ exports.ContainerWeightModel = ContainerWeightModel;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Inputs for per-container max supported weight calculation.
3
+ */
4
+ export type MaxWeightInput = {
5
+ sequence_index: number;
6
+ percentage_of_weight: number;
7
+ total_max_supported_weight: number;
8
+ tare: number;
9
+ };
10
+ //# sourceMappingURL=MaxWeightInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MaxWeightInput.d.ts","sourceRoot":"","sources":["../../../../../src/core/physics/transports/containerweight/MaxWeightInput.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IACzB,cAAc,EAAE,MAAM,CAAA;IACtB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,0BAA0B,EAAE,MAAM,CAAA;IAClC,IAAI,EAAE,MAAM,CAAA;CACf,CAAA"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,17 @@
1
+ import type { MergedContainers } from '../MergedContainers.js';
2
+ import type { AxleRecord } from '../AxleRecord.js';
3
+ /**
4
+ * Sums axle capacity and tare onto merged grouper containers.
5
+ */
6
+ export declare class MergedContainersWeightCalculator {
7
+ private readonly merged_containers;
8
+ private readonly transport_axles_list;
9
+ /**
10
+ * @param merged_containers - Grouper layout.
11
+ * @param transport_axles_list - All axles.
12
+ */
13
+ constructor(merged_containers: MergedContainers, transport_axles_list: AxleRecord[]);
14
+ /** Applies summed max weight and tare to each merged grouper container. */
15
+ calculate(): void;
16
+ }
17
+ //# sourceMappingURL=MergedContainersWeightCalculator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MergedContainersWeightCalculator.d.ts","sourceRoot":"","sources":["../../../../../src/core/physics/transports/containerweight/MergedContainersWeightCalculator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAElD;;GAEG;AACH,qBAAa,gCAAgC;IAOrC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IANzC;;;OAGG;gBAEkB,iBAAiB,EAAE,gBAAgB,EACnC,oBAAoB,EAAE,UAAU,EAAE;IAIvD,2EAA2E;IAC3E,SAAS,IAAI,IAAI;CAmBpB"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MergedContainersWeightCalculator = void 0;
4
+ /**
5
+ * Sums axle capacity and tare onto merged grouper containers.
6
+ */
7
+ class MergedContainersWeightCalculator {
8
+ merged_containers;
9
+ transport_axles_list;
10
+ /**
11
+ * @param merged_containers - Grouper layout.
12
+ * @param transport_axles_list - All axles.
13
+ */
14
+ constructor(merged_containers, transport_axles_list) {
15
+ this.merged_containers = merged_containers;
16
+ this.transport_axles_list = transport_axles_list;
17
+ }
18
+ /** Applies summed max weight and tare to each merged grouper container. */
19
+ calculate() {
20
+ for (const grouper of this.merged_containers.list_grouper_indexes()) {
21
+ const grouped = this.merged_containers.get_container_by_grouper_index(grouper);
22
+ const sequences = grouped.list_containers_sequence_indexes();
23
+ const merged = grouped.merged_container;
24
+ merged.max_supported_weight = 0;
25
+ merged.tare = 0;
26
+ for (const axle of this.transport_axles_list) {
27
+ if (sequences.includes(axle.sequence_index)) {
28
+ merged.max_supported_weight += axle.max_supported_weight;
29
+ merged.tare += axle.tare;
30
+ }
31
+ }
32
+ }
33
+ }
34
+ }
35
+ exports.MergedContainersWeightCalculator = MergedContainersWeightCalculator;
@@ -0,0 +1,20 @@
1
+ import type { Transport } from '../Transport.js';
2
+ import type { GroupedContainers } from '../GroupedContainers.js';
3
+ /**
4
+ * Splits grouper capacity across containers by lateral area.
5
+ */
6
+ export declare class SingleContainerWeightCalculator {
7
+ private readonly grouped_containers;
8
+ private readonly tare_calculator;
9
+ private readonly max_calculator;
10
+ /**
11
+ * @param transport - Parsed transport.
12
+ * @param grouped_containers - Grouper containers.
13
+ */
14
+ constructor(transport: Transport, grouped_containers: GroupedContainers);
15
+ /** Assigns max_supported_weight and tare per container in grouper. */
16
+ calculate(): void;
17
+ private total_lateral_area;
18
+ private lateral_area;
19
+ }
20
+ //# sourceMappingURL=SingleContainerWeightCalculator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SingleContainerWeightCalculator.d.ts","sourceRoot":"","sources":["../../../../../src/core/physics/transports/containerweight/SingleContainerWeightCalculator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAKhE;;GAEG;AACH,qBAAa,+BAA+B;IAWpC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IATvC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAyB;IACzD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA8B;IAE7D;;;OAGG;gBAEC,SAAS,EAAE,SAAS,EACH,kBAAkB,EAAE,iBAAiB;IAO1D,sEAAsE;IACtE,SAAS,IAAI,IAAI;IAqBjB,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,YAAY;CAIvB"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SingleContainerWeightCalculator = void 0;
4
+ const ContainerTareCalculator_js_1 = require("./ContainerTareCalculator.js");
5
+ const ContainerMaxWeightCalculator_js_1 = require("./ContainerMaxWeightCalculator.js");
6
+ /**
7
+ * Splits grouper capacity across containers by lateral area.
8
+ */
9
+ class SingleContainerWeightCalculator {
10
+ grouped_containers;
11
+ tare_calculator;
12
+ max_calculator;
13
+ /**
14
+ * @param transport - Parsed transport.
15
+ * @param grouped_containers - Grouper containers.
16
+ */
17
+ constructor(transport, grouped_containers) {
18
+ this.grouped_containers = grouped_containers;
19
+ this.tare_calculator = new ContainerTareCalculator_js_1.ContainerTareCalculator(transport, grouped_containers);
20
+ this.max_calculator = new ContainerMaxWeightCalculator_js_1.ContainerMaxWeightCalculator(grouped_containers);
21
+ }
22
+ /** Assigns max_supported_weight and tare per container in grouper. */
23
+ calculate() {
24
+ const total_area = this.total_lateral_area();
25
+ const merged = this.grouped_containers.merged_container;
26
+ const total_max = merged.max_supported_weight;
27
+ const total_tare = merged.tare;
28
+ for (const sequence of this.grouped_containers.list_containers_sequence_indexes()) {
29
+ const container = this.grouped_containers.get_container_by_sequence_index(sequence);
30
+ const share = this.lateral_area(container) / total_area;
31
+ const tare = this.tare_calculator.calculate(sequence, share, total_tare);
32
+ container.max_supported_weight = this.max_calculator.calculate({
33
+ sequence_index: sequence,
34
+ percentage_of_weight: share,
35
+ total_max_supported_weight: total_max,
36
+ tare
37
+ });
38
+ container.tare = tare;
39
+ }
40
+ }
41
+ total_lateral_area() {
42
+ let total = 0;
43
+ for (const sequence of this.grouped_containers.list_containers_sequence_indexes()) {
44
+ total += this.lateral_area(this.grouped_containers.get_container_by_sequence_index(sequence));
45
+ }
46
+ return total;
47
+ }
48
+ lateral_area(container) {
49
+ return container.length * container.height;
50
+ }
51
+ }
52
+ exports.SingleContainerWeightCalculator = SingleContainerWeightCalculator;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Bitrem shared-axle split multipliers.
3
+ */
4
+ export type BitremAxleSplit = {
5
+ mult: number;
6
+ on_axle_3: boolean;
7
+ };
8
+ //# sourceMappingURL=BitremAxleSplit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BitremAxleSplit.d.ts","sourceRoot":"","sources":["../../../../../src/core/physics/transports/tare/BitremAxleSplit.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,OAAO,CAAA;CACrB,CAAA"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,12 @@
1
+ import type { AxleRecord } from '../AxleRecord.js';
2
+ import type { BitremAxleSplit } from './BitremAxleSplit.js';
3
+ /**
4
+ * Axle records and split multipliers for bitrem shared-axle redistribution.
5
+ */
6
+ export type BitremAxleSplitTarget = {
7
+ old: AxleRecord;
8
+ axle_3: AxleRecord;
9
+ axle_4: AxleRecord;
10
+ split: BitremAxleSplit;
11
+ };
12
+ //# sourceMappingURL=BitremAxleSplitTarget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BitremAxleSplitTarget.d.ts","sourceRoot":"","sources":["../../../../../src/core/physics/transports/tare/BitremAxleSplitTarget.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAE3D;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAChC,GAAG,EAAE,UAAU,CAAA;IACf,MAAM,EAAE,UAAU,CAAA;IAClB,MAAM,EAAE,UAAU,CAAA;IAClB,KAAK,EAAE,eAAe,CAAA;CACzB,CAAA"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,26 @@
1
+ import type { Transport } from '../Transport.js';
2
+ import { AxleRecord } from '../AxleRecord.js';
3
+ /** Splits bitrem shared axle 3 into two axles (DRAGON-98). */
4
+ export declare class BitremAxleSplitter {
5
+ private readonly transport;
6
+ readonly new_axle_3: AxleRecord;
7
+ readonly new_axle_4: AxleRecord;
8
+ readonly new_axle_5: AxleRecord;
9
+ private readonly chassi;
10
+ /**
11
+ * @param transport - Parsed transport.
12
+ */
13
+ constructor(transport: Transport);
14
+ /**
15
+ * @returns Five axle wire rows after split.
16
+ */
17
+ generate_splitted_axles_data(): Record<string, unknown>[];
18
+ calculate_first_proportion(): number;
19
+ calculate_second_proportion(): number;
20
+ private generate_new_weight_attributes;
21
+ private generate_new_axle_distances;
22
+ private generate_new_axle_container_sequences;
23
+ private generate_merged_axle_connection;
24
+ private distance_from_axle_3_to_pin_2;
25
+ }
26
+ //# sourceMappingURL=BitremAxleSplitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BitremAxleSplitter.d.ts","sourceRoot":"","sources":["../../../../../src/core/physics/transports/tare/BitremAxleSplitter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAGhD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAG7C,8DAA8D;AAC9D,qBAAa,kBAAkB;IAUf,OAAO,CAAC,QAAQ,CAAC,SAAS;IARtC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAA;IAC/B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAA;IAC/B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAA;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAE/B;;OAEG;gBAC0B,SAAS,EAAE,SAAS;IAQjD;;OAEG;IACH,4BAA4B,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;IAezD,0BAA0B,IAAI,MAAM;IAOpC,2BAA2B,IAAI,MAAM;IAQrC,OAAO,CAAC,8BAA8B;IActC,OAAO,CAAC,2BAA2B;IAQnC,OAAO,CAAC,qCAAqC;IAS7C,OAAO,CAAC,+BAA+B;IAKvC,OAAO,CAAC,6BAA6B;CAMxC"}
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BitremAxleSplitter = void 0;
4
+ const ChassiReference_js_1 = require("../../../contracts/ChassiReference.js");
5
+ const Chassi_js_1 = require("../Chassi.js");
6
+ const MergedContainers_js_1 = require("../MergedContainers.js");
7
+ const AxleRecord_js_1 = require("../AxleRecord.js");
8
+ const BitremAxleWeightSplit_js_1 = require("./BitremAxleWeightSplit.js");
9
+ /** Splits bitrem shared axle 3 into two axles (DRAGON-98). */
10
+ class BitremAxleSplitter {
11
+ transport;
12
+ new_axle_3;
13
+ new_axle_4;
14
+ new_axle_5;
15
+ chassi;
16
+ /**
17
+ * @param transport - Parsed transport.
18
+ */
19
+ constructor(transport) {
20
+ this.transport = transport;
21
+ this.chassi = new Chassi_js_1.Chassi(transport);
22
+ this.new_axle_3 = clone_axle(transport.axle_manager.get_axle(2));
23
+ this.new_axle_4 = clone_axle(transport.axle_manager.get_axle(2));
24
+ this.new_axle_5 = clone_axle(transport.axle_manager.get_axle(3));
25
+ }
26
+ /**
27
+ * @returns Five axle wire rows after split.
28
+ */
29
+ generate_splitted_axles_data() {
30
+ this.generate_new_weight_attributes();
31
+ this.generate_new_axle_distances();
32
+ this.generate_new_axle_container_sequences();
33
+ this.generate_merged_axle_connection();
34
+ return [
35
+ this.transport.axle_manager.get_axle(0).to_wire(),
36
+ this.transport.axle_manager.get_axle(1).to_wire(),
37
+ this.new_axle_3.to_wire(),
38
+ this.new_axle_4.to_wire(),
39
+ this.new_axle_5.to_wire()
40
+ ];
41
+ }
42
+ calculate_first_proportion() {
43
+ const a = this.chassi.get_axle_position(1, ChassiReference_js_1.CHASSI_REFERENCE.GROUPER_1);
44
+ const b = this.chassi.get_axle_position(2, ChassiReference_js_1.CHASSI_REFERENCE.GROUPER_1) - a;
45
+ return a / b;
46
+ }
47
+ calculate_second_proportion() {
48
+ const axle_3 = this.chassi.get_axle_position(2, ChassiReference_js_1.CHASSI_REFERENCE.TRACTOR);
49
+ const axle_4 = this.chassi.get_axle_position(3, ChassiReference_js_1.CHASSI_REFERENCE.TRACTOR);
50
+ const end = this.chassi.get_grouper_end(2, ChassiReference_js_1.CHASSI_REFERENCE.TRACTOR);
51
+ return (end - axle_4) / (axle_4 - axle_3);
52
+ }
53
+ generate_new_weight_attributes() {
54
+ const old = this.transport.axle_manager.get_axle(2);
55
+ const split = (0, BitremAxleWeightSplit_js_1.compute_bitrem_axle_split)(this.calculate_first_proportion(), this.calculate_second_proportion());
56
+ (0, BitremAxleWeightSplit_js_1.apply_bitrem_axle_split)({
57
+ old,
58
+ axle_3: this.new_axle_3,
59
+ axle_4: this.new_axle_4,
60
+ split
61
+ });
62
+ }
63
+ generate_new_axle_distances() {
64
+ const old_4 = this.transport.axle_manager.get_axle(3);
65
+ this.new_axle_4.distance_from_previous_axle = this.distance_from_axle_3_to_pin_2();
66
+ this.new_axle_5.distance_from_previous_axle = old_4.distance_from_previous_axle
67
+ - this.new_axle_4.distance_from_previous_axle;
68
+ }
69
+ generate_new_axle_container_sequences() {
70
+ const merged = new MergedContainers_js_1.MergedContainers(this.transport);
71
+ this.new_axle_3.sequence_index = merged.get_container_by_grouper_index(1)
72
+ .list_containers_sequence_indexes()[0];
73
+ this.new_axle_4.sequence_index = merged.get_container_by_grouper_index(2)
74
+ .list_containers_sequence_indexes()[0];
75
+ }
76
+ generate_merged_axle_connection() {
77
+ this.new_axle_4.is_connected_to = 2;
78
+ }
79
+ distance_from_axle_3_to_pin_2() {
80
+ const axle_3 = this.chassi.get_axle_position(2, ChassiReference_js_1.CHASSI_REFERENCE.TRACTOR);
81
+ const pin_2 = this.chassi.get_pin_position(1, ChassiReference_js_1.CHASSI_REFERENCE.TRACTOR);
82
+ return pin_2 - axle_3;
83
+ }
84
+ }
85
+ exports.BitremAxleSplitter = BitremAxleSplitter;
86
+ function clone_axle(source) {
87
+ return new AxleRecord_js_1.AxleRecord(source.to_wire());
88
+ }