@jetta/axle-load-calculator 0.1.3 → 0.2.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 (519) hide show
  1. package/README.md +4 -1
  2. package/build/core/contracts/{chassi_reference.d.ts → ChassiReference.d.ts} +1 -1
  3. package/build/core/contracts/ChassiReference.d.ts.map +1 -0
  4. package/build/core/contracts/{ms_faixas_contract.d.ts → MsFaixasContract.d.ts} +2 -2
  5. package/build/core/contracts/MsFaixasContract.d.ts.map +1 -0
  6. package/build/core/contracts/{ms_faixas_contract.js → MsFaixasContract.js} +3 -3
  7. package/build/core/contracts/{rotation_enum.d.ts → RotationEnum.d.ts} +1 -1
  8. package/build/core/contracts/RotationEnum.d.ts.map +1 -0
  9. package/build/core/contracts/{suspension_type.d.ts → SuspensionType.d.ts} +1 -1
  10. package/build/core/contracts/SuspensionType.d.ts.map +1 -0
  11. package/build/core/contracts/{transport_record.d.ts → TransportRecord.d.ts} +1 -1
  12. package/build/core/contracts/TransportRecord.d.ts.map +1 -0
  13. package/build/core/contracts/{vehicle_type.d.ts → VehicleType.d.ts} +1 -1
  14. package/build/core/contracts/VehicleType.d.ts.map +1 -0
  15. package/build/core/contracts/{vehicle_version.d.ts → VehicleVersion.d.ts} +1 -1
  16. package/build/core/contracts/VehicleVersion.d.ts.map +1 -0
  17. package/build/core/contracts/{wire_flags.d.ts → WireFlags.d.ts} +1 -1
  18. package/build/core/contracts/WireFlags.d.ts.map +1 -0
  19. package/build/core/math/{float_tools.d.ts → FloatTools.d.ts} +1 -1
  20. package/build/core/math/FloatTools.d.ts.map +1 -0
  21. package/build/core/math/{gaussian_elimination.d.ts → GaussianElimination.d.ts} +1 -1
  22. package/build/core/math/GaussianElimination.d.ts.map +1 -0
  23. package/build/core/orchestration/{axle_weight_physics.d.ts → AxleWeightPhysics.d.ts} +1 -1
  24. package/build/core/orchestration/AxleWeightPhysics.d.ts.map +1 -0
  25. package/build/core/orchestration/{axle_weight_physics.js → AxleWeightPhysics.js} +3 -3
  26. package/build/core/orchestration/{collision_checker.d.ts → CollisionChecker.d.ts} +1 -1
  27. package/build/core/orchestration/CollisionChecker.d.ts.map +1 -0
  28. package/build/core/orchestration/{collision_checker.js → CollisionChecker.js} +3 -1
  29. package/build/core/orchestration/{connector_payload_builder.d.ts → ConnectorPayloadBuilder.d.ts} +1 -1
  30. package/build/core/orchestration/ConnectorPayloadBuilder.d.ts.map +1 -0
  31. package/build/core/orchestration/{connector_payload_builder.js → ConnectorPayloadBuilder.js} +27 -13
  32. package/build/core/orchestration/ItemOverlapError.d.ts +9 -0
  33. package/build/core/orchestration/ItemOverlapError.d.ts.map +1 -0
  34. package/build/core/orchestration/ItemOverlapError.js +11 -0
  35. package/build/core/orchestration/{java_mass_center.d.ts → JavaMassCenter.d.ts} +2 -2
  36. package/build/core/orchestration/JavaMassCenter.d.ts.map +1 -0
  37. package/build/core/orchestration/{java_mass_center.js → JavaMassCenter.js} +1 -1
  38. package/build/core/orchestration/{output_builder.d.ts → OutputBuilder.d.ts} +1 -1
  39. package/build/core/orchestration/OutputBuilder.d.ts.map +1 -0
  40. package/build/core/orchestration/{request_schema.d.ts → RequestSchema.d.ts} +8 -1
  41. package/build/core/orchestration/RequestSchema.d.ts.map +1 -0
  42. package/build/core/orchestration/RequestSchema.js +41 -0
  43. package/build/core/orchestration/WeightByAxisTask.d.ts +8 -0
  44. package/build/core/orchestration/WeightByAxisTask.d.ts.map +1 -0
  45. package/build/core/orchestration/{weight_by_axis_task.js → WeightByAxisTask.js} +10 -8
  46. package/build/core/physics/items/{allocated_item.d.ts → AllocatedItem.d.ts} +3 -3
  47. package/build/core/physics/items/AllocatedItem.d.ts.map +1 -0
  48. package/build/core/physics/items/{allocated_item.js → AllocatedItem.js} +1 -1
  49. package/build/core/physics/items/{allocated_item_manager.d.ts → AllocatedItemManager.d.ts} +3 -3
  50. package/build/core/physics/items/AllocatedItemManager.d.ts.map +1 -0
  51. package/build/core/physics/items/BindChassiSolver.d.ts +12 -0
  52. package/build/core/physics/items/BindChassiSolver.d.ts.map +1 -0
  53. package/build/core/physics/items/BindChassiSolver.js +10 -0
  54. package/build/core/physics/items/{center_of_mass.d.ts → CenterOfMass.d.ts} +2 -2
  55. package/build/core/physics/items/CenterOfMass.d.ts.map +1 -0
  56. package/build/core/physics/items/{compute_grouper_center_of_mass.d.ts → ComputeGrouperCenterOfMass.d.ts} +6 -6
  57. package/build/core/physics/items/ComputeGrouperCenterOfMass.d.ts.map +1 -0
  58. package/build/core/physics/items/{compute_grouper_center_of_mass.js → ComputeGrouperCenterOfMass.js} +2 -2
  59. package/build/core/physics/items/{item_templates.d.ts → ItemTemplates.d.ts} +2 -2
  60. package/build/core/physics/items/ItemTemplates.d.ts.map +1 -0
  61. package/build/core/physics/items/{item_templates.js → ItemTemplates.js} +4 -3
  62. package/build/core/physics/items/{multi_container_allocated_items.d.ts → MultiContainerAllocatedItems.d.ts} +4 -4
  63. package/build/core/physics/items/MultiContainerAllocatedItems.d.ts.map +1 -0
  64. package/build/core/physics/items/{multi_container_allocated_items.js → MultiContainerAllocatedItems.js} +2 -2
  65. package/build/core/physics/items/{rotation_transforms.d.ts → RotationTransforms.d.ts} +2 -2
  66. package/build/core/physics/items/RotationTransforms.d.ts.map +1 -0
  67. package/build/core/physics/items/{rotation_transforms.js → RotationTransforms.js} +1 -1
  68. package/build/core/physics/items/UnknownItemIdError.d.ts +10 -0
  69. package/build/core/physics/items/UnknownItemIdError.d.ts.map +1 -0
  70. package/build/core/physics/items/UnknownItemIdError.js +12 -0
  71. package/build/core/physics/models/{axle_weight_model.d.ts → AxleWeightModel.d.ts} +6 -6
  72. package/build/core/physics/models/AxleWeightModel.d.ts.map +1 -0
  73. package/build/core/physics/models/{axle_weight_model.js → AxleWeightModel.js} +11 -10
  74. package/build/core/physics/models/{bi_truck_model.d.ts → BiTruckModel.d.ts} +5 -5
  75. package/build/core/physics/models/BiTruckModel.d.ts.map +1 -0
  76. package/build/core/physics/models/{bi_truck_model.js → BiTruckModel.js} +5 -5
  77. package/build/core/physics/models/{bi_truck_tractor_semi_trailer_model.d.ts → BiTruckTractorSemiTrailerModel.d.ts} +5 -5
  78. package/build/core/physics/models/BiTruckTractorSemiTrailerModel.d.ts.map +1 -0
  79. package/build/core/physics/models/{bi_truck_tractor_semi_trailer_model.js → BiTruckTractorSemiTrailerModel.js} +5 -5
  80. package/build/core/physics/models/{bitrem_model.d.ts → BitremModel.d.ts} +6 -6
  81. package/build/core/physics/models/BitremModel.d.ts.map +1 -0
  82. package/build/core/physics/models/{bitrem_model.js → BitremModel.js} +7 -6
  83. package/build/core/physics/models/{chassi_forces.d.ts → ChassiForces.d.ts} +1 -1
  84. package/build/core/physics/models/ChassiForces.d.ts.map +1 -0
  85. package/build/core/physics/models/{old_tare_model.d.ts → OldTareModel.d.ts} +2 -2
  86. package/build/core/physics/models/OldTareModel.d.ts.map +1 -0
  87. package/build/core/physics/models/{old_tare_model.js → OldTareModel.js} +5 -5
  88. package/build/core/physics/models/{old_tare_scale.d.ts → OldTareScale.d.ts} +1 -1
  89. package/build/core/physics/models/OldTareScale.d.ts.map +1 -0
  90. package/build/core/physics/models/{old_tare_semireboque.d.ts → OldTareSemireboque.d.ts} +2 -2
  91. package/build/core/physics/models/OldTareSemireboque.d.ts.map +1 -0
  92. package/build/core/physics/models/{old_tare_semireboque.js → OldTareSemireboque.js} +2 -2
  93. package/build/core/physics/models/{old_tare_truck.d.ts → OldTareTruck.d.ts} +2 -2
  94. package/build/core/physics/models/OldTareTruck.d.ts.map +1 -0
  95. package/build/core/physics/models/{old_tare_truck.js → OldTareTruck.js} +2 -2
  96. package/build/core/physics/models/{old_tare_vanderleia.d.ts → OldTareVanderleia.d.ts} +2 -2
  97. package/build/core/physics/models/OldTareVanderleia.d.ts.map +1 -0
  98. package/build/core/physics/models/{old_tare_vanderleia.js → OldTareVanderleia.js} +1 -1
  99. package/build/core/physics/models/{percentage_on_axles_calculator.d.ts → PercentageOnAxlesCalculator.d.ts} +2 -2
  100. package/build/core/physics/models/PercentageOnAxlesCalculator.d.ts.map +1 -0
  101. package/build/core/physics/models/{percentage_on_axles_calculator.js → PercentageOnAxlesCalculator.js} +1 -1
  102. package/build/core/physics/models/{quad_semi_trailer_model.d.ts → QuadSemiTrailerModel.d.ts} +5 -5
  103. package/build/core/physics/models/QuadSemiTrailerModel.d.ts.map +1 -0
  104. package/build/core/physics/models/{quad_semi_trailer_model.js → QuadSemiTrailerModel.js} +5 -5
  105. package/build/core/physics/models/{rodotrem_model.d.ts → RodotremModel.d.ts} +6 -6
  106. package/build/core/physics/models/RodotremModel.d.ts.map +1 -0
  107. package/build/core/physics/models/{rodotrem_model.js → RodotremModel.js} +7 -6
  108. package/build/core/physics/models/SemiDelegate.d.ts +9 -0
  109. package/build/core/physics/models/SemiDelegate.d.ts.map +1 -0
  110. package/build/core/physics/models/SemiDelegate.js +1 -0
  111. package/build/core/physics/models/{semi_reboque_base.d.ts → SemiReboqueBase.d.ts} +4 -4
  112. package/build/core/physics/models/SemiReboqueBase.d.ts.map +1 -0
  113. package/build/core/physics/models/{semi_reboque_base.js → SemiReboqueBase.js} +4 -4
  114. package/build/core/physics/models/{semi_reboque_model.d.ts → SemiReboqueModel.d.ts} +5 -5
  115. package/build/core/physics/models/SemiReboqueModel.d.ts.map +1 -0
  116. package/build/core/physics/models/{semi_reboque_model.js → SemiReboqueModel.js} +8 -7
  117. package/build/core/physics/models/{simple_truck_base.d.ts → SimpleTruckBase.d.ts} +4 -4
  118. package/build/core/physics/models/SimpleTruckBase.d.ts.map +1 -0
  119. package/build/core/physics/models/{simple_truck_base.js → SimpleTruckBase.js} +3 -3
  120. package/build/core/physics/models/{simple_truck_model.d.ts → SimpleTruckModel.d.ts} +5 -5
  121. package/build/core/physics/models/SimpleTruckModel.d.ts.map +1 -0
  122. package/build/core/physics/models/{simple_truck_model.js → SimpleTruckModel.js} +7 -6
  123. package/build/core/physics/models/{single_container_tare.d.ts → SingleContainerTare.d.ts} +2 -2
  124. package/build/core/physics/models/SingleContainerTare.d.ts.map +1 -0
  125. package/build/core/physics/models/{single_container_tare.js → SingleContainerTare.js} +2 -2
  126. package/build/core/physics/models/{tare_model.d.ts → TareModel.d.ts} +2 -2
  127. package/build/core/physics/models/TareModel.d.ts.map +1 -0
  128. package/build/core/physics/models/{tare_model.js → TareModel.js} +3 -3
  129. package/build/core/physics/models/TruckDelegate.d.ts +9 -0
  130. package/build/core/physics/models/TruckDelegate.d.ts.map +1 -0
  131. package/build/core/physics/models/TruckDelegate.js +1 -0
  132. package/build/core/physics/models/UnrecognizedSuspensionTypeError.d.ts +10 -0
  133. package/build/core/physics/models/UnrecognizedSuspensionTypeError.d.ts.map +1 -0
  134. package/build/core/physics/models/UnrecognizedSuspensionTypeError.js +12 -0
  135. package/build/core/physics/models/UnsupportedVehicleTypeError.d.ts +10 -0
  136. package/build/core/physics/models/UnsupportedVehicleTypeError.d.ts.map +1 -0
  137. package/build/core/physics/models/UnsupportedVehicleTypeError.js +12 -0
  138. package/build/core/physics/models/{vanderleia_model.d.ts → VanderleiaModel.d.ts} +6 -6
  139. package/build/core/physics/models/VanderleiaModel.d.ts.map +1 -0
  140. package/build/core/physics/models/{vanderleia_model.js → VanderleiaModel.js} +10 -8
  141. package/build/core/physics/models/VehicleModel.d.ts +11 -0
  142. package/build/core/physics/models/VehicleModel.d.ts.map +1 -0
  143. package/build/core/physics/models/VehicleModel.js +1 -0
  144. package/build/core/physics/models/deflection/{beam_deflection.d.ts → BeamDeflection.d.ts} +2 -2
  145. package/build/core/physics/models/deflection/BeamDeflection.d.ts.map +1 -0
  146. package/build/core/physics/models/deflection/{beam_deflection.js → BeamDeflection.js} +2 -2
  147. package/build/core/physics/models/deflection/{bitrem_deflection.d.ts → BitremDeflection.d.ts} +3 -3
  148. package/build/core/physics/models/deflection/BitremDeflection.d.ts.map +1 -0
  149. package/build/core/physics/models/deflection/{bitrem_deflection.js → BitremDeflection.js} +3 -3
  150. package/build/core/physics/models/deflection/{create_deflection_delegate.d.ts → CreateDeflectionDelegate.d.ts} +3 -6
  151. package/build/core/physics/models/deflection/CreateDeflectionDelegate.d.ts.map +1 -0
  152. package/build/core/physics/models/deflection/CreateDeflectionDelegate.js +24 -0
  153. package/build/core/physics/models/deflection/DeflectionDelegate.d.ts +8 -0
  154. package/build/core/physics/models/deflection/DeflectionDelegate.d.ts.map +1 -0
  155. package/build/core/physics/models/deflection/DeflectionDelegate.js +1 -0
  156. package/build/core/physics/models/deflection/DeflectionDelegateFactories.d.ts +36 -0
  157. package/build/core/physics/models/deflection/DeflectionDelegateFactories.d.ts.map +1 -0
  158. package/build/core/physics/models/deflection/DeflectionDelegateFactories.js +51 -0
  159. package/build/core/physics/models/deflection/{deflection_model.d.ts → DeflectionModel.d.ts} +3 -3
  160. package/build/core/physics/models/deflection/DeflectionModel.d.ts.map +1 -0
  161. package/build/core/physics/models/deflection/{deflection_model.js → DeflectionModel.js} +2 -2
  162. package/build/core/physics/models/deflection/DeflectionModelNotImplementedError.d.ts +9 -0
  163. package/build/core/physics/models/deflection/DeflectionModelNotImplementedError.d.ts.map +1 -0
  164. package/build/core/physics/models/deflection/DeflectionModelNotImplementedError.js +11 -0
  165. package/build/core/physics/models/deflection/{deflection_support_manager.d.ts → DeflectionSupportManager.d.ts} +15 -1
  166. package/build/core/physics/models/deflection/DeflectionSupportManager.d.ts.map +1 -0
  167. package/build/core/physics/models/deflection/{deflection_support_manager.js → DeflectionSupportManager.js} +14 -0
  168. package/build/core/physics/models/deflection/{deflection_tools.d.ts → DeflectionTools.d.ts} +1 -1
  169. package/build/core/physics/models/deflection/DeflectionTools.d.ts.map +1 -0
  170. package/build/core/physics/models/deflection/DelegateFactory.d.ts +12 -0
  171. package/build/core/physics/models/deflection/DelegateFactory.d.ts.map +1 -0
  172. package/build/core/physics/models/deflection/DelegateFactory.js +1 -0
  173. package/build/core/physics/models/deflection/{integration_constant_calculator.d.ts → IntegrationConstantCalculator.d.ts} +6 -3
  174. package/build/core/physics/models/deflection/IntegrationConstantCalculator.d.ts.map +1 -0
  175. package/build/core/physics/models/deflection/{integration_constant_calculator.js → IntegrationConstantCalculator.js} +4 -1
  176. package/build/core/physics/models/deflection/{rodotrem_deflection.d.ts → RodotremDeflection.d.ts} +3 -3
  177. package/build/core/physics/models/deflection/RodotremDeflection.d.ts.map +1 -0
  178. package/build/core/physics/models/deflection/{rodotrem_deflection.js → RodotremDeflection.js} +3 -3
  179. package/build/core/physics/models/deflection/{semi_reboque_deflection.d.ts → SemiReboqueDeflection.d.ts} +3 -3
  180. package/build/core/physics/models/deflection/SemiReboqueDeflection.d.ts.map +1 -0
  181. package/build/core/physics/models/deflection/{semi_reboque_deflection.js → SemiReboqueDeflection.js} +2 -2
  182. package/build/core/physics/models/deflection/{simple_truck_deflection.d.ts → SimpleTruckDeflection.d.ts} +3 -3
  183. package/build/core/physics/models/deflection/SimpleTruckDeflection.d.ts.map +1 -0
  184. package/build/core/physics/models/deflection/{simple_truck_deflection.js → SimpleTruckDeflection.js} +2 -2
  185. package/build/core/physics/models/deflection/{vanderleia_deflection.d.ts → VanderleiaDeflection.d.ts} +3 -3
  186. package/build/core/physics/models/deflection/VanderleiaDeflection.d.ts.map +1 -0
  187. package/build/core/physics/models/deflection/{vanderleia_deflection.js → VanderleiaDeflection.js} +3 -3
  188. package/build/core/physics/services/{axle_weight_output_builder.d.ts → AxleWeightOutputBuilder.d.ts} +4 -4
  189. package/build/core/physics/services/AxleWeightOutputBuilder.d.ts.map +1 -0
  190. package/build/core/physics/services/{axle_weight_output_builder.js → AxleWeightOutputBuilder.js} +2 -2
  191. package/build/core/physics/services/{axle_weight_service.d.ts → AxleWeightService.d.ts} +1 -1
  192. package/build/core/physics/services/AxleWeightService.d.ts.map +1 -0
  193. package/build/core/physics/services/{axle_weight_service.js → AxleWeightService.js} +6 -6
  194. package/build/core/physics/services/{cm_axle_weight_service.d.ts → CmAxleWeightService.d.ts} +2 -2
  195. package/build/core/physics/services/CmAxleWeightService.d.ts.map +1 -0
  196. package/build/core/physics/services/{cm_axle_weight_service.js → CmAxleWeightService.js} +3 -3
  197. package/build/core/physics/services/{container_corner_forces.d.ts → ContainerCornerForces.d.ts} +1 -1
  198. package/build/core/physics/services/ContainerCornerForces.d.ts.map +1 -0
  199. package/build/core/physics/transports/{axle_manager.d.ts → AxleManager.d.ts} +3 -3
  200. package/build/core/physics/transports/AxleManager.d.ts.map +1 -0
  201. package/build/core/physics/transports/{axle_manager.js → AxleManager.js} +2 -2
  202. package/build/core/physics/transports/{axle_record.d.ts → AxleRecord.d.ts} +1 -1
  203. package/build/core/physics/transports/AxleRecord.d.ts.map +1 -0
  204. package/build/core/physics/transports/{axle_record.js → AxleRecord.js} +1 -1
  205. package/build/core/physics/transports/{chassi.d.ts → Chassi.d.ts} +3 -3
  206. package/build/core/physics/transports/{chassi.d.ts.map → Chassi.d.ts.map} +1 -1
  207. package/build/core/physics/transports/{chassi.js → Chassi.js} +2 -2
  208. package/build/core/physics/transports/{container_record.d.ts → ContainerRecord.d.ts} +1 -1
  209. package/build/core/physics/transports/ContainerRecord.d.ts.map +1 -0
  210. package/build/core/physics/transports/{container_record.js → ContainerRecord.js} +1 -1
  211. package/build/core/physics/transports/ContainerSequenceNotFoundError.d.ts +10 -0
  212. package/build/core/physics/transports/ContainerSequenceNotFoundError.d.ts.map +1 -0
  213. package/build/core/physics/transports/ContainerSequenceNotFoundError.js +12 -0
  214. package/build/core/physics/transports/{grouped_containers.d.ts → GroupedContainers.d.ts} +2 -2
  215. package/build/core/physics/transports/GroupedContainers.d.ts.map +1 -0
  216. package/build/core/physics/transports/{grouped_containers.js → GroupedContainers.js} +3 -2
  217. package/build/core/physics/transports/GrouperNotFoundError.d.ts +10 -0
  218. package/build/core/physics/transports/GrouperNotFoundError.d.ts.map +1 -0
  219. package/build/core/physics/transports/GrouperNotFoundError.js +12 -0
  220. package/build/core/physics/transports/{merged_containers.d.ts → MergedContainers.d.ts} +3 -3
  221. package/build/core/physics/transports/MergedContainers.d.ts.map +1 -0
  222. package/build/core/physics/transports/{merged_containers.js → MergedContainers.js} +3 -2
  223. package/build/core/physics/transports/MissingContainerError.d.ts +10 -0
  224. package/build/core/physics/transports/MissingContainerError.d.ts.map +1 -0
  225. package/build/core/physics/transports/MissingContainerError.js +12 -0
  226. package/build/core/physics/transports/{transport.d.ts → Transport.d.ts} +5 -5
  227. package/build/core/physics/transports/Transport.d.ts.map +1 -0
  228. package/build/core/physics/transports/{transport.js → Transport.js} +7 -6
  229. package/build/core/physics/transports/containerweight/{container_max_weight_calculator.d.ts → ContainerMaxWeightCalculator.d.ts} +3 -9
  230. package/build/core/physics/transports/containerweight/ContainerMaxWeightCalculator.d.ts.map +1 -0
  231. package/build/core/physics/transports/containerweight/{container_tare_calculator.d.ts → ContainerTareCalculator.d.ts} +3 -3
  232. package/build/core/physics/transports/containerweight/ContainerTareCalculator.d.ts.map +1 -0
  233. package/build/core/physics/transports/containerweight/{container_weight_model.d.ts → ContainerWeightModel.d.ts} +2 -2
  234. package/build/core/physics/transports/containerweight/ContainerWeightModel.d.ts.map +1 -0
  235. package/build/core/physics/transports/containerweight/{container_weight_model.js → ContainerWeightModel.js} +3 -3
  236. package/build/core/physics/transports/containerweight/MaxWeightInput.d.ts +10 -0
  237. package/build/core/physics/transports/containerweight/MaxWeightInput.d.ts.map +1 -0
  238. package/build/core/physics/transports/containerweight/MaxWeightInput.js +1 -0
  239. package/build/core/physics/transports/containerweight/{merged_containers_weight_calculator.d.ts → MergedContainersWeightCalculator.d.ts} +3 -3
  240. package/build/core/physics/transports/containerweight/MergedContainersWeightCalculator.d.ts.map +1 -0
  241. package/build/core/physics/transports/containerweight/{single_container_weight_calculator.d.ts → SingleContainerWeightCalculator.d.ts} +3 -3
  242. package/build/core/physics/transports/containerweight/SingleContainerWeightCalculator.d.ts.map +1 -0
  243. package/build/core/physics/transports/containerweight/{single_container_weight_calculator.js → SingleContainerWeightCalculator.js} +2 -2
  244. package/build/core/physics/transports/tare/BitremAxleSplit.d.ts +8 -0
  245. package/build/core/physics/transports/tare/BitremAxleSplit.d.ts.map +1 -0
  246. package/build/core/physics/transports/tare/BitremAxleSplit.js +1 -0
  247. package/build/core/physics/transports/tare/BitremAxleSplitTarget.d.ts +12 -0
  248. package/build/core/physics/transports/tare/BitremAxleSplitTarget.d.ts.map +1 -0
  249. package/build/core/physics/transports/tare/BitremAxleSplitTarget.js +1 -0
  250. package/build/core/physics/transports/tare/{bitrem_axle_splitter.d.ts → BitremAxleSplitter.d.ts} +3 -3
  251. package/build/core/physics/transports/tare/BitremAxleSplitter.d.ts.map +1 -0
  252. package/build/core/physics/transports/tare/{bitrem_axle_splitter.js → BitremAxleSplitter.js} +5 -5
  253. package/build/core/physics/transports/tare/{bitrem_axle_weight_split.d.ts → BitremAxleWeightSplit.d.ts} +3 -12
  254. package/build/core/physics/transports/tare/BitremAxleWeightSplit.d.ts.map +1 -0
  255. package/build/index.d.ts +7 -0
  256. package/build/index.d.ts.map +1 -1
  257. package/build/index.js +4 -6
  258. package/package.json +3 -3
  259. package/.cursor/ai_changelog/INDEX.md +0 -13
  260. package/.cursor/ai_changelog/_TEMPLATE.md +0 -55
  261. package/.cursor/rules/code-standards.mdc +0 -103
  262. package/.cursor/rules/knowledge-base.mdc +0 -14
  263. package/.cursor/rules/planning-standards.mdc +0 -55
  264. package/.cursor/skills/document-feature-knowledge/SKILL.md +0 -51
  265. package/bitbucket-pipelines.yml +0 -81
  266. package/build/core/contracts/chassi_reference.d.ts.map +0 -1
  267. package/build/core/contracts/ms_faixas_contract.d.ts.map +0 -1
  268. package/build/core/contracts/rotation_enum.d.ts.map +0 -1
  269. package/build/core/contracts/suspension_type.d.ts.map +0 -1
  270. package/build/core/contracts/transport_record.d.ts.map +0 -1
  271. package/build/core/contracts/vehicle_type.d.ts.map +0 -1
  272. package/build/core/contracts/vehicle_version.d.ts.map +0 -1
  273. package/build/core/contracts/wire_flags.d.ts.map +0 -1
  274. package/build/core/math/float_tools.d.ts.map +0 -1
  275. package/build/core/math/gaussian_elimination.d.ts.map +0 -1
  276. package/build/core/orchestration/axle_weight_physics.d.ts.map +0 -1
  277. package/build/core/orchestration/collision_checker.d.ts.map +0 -1
  278. package/build/core/orchestration/connector_payload_builder.d.ts.map +0 -1
  279. package/build/core/orchestration/java_mass_center.d.ts.map +0 -1
  280. package/build/core/orchestration/output_builder.d.ts.map +0 -1
  281. package/build/core/orchestration/request_schema.d.ts.map +0 -1
  282. package/build/core/orchestration/request_schema.js +0 -20
  283. package/build/core/orchestration/weight_by_axis_task.d.ts +0 -7
  284. package/build/core/orchestration/weight_by_axis_task.d.ts.map +0 -1
  285. package/build/core/physics/items/allocated_item.d.ts.map +0 -1
  286. package/build/core/physics/items/allocated_item_manager.d.ts.map +0 -1
  287. package/build/core/physics/items/center_of_mass.d.ts.map +0 -1
  288. package/build/core/physics/items/compute_grouper_center_of_mass.d.ts.map +0 -1
  289. package/build/core/physics/items/item_templates.d.ts.map +0 -1
  290. package/build/core/physics/items/multi_container_allocated_items.d.ts.map +0 -1
  291. package/build/core/physics/items/rotation_transforms.d.ts.map +0 -1
  292. package/build/core/physics/models/axle_weight_model.d.ts.map +0 -1
  293. package/build/core/physics/models/bi_truck_model.d.ts.map +0 -1
  294. package/build/core/physics/models/bi_truck_tractor_semi_trailer_model.d.ts.map +0 -1
  295. package/build/core/physics/models/bitrem_model.d.ts.map +0 -1
  296. package/build/core/physics/models/chassi_forces.d.ts.map +0 -1
  297. package/build/core/physics/models/deflection/beam_deflection.d.ts.map +0 -1
  298. package/build/core/physics/models/deflection/bitrem_deflection.d.ts.map +0 -1
  299. package/build/core/physics/models/deflection/create_deflection_delegate.d.ts.map +0 -1
  300. package/build/core/physics/models/deflection/create_deflection_delegate.js +0 -32
  301. package/build/core/physics/models/deflection/deflection_model.d.ts.map +0 -1
  302. package/build/core/physics/models/deflection/deflection_support_manager.d.ts.map +0 -1
  303. package/build/core/physics/models/deflection/deflection_tools.d.ts.map +0 -1
  304. package/build/core/physics/models/deflection/integration_constant_calculator.d.ts.map +0 -1
  305. package/build/core/physics/models/deflection/rodotrem_deflection.d.ts.map +0 -1
  306. package/build/core/physics/models/deflection/semi_reboque_deflection.d.ts.map +0 -1
  307. package/build/core/physics/models/deflection/simple_truck_deflection.d.ts.map +0 -1
  308. package/build/core/physics/models/deflection/vanderleia_deflection.d.ts.map +0 -1
  309. package/build/core/physics/models/old_tare_model.d.ts.map +0 -1
  310. package/build/core/physics/models/old_tare_scale.d.ts.map +0 -1
  311. package/build/core/physics/models/old_tare_semireboque.d.ts.map +0 -1
  312. package/build/core/physics/models/old_tare_truck.d.ts.map +0 -1
  313. package/build/core/physics/models/old_tare_vanderleia.d.ts.map +0 -1
  314. package/build/core/physics/models/percentage_on_axles_calculator.d.ts.map +0 -1
  315. package/build/core/physics/models/quad_semi_trailer_model.d.ts.map +0 -1
  316. package/build/core/physics/models/rodotrem_model.d.ts.map +0 -1
  317. package/build/core/physics/models/semi_reboque_base.d.ts.map +0 -1
  318. package/build/core/physics/models/semi_reboque_model.d.ts.map +0 -1
  319. package/build/core/physics/models/simple_truck_base.d.ts.map +0 -1
  320. package/build/core/physics/models/simple_truck_model.d.ts.map +0 -1
  321. package/build/core/physics/models/single_container_tare.d.ts.map +0 -1
  322. package/build/core/physics/models/tare_model.d.ts.map +0 -1
  323. package/build/core/physics/models/vanderleia_model.d.ts.map +0 -1
  324. package/build/core/physics/services/axle_weight_output_builder.d.ts.map +0 -1
  325. package/build/core/physics/services/axle_weight_service.d.ts.map +0 -1
  326. package/build/core/physics/services/cm_axle_weight_service.d.ts.map +0 -1
  327. package/build/core/physics/services/container_corner_forces.d.ts.map +0 -1
  328. package/build/core/physics/transports/axle_manager.d.ts.map +0 -1
  329. package/build/core/physics/transports/axle_record.d.ts.map +0 -1
  330. package/build/core/physics/transports/container_record.d.ts.map +0 -1
  331. package/build/core/physics/transports/containerweight/container_max_weight_calculator.d.ts.map +0 -1
  332. package/build/core/physics/transports/containerweight/container_tare_calculator.d.ts.map +0 -1
  333. package/build/core/physics/transports/containerweight/container_weight_model.d.ts.map +0 -1
  334. package/build/core/physics/transports/containerweight/merged_containers_weight_calculator.d.ts.map +0 -1
  335. package/build/core/physics/transports/containerweight/single_container_weight_calculator.d.ts.map +0 -1
  336. package/build/core/physics/transports/grouped_containers.d.ts.map +0 -1
  337. package/build/core/physics/transports/merged_containers.d.ts.map +0 -1
  338. package/build/core/physics/transports/tare/bitrem_axle_splitter.d.ts.map +0 -1
  339. package/build/core/physics/transports/tare/bitrem_axle_weight_split.d.ts.map +0 -1
  340. package/build/core/physics/transports/transport.d.ts.map +0 -1
  341. package/eslint.config.js +0 -51
  342. package/src/core/contracts/chassi_reference.ts +0 -7
  343. package/src/core/contracts/ms_faixas_contract.ts +0 -114
  344. package/src/core/contracts/rotation_enum.ts +0 -11
  345. package/src/core/contracts/suspension_type.ts +0 -4
  346. package/src/core/contracts/transport_record.ts +0 -4
  347. package/src/core/contracts/vehicle_type.ts +0 -12
  348. package/src/core/contracts/vehicle_version.ts +0 -7
  349. package/src/core/contracts/wire_flags.ts +0 -26
  350. package/src/core/math/float_tools.ts +0 -17
  351. package/src/core/math/gaussian_elimination.ts +0 -104
  352. package/src/core/orchestration/axle_weight_physics.ts +0 -37
  353. package/src/core/orchestration/collision_checker.ts +0 -86
  354. package/src/core/orchestration/connector_payload_builder.ts +0 -81
  355. package/src/core/orchestration/java_mass_center.ts +0 -98
  356. package/src/core/orchestration/output_builder.ts +0 -18
  357. package/src/core/orchestration/request_schema.ts +0 -26
  358. package/src/core/orchestration/weight_by_axis_task.ts +0 -140
  359. package/src/core/physics/items/allocated_item.ts +0 -41
  360. package/src/core/physics/items/allocated_item_manager.ts +0 -50
  361. package/src/core/physics/items/center_of_mass.ts +0 -31
  362. package/src/core/physics/items/compute_grouper_center_of_mass.ts +0 -44
  363. package/src/core/physics/items/item_templates.ts +0 -65
  364. package/src/core/physics/items/multi_container_allocated_items.ts +0 -120
  365. package/src/core/physics/items/rotation_transforms.ts +0 -29
  366. package/src/core/physics/models/axle_weight_model.ts +0 -109
  367. package/src/core/physics/models/bi_truck_model.ts +0 -74
  368. package/src/core/physics/models/bi_truck_tractor_semi_trailer_model.ts +0 -86
  369. package/src/core/physics/models/bitrem_model.ts +0 -148
  370. package/src/core/physics/models/chassi_forces.ts +0 -50
  371. package/src/core/physics/models/deflection/beam_deflection.ts +0 -105
  372. package/src/core/physics/models/deflection/bitrem_deflection.ts +0 -68
  373. package/src/core/physics/models/deflection/create_deflection_delegate.ts +0 -46
  374. package/src/core/physics/models/deflection/deflection_model.ts +0 -33
  375. package/src/core/physics/models/deflection/deflection_support_manager.ts +0 -56
  376. package/src/core/physics/models/deflection/deflection_tools.ts +0 -11
  377. package/src/core/physics/models/deflection/integration_constant_calculator.ts +0 -62
  378. package/src/core/physics/models/deflection/rodotrem_deflection.ts +0 -57
  379. package/src/core/physics/models/deflection/semi_reboque_deflection.ts +0 -40
  380. package/src/core/physics/models/deflection/simple_truck_deflection.ts +0 -35
  381. package/src/core/physics/models/deflection/vanderleia_deflection.ts +0 -48
  382. package/src/core/physics/models/old_tare_model.ts +0 -51
  383. package/src/core/physics/models/old_tare_scale.ts +0 -9
  384. package/src/core/physics/models/old_tare_semireboque.ts +0 -51
  385. package/src/core/physics/models/old_tare_truck.ts +0 -15
  386. package/src/core/physics/models/old_tare_vanderleia.ts +0 -44
  387. package/src/core/physics/models/percentage_on_axles_calculator.ts +0 -49
  388. package/src/core/physics/models/quad_semi_trailer_model.ts +0 -87
  389. package/src/core/physics/models/rodotrem_model.ts +0 -131
  390. package/src/core/physics/models/semi_reboque_base.ts +0 -103
  391. package/src/core/physics/models/semi_reboque_model.ts +0 -127
  392. package/src/core/physics/models/simple_truck_base.ts +0 -70
  393. package/src/core/physics/models/simple_truck_model.ts +0 -115
  394. package/src/core/physics/models/single_container_tare.ts +0 -56
  395. package/src/core/physics/models/tare_model.ts +0 -46
  396. package/src/core/physics/models/vanderleia_model.ts +0 -125
  397. package/src/core/physics/services/axle_weight_output_builder.ts +0 -63
  398. package/src/core/physics/services/axle_weight_service.ts +0 -116
  399. package/src/core/physics/services/cm_axle_weight_service.ts +0 -45
  400. package/src/core/physics/services/container_corner_forces.ts +0 -95
  401. package/src/core/physics/transports/axle_manager.ts +0 -45
  402. package/src/core/physics/transports/axle_record.ts +0 -68
  403. package/src/core/physics/transports/chassi.ts +0 -130
  404. package/src/core/physics/transports/container_record.ts +0 -58
  405. package/src/core/physics/transports/containerweight/container_max_weight_calculator.ts +0 -59
  406. package/src/core/physics/transports/containerweight/container_tare_calculator.ts +0 -76
  407. package/src/core/physics/transports/containerweight/container_weight_model.ts +0 -38
  408. package/src/core/physics/transports/containerweight/merged_containers_weight_calculator.ts +0 -39
  409. package/src/core/physics/transports/containerweight/single_container_weight_calculator.ts +0 -65
  410. package/src/core/physics/transports/grouped_containers.ts +0 -91
  411. package/src/core/physics/transports/merged_containers.ts +0 -62
  412. package/src/core/physics/transports/tare/bitrem_axle_splitter.ts +0 -107
  413. package/src/core/physics/transports/tare/bitrem_axle_weight_split.ts +0 -55
  414. package/src/core/physics/transports/transport.ts +0 -137
  415. package/src/index.ts +0 -12
  416. package/src/service/.gitkeep +0 -0
  417. package/test/data/src/core/orchestration/weight_by_axis/case_1_basic_truck_input.json +0 -1759
  418. package/test/data/src/core/orchestration/weight_by_axis/case_2_vanderleia_input.json +0 -1286
  419. package/test/data/src/core/orchestration/weight_by_axis/case_3_interlink_input.json +0 -2226
  420. package/test/data/src/core/orchestration/weight_by_axis/case_4_quad_semi_trailer.json +0 -639
  421. package/test/data/src/core/orchestration/weight_by_axis/case_5_custom_center_of_gravity.json +0 -557
  422. package/test/data/src/core/physics/axle_weight_calculations/case_2_bitruck.json +0 -664
  423. package/test/data/src/core/physics/axle_weight_calculations/case_4_quad_semi_trailer.json +0 -674
  424. package/test/data/src/core/physics/axle_weight_calculations/case_5_bi_truck_semi_trailer.json +0 -674
  425. package/test/data/src/core/physics/axle_weight_service/case_1_input_truck.json +0 -1025
  426. package/test/data/src/core/physics/axle_weight_service/case_1_output_truck.json +0 -38
  427. package/test/data/src/core/physics/axle_weight_service/case_2_vanderleia_input.json +0 -1286
  428. package/test/data/src/core/physics/axle_weight_service/case_2_vanderleia_output.json +0 -65
  429. package/test/data/src/core/physics/axle_weight_service/case_3_input_semireboque.json +0 -24625
  430. package/test/data/src/core/physics/axle_weight_service/case_3_output_semireboque.json +0 -57
  431. package/test/data/src/core/physics/axle_weight_service/case_4_input_bitrem.json +0 -2226
  432. package/test/data/src/core/physics/axle_weight_service/case_4_output_bitrem.json +0 -96
  433. package/test/data/src/core/physics/beam_deflection/case_10_rodotrem_offset.json +0 -474
  434. package/test/data/src/core/physics/beam_deflection/case_11_bitruck.json +0 -664
  435. package/test/data/src/core/physics/beam_deflection/case_12_quad_semi_trailer.json +0 -792
  436. package/test/data/src/core/physics/beam_deflection/case_13_bi_truck_semi_trailer.json +0 -792
  437. package/test/data/src/core/physics/beam_deflection/case_1_documentation.ipynb +0 -316
  438. package/test/data/src/core/physics/beam_deflection/case_1_semireboque.json +0 -402
  439. package/test/data/src/core/physics/beam_deflection/case_2_bitrem.json +0 -434
  440. package/test/data/src/core/physics/beam_deflection/case_3_rodotrem.json +0 -474
  441. package/test/data/src/core/physics/beam_deflection/case_4_vanderleia_pneumatica.json +0 -425
  442. package/test/data/src/core/physics/beam_deflection/case_5_vanderleia_mecanica.json +0 -366
  443. package/test/data/src/core/physics/beam_deflection/case_6_truck.json +0 -279
  444. package/test/data/src/core/physics/beam_deflection/case_7_semireboque_structural_offset.json +0 -318
  445. package/test/data/src/core/physics/beam_deflection/case_8_vanderleia_offset.json +0 -425
  446. package/test/data/src/core/physics/beam_deflection/case_9_bitrem_offset.json +0 -434
  447. package/test/data/src/core/physics/bitrem_axle_splitter/case_1_simple_bitrem.json +0 -145
  448. package/test/data/src/core/physics/bitrem_axle_splitter/case_2_lowered_bitrem.json +0 -238
  449. package/test/data/src/core/physics/bitrem_axle_splitter/case_3_lowered_positive_proportion.json +0 -238
  450. package/test/data/src/core/physics/c_m_axle_weight_service/case_1_interlink_trailer.json +0 -94
  451. package/test/data/src/core/physics/calculations/case_1_simple_truck.json +0 -83
  452. package/test/data/src/core/physics/calculations/case_2_lowered_bitrem.json +0 -1051
  453. package/test/data/src/core/physics/calculations/case_3_container_mercedes.json +0 -50
  454. package/test/data/src/core/physics/container_corner_forces/case_1.json +0 -674
  455. package/test/data/src/core/physics/container_weight/case_1_basictruck.json +0 -223
  456. package/test/data/src/core/physics/container_weight/case_2_roadtrain.json +0 -277
  457. package/test/data/src/core/physics/container_weight/case_3_semireboque_rebaixado.json +0 -197
  458. package/test/data/src/core/physics/container_weight/case_4_semireboque_neck_limit.json +0 -197
  459. package/test/data/src/core/physics/container_weight/case_5_vanderleia_rebaixada.json +0 -211
  460. package/test/data/src/core/physics/container_weight/case_6_lowered_interlink.json +0 -230
  461. package/test/data/src/core/physics/python_goldens.json +0 -9
  462. package/test/data/src/core/physics/tare/case_1_simple_vanderleia.json +0 -185
  463. package/test/data/src/core/physics/tare/case_2_lowered_vanderleia.json +0 -646
  464. package/test/data/src/core/physics/tare/case_3_lowered_interlink.json +0 -230
  465. package/test/data/src/core/physics/tare/case_4_negative_tare_VUC.json +0 -483
  466. package/test/data/src/core/physics/tare/case_5_truck_bitruck.json +0 -664
  467. package/test/data/src/core/physics/tare/case_6_quad_semi_trailer.json +0 -203
  468. package/test/data/src/core/physics/tare/case_7_bi_truck_semi_trailer.json +0 -203
  469. package/test/data/src/core/physics/tare/case_8_triaxle_semi_trailer.json +0 -203
  470. package/test/data/src/core/physics/time_performance/case_1_center_of_mass.json +0 -2916
  471. package/test/data/src/core/physics/trucks/bitrem.json +0 -150
  472. package/test/data/src/core/physics/trucks/lowered_bitrem.json +0 -1216
  473. package/test/data/src/core/physics/trucks/lowered_bitrem_empty_first_container.json +0 -1182
  474. package/test/data/src/core/physics/trucks/rodotrem.json +0 -148
  475. package/test/data/src/core/physics/trucks/semi_reboque.json +0 -91
  476. package/test/data/src/core/physics/trucks/semi_reboque_rebaixado.json +0 -1629
  477. package/test/data/src/core/physics/trucks/simple_truck.json +0 -85
  478. package/test/data/src/core/physics/trucks/vanderleia_mechanical.json +0 -105
  479. package/test/data/src/core/physics/trucks/vanderleia_pneumatic.json +0 -105
  480. package/test/src/core/orchestration/request_schema.test.ts +0 -20
  481. package/test/src/core/orchestration/weight_by_axis_task.test.ts +0 -87
  482. package/test/src/core/physics/items/center_of_mass.test.ts +0 -38
  483. package/test/src/core/physics/items/multi_container_allocated_items.test.ts +0 -22
  484. package/test/src/core/physics/math_input_helpers.ts +0 -64
  485. package/test/src/core/physics/models/bitrem_model.test.ts +0 -54
  486. package/test/src/core/physics/models/deflection/deflection_model.test.ts +0 -78
  487. package/test/src/core/physics/models/rodotrem_model.test.ts +0 -29
  488. package/test/src/core/physics/models/semi_reboque_model.test.ts +0 -72
  489. package/test/src/core/physics/models/simple_truck_model.test.ts +0 -23
  490. package/test/src/core/physics/models/tare_model.test.ts +0 -34
  491. package/test/src/core/physics/models/vanderleia_model.test.ts +0 -36
  492. package/test/src/core/physics/services/axle_weight_service.test.ts +0 -56
  493. package/test/src/core/physics/services/cm_axle_weight_service.test.ts +0 -23
  494. package/test/src/core/physics/services/container_corner_forces.test.ts +0 -23
  495. package/test/src/core/physics/test_helpers.ts +0 -13
  496. package/test/src/core/physics/transports/chassi.test.ts +0 -35
  497. package/test/src/core/physics/transports/containerweight/container_weight_model.test.ts +0 -57
  498. package/test/src/core/physics/transports/tare/bitrem_axle_splitter.test.ts +0 -30
  499. package/test/src/index.test.ts +0 -35
  500. /package/build/core/contracts/{chassi_reference.js → ChassiReference.js} +0 -0
  501. /package/build/core/contracts/{rotation_enum.js → RotationEnum.js} +0 -0
  502. /package/build/core/contracts/{suspension_type.js → SuspensionType.js} +0 -0
  503. /package/build/core/contracts/{transport_record.js → TransportRecord.js} +0 -0
  504. /package/build/core/contracts/{vehicle_type.js → VehicleType.js} +0 -0
  505. /package/build/core/contracts/{vehicle_version.js → VehicleVersion.js} +0 -0
  506. /package/build/core/contracts/{wire_flags.js → WireFlags.js} +0 -0
  507. /package/build/core/math/{float_tools.js → FloatTools.js} +0 -0
  508. /package/build/core/math/{gaussian_elimination.js → GaussianElimination.js} +0 -0
  509. /package/build/core/orchestration/{output_builder.js → OutputBuilder.js} +0 -0
  510. /package/build/core/physics/items/{allocated_item_manager.js → AllocatedItemManager.js} +0 -0
  511. /package/build/core/physics/items/{center_of_mass.js → CenterOfMass.js} +0 -0
  512. /package/build/core/physics/models/{chassi_forces.js → ChassiForces.js} +0 -0
  513. /package/build/core/physics/models/{old_tare_scale.js → OldTareScale.js} +0 -0
  514. /package/build/core/physics/models/deflection/{deflection_tools.js → DeflectionTools.js} +0 -0
  515. /package/build/core/physics/services/{container_corner_forces.js → ContainerCornerForces.js} +0 -0
  516. /package/build/core/physics/transports/containerweight/{container_max_weight_calculator.js → ContainerMaxWeightCalculator.js} +0 -0
  517. /package/build/core/physics/transports/containerweight/{container_tare_calculator.js → ContainerTareCalculator.js} +0 -0
  518. /package/build/core/physics/transports/containerweight/{merged_containers_weight_calculator.js → MergedContainersWeightCalculator.js} +0 -0
  519. /package/build/core/physics/transports/tare/{bitrem_axle_weight_split.js → BitremAxleWeightSplit.js} +0 -0
@@ -1,58 +0,0 @@
1
- import { WIRE_FLAGS } from '../../contracts/wire_flags.js'
2
-
3
- /**
4
- * Container segment from wire JSON.
5
- */
6
- export class ContainerRecord
7
- {
8
- length: number
9
- width: number
10
- height: number
11
- sequence_index: number
12
- main_pin_distance: number | null
13
- container_distance_ahead: number | null
14
- grouper: number
15
- max_supported_weight: number
16
- tare: number
17
- supported_weight: number
18
- raw: Record<string, unknown>
19
-
20
- /**
21
- * @param data - Raw container object.
22
- */
23
- constructor(data: Record<string, unknown>)
24
- {
25
- this.length = Number(data[WIRE_FLAGS.LENGTH])
26
- this.width = Number(data[WIRE_FLAGS.WIDTH])
27
- this.height = Number(data[WIRE_FLAGS.HEIGHT])
28
- this.sequence_index = Number(data[WIRE_FLAGS.SEQUENCE])
29
- this.main_pin_distance = read_optional(data[WIRE_FLAGS.MAIN_PIN_DISTANCE])
30
- this.container_distance_ahead = read_optional(data[WIRE_FLAGS.CONTAINER_DISTANCE_AHEAD])
31
- this.grouper = Number(data[WIRE_FLAGS.GROUPER])
32
- this.max_supported_weight = Number(data[WIRE_FLAGS.MAX_SUPPORTED_WEIGHT] ?? 0)
33
- this.tare = Number(data[WIRE_FLAGS.TARE] ?? 0)
34
- this.supported_weight = this.max_supported_weight - this.tare
35
- this.raw = { ...data }
36
- }
37
-
38
- /**
39
- * @returns Container volume (length × width × height).
40
- */
41
- volume(): number
42
- {
43
- return this.length * this.width * this.height
44
- }
45
- }
46
-
47
- /**
48
- * @param value - Wire field value.
49
- * @returns Number or null.
50
- */
51
- function read_optional(value: unknown): number | null
52
- {
53
- if (value === undefined || value === null)
54
- {
55
- return null
56
- }
57
- return Number(value)
58
- }
@@ -1,59 +0,0 @@
1
- import type { GroupedContainers } from '../grouped_containers.js'
2
-
3
- type MaxWeightInput = {
4
- sequence_index: number
5
- percentage_of_weight: number
6
- total_max_supported_weight: number
7
- tare: number
8
- }
9
-
10
- const MAX_NECK_SUPPORTED = 6000
11
-
12
- /**
13
- * Applies neck weight cap and redistributes excess to second container.
14
- */
15
- export class ContainerMaxWeightCalculator
16
- {
17
- private neck_weight_reduction = 0
18
-
19
- /**
20
- * @param grouped_containers - Grouper containers.
21
- */
22
- constructor(private readonly grouped_containers: GroupedContainers)
23
- {}
24
-
25
- /**
26
- * @param input - Sequence, share, capacity, and tare.
27
- * @returns Max supported weight for container.
28
- */
29
- calculate(input: MaxWeightInput): number
30
- {
31
- const max_supported = input.total_max_supported_weight * input.percentage_of_weight
32
- if (this.is_neck(input.sequence_index))
33
- {
34
- const supported = max_supported - input.tare
35
- if (supported > MAX_NECK_SUPPORTED)
36
- {
37
- this.neck_weight_reduction = supported - MAX_NECK_SUPPORTED
38
- return input.tare + MAX_NECK_SUPPORTED
39
- }
40
- }
41
- else if (this.is_second_container(input.sequence_index))
42
- {
43
- return max_supported + this.neck_weight_reduction
44
- }
45
- return max_supported
46
- }
47
-
48
- private is_neck(sequence_index: number): boolean
49
- {
50
- const list = this.grouped_containers.list_containers_sequence_indexes()
51
- return list.length >= 2 && list[0] === sequence_index
52
- }
53
-
54
- private is_second_container(sequence_index: number): boolean
55
- {
56
- const list = this.grouped_containers.list_containers_sequence_indexes()
57
- return list.length >= 2 && list[1] === sequence_index
58
- }
59
- }
@@ -1,76 +0,0 @@
1
- import type { Transport } from '../transport.js'
2
- import type { GroupedContainers } from '../grouped_containers.js'
3
-
4
- const NECK_SEQUENCE = 1
5
-
6
- /**
7
- * Distributes grouper tare across containers (neck gets axle-1 share).
8
- */
9
- export class ContainerTareCalculator
10
- {
11
- private revised_tare_percentage = 0
12
- private first_neck_tare = 0
13
-
14
- /**
15
- * @param transport - Parsed transport.
16
- * @param grouped_containers - Grouper containers.
17
- */
18
- constructor(
19
- private readonly transport: Transport,
20
- private readonly grouped_containers: GroupedContainers
21
- )
22
- {}
23
-
24
- /**
25
- * @param sequence_index - Container sequence.
26
- * @param percentage_of_weight - Lateral area share.
27
- * @param total_tare - Grouper total tare.
28
- * @returns Container tare.
29
- */
30
- calculate(
31
- sequence_index: number,
32
- percentage_of_weight: number,
33
- total_tare: number
34
- ): number
35
- {
36
- if (this.is_first_neck(sequence_index))
37
- {
38
- this.calculate_tare_of_first_neck(percentage_of_weight)
39
- this.tare_percentage_review(percentage_of_weight, total_tare)
40
- return this.first_neck_tare
41
- }
42
- return (percentage_of_weight + this.revised_tare_percentage) * total_tare
43
- }
44
-
45
- private is_first_neck(sequence_index: number): boolean
46
- {
47
- return this.grouped_containers.list_containers_sequence_indexes().length >= 2
48
- && sequence_index === NECK_SEQUENCE
49
- }
50
-
51
- private calculate_tare_of_first_neck(percentage_of_weight: number): void
52
- {
53
- const neck = this.grouped_containers.get_container_by_sequence_index(NECK_SEQUENCE)
54
- const axle1 = this.axle1_on_neck_tare_contribution(neck.length)
55
- const remaining = percentage_of_weight * (
56
- this.transport.axle_manager.get_axle(1).tare
57
- + this.transport.axle_manager.get_axle(2).tare)
58
- this.first_neck_tare = axle1 + remaining
59
- }
60
-
61
- private tare_percentage_review(percentage_of_weight: number, total_tare: number): void
62
- {
63
- const tare = percentage_of_weight * total_tare
64
- const change = (this.first_neck_tare - tare) / total_tare
65
- const count = this.grouped_containers.list_containers_sequence_indexes().length
66
- this.revised_tare_percentage = -change / (count - 1)
67
- }
68
-
69
- private axle1_on_neck_tare_contribution(neck_length: number): number
70
- {
71
- const end_container = this.transport.first_axle_distance + neck_length
72
- const end_grouper = this.transport.first_axle_distance + this.grouped_containers.length
73
- const share = end_container / end_grouper
74
- return share * this.transport.axle_manager.get_axle(0).tare
75
- }
76
- }
@@ -1,38 +0,0 @@
1
- import type { Transport } from '../transport.js'
2
- import { MergedContainers } from '../merged_containers.js'
3
- import { MergedContainersWeightCalculator } from './merged_containers_weight_calculator.js'
4
- import { SingleContainerWeightCalculator } from './single_container_weight_calculator.js'
5
-
6
- /**
7
- * Computes per-container supported cargo capacity.
8
- */
9
- export class ContainerWeightModel
10
- {
11
- private readonly merged_containers: MergedContainers
12
-
13
- /**
14
- * @param transport - Parsed transport.
15
- */
16
- constructor(private readonly transport: Transport)
17
- {
18
- this.merged_containers = new MergedContainers(transport)
19
- }
20
-
21
- /** Updates container supported_weight on transport. */
22
- calculate(): void
23
- {
24
- const axles = this.transport.axle_manager.list_axles_indexes()
25
- .map((index) => this.transport.axle_manager.get_axle(index))
26
- new MergedContainersWeightCalculator(this.merged_containers, axles).calculate()
27
- for (const grouper of this.merged_containers.list_grouper_indexes())
28
- {
29
- const grouped = this.merged_containers.get_container_by_grouper_index(grouper)
30
- new SingleContainerWeightCalculator(this.transport, grouped).calculate()
31
- }
32
- for (const sequence of this.transport.list_containers_sequence_indexes())
33
- {
34
- const container = this.transport.get_container_by_sequence_index(sequence)
35
- container.supported_weight = container.max_supported_weight - container.tare
36
- }
37
- }
38
- }
@@ -1,39 +0,0 @@
1
- import type { MergedContainers } from '../merged_containers.js'
2
- import type { AxleRecord } from '../axle_record.js'
3
-
4
- /**
5
- * Sums axle capacity and tare onto merged grouper containers.
6
- */
7
- export class MergedContainersWeightCalculator
8
- {
9
- /**
10
- * @param merged_containers - Grouper layout.
11
- * @param transport_axles_list - All axles.
12
- */
13
- constructor(
14
- private readonly merged_containers: MergedContainers,
15
- private readonly transport_axles_list: AxleRecord[]
16
- )
17
- {}
18
-
19
- /** Applies summed max weight and tare to each merged grouper container. */
20
- calculate(): void
21
- {
22
- for (const grouper of this.merged_containers.list_grouper_indexes())
23
- {
24
- const grouped = this.merged_containers.get_container_by_grouper_index(grouper)
25
- const sequences = grouped.list_containers_sequence_indexes()
26
- const merged = grouped.merged_container!
27
- merged.max_supported_weight = 0
28
- merged.tare = 0
29
- for (const axle of this.transport_axles_list)
30
- {
31
- if (sequences.includes(axle.sequence_index))
32
- {
33
- merged.max_supported_weight += axle.max_supported_weight
34
- merged.tare += axle.tare
35
- }
36
- }
37
- }
38
- }
39
- }
@@ -1,65 +0,0 @@
1
- import type { Transport } from '../transport.js'
2
- import type { GroupedContainers } from '../grouped_containers.js'
3
- import type { ContainerRecord } from '../container_record.js'
4
- import { ContainerTareCalculator } from './container_tare_calculator.js'
5
- import { ContainerMaxWeightCalculator } from './container_max_weight_calculator.js'
6
-
7
- /**
8
- * Splits grouper capacity across containers by lateral area.
9
- */
10
- export class SingleContainerWeightCalculator
11
- {
12
- private readonly tare_calculator: ContainerTareCalculator
13
- private readonly max_calculator: ContainerMaxWeightCalculator
14
-
15
- /**
16
- * @param transport - Parsed transport.
17
- * @param grouped_containers - Grouper containers.
18
- */
19
- constructor(
20
- transport: Transport,
21
- private readonly grouped_containers: GroupedContainers
22
- )
23
- {
24
- this.tare_calculator = new ContainerTareCalculator(transport, grouped_containers)
25
- this.max_calculator = new ContainerMaxWeightCalculator(grouped_containers)
26
- }
27
-
28
- /** Assigns max_supported_weight and tare per container in grouper. */
29
- calculate(): void
30
- {
31
- const total_area = this.total_lateral_area()
32
- const merged = this.grouped_containers.merged_container!
33
- const total_max = merged.max_supported_weight
34
- const total_tare = merged.tare
35
- for (const sequence of this.grouped_containers.list_containers_sequence_indexes())
36
- {
37
- const container = this.grouped_containers.get_container_by_sequence_index(sequence)
38
- const share = this.lateral_area(container) / total_area
39
- const tare = this.tare_calculator.calculate(sequence, share, total_tare)
40
- container.max_supported_weight = this.max_calculator.calculate({
41
- sequence_index: sequence,
42
- percentage_of_weight: share,
43
- total_max_supported_weight: total_max,
44
- tare
45
- })
46
- container.tare = tare
47
- }
48
- }
49
-
50
- private total_lateral_area(): number
51
- {
52
- let total = 0
53
- for (const sequence of this.grouped_containers.list_containers_sequence_indexes())
54
- {
55
- total += this.lateral_area(
56
- this.grouped_containers.get_container_by_sequence_index(sequence))
57
- }
58
- return total
59
- }
60
-
61
- private lateral_area(container: ContainerRecord): number
62
- {
63
- return container.length * container.height
64
- }
65
- }
@@ -1,91 +0,0 @@
1
- import { ContainerRecord } from './container_record.js'
2
-
3
- /**
4
- * Containers merged per grouper.
5
- */
6
- export class GroupedContainers
7
- {
8
- grouper: number
9
- merged_container: ContainerRecord | null = null
10
- private containers = new Map<number, ContainerRecord>()
11
-
12
- /**
13
- * @param grouper - Grouper id.
14
- */
15
- constructor(grouper: number)
16
- {
17
- this.grouper = grouper
18
- }
19
-
20
- get length(): number
21
- {
22
- return this.merged_container!.length
23
- }
24
-
25
- get container_distance_ahead(): number | null
26
- {
27
- return this.merged_container!.container_distance_ahead
28
- }
29
-
30
- get main_pin_distance(): number | null
31
- {
32
- return this.merged_container!.main_pin_distance
33
- }
34
-
35
- /**
36
- * @param container - Container to add.
37
- */
38
- add_container(container: ContainerRecord): void
39
- {
40
- if (container.grouper === this.grouper)
41
- {
42
- this.containers.set(container.sequence_index, container)
43
- }
44
- }
45
-
46
- /**
47
- * Merges segment lengths into first container of grouper.
48
- */
49
- generate_merged_container(): void
50
- {
51
- const sequence_indexes = this.list_containers_sequence_indexes()
52
- const first = this.get_container_by_sequence_index(sequence_indexes[0])
53
- this.merged_container = clone_container(first)
54
- for (let index = 1; index < sequence_indexes.length; index++)
55
- {
56
- const next = this.get_container_by_sequence_index(sequence_indexes[index])
57
- this.merged_container.length += next.length
58
- }
59
- }
60
-
61
- /**
62
- * @param sequence_index - Container sequence.
63
- * @returns Container record.
64
- */
65
- get_container_by_sequence_index(sequence_index: number): ContainerRecord
66
- {
67
- const container = this.containers.get(sequence_index)
68
- if (!container)
69
- {
70
- throw new Error(`Missing container ${sequence_index}`)
71
- }
72
- return container
73
- }
74
-
75
- /**
76
- * @returns Sorted sequence indexes.
77
- */
78
- list_containers_sequence_indexes(): number[]
79
- {
80
- return [...this.containers.keys()].sort((left, right) => left - right)
81
- }
82
- }
83
-
84
- /**
85
- * @param source - Container to clone.
86
- * @returns Shallow clone with same wire fields.
87
- */
88
- function clone_container(source: ContainerRecord): ContainerRecord
89
- {
90
- return new ContainerRecord({ ...source.raw })
91
- }
@@ -1,62 +0,0 @@
1
- import type { Transport } from './transport.js'
2
- import { GroupedContainers } from './grouped_containers.js'
3
-
4
- /**
5
- * Grouper-level merged container geometry.
6
- */
7
- export class MergedContainers
8
- {
9
- private all_grouped_containers = new Map<number, GroupedContainers>()
10
-
11
- /**
12
- * @param transport - Parsed transport.
13
- */
14
- constructor(transport: Transport)
15
- {
16
- this.setup(transport)
17
- }
18
-
19
- /**
20
- * @param transport - Parsed transport.
21
- */
22
- setup(transport: Transport): void
23
- {
24
- for (const sequence_index of transport.list_containers_sequence_indexes())
25
- {
26
- const container = transport.get_container_by_sequence_index(sequence_index)
27
- if (!this.all_grouped_containers.has(container.grouper))
28
- {
29
- this.all_grouped_containers.set(
30
- container.grouper,
31
- new GroupedContainers(container.grouper))
32
- }
33
- this.get_container_by_grouper_index(container.grouper).add_container(container)
34
- }
35
- for (const grouper of this.all_grouped_containers.keys())
36
- {
37
- this.get_container_by_grouper_index(grouper).generate_merged_container()
38
- }
39
- }
40
-
41
- /**
42
- * @returns Grouper id list.
43
- */
44
- list_grouper_indexes(): number[]
45
- {
46
- return [...this.all_grouped_containers.keys()]
47
- }
48
-
49
- /**
50
- * @param grouper - Grouper id.
51
- * @returns Grouped containers.
52
- */
53
- get_container_by_grouper_index(grouper: number): GroupedContainers
54
- {
55
- const grouped = this.all_grouped_containers.get(grouper)
56
- if (!grouped)
57
- {
58
- throw new Error(`Grouper ${grouper} not found`)
59
- }
60
- return grouped
61
- }
62
- }
@@ -1,107 +0,0 @@
1
- import { CHASSI_REFERENCE } from '../../../contracts/chassi_reference.js'
2
- import type { Transport } from '../transport.js'
3
- import { Chassi } from '../chassi.js'
4
- import { MergedContainers } from '../merged_containers.js'
5
- import { AxleRecord } from '../axle_record.js'
6
- import { apply_bitrem_axle_split, compute_bitrem_axle_split } from './bitrem_axle_weight_split.js'
7
-
8
- /** Splits bitrem shared axle 3 into two axles (DRAGON-98). */
9
- export class BitremAxleSplitter
10
- {
11
- readonly new_axle_3: AxleRecord
12
- readonly new_axle_4: AxleRecord
13
- readonly new_axle_5: AxleRecord
14
- private readonly chassi: Chassi
15
-
16
- /**
17
- * @param transport - Parsed transport.
18
- */
19
- constructor(private readonly transport: Transport)
20
- {
21
- this.chassi = new 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
- /**
28
- * @returns Five axle wire rows after split.
29
- */
30
- generate_splitted_axles_data(): Record<string, unknown>[]
31
- {
32
- this.generate_new_weight_attributes()
33
- this.generate_new_axle_distances()
34
- this.generate_new_axle_container_sequences()
35
- this.generate_merged_axle_connection()
36
- return [
37
- this.transport.axle_manager.get_axle(0).to_wire(),
38
- this.transport.axle_manager.get_axle(1).to_wire(),
39
- this.new_axle_3.to_wire(),
40
- this.new_axle_4.to_wire(),
41
- this.new_axle_5.to_wire()
42
- ]
43
- }
44
-
45
- calculate_first_proportion(): number
46
- {
47
- const a = this.chassi.get_axle_position(1, CHASSI_REFERENCE.GROUPER_1)
48
- const b = this.chassi.get_axle_position(2, CHASSI_REFERENCE.GROUPER_1) - a
49
- return a / b
50
- }
51
-
52
- calculate_second_proportion(): number
53
- {
54
- const axle_3 = this.chassi.get_axle_position(2, CHASSI_REFERENCE.TRACTOR)
55
- const axle_4 = this.chassi.get_axle_position(3, CHASSI_REFERENCE.TRACTOR)
56
- const end = this.chassi.get_grouper_end(2, CHASSI_REFERENCE.TRACTOR)
57
- return (end - axle_4) / (axle_4 - axle_3)
58
- }
59
-
60
- private generate_new_weight_attributes(): void
61
- {
62
- const old = this.transport.axle_manager.get_axle(2)
63
- const split = compute_bitrem_axle_split(
64
- this.calculate_first_proportion(),
65
- this.calculate_second_proportion())
66
- apply_bitrem_axle_split({
67
- old,
68
- axle_3: this.new_axle_3,
69
- axle_4: this.new_axle_4,
70
- split
71
- })
72
- }
73
-
74
- private generate_new_axle_distances(): void
75
- {
76
- const old_4 = this.transport.axle_manager.get_axle(3)
77
- this.new_axle_4.distance_from_previous_axle = this.distance_from_axle_3_to_pin_2()
78
- this.new_axle_5.distance_from_previous_axle = old_4.distance_from_previous_axle
79
- - this.new_axle_4.distance_from_previous_axle
80
- }
81
-
82
- private generate_new_axle_container_sequences(): void
83
- {
84
- const merged = new MergedContainers(this.transport)
85
- this.new_axle_3.sequence_index = merged.get_container_by_grouper_index(1)
86
- .list_containers_sequence_indexes()[0]
87
- this.new_axle_4.sequence_index = merged.get_container_by_grouper_index(2)
88
- .list_containers_sequence_indexes()[0]
89
- }
90
-
91
- private generate_merged_axle_connection(): void
92
- {
93
- this.new_axle_4.is_connected_to = 2
94
- }
95
-
96
- private distance_from_axle_3_to_pin_2(): number
97
- {
98
- const axle_3 = this.chassi.get_axle_position(2, CHASSI_REFERENCE.TRACTOR)
99
- const pin_2 = this.chassi.get_pin_position(1, CHASSI_REFERENCE.TRACTOR)
100
- return pin_2 - axle_3
101
- }
102
- }
103
-
104
- function clone_axle(source: AxleRecord): AxleRecord
105
- {
106
- return new AxleRecord(source.to_wire())
107
- }
@@ -1,55 +0,0 @@
1
- import type { AxleRecord } from '../axle_record.js'
2
-
3
- export type BitremAxleSplit = {
4
- mult: number
5
- on_axle_3: boolean
6
- }
7
-
8
- /**
9
- * @param first_proportion - First proportion from splitter.
10
- * @param second_proportion - Second proportion from splitter.
11
- * @returns Multiplier and target axle flag.
12
- */
13
- export function compute_bitrem_axle_split(
14
- first_proportion: number,
15
- second_proportion: number
16
- ): BitremAxleSplit
17
- {
18
- const diff = first_proportion - second_proportion
19
- if (diff > 0)
20
- {
21
- return { mult: 0.17 + 1 / (Math.abs(diff) + 2), on_axle_3: true }
22
- }
23
- if (diff < 0)
24
- {
25
- return { mult: -0.17 + 1 / (Math.abs(diff) + 2), on_axle_3: false }
26
- }
27
- return { mult: 0.5, on_axle_3: true }
28
- }
29
-
30
- export type BitremAxleSplitTarget = {
31
- old: AxleRecord
32
- axle_3: AxleRecord
33
- axle_4: AxleRecord
34
- split: BitremAxleSplit
35
- }
36
-
37
- /**
38
- * @param target - Axles and split multipliers.
39
- */
40
- export function apply_bitrem_axle_split(target: BitremAxleSplitTarget): void
41
- {
42
- const { old, axle_3, axle_4, split } = target
43
- if (split.on_axle_3)
44
- {
45
- axle_3.max_supported_weight = old.max_supported_weight * split.mult
46
- axle_4.max_supported_weight = old.max_supported_weight - axle_3.max_supported_weight
47
- axle_3.tare = old.tare * split.mult
48
- axle_4.tare = old.tare - axle_3.tare
49
- return
50
- }
51
- axle_4.max_supported_weight = old.max_supported_weight * split.mult
52
- axle_3.max_supported_weight = old.max_supported_weight - axle_4.max_supported_weight
53
- axle_4.tare = old.tare * split.mult
54
- axle_3.tare = old.tare - axle_4.tare
55
- }