@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,131 +0,0 @@
1
- import type { Transport } from '../transports/transport.js'
2
- import type { MultiContainerAllocatedItems } from '../items/multi_container_allocated_items.js'
3
- import { calculate_chassi_forces_from_multi } from '../items/compute_grouper_center_of_mass.js'
4
- import { Chassi } from '../transports/chassi.js'
5
- import { CHASSI_REFERENCE } from '../../contracts/chassi_reference.js'
6
- import { CenterOfMass } from '../items/center_of_mass.js'
7
- import { ChassiForces } from './chassi_forces.js'
8
- import { solve_linear_system } from '../../math/gaussian_elimination.js'
9
-
10
- /**
11
- * Rodotrem: semi+tractor 4×4 plus simple trailer 2-axle lever.
12
- */
13
- export class RodotremModel
14
- {
15
- readonly chassi: Chassi
16
- private readonly matrix: number[][]
17
-
18
- /**
19
- * @param transport - Parsed transport.
20
- */
21
- constructor(private readonly transport: Transport)
22
- {
23
- this.chassi = new Chassi(transport)
24
- this.matrix = generate_rodotrem_semi_matrix(this.chassi)
25
- }
26
-
27
- /**
28
- * @param multi_items - Allocated items.
29
- * @returns Loaded weights per axle.
30
- */
31
- calculate_weight_on_axles(multi_items: MultiContainerAllocatedItems): number[]
32
- {
33
- const forces = this.calculate_chassi_forces(multi_items)
34
- return forces.list_axles_indexes().map((index) => forces.get_force_on_axle(index))
35
- }
36
-
37
- /**
38
- * @param multi_items - Allocated items.
39
- * @returns Chassis forces.
40
- */
41
- calculate_chassi_forces(multi_items: MultiContainerAllocatedItems): ChassiForces
42
- {
43
- return calculate_chassi_forces_from_multi(
44
- this.transport,
45
- multi_items,
46
- (center_of_mass_by_grouper) =>
47
- this.calculate_chassi_forces_with_load_center_of_mass(center_of_mass_by_grouper))
48
- }
49
-
50
- /**
51
- * @param center_of_mass_by_grouper - CM for groupers 1 and 2.
52
- * @returns Five-axle chassis forces.
53
- */
54
- calculate_chassi_forces_with_load_center_of_mass(
55
- center_of_mass_by_grouper: Record<number, CenterOfMass>
56
- ): ChassiForces
57
- {
58
- const semi_solution = solve_semi_tractor_system(
59
- this.matrix,
60
- center_of_mass_by_grouper[1])
61
- const simple_solution = solve_simple_trailer_system(
62
- this.chassi,
63
- center_of_mass_by_grouper[2])
64
- const forces = new ChassiForces()
65
- forces.add_pin_forces([semi_solution[1]])
66
- forces.add_axle_forces([
67
- semi_solution[3],
68
- semi_solution[2],
69
- semi_solution[0],
70
- simple_solution[1],
71
- simple_solution[0]
72
- ])
73
- return forces
74
- }
75
- }
76
-
77
- /**
78
- * @param chassi - Chassis geometry.
79
- * @returns Semi+tractor 4×4 matrix.
80
- */
81
- function generate_rodotrem_semi_matrix(chassi: Chassi): number[][]
82
- {
83
- const tractor_pin = chassi.get_pin_position(0, CHASSI_REFERENCE.TRACTOR)
84
- const tractor_axle_1 = chassi.get_axle_position(0, CHASSI_REFERENCE.TRACTOR)
85
- const tractor_axle_2 = chassi.get_axle_position(1, CHASSI_REFERENCE.TRACTOR)
86
- const semi_pin = chassi.get_pin_position(0, CHASSI_REFERENCE.GROUPER_1)
87
- const semi_axle_3 = chassi.get_axle_position(2, CHASSI_REFERENCE.GROUPER_1)
88
- return [
89
- [1, 1, 0, 0],
90
- [semi_axle_3, semi_pin, 0, 0],
91
- [0, -1, 1, 1],
92
- [0, -tractor_pin, tractor_axle_2, tractor_axle_1]
93
- ]
94
- }
95
-
96
- /**
97
- * @param matrix - Semi system matrix.
98
- * @param center_of_mass - Semi trailer CM.
99
- * @returns 4-vector solution.
100
- */
101
- function solve_semi_tractor_system(matrix: number[][], center_of_mass: CenterOfMass): number[]
102
- {
103
- const independent = [
104
- center_of_mass.mass,
105
- center_of_mass.mass * center_of_mass.z,
106
- 0,
107
- 0
108
- ]
109
- return solve_linear_system(matrix, independent)
110
- }
111
-
112
- /**
113
- * @param chassi - Chassis geometry.
114
- * @param center_of_mass - Simple trailer CM.
115
- * @returns Two-axle lever solution [axle4, axle5].
116
- */
117
- function solve_simple_trailer_system(
118
- chassi: Chassi,
119
- center_of_mass: CenterOfMass
120
- ): [number, number]
121
- {
122
- const axle_4 = chassi.get_axle_position(3, CHASSI_REFERENCE.GROUPER_2)
123
- const axle_5 = chassi.get_axle_position(4, CHASSI_REFERENCE.GROUPER_2)
124
- const axle_4_force = center_of_mass.mass
125
- * (axle_4 - center_of_mass.z)
126
- / (axle_4 - axle_5)
127
- const axle_5_force = center_of_mass.mass
128
- * (center_of_mass.z - axle_5)
129
- / (axle_4 - axle_5)
130
- return [axle_4_force, axle_5_force]
131
- }
@@ -1,103 +0,0 @@
1
- import type { Transport } from '../transports/transport.js'
2
- import { Chassi } from '../transports/chassi.js'
3
- import { CHASSI_REFERENCE } from '../../contracts/chassi_reference.js'
4
- import { CenterOfMass } from '../items/center_of_mass.js'
5
- import { ChassiForces } from './chassi_forces.js'
6
- import { solve_linear_system } from '../../math/gaussian_elimination.js'
7
-
8
- /**
9
- * Semi-trailer 4×4 static system base.
10
- */
11
- export class SemiReboqueBase
12
- {
13
- chassi_positions: number[] = []
14
- private matrix: number[][] = []
15
-
16
- /**
17
- * @param transport - Parsed transport.
18
- */
19
- constructor(private readonly transport: Transport)
20
- {
21
- this.set_linear_system_matrix()
22
- }
23
-
24
- /**
25
- * @param center_of_mass_by_grouper - CM per grouper.
26
- * @returns Chassis forces.
27
- */
28
- calculate_chassi_forces_with_load_center_of_mass(
29
- center_of_mass_by_grouper: Record<number, CenterOfMass>
30
- ): ChassiForces
31
- {
32
- const solution = this.solve_weight_on_axles_system(center_of_mass_by_grouper[1])
33
- const forces = new ChassiForces()
34
- forces.add_pin_forces([solution[1]])
35
- forces.add_axle_forces([solution[3], solution[2], solution[0]])
36
- return forces
37
- }
38
-
39
- /**
40
- * @param chassi_positions - Optional preset positions.
41
- */
42
- set_linear_system_matrix(chassi_positions?: number[]): void
43
- {
44
- if (chassi_positions)
45
- {
46
- this.chassi_positions = chassi_positions
47
- }
48
- else
49
- {
50
- this.chassi_positions = this.get_chassi_positions()
51
- }
52
- this.matrix = build_semi_matrix(this.chassi_positions)
53
- }
54
-
55
- /**
56
- * @param center_of_mass - Load CM.
57
- * @returns 4-vector solution.
58
- */
59
- private solve_weight_on_axles_system(center_of_mass: CenterOfMass): number[]
60
- {
61
- const independent = [
62
- center_of_mass.mass,
63
- center_of_mass.mass * center_of_mass.z,
64
- 0,
65
- 0
66
- ]
67
- return solve_linear_system(this.matrix, independent)
68
- }
69
-
70
- /**
71
- * @returns Default chassis positions for semi system.
72
- */
73
- private get_chassi_positions(): number[]
74
- {
75
- const chassi = new Chassi(this.transport)
76
- return [
77
- chassi.get_pin_position(0, CHASSI_REFERENCE.TRACTOR),
78
- chassi.get_axle_position(0, CHASSI_REFERENCE.TRACTOR),
79
- chassi.get_axle_position(1, CHASSI_REFERENCE.TRACTOR),
80
- chassi.get_pin_position(0, CHASSI_REFERENCE.GROUPER_1),
81
- chassi.get_axle_position(2, CHASSI_REFERENCE.GROUPER_1)
82
- ]
83
- }
84
- }
85
-
86
- /**
87
- * @param positions - Pin and axle positions.
88
- * @returns 4×4 coefficient matrix.
89
- */
90
- function build_semi_matrix(positions: number[]): number[][]
91
- {
92
- const tractor_pin = positions[0]
93
- const tractor_axle_1 = positions[1]
94
- const tractor_axle_2 = positions[2]
95
- const semi_pin = positions[3]
96
- const semi_axle_3 = positions[4]
97
- return [
98
- [1, 1, 0, 0],
99
- [semi_axle_3, semi_pin, 0, 0],
100
- [0, -1, 1, 1],
101
- [0, -tractor_pin, tractor_axle_2, tractor_axle_1]
102
- ]
103
- }
@@ -1,127 +0,0 @@
1
- import type { Transport } from '../transports/transport.js'
2
- import { MergedContainers } from '../transports/merged_containers.js'
3
- import type { MultiContainerAllocatedItems } from '../items/multi_container_allocated_items.js'
4
- import {
5
- calculate_chassi_forces_from_multi,
6
- compute_center_of_mass_by_grouper
7
- } from '../items/compute_grouper_center_of_mass.js'
8
- import { VEHICLE_VERSION } from '../../contracts/vehicle_version.js'
9
- import { CenterOfMass } from '../items/center_of_mass.js'
10
- import { ChassiForces } from './chassi_forces.js'
11
- import { SemiReboqueBase } from './semi_reboque_base.js'
12
- import { QuadSemiTrailerModel } from './quad_semi_trailer_model.js'
13
- import { BiTruckTractorSemiTrailerModel } from './bi_truck_tractor_semi_trailer_model.js'
14
-
15
- type SemiDelegate = {
16
- calculate_chassi_forces_with_load_center_of_mass: (
17
- center_of_mass_by_grouper: Record<number, CenterOfMass>
18
- ) => ChassiForces
19
- }
20
-
21
- /**
22
- * Semi-reboque axle weight with quad/bitruck variants.
23
- */
24
- export class SemiReboqueModel
25
- {
26
- private readonly delegate: SemiDelegate & {
27
- chassi_positions?: number[]
28
- equivalent_semi_trailer?: SemiReboqueBase
29
- }
30
- private readonly transport: Transport
31
- private readonly merged_containers: MergedContainers
32
-
33
- /**
34
- * @param transport - Parsed transport.
35
- */
36
- constructor(transport: Transport)
37
- {
38
- this.transport = transport
39
- this.merged_containers = new MergedContainers(transport)
40
- if (transport.vehicle_version === VEHICLE_VERSION.SEMIREBOQUE_QUAD
41
- || transport.vehicle_version === VEHICLE_VERSION.SEMIREBOQUE_QUAD_ALT)
42
- {
43
- this.delegate = new QuadSemiTrailerModel(transport)
44
- }
45
- else if (transport.vehicle_version === VEHICLE_VERSION.SEMIREBOQUE_BITRUCK)
46
- {
47
- this.delegate = new BiTruckTractorSemiTrailerModel(transport)
48
- }
49
- else
50
- {
51
- const base = new SemiReboqueBase(transport)
52
- base.set_linear_system_matrix()
53
- this.delegate = base
54
- }
55
- }
56
-
57
- /**
58
- * @param multi_items - Allocated items.
59
- * @returns Loaded weights per axle.
60
- */
61
- calculate_weight_on_axles(multi_items: MultiContainerAllocatedItems): number[]
62
- {
63
- const forces = this.calculate_chassi_forces(multi_items)
64
- return forces.list_axles_indexes().map((index) => forces.get_force_on_axle(index))
65
- }
66
-
67
- /**
68
- * @param multi_items - Allocated items.
69
- * @returns Chassis forces.
70
- */
71
- calculate_chassi_forces(multi_items: MultiContainerAllocatedItems): ChassiForces
72
- {
73
- return calculate_chassi_forces_from_multi(
74
- this.transport,
75
- multi_items,
76
- (center_of_mass_by_grouper) =>
77
- this.calculate_chassi_forces_with_load_center_of_mass(center_of_mass_by_grouper))
78
- }
79
-
80
- /**
81
- * @param multi_items - Allocated items.
82
- * @returns Deflection support pairs.
83
- */
84
- calculate_support_data(multi_items: MultiContainerAllocatedItems): [number, number][]
85
- {
86
- const quad_or_bitruck = this.transport.vehicle_version === VEHICLE_VERSION.SEMIREBOQUE_QUAD
87
- || this.transport.vehicle_version === VEHICLE_VERSION.SEMIREBOQUE_QUAD_ALT
88
- || this.transport.vehicle_version === VEHICLE_VERSION.SEMIREBOQUE_BITRUCK
89
- if (quad_or_bitruck)
90
- {
91
- const center_of_mass_by_grouper = compute_center_of_mass_by_grouper(
92
- multi_items,
93
- this.merged_containers)
94
- const quad = this.delegate as QuadSemiTrailerModel
95
- const forces = quad.equivalent_semi_trailer
96
- .calculate_chassi_forces_with_load_center_of_mass(center_of_mass_by_grouper)
97
- const positions = quad.equivalent_semi_trailer.chassi_positions
98
- return [[positions[3], forces.get_force_on_pin(0)], [positions[4], forces.get_force_on_axle(2)]]
99
- }
100
- const forces = this.calculate_chassi_forces(multi_items)
101
- const base = this.delegate as SemiReboqueBase
102
- return [
103
- [base.chassi_positions[3], forces.get_force_on_pin(0)],
104
- [base.chassi_positions[4], forces.get_force_on_axle(2)]
105
- ]
106
- }
107
-
108
- /**
109
- * @returns Merged grouper 1 length.
110
- */
111
- calculate_container_length(): number
112
- {
113
- return this.merged_containers.get_container_by_grouper_index(1).length
114
- }
115
-
116
- /**
117
- * @param center_of_mass_by_grouper - CM per grouper.
118
- * @returns Chassis forces.
119
- */
120
- calculate_chassi_forces_with_load_center_of_mass(
121
- center_of_mass_by_grouper: Record<number, CenterOfMass>
122
- ): ChassiForces
123
- {
124
- return this.delegate.calculate_chassi_forces_with_load_center_of_mass(
125
- center_of_mass_by_grouper)
126
- }
127
- }
@@ -1,70 +0,0 @@
1
- import type { Transport } from '../transports/transport.js'
2
- import { Chassi } from '../transports/chassi.js'
3
- import { CHASSI_REFERENCE } from '../../contracts/chassi_reference.js'
4
- import { CenterOfMass } from '../items/center_of_mass.js'
5
- import { ChassiForces } from './chassi_forces.js'
6
-
7
- /**
8
- * Two-axle truck lever equilibrium.
9
- */
10
- export class SimpleTruckBase
11
- {
12
- axles_positions: number[] = []
13
-
14
- /**
15
- * @param transport - Parsed transport.
16
- */
17
- constructor(private readonly transport: Transport)
18
- {
19
- this.set_axles_positions()
20
- }
21
-
22
- /**
23
- * @param center_of_mass_by_grouper - CM per grouper id.
24
- * @returns Chassis forces.
25
- */
26
- calculate_chassi_forces_with_load_center_of_mass(
27
- center_of_mass_by_grouper: Record<number, CenterOfMass>
28
- ): ChassiForces
29
- {
30
- const center_of_mass = center_of_mass_by_grouper[1]
31
- const [axle_1, axle_2] = this.solve_linear_system(center_of_mass)
32
- const forces = new ChassiForces()
33
- forces.add_axle_forces([axle_1, axle_2])
34
- return forces
35
- }
36
-
37
- /**
38
- * @param axles_positions - Optional preset positions.
39
- */
40
- set_axles_positions(axles_positions?: number[]): void
41
- {
42
- if (axles_positions)
43
- {
44
- this.axles_positions = axles_positions
45
- return
46
- }
47
- const chassi = new Chassi(this.transport)
48
- this.axles_positions = [
49
- chassi.get_axle_position(0, CHASSI_REFERENCE.GROUPER_1),
50
- chassi.get_axle_position(1, CHASSI_REFERENCE.GROUPER_1)
51
- ]
52
- }
53
-
54
- /**
55
- * @param center_of_mass - Load center of mass.
56
- * @returns Axle 1 and 2 cargo reactions.
57
- */
58
- private solve_linear_system(center_of_mass: CenterOfMass): [number, number]
59
- {
60
- const axle_1_position = this.axles_positions[0]
61
- const axle_2_position = this.axles_positions[1]
62
- const axle_1 = center_of_mass.mass
63
- * (center_of_mass.z - axle_2_position)
64
- / (axle_1_position - axle_2_position)
65
- const axle_2 = center_of_mass.mass
66
- * (axle_1_position - center_of_mass.z)
67
- / (axle_1_position - axle_2_position)
68
- return [axle_1, axle_2]
69
- }
70
- }
@@ -1,115 +0,0 @@
1
- import type { Transport } from '../transports/transport.js'
2
- import { MergedContainers } from '../transports/merged_containers.js'
3
- import type { MultiContainerAllocatedItems } from '../items/multi_container_allocated_items.js'
4
- import {
5
- calculate_chassi_forces_from_multi,
6
- compute_center_of_mass_by_grouper
7
- } from '../items/compute_grouper_center_of_mass.js'
8
- import { VEHICLE_VERSION } from '../../contracts/vehicle_version.js'
9
- import { CenterOfMass } from '../items/center_of_mass.js'
10
- import { ChassiForces } from './chassi_forces.js'
11
- import { SimpleTruckBase } from './simple_truck_base.js'
12
- import { BiTruckModel } from './bi_truck_model.js'
13
-
14
- type TruckDelegate = {
15
- calculate_chassi_forces_with_load_center_of_mass: (
16
- center_of_mass_by_grouper: Record<number, CenterOfMass>
17
- ) => ChassiForces
18
- }
19
-
20
- /**
21
- * Caminhão / VUC axle weight (optional bitruck variant).
22
- */
23
- export class SimpleTruckModel
24
- {
25
- private readonly delegate: TruckDelegate & { axles_positions?: number[]; equivalent_truck?: SimpleTruckBase }
26
- private readonly transport: Transport
27
- private readonly merged_containers: MergedContainers
28
-
29
- /**
30
- * @param transport - Parsed transport.
31
- */
32
- constructor(transport: Transport)
33
- {
34
- this.transport = transport
35
- this.merged_containers = new MergedContainers(transport)
36
- if (transport.vehicle_version === VEHICLE_VERSION.CAMINHAO_BITRUCK)
37
- {
38
- this.delegate = new BiTruckModel(transport)
39
- }
40
- else
41
- {
42
- const base = new SimpleTruckBase(transport)
43
- base.set_axles_positions()
44
- this.delegate = base
45
- }
46
- }
47
-
48
- /**
49
- * @param multi_items - Allocated items.
50
- * @returns Loaded weights per axle.
51
- */
52
- calculate_weight_on_axles(multi_items: MultiContainerAllocatedItems): number[]
53
- {
54
- const forces = this.calculate_chassi_forces(multi_items)
55
- return forces.list_axles_indexes().map((index) => forces.get_force_on_axle(index))
56
- }
57
-
58
- /**
59
- * @param multi_items - Allocated items.
60
- * @returns Chassis forces.
61
- */
62
- calculate_chassi_forces(multi_items: MultiContainerAllocatedItems): ChassiForces
63
- {
64
- return calculate_chassi_forces_from_multi(
65
- this.transport,
66
- multi_items,
67
- (center_of_mass_by_grouper) =>
68
- this.calculate_chassi_forces_with_load_center_of_mass(center_of_mass_by_grouper))
69
- }
70
-
71
- /**
72
- * @param multi_items - Allocated items.
73
- * @returns Deflection support pairs.
74
- */
75
- calculate_support_data(multi_items: MultiContainerAllocatedItems): [number, number][]
76
- {
77
- if (this.transport.vehicle_version === VEHICLE_VERSION.CAMINHAO_BITRUCK)
78
- {
79
- const center_of_mass_by_grouper = compute_center_of_mass_by_grouper(
80
- multi_items,
81
- this.merged_containers)
82
- const bi_truck = this.delegate as BiTruckModel
83
- const forces = bi_truck.equivalent_truck
84
- .calculate_chassi_forces_with_load_center_of_mass(center_of_mass_by_grouper)
85
- const positions = bi_truck.equivalent_truck.axles_positions
86
- return [[positions[0], forces.get_force_on_axle(0)], [positions[1], forces.get_force_on_axle(1)]]
87
- }
88
- const forces = this.calculate_chassi_forces(multi_items)
89
- const base = this.delegate as SimpleTruckBase
90
- return [
91
- [base.axles_positions[0], forces.get_force_on_axle(0)],
92
- [base.axles_positions[1], forces.get_force_on_axle(1)]
93
- ]
94
- }
95
-
96
- /**
97
- * @returns Merged grouper 1 length.
98
- */
99
- calculate_container_length(): number
100
- {
101
- return this.merged_containers.get_container_by_grouper_index(1).length
102
- }
103
-
104
- /**
105
- * @param center_of_mass_by_grouper - CM per grouper.
106
- * @returns Chassis forces.
107
- */
108
- calculate_chassi_forces_with_load_center_of_mass(
109
- center_of_mass_by_grouper: Record<number, CenterOfMass>
110
- ): ChassiForces
111
- {
112
- return this.delegate.calculate_chassi_forces_with_load_center_of_mass(
113
- center_of_mass_by_grouper)
114
- }
115
- }
@@ -1,56 +0,0 @@
1
- import { CenterOfMass } from '../items/center_of_mass.js'
2
- import { AxleWeightModel } from './axle_weight_model.js'
3
- import type { Transport } from '../transports/transport.js'
4
-
5
- /**
6
- * Physics-based tare from uniform load at volume centroid.
7
- */
8
- export class SingleContainerTare
9
- {
10
- /**
11
- * @param transport - Parsed transport.
12
- */
13
- constructor(private readonly transport: Transport)
14
- {}
15
-
16
- /**
17
- * @returns Calculated tare per axle.
18
- */
19
- calculate(): number[]
20
- {
21
- const forces = this.calculate_forces_on_axles(
22
- this.calculate_z_centroid(),
23
- this.transport.supported_weight)
24
- return this.transport.axle_manager.list_axles_indexes().map((index) =>
25
- {
26
- const axle = this.transport.axle_manager.get_axle(index)
27
- return axle.max_supported_weight - forces.get_force_on_axle(index)
28
- })
29
- }
30
-
31
- private calculate_z_centroid(): number
32
- {
33
- let z_offset = 0
34
- let sum_z = 0
35
- let total_volume = 0
36
- for (const sequence of this.transport.list_containers_sequence_indexes())
37
- {
38
- const container = this.transport.get_container_by_sequence_index(sequence)
39
- const z_centroid = z_offset + container.length / 2
40
- z_offset += container.length
41
- const volume = container.volume()
42
- sum_z += z_centroid * volume
43
- total_volume += volume
44
- }
45
- return sum_z / total_volume
46
- }
47
-
48
- private calculate_forces_on_axles(z_position: number, mass: number)
49
- {
50
- const model = new AxleWeightModel(this.transport)
51
- const center_of_mass = new CenterOfMass()
52
- center_of_mass.z = z_position
53
- center_of_mass.mass = mass
54
- return model.calculate_chassi_forces_with_load_center_of_mass({ 1: center_of_mass })
55
- }
56
- }
@@ -1,46 +0,0 @@
1
- import { VEHICLE_TYPE } from '../../contracts/vehicle_type.js'
2
- import type { Transport } from '../transports/transport.js'
3
- import { OldTareModel } from './old_tare_model.js'
4
- import { SingleContainerTare } from './single_container_tare.js'
5
-
6
- const DISTANCE_TOLERANCE = 0.9
7
-
8
- /**
9
- * Selects legacy or physics tare model per axle.
10
- */
11
- export class TareModel
12
- {
13
- /**
14
- * @param transport - Parsed transport.
15
- * @returns Tare per axle.
16
- */
17
- calculate(transport: Transport): number[]
18
- {
19
- if (transport.vehicle_type === VEHICLE_TYPE.BITREM
20
- || transport.vehicle_type === VEHICLE_TYPE.RODOTREM)
21
- {
22
- return new OldTareModel().calculate(transport)
23
- }
24
- const reference = new OldTareModel().calculate(transport)
25
- const physics = new SingleContainerTare(transport).calculate()
26
- return choose_tare_model(reference, physics)
27
- }
28
- }
29
-
30
- /**
31
- * @param reference_values - Legacy tare per axle.
32
- * @param new_values - Physics tare per axle.
33
- * @returns Selected tare list.
34
- */
35
- function choose_tare_model(reference_values: number[], new_values: number[]): number[]
36
- {
37
- for (let index = 0; index < reference_values.length; index++)
38
- {
39
- const ref = reference_values[index]
40
- if (Math.abs(new_values[index] - ref) > ref * DISTANCE_TOLERANCE)
41
- {
42
- return reference_values
43
- }
44
- }
45
- return new_values
46
- }