@jetta/axle-load-calculator 0.1.3 → 0.3.1

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 (520) hide show
  1. package/README.md +48 -7
  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/{connector_payload_builder.d.ts → ConnectorPayloadBuilder.d.ts} +1 -1
  27. package/build/core/orchestration/ConnectorPayloadBuilder.d.ts.map +1 -0
  28. package/build/core/orchestration/{connector_payload_builder.js → ConnectorPayloadBuilder.js} +27 -13
  29. package/build/core/orchestration/{java_mass_center.d.ts → JavaMassCenter.d.ts} +2 -2
  30. package/build/core/orchestration/JavaMassCenter.d.ts.map +1 -0
  31. package/build/core/orchestration/{java_mass_center.js → JavaMassCenter.js} +1 -1
  32. package/build/core/orchestration/OutputBuilder.d.ts +7 -0
  33. package/build/core/orchestration/OutputBuilder.d.ts.map +1 -0
  34. package/build/core/orchestration/OutputBuilder.js +7 -0
  35. package/build/core/orchestration/{request_schema.d.ts → RequestSchema.d.ts} +14 -22
  36. package/build/core/orchestration/RequestSchema.d.ts.map +1 -0
  37. package/build/core/orchestration/RequestSchema.js +18 -0
  38. package/build/core/orchestration/WeightByAxisResponse.d.ts +11 -0
  39. package/build/core/orchestration/WeightByAxisResponse.d.ts.map +1 -0
  40. package/build/core/orchestration/WeightByAxisResponse.js +1 -0
  41. package/build/core/orchestration/WeightByAxisTask.d.ts +17 -0
  42. package/build/core/orchestration/WeightByAxisTask.d.ts.map +1 -0
  43. package/build/core/orchestration/{weight_by_axis_task.js → WeightByAxisTask.js} +27 -28
  44. package/build/core/physics/items/{allocated_item.d.ts → AllocatedItem.d.ts} +3 -3
  45. package/build/core/physics/items/AllocatedItem.d.ts.map +1 -0
  46. package/build/core/physics/items/{allocated_item.js → AllocatedItem.js} +1 -1
  47. package/build/core/physics/items/{allocated_item_manager.d.ts → AllocatedItemManager.d.ts} +3 -3
  48. package/build/core/physics/items/AllocatedItemManager.d.ts.map +1 -0
  49. package/build/core/physics/items/BindChassiSolver.d.ts +12 -0
  50. package/build/core/physics/items/BindChassiSolver.d.ts.map +1 -0
  51. package/build/core/physics/items/BindChassiSolver.js +10 -0
  52. package/build/core/physics/items/{center_of_mass.d.ts → CenterOfMass.d.ts} +2 -2
  53. package/build/core/physics/items/CenterOfMass.d.ts.map +1 -0
  54. package/build/core/physics/items/{compute_grouper_center_of_mass.d.ts → ComputeGrouperCenterOfMass.d.ts} +6 -6
  55. package/build/core/physics/items/ComputeGrouperCenterOfMass.d.ts.map +1 -0
  56. package/build/core/physics/items/{compute_grouper_center_of_mass.js → ComputeGrouperCenterOfMass.js} +2 -2
  57. package/build/core/physics/items/{item_templates.d.ts → ItemTemplates.d.ts} +2 -2
  58. package/build/core/physics/items/ItemTemplates.d.ts.map +1 -0
  59. package/build/core/physics/items/{item_templates.js → ItemTemplates.js} +4 -3
  60. package/build/core/physics/items/{multi_container_allocated_items.d.ts → MultiContainerAllocatedItems.d.ts} +4 -4
  61. package/build/core/physics/items/MultiContainerAllocatedItems.d.ts.map +1 -0
  62. package/build/core/physics/items/{multi_container_allocated_items.js → MultiContainerAllocatedItems.js} +2 -2
  63. package/build/core/physics/items/{rotation_transforms.d.ts → RotationTransforms.d.ts} +2 -2
  64. package/build/core/physics/items/RotationTransforms.d.ts.map +1 -0
  65. package/build/core/physics/items/{rotation_transforms.js → RotationTransforms.js} +1 -1
  66. package/build/core/physics/items/UnknownItemIdError.d.ts +10 -0
  67. package/build/core/physics/items/UnknownItemIdError.d.ts.map +1 -0
  68. package/build/core/physics/items/UnknownItemIdError.js +12 -0
  69. package/build/core/physics/models/{axle_weight_model.d.ts → AxleWeightModel.d.ts} +6 -6
  70. package/build/core/physics/models/AxleWeightModel.d.ts.map +1 -0
  71. package/build/core/physics/models/{axle_weight_model.js → AxleWeightModel.js} +11 -10
  72. package/build/core/physics/models/{bi_truck_model.d.ts → BiTruckModel.d.ts} +5 -5
  73. package/build/core/physics/models/BiTruckModel.d.ts.map +1 -0
  74. package/build/core/physics/models/{bi_truck_model.js → BiTruckModel.js} +5 -5
  75. package/build/core/physics/models/{bi_truck_tractor_semi_trailer_model.d.ts → BiTruckTractorSemiTrailerModel.d.ts} +5 -5
  76. package/build/core/physics/models/BiTruckTractorSemiTrailerModel.d.ts.map +1 -0
  77. package/build/core/physics/models/{bi_truck_tractor_semi_trailer_model.js → BiTruckTractorSemiTrailerModel.js} +5 -5
  78. package/build/core/physics/models/{bitrem_model.d.ts → BitremModel.d.ts} +6 -6
  79. package/build/core/physics/models/BitremModel.d.ts.map +1 -0
  80. package/build/core/physics/models/{bitrem_model.js → BitremModel.js} +7 -6
  81. package/build/core/physics/models/{chassi_forces.d.ts → ChassiForces.d.ts} +1 -1
  82. package/build/core/physics/models/ChassiForces.d.ts.map +1 -0
  83. package/build/core/physics/models/{old_tare_model.d.ts → OldTareModel.d.ts} +2 -2
  84. package/build/core/physics/models/OldTareModel.d.ts.map +1 -0
  85. package/build/core/physics/models/{old_tare_model.js → OldTareModel.js} +5 -5
  86. package/build/core/physics/models/{old_tare_scale.d.ts → OldTareScale.d.ts} +1 -1
  87. package/build/core/physics/models/OldTareScale.d.ts.map +1 -0
  88. package/build/core/physics/models/{old_tare_semireboque.d.ts → OldTareSemireboque.d.ts} +2 -2
  89. package/build/core/physics/models/OldTareSemireboque.d.ts.map +1 -0
  90. package/build/core/physics/models/{old_tare_semireboque.js → OldTareSemireboque.js} +2 -2
  91. package/build/core/physics/models/{old_tare_truck.d.ts → OldTareTruck.d.ts} +2 -2
  92. package/build/core/physics/models/OldTareTruck.d.ts.map +1 -0
  93. package/build/core/physics/models/{old_tare_truck.js → OldTareTruck.js} +2 -2
  94. package/build/core/physics/models/{old_tare_vanderleia.d.ts → OldTareVanderleia.d.ts} +2 -2
  95. package/build/core/physics/models/OldTareVanderleia.d.ts.map +1 -0
  96. package/build/core/physics/models/{old_tare_vanderleia.js → OldTareVanderleia.js} +1 -1
  97. package/build/core/physics/models/{percentage_on_axles_calculator.d.ts → PercentageOnAxlesCalculator.d.ts} +2 -2
  98. package/build/core/physics/models/PercentageOnAxlesCalculator.d.ts.map +1 -0
  99. package/build/core/physics/models/{percentage_on_axles_calculator.js → PercentageOnAxlesCalculator.js} +1 -1
  100. package/build/core/physics/models/{quad_semi_trailer_model.d.ts → QuadSemiTrailerModel.d.ts} +5 -5
  101. package/build/core/physics/models/QuadSemiTrailerModel.d.ts.map +1 -0
  102. package/build/core/physics/models/{quad_semi_trailer_model.js → QuadSemiTrailerModel.js} +5 -5
  103. package/build/core/physics/models/{rodotrem_model.d.ts → RodotremModel.d.ts} +6 -6
  104. package/build/core/physics/models/RodotremModel.d.ts.map +1 -0
  105. package/build/core/physics/models/{rodotrem_model.js → RodotremModel.js} +7 -6
  106. package/build/core/physics/models/SemiDelegate.d.ts +9 -0
  107. package/build/core/physics/models/SemiDelegate.d.ts.map +1 -0
  108. package/build/core/physics/models/SemiDelegate.js +1 -0
  109. package/build/core/physics/models/{semi_reboque_base.d.ts → SemiReboqueBase.d.ts} +4 -4
  110. package/build/core/physics/models/SemiReboqueBase.d.ts.map +1 -0
  111. package/build/core/physics/models/{semi_reboque_base.js → SemiReboqueBase.js} +4 -4
  112. package/build/core/physics/models/{semi_reboque_model.d.ts → SemiReboqueModel.d.ts} +5 -5
  113. package/build/core/physics/models/SemiReboqueModel.d.ts.map +1 -0
  114. package/build/core/physics/models/{semi_reboque_model.js → SemiReboqueModel.js} +8 -7
  115. package/build/core/physics/models/{simple_truck_base.d.ts → SimpleTruckBase.d.ts} +4 -4
  116. package/build/core/physics/models/SimpleTruckBase.d.ts.map +1 -0
  117. package/build/core/physics/models/{simple_truck_base.js → SimpleTruckBase.js} +3 -3
  118. package/build/core/physics/models/{simple_truck_model.d.ts → SimpleTruckModel.d.ts} +5 -5
  119. package/build/core/physics/models/SimpleTruckModel.d.ts.map +1 -0
  120. package/build/core/physics/models/{simple_truck_model.js → SimpleTruckModel.js} +7 -6
  121. package/build/core/physics/models/{single_container_tare.d.ts → SingleContainerTare.d.ts} +2 -2
  122. package/build/core/physics/models/SingleContainerTare.d.ts.map +1 -0
  123. package/build/core/physics/models/{single_container_tare.js → SingleContainerTare.js} +2 -2
  124. package/build/core/physics/models/{tare_model.d.ts → TareModel.d.ts} +2 -2
  125. package/build/core/physics/models/TareModel.d.ts.map +1 -0
  126. package/build/core/physics/models/{tare_model.js → TareModel.js} +3 -3
  127. package/build/core/physics/models/TruckDelegate.d.ts +9 -0
  128. package/build/core/physics/models/TruckDelegate.d.ts.map +1 -0
  129. package/build/core/physics/models/TruckDelegate.js +1 -0
  130. package/build/core/physics/models/UnrecognizedSuspensionTypeError.d.ts +10 -0
  131. package/build/core/physics/models/UnrecognizedSuspensionTypeError.d.ts.map +1 -0
  132. package/build/core/physics/models/UnrecognizedSuspensionTypeError.js +12 -0
  133. package/build/core/physics/models/UnsupportedVehicleTypeError.d.ts +10 -0
  134. package/build/core/physics/models/UnsupportedVehicleTypeError.d.ts.map +1 -0
  135. package/build/core/physics/models/UnsupportedVehicleTypeError.js +12 -0
  136. package/build/core/physics/models/{vanderleia_model.d.ts → VanderleiaModel.d.ts} +6 -6
  137. package/build/core/physics/models/VanderleiaModel.d.ts.map +1 -0
  138. package/build/core/physics/models/{vanderleia_model.js → VanderleiaModel.js} +10 -8
  139. package/build/core/physics/models/VehicleModel.d.ts +11 -0
  140. package/build/core/physics/models/VehicleModel.d.ts.map +1 -0
  141. package/build/core/physics/models/VehicleModel.js +1 -0
  142. package/build/core/physics/models/deflection/{beam_deflection.d.ts → BeamDeflection.d.ts} +2 -2
  143. package/build/core/physics/models/deflection/BeamDeflection.d.ts.map +1 -0
  144. package/build/core/physics/models/deflection/{beam_deflection.js → BeamDeflection.js} +2 -2
  145. package/build/core/physics/models/deflection/{bitrem_deflection.d.ts → BitremDeflection.d.ts} +3 -3
  146. package/build/core/physics/models/deflection/BitremDeflection.d.ts.map +1 -0
  147. package/build/core/physics/models/deflection/{bitrem_deflection.js → BitremDeflection.js} +3 -3
  148. package/build/core/physics/models/deflection/{create_deflection_delegate.d.ts → CreateDeflectionDelegate.d.ts} +3 -6
  149. package/build/core/physics/models/deflection/CreateDeflectionDelegate.d.ts.map +1 -0
  150. package/build/core/physics/models/deflection/CreateDeflectionDelegate.js +24 -0
  151. package/build/core/physics/models/deflection/DeflectionDelegate.d.ts +8 -0
  152. package/build/core/physics/models/deflection/DeflectionDelegate.d.ts.map +1 -0
  153. package/build/core/physics/models/deflection/DeflectionDelegate.js +1 -0
  154. package/build/core/physics/models/deflection/DeflectionDelegateFactories.d.ts +36 -0
  155. package/build/core/physics/models/deflection/DeflectionDelegateFactories.d.ts.map +1 -0
  156. package/build/core/physics/models/deflection/DeflectionDelegateFactories.js +51 -0
  157. package/build/core/physics/models/deflection/{deflection_model.d.ts → DeflectionModel.d.ts} +3 -3
  158. package/build/core/physics/models/deflection/DeflectionModel.d.ts.map +1 -0
  159. package/build/core/physics/models/deflection/{deflection_model.js → DeflectionModel.js} +2 -2
  160. package/build/core/physics/models/deflection/DeflectionModelNotImplementedError.d.ts +9 -0
  161. package/build/core/physics/models/deflection/DeflectionModelNotImplementedError.d.ts.map +1 -0
  162. package/build/core/physics/models/deflection/DeflectionModelNotImplementedError.js +11 -0
  163. package/build/core/physics/models/deflection/{deflection_support_manager.d.ts → DeflectionSupportManager.d.ts} +15 -1
  164. package/build/core/physics/models/deflection/DeflectionSupportManager.d.ts.map +1 -0
  165. package/build/core/physics/models/deflection/{deflection_support_manager.js → DeflectionSupportManager.js} +14 -0
  166. package/build/core/physics/models/deflection/{deflection_tools.d.ts → DeflectionTools.d.ts} +1 -1
  167. package/build/core/physics/models/deflection/DeflectionTools.d.ts.map +1 -0
  168. package/build/core/physics/models/deflection/DelegateFactory.d.ts +12 -0
  169. package/build/core/physics/models/deflection/DelegateFactory.d.ts.map +1 -0
  170. package/build/core/physics/models/deflection/DelegateFactory.js +1 -0
  171. package/build/core/physics/models/deflection/{integration_constant_calculator.d.ts → IntegrationConstantCalculator.d.ts} +6 -3
  172. package/build/core/physics/models/deflection/IntegrationConstantCalculator.d.ts.map +1 -0
  173. package/build/core/physics/models/deflection/{integration_constant_calculator.js → IntegrationConstantCalculator.js} +4 -1
  174. package/build/core/physics/models/deflection/{rodotrem_deflection.d.ts → RodotremDeflection.d.ts} +3 -3
  175. package/build/core/physics/models/deflection/RodotremDeflection.d.ts.map +1 -0
  176. package/build/core/physics/models/deflection/{rodotrem_deflection.js → RodotremDeflection.js} +3 -3
  177. package/build/core/physics/models/deflection/{semi_reboque_deflection.d.ts → SemiReboqueDeflection.d.ts} +3 -3
  178. package/build/core/physics/models/deflection/SemiReboqueDeflection.d.ts.map +1 -0
  179. package/build/core/physics/models/deflection/{semi_reboque_deflection.js → SemiReboqueDeflection.js} +2 -2
  180. package/build/core/physics/models/deflection/{simple_truck_deflection.d.ts → SimpleTruckDeflection.d.ts} +3 -3
  181. package/build/core/physics/models/deflection/SimpleTruckDeflection.d.ts.map +1 -0
  182. package/build/core/physics/models/deflection/{simple_truck_deflection.js → SimpleTruckDeflection.js} +2 -2
  183. package/build/core/physics/models/deflection/{vanderleia_deflection.d.ts → VanderleiaDeflection.d.ts} +3 -3
  184. package/build/core/physics/models/deflection/VanderleiaDeflection.d.ts.map +1 -0
  185. package/build/core/physics/models/deflection/{vanderleia_deflection.js → VanderleiaDeflection.js} +3 -3
  186. package/build/core/physics/services/{axle_weight_output_builder.d.ts → AxleWeightOutputBuilder.d.ts} +4 -4
  187. package/build/core/physics/services/AxleWeightOutputBuilder.d.ts.map +1 -0
  188. package/build/core/physics/services/{axle_weight_output_builder.js → AxleWeightOutputBuilder.js} +2 -2
  189. package/build/core/physics/services/{axle_weight_service.d.ts → AxleWeightService.d.ts} +1 -1
  190. package/build/core/physics/services/AxleWeightService.d.ts.map +1 -0
  191. package/build/core/physics/services/{axle_weight_service.js → AxleWeightService.js} +6 -6
  192. package/build/core/physics/services/{cm_axle_weight_service.d.ts → CmAxleWeightService.d.ts} +2 -2
  193. package/build/core/physics/services/CmAxleWeightService.d.ts.map +1 -0
  194. package/build/core/physics/services/{cm_axle_weight_service.js → CmAxleWeightService.js} +3 -3
  195. package/build/core/physics/services/{container_corner_forces.d.ts → ContainerCornerForces.d.ts} +1 -1
  196. package/build/core/physics/services/ContainerCornerForces.d.ts.map +1 -0
  197. package/build/core/physics/transports/{axle_manager.d.ts → AxleManager.d.ts} +3 -3
  198. package/build/core/physics/transports/AxleManager.d.ts.map +1 -0
  199. package/build/core/physics/transports/{axle_manager.js → AxleManager.js} +2 -2
  200. package/build/core/physics/transports/{axle_record.d.ts → AxleRecord.d.ts} +1 -1
  201. package/build/core/physics/transports/AxleRecord.d.ts.map +1 -0
  202. package/build/core/physics/transports/{axle_record.js → AxleRecord.js} +1 -1
  203. package/build/core/physics/transports/{chassi.d.ts → Chassi.d.ts} +3 -3
  204. package/build/core/physics/transports/{chassi.d.ts.map → Chassi.d.ts.map} +1 -1
  205. package/build/core/physics/transports/{chassi.js → Chassi.js} +2 -2
  206. package/build/core/physics/transports/{container_record.d.ts → ContainerRecord.d.ts} +1 -1
  207. package/build/core/physics/transports/ContainerRecord.d.ts.map +1 -0
  208. package/build/core/physics/transports/{container_record.js → ContainerRecord.js} +1 -1
  209. package/build/core/physics/transports/ContainerSequenceNotFoundError.d.ts +10 -0
  210. package/build/core/physics/transports/ContainerSequenceNotFoundError.d.ts.map +1 -0
  211. package/build/core/physics/transports/ContainerSequenceNotFoundError.js +12 -0
  212. package/build/core/physics/transports/{grouped_containers.d.ts → GroupedContainers.d.ts} +2 -2
  213. package/build/core/physics/transports/GroupedContainers.d.ts.map +1 -0
  214. package/build/core/physics/transports/{grouped_containers.js → GroupedContainers.js} +3 -2
  215. package/build/core/physics/transports/GrouperNotFoundError.d.ts +10 -0
  216. package/build/core/physics/transports/GrouperNotFoundError.d.ts.map +1 -0
  217. package/build/core/physics/transports/GrouperNotFoundError.js +12 -0
  218. package/build/core/physics/transports/{merged_containers.d.ts → MergedContainers.d.ts} +3 -3
  219. package/build/core/physics/transports/MergedContainers.d.ts.map +1 -0
  220. package/build/core/physics/transports/{merged_containers.js → MergedContainers.js} +3 -2
  221. package/build/core/physics/transports/MissingContainerError.d.ts +10 -0
  222. package/build/core/physics/transports/MissingContainerError.d.ts.map +1 -0
  223. package/build/core/physics/transports/MissingContainerError.js +12 -0
  224. package/build/core/physics/transports/{transport.d.ts → Transport.d.ts} +5 -5
  225. package/build/core/physics/transports/Transport.d.ts.map +1 -0
  226. package/build/core/physics/transports/{transport.js → Transport.js} +7 -6
  227. package/build/core/physics/transports/containerweight/{container_max_weight_calculator.d.ts → ContainerMaxWeightCalculator.d.ts} +3 -9
  228. package/build/core/physics/transports/containerweight/ContainerMaxWeightCalculator.d.ts.map +1 -0
  229. package/build/core/physics/transports/containerweight/{container_tare_calculator.d.ts → ContainerTareCalculator.d.ts} +3 -3
  230. package/build/core/physics/transports/containerweight/ContainerTareCalculator.d.ts.map +1 -0
  231. package/build/core/physics/transports/containerweight/{container_weight_model.d.ts → ContainerWeightModel.d.ts} +2 -2
  232. package/build/core/physics/transports/containerweight/ContainerWeightModel.d.ts.map +1 -0
  233. package/build/core/physics/transports/containerweight/{container_weight_model.js → ContainerWeightModel.js} +3 -3
  234. package/build/core/physics/transports/containerweight/MaxWeightInput.d.ts +10 -0
  235. package/build/core/physics/transports/containerweight/MaxWeightInput.d.ts.map +1 -0
  236. package/build/core/physics/transports/containerweight/MaxWeightInput.js +1 -0
  237. package/build/core/physics/transports/containerweight/{merged_containers_weight_calculator.d.ts → MergedContainersWeightCalculator.d.ts} +3 -3
  238. package/build/core/physics/transports/containerweight/MergedContainersWeightCalculator.d.ts.map +1 -0
  239. package/build/core/physics/transports/containerweight/{single_container_weight_calculator.d.ts → SingleContainerWeightCalculator.d.ts} +3 -3
  240. package/build/core/physics/transports/containerweight/SingleContainerWeightCalculator.d.ts.map +1 -0
  241. package/build/core/physics/transports/containerweight/{single_container_weight_calculator.js → SingleContainerWeightCalculator.js} +2 -2
  242. package/build/core/physics/transports/tare/BitremAxleSplit.d.ts +8 -0
  243. package/build/core/physics/transports/tare/BitremAxleSplit.d.ts.map +1 -0
  244. package/build/core/physics/transports/tare/BitremAxleSplit.js +1 -0
  245. package/build/core/physics/transports/tare/BitremAxleSplitTarget.d.ts +12 -0
  246. package/build/core/physics/transports/tare/BitremAxleSplitTarget.d.ts.map +1 -0
  247. package/build/core/physics/transports/tare/BitremAxleSplitTarget.js +1 -0
  248. package/build/core/physics/transports/tare/{bitrem_axle_splitter.d.ts → BitremAxleSplitter.d.ts} +3 -3
  249. package/build/core/physics/transports/tare/BitremAxleSplitter.d.ts.map +1 -0
  250. package/build/core/physics/transports/tare/{bitrem_axle_splitter.js → BitremAxleSplitter.js} +5 -5
  251. package/build/core/physics/transports/tare/{bitrem_axle_weight_split.d.ts → BitremAxleWeightSplit.d.ts} +3 -12
  252. package/build/core/physics/transports/tare/BitremAxleWeightSplit.d.ts.map +1 -0
  253. package/build/index.d.ts +19 -4
  254. package/build/index.d.ts.map +1 -1
  255. package/build/index.js +18 -6
  256. package/package.json +4 -4
  257. package/.cursor/ai_changelog/INDEX.md +0 -13
  258. package/.cursor/ai_changelog/_TEMPLATE.md +0 -55
  259. package/.cursor/rules/code-standards.mdc +0 -103
  260. package/.cursor/rules/knowledge-base.mdc +0 -14
  261. package/.cursor/rules/planning-standards.mdc +0 -55
  262. package/.cursor/skills/document-feature-knowledge/SKILL.md +0 -51
  263. package/bitbucket-pipelines.yml +0 -81
  264. package/build/core/contracts/chassi_reference.d.ts.map +0 -1
  265. package/build/core/contracts/ms_faixas_contract.d.ts.map +0 -1
  266. package/build/core/contracts/rotation_enum.d.ts.map +0 -1
  267. package/build/core/contracts/suspension_type.d.ts.map +0 -1
  268. package/build/core/contracts/transport_record.d.ts.map +0 -1
  269. package/build/core/contracts/vehicle_type.d.ts.map +0 -1
  270. package/build/core/contracts/vehicle_version.d.ts.map +0 -1
  271. package/build/core/contracts/wire_flags.d.ts.map +0 -1
  272. package/build/core/math/float_tools.d.ts.map +0 -1
  273. package/build/core/math/gaussian_elimination.d.ts.map +0 -1
  274. package/build/core/orchestration/axle_weight_physics.d.ts.map +0 -1
  275. package/build/core/orchestration/collision_checker.d.ts +0 -6
  276. package/build/core/orchestration/collision_checker.d.ts.map +0 -1
  277. package/build/core/orchestration/collision_checker.js +0 -67
  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 +0 -11
  281. package/build/core/orchestration/output_builder.d.ts.map +0 -1
  282. package/build/core/orchestration/output_builder.js +0 -15
  283. package/build/core/orchestration/request_schema.d.ts.map +0 -1
  284. package/build/core/orchestration/request_schema.js +0 -20
  285. package/build/core/orchestration/weight_by_axis_task.d.ts +0 -7
  286. package/build/core/orchestration/weight_by_axis_task.d.ts.map +0 -1
  287. package/build/core/physics/items/allocated_item.d.ts.map +0 -1
  288. package/build/core/physics/items/allocated_item_manager.d.ts.map +0 -1
  289. package/build/core/physics/items/center_of_mass.d.ts.map +0 -1
  290. package/build/core/physics/items/compute_grouper_center_of_mass.d.ts.map +0 -1
  291. package/build/core/physics/items/item_templates.d.ts.map +0 -1
  292. package/build/core/physics/items/multi_container_allocated_items.d.ts.map +0 -1
  293. package/build/core/physics/items/rotation_transforms.d.ts.map +0 -1
  294. package/build/core/physics/models/axle_weight_model.d.ts.map +0 -1
  295. package/build/core/physics/models/bi_truck_model.d.ts.map +0 -1
  296. package/build/core/physics/models/bi_truck_tractor_semi_trailer_model.d.ts.map +0 -1
  297. package/build/core/physics/models/bitrem_model.d.ts.map +0 -1
  298. package/build/core/physics/models/chassi_forces.d.ts.map +0 -1
  299. package/build/core/physics/models/deflection/beam_deflection.d.ts.map +0 -1
  300. package/build/core/physics/models/deflection/bitrem_deflection.d.ts.map +0 -1
  301. package/build/core/physics/models/deflection/create_deflection_delegate.d.ts.map +0 -1
  302. package/build/core/physics/models/deflection/create_deflection_delegate.js +0 -32
  303. package/build/core/physics/models/deflection/deflection_model.d.ts.map +0 -1
  304. package/build/core/physics/models/deflection/deflection_support_manager.d.ts.map +0 -1
  305. package/build/core/physics/models/deflection/deflection_tools.d.ts.map +0 -1
  306. package/build/core/physics/models/deflection/integration_constant_calculator.d.ts.map +0 -1
  307. package/build/core/physics/models/deflection/rodotrem_deflection.d.ts.map +0 -1
  308. package/build/core/physics/models/deflection/semi_reboque_deflection.d.ts.map +0 -1
  309. package/build/core/physics/models/deflection/simple_truck_deflection.d.ts.map +0 -1
  310. package/build/core/physics/models/deflection/vanderleia_deflection.d.ts.map +0 -1
  311. package/build/core/physics/models/old_tare_model.d.ts.map +0 -1
  312. package/build/core/physics/models/old_tare_scale.d.ts.map +0 -1
  313. package/build/core/physics/models/old_tare_semireboque.d.ts.map +0 -1
  314. package/build/core/physics/models/old_tare_truck.d.ts.map +0 -1
  315. package/build/core/physics/models/old_tare_vanderleia.d.ts.map +0 -1
  316. package/build/core/physics/models/percentage_on_axles_calculator.d.ts.map +0 -1
  317. package/build/core/physics/models/quad_semi_trailer_model.d.ts.map +0 -1
  318. package/build/core/physics/models/rodotrem_model.d.ts.map +0 -1
  319. package/build/core/physics/models/semi_reboque_base.d.ts.map +0 -1
  320. package/build/core/physics/models/semi_reboque_model.d.ts.map +0 -1
  321. package/build/core/physics/models/simple_truck_base.d.ts.map +0 -1
  322. package/build/core/physics/models/simple_truck_model.d.ts.map +0 -1
  323. package/build/core/physics/models/single_container_tare.d.ts.map +0 -1
  324. package/build/core/physics/models/tare_model.d.ts.map +0 -1
  325. package/build/core/physics/models/vanderleia_model.d.ts.map +0 -1
  326. package/build/core/physics/services/axle_weight_output_builder.d.ts.map +0 -1
  327. package/build/core/physics/services/axle_weight_service.d.ts.map +0 -1
  328. package/build/core/physics/services/cm_axle_weight_service.d.ts.map +0 -1
  329. package/build/core/physics/services/container_corner_forces.d.ts.map +0 -1
  330. package/build/core/physics/transports/axle_manager.d.ts.map +0 -1
  331. package/build/core/physics/transports/axle_record.d.ts.map +0 -1
  332. package/build/core/physics/transports/container_record.d.ts.map +0 -1
  333. package/build/core/physics/transports/containerweight/container_max_weight_calculator.d.ts.map +0 -1
  334. package/build/core/physics/transports/containerweight/container_tare_calculator.d.ts.map +0 -1
  335. package/build/core/physics/transports/containerweight/container_weight_model.d.ts.map +0 -1
  336. package/build/core/physics/transports/containerweight/merged_containers_weight_calculator.d.ts.map +0 -1
  337. package/build/core/physics/transports/containerweight/single_container_weight_calculator.d.ts.map +0 -1
  338. package/build/core/physics/transports/grouped_containers.d.ts.map +0 -1
  339. package/build/core/physics/transports/merged_containers.d.ts.map +0 -1
  340. package/build/core/physics/transports/tare/bitrem_axle_splitter.d.ts.map +0 -1
  341. package/build/core/physics/transports/tare/bitrem_axle_weight_split.d.ts.map +0 -1
  342. package/build/core/physics/transports/transport.d.ts.map +0 -1
  343. package/eslint.config.js +0 -51
  344. package/src/core/contracts/chassi_reference.ts +0 -7
  345. package/src/core/contracts/ms_faixas_contract.ts +0 -114
  346. package/src/core/contracts/rotation_enum.ts +0 -11
  347. package/src/core/contracts/suspension_type.ts +0 -4
  348. package/src/core/contracts/transport_record.ts +0 -4
  349. package/src/core/contracts/vehicle_type.ts +0 -12
  350. package/src/core/contracts/vehicle_version.ts +0 -7
  351. package/src/core/contracts/wire_flags.ts +0 -26
  352. package/src/core/math/float_tools.ts +0 -17
  353. package/src/core/math/gaussian_elimination.ts +0 -104
  354. package/src/core/orchestration/axle_weight_physics.ts +0 -37
  355. package/src/core/orchestration/collision_checker.ts +0 -86
  356. package/src/core/orchestration/connector_payload_builder.ts +0 -81
  357. package/src/core/orchestration/java_mass_center.ts +0 -98
  358. package/src/core/orchestration/output_builder.ts +0 -18
  359. package/src/core/orchestration/request_schema.ts +0 -26
  360. package/src/core/orchestration/weight_by_axis_task.ts +0 -140
  361. package/src/core/physics/items/allocated_item.ts +0 -41
  362. package/src/core/physics/items/allocated_item_manager.ts +0 -50
  363. package/src/core/physics/items/center_of_mass.ts +0 -31
  364. package/src/core/physics/items/compute_grouper_center_of_mass.ts +0 -44
  365. package/src/core/physics/items/item_templates.ts +0 -65
  366. package/src/core/physics/items/multi_container_allocated_items.ts +0 -120
  367. package/src/core/physics/items/rotation_transforms.ts +0 -29
  368. package/src/core/physics/models/axle_weight_model.ts +0 -109
  369. package/src/core/physics/models/bi_truck_model.ts +0 -74
  370. package/src/core/physics/models/bi_truck_tractor_semi_trailer_model.ts +0 -86
  371. package/src/core/physics/models/bitrem_model.ts +0 -148
  372. package/src/core/physics/models/chassi_forces.ts +0 -50
  373. package/src/core/physics/models/deflection/beam_deflection.ts +0 -105
  374. package/src/core/physics/models/deflection/bitrem_deflection.ts +0 -68
  375. package/src/core/physics/models/deflection/create_deflection_delegate.ts +0 -46
  376. package/src/core/physics/models/deflection/deflection_model.ts +0 -33
  377. package/src/core/physics/models/deflection/deflection_support_manager.ts +0 -56
  378. package/src/core/physics/models/deflection/deflection_tools.ts +0 -11
  379. package/src/core/physics/models/deflection/integration_constant_calculator.ts +0 -62
  380. package/src/core/physics/models/deflection/rodotrem_deflection.ts +0 -57
  381. package/src/core/physics/models/deflection/semi_reboque_deflection.ts +0 -40
  382. package/src/core/physics/models/deflection/simple_truck_deflection.ts +0 -35
  383. package/src/core/physics/models/deflection/vanderleia_deflection.ts +0 -48
  384. package/src/core/physics/models/old_tare_model.ts +0 -51
  385. package/src/core/physics/models/old_tare_scale.ts +0 -9
  386. package/src/core/physics/models/old_tare_semireboque.ts +0 -51
  387. package/src/core/physics/models/old_tare_truck.ts +0 -15
  388. package/src/core/physics/models/old_tare_vanderleia.ts +0 -44
  389. package/src/core/physics/models/percentage_on_axles_calculator.ts +0 -49
  390. package/src/core/physics/models/quad_semi_trailer_model.ts +0 -87
  391. package/src/core/physics/models/rodotrem_model.ts +0 -131
  392. package/src/core/physics/models/semi_reboque_base.ts +0 -103
  393. package/src/core/physics/models/semi_reboque_model.ts +0 -127
  394. package/src/core/physics/models/simple_truck_base.ts +0 -70
  395. package/src/core/physics/models/simple_truck_model.ts +0 -115
  396. package/src/core/physics/models/single_container_tare.ts +0 -56
  397. package/src/core/physics/models/tare_model.ts +0 -46
  398. package/src/core/physics/models/vanderleia_model.ts +0 -125
  399. package/src/core/physics/services/axle_weight_output_builder.ts +0 -63
  400. package/src/core/physics/services/axle_weight_service.ts +0 -116
  401. package/src/core/physics/services/cm_axle_weight_service.ts +0 -45
  402. package/src/core/physics/services/container_corner_forces.ts +0 -95
  403. package/src/core/physics/transports/axle_manager.ts +0 -45
  404. package/src/core/physics/transports/axle_record.ts +0 -68
  405. package/src/core/physics/transports/chassi.ts +0 -130
  406. package/src/core/physics/transports/container_record.ts +0 -58
  407. package/src/core/physics/transports/containerweight/container_max_weight_calculator.ts +0 -59
  408. package/src/core/physics/transports/containerweight/container_tare_calculator.ts +0 -76
  409. package/src/core/physics/transports/containerweight/container_weight_model.ts +0 -38
  410. package/src/core/physics/transports/containerweight/merged_containers_weight_calculator.ts +0 -39
  411. package/src/core/physics/transports/containerweight/single_container_weight_calculator.ts +0 -65
  412. package/src/core/physics/transports/grouped_containers.ts +0 -91
  413. package/src/core/physics/transports/merged_containers.ts +0 -62
  414. package/src/core/physics/transports/tare/bitrem_axle_splitter.ts +0 -107
  415. package/src/core/physics/transports/tare/bitrem_axle_weight_split.ts +0 -55
  416. package/src/core/physics/transports/transport.ts +0 -137
  417. package/src/index.ts +0 -12
  418. package/src/service/.gitkeep +0 -0
  419. package/test/data/src/core/orchestration/weight_by_axis/case_1_basic_truck_input.json +0 -1759
  420. package/test/data/src/core/orchestration/weight_by_axis/case_2_vanderleia_input.json +0 -1286
  421. package/test/data/src/core/orchestration/weight_by_axis/case_3_interlink_input.json +0 -2226
  422. package/test/data/src/core/orchestration/weight_by_axis/case_4_quad_semi_trailer.json +0 -639
  423. package/test/data/src/core/orchestration/weight_by_axis/case_5_custom_center_of_gravity.json +0 -557
  424. package/test/data/src/core/physics/axle_weight_calculations/case_2_bitruck.json +0 -664
  425. package/test/data/src/core/physics/axle_weight_calculations/case_4_quad_semi_trailer.json +0 -674
  426. package/test/data/src/core/physics/axle_weight_calculations/case_5_bi_truck_semi_trailer.json +0 -674
  427. package/test/data/src/core/physics/axle_weight_service/case_1_input_truck.json +0 -1025
  428. package/test/data/src/core/physics/axle_weight_service/case_1_output_truck.json +0 -38
  429. package/test/data/src/core/physics/axle_weight_service/case_2_vanderleia_input.json +0 -1286
  430. package/test/data/src/core/physics/axle_weight_service/case_2_vanderleia_output.json +0 -65
  431. package/test/data/src/core/physics/axle_weight_service/case_3_input_semireboque.json +0 -24625
  432. package/test/data/src/core/physics/axle_weight_service/case_3_output_semireboque.json +0 -57
  433. package/test/data/src/core/physics/axle_weight_service/case_4_input_bitrem.json +0 -2226
  434. package/test/data/src/core/physics/axle_weight_service/case_4_output_bitrem.json +0 -96
  435. package/test/data/src/core/physics/beam_deflection/case_10_rodotrem_offset.json +0 -474
  436. package/test/data/src/core/physics/beam_deflection/case_11_bitruck.json +0 -664
  437. package/test/data/src/core/physics/beam_deflection/case_12_quad_semi_trailer.json +0 -792
  438. package/test/data/src/core/physics/beam_deflection/case_13_bi_truck_semi_trailer.json +0 -792
  439. package/test/data/src/core/physics/beam_deflection/case_1_documentation.ipynb +0 -316
  440. package/test/data/src/core/physics/beam_deflection/case_1_semireboque.json +0 -402
  441. package/test/data/src/core/physics/beam_deflection/case_2_bitrem.json +0 -434
  442. package/test/data/src/core/physics/beam_deflection/case_3_rodotrem.json +0 -474
  443. package/test/data/src/core/physics/beam_deflection/case_4_vanderleia_pneumatica.json +0 -425
  444. package/test/data/src/core/physics/beam_deflection/case_5_vanderleia_mecanica.json +0 -366
  445. package/test/data/src/core/physics/beam_deflection/case_6_truck.json +0 -279
  446. package/test/data/src/core/physics/beam_deflection/case_7_semireboque_structural_offset.json +0 -318
  447. package/test/data/src/core/physics/beam_deflection/case_8_vanderleia_offset.json +0 -425
  448. package/test/data/src/core/physics/beam_deflection/case_9_bitrem_offset.json +0 -434
  449. package/test/data/src/core/physics/bitrem_axle_splitter/case_1_simple_bitrem.json +0 -145
  450. package/test/data/src/core/physics/bitrem_axle_splitter/case_2_lowered_bitrem.json +0 -238
  451. package/test/data/src/core/physics/bitrem_axle_splitter/case_3_lowered_positive_proportion.json +0 -238
  452. package/test/data/src/core/physics/c_m_axle_weight_service/case_1_interlink_trailer.json +0 -94
  453. package/test/data/src/core/physics/calculations/case_1_simple_truck.json +0 -83
  454. package/test/data/src/core/physics/calculations/case_2_lowered_bitrem.json +0 -1051
  455. package/test/data/src/core/physics/calculations/case_3_container_mercedes.json +0 -50
  456. package/test/data/src/core/physics/container_corner_forces/case_1.json +0 -674
  457. package/test/data/src/core/physics/container_weight/case_1_basictruck.json +0 -223
  458. package/test/data/src/core/physics/container_weight/case_2_roadtrain.json +0 -277
  459. package/test/data/src/core/physics/container_weight/case_3_semireboque_rebaixado.json +0 -197
  460. package/test/data/src/core/physics/container_weight/case_4_semireboque_neck_limit.json +0 -197
  461. package/test/data/src/core/physics/container_weight/case_5_vanderleia_rebaixada.json +0 -211
  462. package/test/data/src/core/physics/container_weight/case_6_lowered_interlink.json +0 -230
  463. package/test/data/src/core/physics/python_goldens.json +0 -9
  464. package/test/data/src/core/physics/tare/case_1_simple_vanderleia.json +0 -185
  465. package/test/data/src/core/physics/tare/case_2_lowered_vanderleia.json +0 -646
  466. package/test/data/src/core/physics/tare/case_3_lowered_interlink.json +0 -230
  467. package/test/data/src/core/physics/tare/case_4_negative_tare_VUC.json +0 -483
  468. package/test/data/src/core/physics/tare/case_5_truck_bitruck.json +0 -664
  469. package/test/data/src/core/physics/tare/case_6_quad_semi_trailer.json +0 -203
  470. package/test/data/src/core/physics/tare/case_7_bi_truck_semi_trailer.json +0 -203
  471. package/test/data/src/core/physics/tare/case_8_triaxle_semi_trailer.json +0 -203
  472. package/test/data/src/core/physics/time_performance/case_1_center_of_mass.json +0 -2916
  473. package/test/data/src/core/physics/trucks/bitrem.json +0 -150
  474. package/test/data/src/core/physics/trucks/lowered_bitrem.json +0 -1216
  475. package/test/data/src/core/physics/trucks/lowered_bitrem_empty_first_container.json +0 -1182
  476. package/test/data/src/core/physics/trucks/rodotrem.json +0 -148
  477. package/test/data/src/core/physics/trucks/semi_reboque.json +0 -91
  478. package/test/data/src/core/physics/trucks/semi_reboque_rebaixado.json +0 -1629
  479. package/test/data/src/core/physics/trucks/simple_truck.json +0 -85
  480. package/test/data/src/core/physics/trucks/vanderleia_mechanical.json +0 -105
  481. package/test/data/src/core/physics/trucks/vanderleia_pneumatic.json +0 -105
  482. package/test/src/core/orchestration/request_schema.test.ts +0 -20
  483. package/test/src/core/orchestration/weight_by_axis_task.test.ts +0 -87
  484. package/test/src/core/physics/items/center_of_mass.test.ts +0 -38
  485. package/test/src/core/physics/items/multi_container_allocated_items.test.ts +0 -22
  486. package/test/src/core/physics/math_input_helpers.ts +0 -64
  487. package/test/src/core/physics/models/bitrem_model.test.ts +0 -54
  488. package/test/src/core/physics/models/deflection/deflection_model.test.ts +0 -78
  489. package/test/src/core/physics/models/rodotrem_model.test.ts +0 -29
  490. package/test/src/core/physics/models/semi_reboque_model.test.ts +0 -72
  491. package/test/src/core/physics/models/simple_truck_model.test.ts +0 -23
  492. package/test/src/core/physics/models/tare_model.test.ts +0 -34
  493. package/test/src/core/physics/models/vanderleia_model.test.ts +0 -36
  494. package/test/src/core/physics/services/axle_weight_service.test.ts +0 -56
  495. package/test/src/core/physics/services/cm_axle_weight_service.test.ts +0 -23
  496. package/test/src/core/physics/services/container_corner_forces.test.ts +0 -23
  497. package/test/src/core/physics/test_helpers.ts +0 -13
  498. package/test/src/core/physics/transports/chassi.test.ts +0 -35
  499. package/test/src/core/physics/transports/containerweight/container_weight_model.test.ts +0 -57
  500. package/test/src/core/physics/transports/tare/bitrem_axle_splitter.test.ts +0 -30
  501. package/test/src/index.test.ts +0 -35
  502. /package/build/core/contracts/{chassi_reference.js → ChassiReference.js} +0 -0
  503. /package/build/core/contracts/{rotation_enum.js → RotationEnum.js} +0 -0
  504. /package/build/core/contracts/{suspension_type.js → SuspensionType.js} +0 -0
  505. /package/build/core/contracts/{transport_record.js → TransportRecord.js} +0 -0
  506. /package/build/core/contracts/{vehicle_type.js → VehicleType.js} +0 -0
  507. /package/build/core/contracts/{vehicle_version.js → VehicleVersion.js} +0 -0
  508. /package/build/core/contracts/{wire_flags.js → WireFlags.js} +0 -0
  509. /package/build/core/math/{float_tools.js → FloatTools.js} +0 -0
  510. /package/build/core/math/{gaussian_elimination.js → GaussianElimination.js} +0 -0
  511. /package/build/core/physics/items/{allocated_item_manager.js → AllocatedItemManager.js} +0 -0
  512. /package/build/core/physics/items/{center_of_mass.js → CenterOfMass.js} +0 -0
  513. /package/build/core/physics/models/{chassi_forces.js → ChassiForces.js} +0 -0
  514. /package/build/core/physics/models/{old_tare_scale.js → OldTareScale.js} +0 -0
  515. /package/build/core/physics/models/deflection/{deflection_tools.js → DeflectionTools.js} +0 -0
  516. /package/build/core/physics/services/{container_corner_forces.js → ContainerCornerForces.js} +0 -0
  517. /package/build/core/physics/transports/containerweight/{container_max_weight_calculator.js → ContainerMaxWeightCalculator.js} +0 -0
  518. /package/build/core/physics/transports/containerweight/{container_tare_calculator.js → ContainerTareCalculator.js} +0 -0
  519. /package/build/core/physics/transports/containerweight/{merged_containers_weight_calculator.js → MergedContainersWeightCalculator.js} +0 -0
  520. /package/build/core/physics/transports/tare/{bitrem_axle_weight_split.js → BitremAxleWeightSplit.js} +0 -0
@@ -1,86 +0,0 @@
1
- /**
2
- * Validates allocated items do not overlap (Java CollisionChecker parity for tests).
3
- * @param env_vehicle - Env vehicle with containers and items.
4
- */
5
- export function check_cargo_collision(env_vehicle: Record<string, unknown>): void
6
- {
7
- const key = env_vehicle.conteiners ? 'conteiners' : 'containers'
8
- const containers = env_vehicle[key] as Record<string, unknown>[] | undefined
9
- if (!containers)
10
- {
11
- return
12
- }
13
- for (const container of containers)
14
- {
15
- check_container_items(container)
16
- }
17
- }
18
-
19
- /**
20
- * @param container - Container with items.
21
- */
22
- function check_container_items(container: Record<string, unknown>): void
23
- {
24
- const items = container.items as Record<string, unknown>[] | undefined
25
- if (!items || items.length <= 1)
26
- {
27
- return
28
- }
29
- for (let i = 0; i < items.length - 1; i++)
30
- {
31
- for (let j = i + 1; j < items.length; j++)
32
- {
33
- if (items_intersect(items[i], items[j]))
34
- {
35
- throw new Error('Item overlap error')
36
- }
37
- }
38
- }
39
- }
40
-
41
- /**
42
- * @param left - First item.
43
- * @param right - Second item.
44
- * @returns True when 3D boxes overlap (Java Item.intersect axes swap).
45
- */
46
- function items_intersect(left: Record<string, unknown>, right: Record<string, unknown>): boolean
47
- {
48
- const left_box = item_intervals(left)
49
- const right_box = item_intervals(right)
50
- return intervals_overlap(left_box.x, right_box.x)
51
- && intervals_overlap(left_box.y, right_box.y)
52
- && intervals_overlap(left_box.z, right_box.z)
53
- }
54
-
55
- /**
56
- * @param item - Item JSON.
57
- * @returns Axis intervals using Java coordinate mapping.
58
- */
59
- function item_intervals(item: Record<string, unknown>): {
60
- x: [number, number]
61
- y: [number, number]
62
- z: [number, number]
63
- }
64
- {
65
- const x0 = Number(item.x ?? 0)
66
- const width = Number(item.largura ?? item.width ?? 0)
67
- const json_y = Number(item.y ?? 0)
68
- const json_z = Number(item.z ?? 0)
69
- const length = Number(item.comprimento ?? item.length ?? 0)
70
- const height = Number(item.altura ?? item.height ?? 0)
71
- return {
72
- x: [x0, x0 + width],
73
- y: [json_z, json_z + height],
74
- z: [json_y, json_y + length]
75
- }
76
- }
77
-
78
- /**
79
- * @param left - Interval.
80
- * @param right - Interval.
81
- * @returns True when open intervals overlap.
82
- */
83
- function intervals_overlap(left: [number, number], right: [number, number]): boolean
84
- {
85
- return left[0] < right[1] && right[0] < left[1]
86
- }
@@ -1,81 +0,0 @@
1
- import { WIRE_FLAGS } from '../contracts/wire_flags.js'
2
-
3
- /**
4
- * Builds axle-weight service payload from a prepared env vehicle (Java AxleWeightConnector).
5
- * @param env_vehicle - Vehicle object inside envs[].
6
- * @param center_of_mass_by_grouper - CM per grouper for CM service flag.
7
- * @returns Transport record for CmAxleWeightService.
8
- */
9
- export function build_connector_payload(
10
- env_vehicle: Record<string, unknown>,
11
- center_of_mass_by_grouper: Record<number, { mass: number, z: number }>
12
- ): Record<string, unknown>
13
- {
14
- const center_of_mass = map_center_of_mass_wire(center_of_mass_by_grouper)
15
- return {
16
- [WIRE_FLAGS.CONTAINERS]: build_containers(env_vehicle),
17
- [WIRE_FLAGS.AXLE_LIST]: build_axles(env_vehicle),
18
- [WIRE_FLAGS.TRANSPORT_ID]: env_vehicle._id,
19
- [WIRE_FLAGS.AMOUNT]: 1,
20
- [WIRE_FLAGS.SUPPORTED_WEIGHT]: env_vehicle.pesoDeCarga,
21
- [WIRE_FLAGS.FIRST_AXLE_DISTANCE]: env_vehicle.primeiroEixo,
22
- [WIRE_FLAGS.VEHICLE_TYPE]: env_vehicle.tipoVeiculo,
23
- [WIRE_FLAGS.VEHICLE_VERSION]: env_vehicle.tipoVersao,
24
- [WIRE_FLAGS.SUSPENSION_TYPE]: env_vehicle.tipoSuspensao,
25
- [WIRE_FLAGS.CM_SERVICE_CENTER_OF_MASS]: center_of_mass
26
- }
27
- }
28
-
29
- /**
30
- * @param center_of_mass_by_grouper - CM per grouper from Java MassCenter.
31
- * @returns Wire map for CM service.
32
- */
33
- function map_center_of_mass_wire(
34
- center_of_mass_by_grouper: Record<number, { mass: number, z: number }>
35
- ): Record<string, { mass: number, z_position: number }>
36
- {
37
- const center_of_mass: Record<string, { mass: number, z_position: number }> = {}
38
- for (const grouper_key of Object.keys(center_of_mass_by_grouper))
39
- {
40
- const entry = center_of_mass_by_grouper[Number(grouper_key)]
41
- center_of_mass[grouper_key] = {
42
- mass: entry.mass,
43
- [WIRE_FLAGS.CM_SERVICE_Z]: entry.z
44
- }
45
- }
46
- return center_of_mass
47
- }
48
-
49
- /**
50
- * @param env_vehicle - Env vehicle JSON.
51
- * @returns Container wire list without items.
52
- */
53
- function build_containers(env_vehicle: Record<string, unknown>): Record<string, unknown>[]
54
- {
55
- const list = env_vehicle.containers as Record<string, unknown>[]
56
- return list.map((container) => ({
57
- [WIRE_FLAGS.LENGTH]: container.comprimento,
58
- [WIRE_FLAGS.WIDTH]: container.largura,
59
- [WIRE_FLAGS.HEIGHT]: container.altura,
60
- [WIRE_FLAGS.SEQUENCE]: container.sequencia,
61
- [WIRE_FLAGS.MAIN_PIN_DISTANCE]: container.distPinoRei,
62
- [WIRE_FLAGS.CONTAINER_DISTANCE_AHEAD]: container.containerDistanceAhead,
63
- [WIRE_FLAGS.GROUPER]: container.grouper
64
- }))
65
- }
66
-
67
- /**
68
- * @param env_vehicle - Env vehicle JSON.
69
- * @returns Axle wire list.
70
- */
71
- function build_axles(env_vehicle: Record<string, unknown>): Record<string, unknown>[]
72
- {
73
- const list = env_vehicle.eixos as Record<string, unknown>[]
74
- return list.map((axle) => ({
75
- [WIRE_FLAGS.DISTANCE_FROM_ORIGIN]: axle.distanciaOrigem,
76
- [WIRE_FLAGS.MAX_SUPPORTED_WEIGHT]: axle.pesoMaxSuportado,
77
- [WIRE_FLAGS.SEQUENCE_CONTAINER]: axle.sequenciaContainer,
78
- [WIRE_FLAGS.DNIT_WEIGHT]: axle.pesoDnit ?? axle.pesoMaxSuportado,
79
- [WIRE_FLAGS.TARE]: axle.tara
80
- }))
81
- }
@@ -1,98 +0,0 @@
1
- import { CenterOfMass } from '../physics/items/center_of_mass.js'
2
-
3
- /**
4
- * Computes mass center per grouper using ms-faixas Java Item / MassCenter rules.
5
- * Longitudinal position uses JSON `y` (maps to Ponto3D.z in Java CubeRepresentation).
6
- * @param env_vehicle - Single env vehicle object from weight_by_axis payload.
7
- * @returns Map of grouper id to center of mass.
8
- */
9
- export function mass_center_by_grouper_from_env(
10
- env_vehicle: Record<string, unknown>
11
- ): Record<number, CenterOfMass>
12
- {
13
- const result: Record<number, CenterOfMass> = {}
14
- const containers = env_vehicle.containers as Record<string, unknown>[] | undefined
15
- if (!containers)
16
- {
17
- return result
18
- }
19
- for (const container of containers)
20
- {
21
- const grouper = Number(container.grouper)
22
- // Java AxleWeightConnector overwrites per container in loop order (last wins).
23
- result[grouper] = compute_container_mass_center(container)
24
- }
25
- return result
26
- }
27
-
28
- /**
29
- * @param container - Container object with items array.
30
- * @returns Center of mass for container items.
31
- */
32
- function compute_container_mass_center(container: Record<string, unknown>): CenterOfMass
33
- {
34
- const center_of_mass = new CenterOfMass()
35
- const items = container.items as Record<string, unknown>[] | undefined
36
- if (!items || items.length === 0)
37
- {
38
- center_of_mass.mass = 0
39
- center_of_mass.z = 0
40
- return center_of_mass
41
- }
42
- const container_offset = read_container_longitudinal_offset(container)
43
- let accumulated = 0
44
- let mass = 0
45
- for (const item of items)
46
- {
47
- const weight = read_item_weight(item)
48
- const position = container_offset + read_item_longitudinal_position(item)
49
- accumulated += weight * position
50
- mass += weight
51
- }
52
- center_of_mass.mass = mass
53
- center_of_mass.z = mass === 0 ? 0 : accumulated / mass
54
- return center_of_mass
55
- }
56
-
57
- /**
58
- * @param container - Container JSON.
59
- * @returns Longitudinal offset of container body (first faixa z1 when present).
60
- */
61
- function read_container_longitudinal_offset(container: Record<string, unknown>): number
62
- {
63
- const bands = container.faixas as Record<string, unknown>[] | undefined
64
- if (!bands || bands.length === 0)
65
- {
66
- return 0
67
- }
68
- return Number(bands[0].z1 ?? 0)
69
- }
70
-
71
- /**
72
- * @param item - Ms-faixas item JSON.
73
- * @returns Item weight.
74
- */
75
- function read_item_weight(item: Record<string, unknown>): number
76
- {
77
- if (item.peso !== undefined)
78
- {
79
- return Number(item.peso)
80
- }
81
- return Number(item.weight ?? 0)
82
- }
83
-
84
- /**
85
- * @param item - Ms-faixas item JSON.
86
- * @returns Longitudinal position for equilibrium (Java getZ on pontoDeInicio).
87
- */
88
- function read_item_longitudinal_position(item: Record<string, unknown>): number
89
- {
90
- const origin_y = Number(item.y ?? 0)
91
- const custom = item.centerOfGravity as Record<string, unknown> | undefined
92
- if (custom && custom.z !== undefined)
93
- {
94
- return origin_y + Number(custom.z)
95
- }
96
- const length = Number(item.comprimento ?? item.length ?? 0)
97
- return origin_y + length / 2
98
- }
@@ -1,18 +0,0 @@
1
- /**
2
- * @param envs - Output env list.
3
- * @returns Success JSON string.
4
- */
5
- export function build_success_output(envs: Record<string, unknown>[]): string
6
- {
7
- return JSON.stringify({ envs })
8
- }
9
-
10
- /**
11
- * @param error - Thrown error.
12
- * @returns Error JSON string matching ms-faixas format.
13
- */
14
- export function build_error_output(error: unknown): string
15
- {
16
- const message = error instanceof Error ? error.message : String(error)
17
- return JSON.stringify({ msg: message, apiError: message })
18
- }
@@ -1,26 +0,0 @@
1
- import { z } from 'zod'
2
-
3
- const env_schema = z.object({
4
- _id: z.union([z.string(), z.number()]).optional(),
5
- eixos: z.array(z.record(z.unknown())).min(1),
6
- conteiners: z.array(z.record(z.unknown())).optional(),
7
- containers: z.array(z.record(z.unknown())).optional()
8
- }).passthrough()
9
-
10
- const request_schema = z.object({
11
- envs: z.array(env_schema).min(1),
12
- config: z.record(z.unknown()).optional()
13
- }).passthrough()
14
-
15
- export type WeightByAxisRequest = z.infer<typeof request_schema>
16
-
17
- /**
18
- * Parses and validates weight-by-axis JSON at the library boundary.
19
- * @param json_data - Raw request string.
20
- * @returns Parsed request object.
21
- */
22
- export function parse_weight_by_axis_request(json_data: string): WeightByAxisRequest
23
- {
24
- const parsed: unknown = JSON.parse(json_data)
25
- return request_schema.parse(parsed)
26
- }
@@ -1,140 +0,0 @@
1
- import { calculate_loaded_weights_for_env } from './axle_weight_physics.js'
2
- import { build_success_output, build_error_output } from './output_builder.js'
3
- import { check_cargo_collision } from './collision_checker.js'
4
- import { parse_weight_by_axis_request } from './request_schema.js'
5
-
6
- /**
7
- * Runs weight-by-axis for ms-faixas JSON input (WeightByAxisTask.run contract).
8
- * @param json_data - Raw request JSON string.
9
- * @returns Response JSON string.
10
- */
11
- export function run_weight_by_axis_task(json_data: string): string
12
- {
13
- try
14
- {
15
- const request = parse_weight_by_axis_request(json_data)
16
- const envs = request.envs as Record<string, unknown>[]
17
- const output_envs = []
18
- for (const env of envs)
19
- {
20
- const loaded_weights = calculate_loaded_weights_for_env(env)
21
- apply_loaded_weights_to_env(env, loaded_weights)
22
- check_cargo_collision(env)
23
- output_envs.push(strip_items_and_bands(env))
24
- }
25
- return build_success_output(output_envs)
26
- }
27
- catch (error)
28
- {
29
- return build_error_output(error)
30
- }
31
- }
32
-
33
- /**
34
- * @param env - Env vehicle object.
35
- * @param loaded_weights - Forces per axle.
36
- */
37
- function apply_loaded_weights_to_env(
38
- env: Record<string, unknown>,
39
- loaded_weights: number[]
40
- ): void
41
- {
42
- const axles = env.eixos as Record<string, unknown>[]
43
- for (let index = 0; index < loaded_weights.length; index++)
44
- {
45
- const cargo = loaded_weights[index]
46
- const axle = axles[index]
47
- const tare = Number(axle.tara ?? 0)
48
- axle.pesoCarregado = cargo
49
- axle.pesoCarregadoFinal = tare + cargo
50
- }
51
- const containers = env.conteiners ?? env.containers
52
- if (!Array.isArray(containers))
53
- {
54
- return
55
- }
56
- apply_to_containers(containers as Record<string, unknown>[], loaded_weights, axles)
57
- }
58
-
59
- /**
60
- * @param containers - Container list on env.
61
- * @param loaded_weights - Per-axle cargo load.
62
- * @param axles - Vehicle axles list.
63
- */
64
- function apply_to_containers(
65
- containers: Record<string, unknown>[],
66
- loaded_weights: number[],
67
- axles: Record<string, unknown>[]
68
- ): void
69
- {
70
- for (const container of containers)
71
- {
72
- const peso_eixos = build_peso_eixos_for_container(container, loaded_weights, axles)
73
- container.pesoEixos = peso_eixos
74
- }
75
- }
76
-
77
- /**
78
- * @param container - Container on env.
79
- * @param loaded_weights - All axle loads.
80
- * @param axles - Vehicle axles.
81
- * @returns pesoEixos array for container.
82
- */
83
- function build_peso_eixos_for_container(
84
- container: Record<string, unknown>,
85
- loaded_weights: number[],
86
- axles: Record<string, unknown>[]
87
- ): Record<string, unknown>[]
88
- {
89
- const sequence = Number(container.sequencia)
90
- const result: Record<string, unknown>[] = []
91
- for (let index = 0; index < axles.length; index++)
92
- {
93
- if (Number(axles[index].sequenciaContainer) !== sequence)
94
- {
95
- continue
96
- }
97
- result.push(build_peso_eixo_entry(axles[index], loaded_weights[index]))
98
- }
99
- return result
100
- }
101
-
102
- /**
103
- * @param axle - Axle record on env.
104
- * @param cargo - Loaded cargo on axle.
105
- * @returns Single pesoEixos entry.
106
- */
107
- function build_peso_eixo_entry(
108
- axle: Record<string, unknown>,
109
- cargo: number
110
- ): Record<string, unknown>
111
- {
112
- const tare = Number(axle.tara ?? 0)
113
- return {
114
- distanciaOrigem: axle.distanciaOrigem,
115
- pesoMax: Number(axle.pesoMaxSuportado) - tare,
116
- pesoMaxFinal: axle.pesoMaxSuportado,
117
- tara: tare,
118
- pesoCarregado: cargo,
119
- pesoCarregadoFinal: tare + cargo,
120
- distanciaOrigemSemPrimeiroEixo: axle.distanciaOrigemSemPrimeiroEixo ?? 0
121
- }
122
- }
123
-
124
- /**
125
- * @param env - Env with updated axle data.
126
- * @returns Env copy without items/faixas on containers.
127
- */
128
- function strip_items_and_bands(env: Record<string, unknown>): Record<string, unknown>
129
- {
130
- const clone = JSON.parse(JSON.stringify(env)) as Record<string, unknown>
131
- const key = clone.conteiners ? 'conteiners' : 'containers'
132
- const containers = clone[key] as Record<string, unknown>[]
133
- for (const container of containers)
134
- {
135
- container.items = []
136
- container.faixas = []
137
- }
138
- clone.idCaminhao = clone._id
139
- return clone
140
- }
@@ -1,41 +0,0 @@
1
- import type { RotationCode } from '../../contracts/rotation_enum.js'
2
- import { ROTATION } from '../../contracts/rotation_enum.js'
3
- import type { ItemTemplates } from './item_templates.js'
4
-
5
- /**
6
- * Allocated cargo item with position in container coordinates.
7
- */
8
- export class AllocatedItem
9
- {
10
- xi = 0
11
- yi = 0
12
- zi = 0
13
- rotation: RotationCode = ROTATION.POS1
14
- readonly template_index: number
15
- readonly templates: ItemTemplates
16
-
17
- /**
18
- * @param templates - Shared templates.
19
- * @param template_index - Template index.
20
- */
21
- constructor(templates: ItemTemplates, template_index: number)
22
- {
23
- this.templates = templates
24
- this.template_index = template_index
25
- }
26
-
27
- get weight(): number
28
- {
29
- return this.templates.weights[this.template_index]
30
- }
31
-
32
- get length(): number
33
- {
34
- return this.templates.get_length(this.template_index, this.rotation)
35
- }
36
-
37
- get center_of_gravity_z(): number
38
- {
39
- return this.zi + this.length / 2
40
- }
41
- }
@@ -1,50 +0,0 @@
1
- import { AllocatedItem } from './allocated_item.js'
2
- import type { ItemTemplates } from './item_templates.js'
3
-
4
- /**
5
- * Items allocated inside one container sequence.
6
- */
7
- export class AllocatedItemManager
8
- {
9
- private items: AllocatedItem[] = []
10
-
11
- /**
12
- * @param templates - Item templates for this container.
13
- */
14
- constructor(readonly templates: ItemTemplates)
15
- {
16
- }
17
-
18
- /**
19
- * @param items - Items to add.
20
- */
21
- add_allocated_items(items: AllocatedItem[]): void
22
- {
23
- this.items.push(...items)
24
- }
25
-
26
- /**
27
- * @returns Item count.
28
- */
29
- count_items(): number
30
- {
31
- return this.items.length
32
- }
33
-
34
- /**
35
- * @returns Item indexes.
36
- */
37
- list_item_indexes(): number[]
38
- {
39
- return this.items.map((_item, index) => index)
40
- }
41
-
42
- /**
43
- * @param item_index - Item index.
44
- * @returns Item instance.
45
- */
46
- get_item(item_index: number): AllocatedItem
47
- {
48
- return this.items[item_index]
49
- }
50
- }
@@ -1,31 +0,0 @@
1
- import type { AllocatedItemManager } from './allocated_item_manager.js'
2
-
3
- /**
4
- * Center of mass for a load grouper (longitudinal z in chassis coordinates).
5
- */
6
- export class CenterOfMass
7
- {
8
- mass = 0
9
- z = 0
10
-
11
- /**
12
- * Computes center of mass from allocated items.
13
- * @param allocated_items - Item manager for one grouper.
14
- */
15
- set_center_of_mass_with_allocated_items(allocated_items: AllocatedItemManager): void
16
- {
17
- let accumulated_weighted_positions = 0
18
- this.mass = 0
19
- for (const item_index of allocated_items.list_item_indexes())
20
- {
21
- const item = allocated_items.get_item(item_index)
22
- accumulated_weighted_positions += item.center_of_gravity_z * item.weight
23
- this.mass += item.weight
24
- }
25
- if (this.mass === 0)
26
- {
27
- return
28
- }
29
- this.z = accumulated_weighted_positions / this.mass
30
- }
31
- }
@@ -1,44 +0,0 @@
1
- import type { Transport } from '../transports/transport.js'
2
- import { MergedContainers } from '../transports/merged_containers.js'
3
- import { CenterOfMass } from './center_of_mass.js'
4
- import type { MultiContainerAllocatedItems } from './multi_container_allocated_items.js'
5
- import type { ChassiForces } from '../models/chassi_forces.js'
6
-
7
- /**
8
- * @param multi_items - Allocated items across containers.
9
- * @param merged - Merged container layout.
10
- * @returns Center of mass map keyed by grouper id.
11
- */
12
- export function compute_center_of_mass_by_grouper(
13
- multi_items: MultiContainerAllocatedItems,
14
- merged: MergedContainers
15
- ): Record<number, CenterOfMass>
16
- {
17
- multi_items.merge_allocated_items(merged)
18
- const result: Record<number, CenterOfMass> = {}
19
- for (const grouper of merged.list_grouper_indexes())
20
- {
21
- const center_of_mass = new CenterOfMass()
22
- center_of_mass.set_center_of_mass_with_allocated_items(
23
- multi_items.get_allocated_items_by_grouper_index(grouper))
24
- result[grouper] = center_of_mass
25
- }
26
- return result
27
- }
28
-
29
- /**
30
- * @param transport - Parsed transport.
31
- * @param multi_items - Allocated items.
32
- * @param solve - Model solver from CM map.
33
- * @returns Chassis forces.
34
- */
35
- export function calculate_chassi_forces_from_multi(
36
- transport: Transport,
37
- multi_items: MultiContainerAllocatedItems,
38
- solve: (center_of_mass_by_grouper: Record<number, CenterOfMass>) => ChassiForces
39
- ): ChassiForces
40
- {
41
- const merged = new MergedContainers(transport)
42
- const center_of_mass_by_grouper = compute_center_of_mass_by_grouper(multi_items, merged)
43
- return solve(center_of_mass_by_grouper)
44
- }
@@ -1,65 +0,0 @@
1
- import type { RotationCode } from '../../contracts/rotation_enum.js'
2
- import { ROTATION } from '../../contracts/rotation_enum.js'
3
- import { rotate_dimensions } from './rotation_transforms.js'
4
-
5
- /**
6
- * Item dimensions and weights keyed by template index.
7
- */
8
- export class ItemTemplates
9
- {
10
- ids: string[] = []
11
- weights: number[] = []
12
- lengths: number[] = []
13
- widths: number[] = []
14
- heights: number[] = []
15
- private dimensions: [number, number, number][] = []
16
-
17
- /**
18
- * @param item_id - Template id string.
19
- * @returns Template index.
20
- */
21
- index_of(item_id: string): number
22
- {
23
- const index = this.ids.indexOf(item_id)
24
- if (index < 0)
25
- {
26
- throw new Error(`Unknown item id ${item_id}`)
27
- }
28
- return index
29
- }
30
-
31
- /**
32
- * @param item_data - Ms-faixas or math input item definition.
33
- */
34
- add_template_from_item_data(item_data: Record<string, unknown>): void
35
- {
36
- const id = String(item_data.id ?? item_data._id)
37
- this.ids.push(id)
38
- this.weights.push(Number(item_data.peso ?? item_data.weight ?? 0))
39
- const width = Number(item_data.largura ?? item_data.width ?? 0)
40
- const length = Number(item_data.comprimento ?? item_data.length ?? 0)
41
- const height = Number(item_data.altura ?? item_data.height ?? 0)
42
- this.widths.push(width)
43
- this.lengths.push(length)
44
- this.heights.push(height)
45
- this.dimensions.push([width, length, height])
46
- }
47
-
48
- /**
49
- * @param template_index - Template index.
50
- * @param rotation - Rotation code.
51
- * @returns Length along chassis z for rotation.
52
- */
53
- get_length(template_index: number, rotation: RotationCode = ROTATION.POS1): number
54
- {
55
- return rotate_dimensions(rotation, this.dimensions[template_index])[1]
56
- }
57
-
58
- /**
59
- * @param item_data - Math input item row.
60
- */
61
- add_template_from_math_item(item_data: Record<string, unknown>): void
62
- {
63
- this.add_template_from_item_data(item_data)
64
- }
65
- }