@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,125 +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 { SUSPENSION_TYPE } from '../../contracts/suspension_type.js'
7
- import { CenterOfMass } from '../items/center_of_mass.js'
8
- import { ChassiForces } from './chassi_forces.js'
9
- import { solve_linear_system } from '../../math/gaussian_elimination.js'
10
-
11
- /**
12
- * Vanderleia five-axle static model with suspension-dependent coupling.
13
- */
14
- export class VanderleiaModel
15
- {
16
- readonly chassi: Chassi
17
- private readonly matrix: number[][]
18
-
19
- /**
20
- * @param transport - Parsed transport.
21
- */
22
- constructor(private readonly transport: Transport)
23
- {
24
- this.chassi = new Chassi(transport)
25
- this.matrix = generate_vanderleia_matrix(this.chassi, transport)
26
- }
27
-
28
- /**
29
- * @param multi_items - Allocated items.
30
- * @returns Loaded weights per axle.
31
- */
32
- calculate_weight_on_axles(multi_items: MultiContainerAllocatedItems): number[]
33
- {
34
- const forces = this.calculate_chassi_forces(multi_items)
35
- return forces.list_axles_indexes().map((index) => forces.get_force_on_axle(index))
36
- }
37
-
38
- /**
39
- * @param multi_items - Allocated items.
40
- * @returns Chassis forces.
41
- */
42
- calculate_chassi_forces(multi_items: MultiContainerAllocatedItems): ChassiForces
43
- {
44
- return calculate_chassi_forces_from_multi(
45
- this.transport,
46
- multi_items,
47
- (center_of_mass_by_grouper) =>
48
- this.calculate_chassi_forces_with_load_center_of_mass(center_of_mass_by_grouper))
49
- }
50
-
51
- /**
52
- * @param center_of_mass_by_grouper - CM for grouper 1.
53
- * @returns Chassis forces on five axles.
54
- */
55
- calculate_chassi_forces_with_load_center_of_mass(
56
- center_of_mass_by_grouper: Record<number, CenterOfMass>
57
- ): ChassiForces
58
- {
59
- const solution = solve_vanderleia_system(this.matrix, center_of_mass_by_grouper[1])
60
- const forces = new ChassiForces()
61
- forces.add_pin_forces([solution[3]])
62
- forces.add_axle_forces([
63
- solution[5],
64
- solution[4],
65
- solution[2],
66
- solution[1],
67
- solution[0]
68
- ])
69
- return forces
70
- }
71
- }
72
-
73
- /**
74
- * @param chassi - Chassis geometry.
75
- * @param transport - Parsed transport (suspension type).
76
- * @returns 6×6 matrix.
77
- */
78
- function generate_vanderleia_matrix(chassi: Chassi, transport: Transport): number[][]
79
- {
80
- const tractor_pin = chassi.get_pin_position(0, CHASSI_REFERENCE.TRACTOR)
81
- const tractor_axle_1 = chassi.get_axle_position(0, CHASSI_REFERENCE.TRACTOR)
82
- const tractor_axle_2 = chassi.get_axle_position(1, CHASSI_REFERENCE.TRACTOR)
83
- const pin_1 = chassi.get_pin_position(0, CHASSI_REFERENCE.GROUPER_1)
84
- const axle_3 = chassi.get_axle_position(2, CHASSI_REFERENCE.GROUPER_1)
85
- const axle_4 = chassi.get_axle_position(3, CHASSI_REFERENCE.GROUPER_1)
86
- const axle_5 = chassi.get_axle_position(4, CHASSI_REFERENCE.GROUPER_1)
87
- const relation = reactions_relation(transport)
88
- return [
89
- [1, 0, -relation[0], 0, 0, 0],
90
- [0, 1, -relation[1], 0, 0, 0],
91
- [1, 1, 1, 1, 0, 0],
92
- [axle_5, axle_4, axle_3, pin_1, 0, 0],
93
- [0, 0, 0, -1, 1, 1],
94
- [0, 0, 0, -tractor_pin, tractor_axle_2, tractor_axle_1]
95
- ]
96
- }
97
-
98
- /**
99
- * @param transport - Parsed transport.
100
- * @returns Reaction coupling factors.
101
- */
102
- function reactions_relation(transport: Transport): [number, number]
103
- {
104
- const raw = transport.suspension_type
105
- if (raw === SUSPENSION_TYPE.PNEUMATICA || raw === 'Pneumatica')
106
- {
107
- return [1, 1]
108
- }
109
- if (raw === SUSPENSION_TYPE.MECANICA || raw === 'Mecanica')
110
- {
111
- return [0.867469880, 0.542168675]
112
- }
113
- throw new Error(`Unrecognized suspension type: ${String(raw)}`)
114
- }
115
-
116
- /**
117
- * @param matrix - System matrix.
118
- * @param center_of_mass - Load CM.
119
- * @returns Solution vector.
120
- */
121
- function solve_vanderleia_system(matrix: number[][], center_of_mass: CenterOfMass): number[]
122
- {
123
- const independent = [0, 0, center_of_mass.mass, center_of_mass.mass * center_of_mass.z, 0, 0]
124
- return solve_linear_system(matrix, independent)
125
- }
@@ -1,63 +0,0 @@
1
- import { VEHICLE_TYPE } from '../../contracts/vehicle_type.js'
2
- import { CHASSI_REFERENCE } from '../../contracts/chassi_reference.js'
3
- import type { Transport } from '../transports/transport.js'
4
- import type { Chassi } from '../transports/chassi.js'
5
-
6
- /**
7
- * @param transport - Parsed transport.
8
- * @param grouper - Grouper index.
9
- * @returns Axle indexes for grouper output.
10
- */
11
- export function select_axles_for_grouper(transport: Transport, grouper: number): number[]
12
- {
13
- const type = transport.vehicle_type
14
- if (type === VEHICLE_TYPE.RODOTREM || type === VEHICLE_TYPE.BITREM)
15
- {
16
- return grouper === 1 ? [0, 1, 2] : [3, 4]
17
- }
18
- return transport.axle_manager.list_axles_indexes()
19
- }
20
-
21
- /**
22
- * @param axles_indexes - Axle indexes in output row.
23
- * @returns Chassi reference for distance helper.
24
- */
25
- export function find_grouper_reference(
26
- axles_indexes: number[]
27
- ): typeof CHASSI_REFERENCE.GROUPER_1 | typeof CHASSI_REFERENCE.GROUPER_2
28
- {
29
- return axles_indexes.includes(0) ? CHASSI_REFERENCE.GROUPER_1 : CHASSI_REFERENCE.GROUPER_2
30
- }
31
-
32
- type AxleWeightOutputInput = {
33
- transport: Transport
34
- chassi: Chassi
35
- axles_indexes: number[]
36
- weight_on_axles: number[]
37
- }
38
-
39
- /**
40
- * @param input - Transport, chassi, axles, and cargo loads.
41
- * @returns pesoEixos wire rows.
42
- */
43
- export function build_axle_weights_output(input: AxleWeightOutputInput): Record<string, unknown>[]
44
- {
45
- return input.axles_indexes.map((axle_index) =>
46
- {
47
- const axle = input.transport.axle_manager.get_axle(axle_index)
48
- const cargo = input.weight_on_axles[axle_index]
49
- return {
50
- distanciaOrigem: axle.distance_from_previous_axle,
51
- pesoMaxFinal: axle.max_supported_weight,
52
- tara: axle.tare,
53
- pesoMax: axle.max_supported_weight - axle.tare,
54
- pesoCarregado: cargo,
55
- pesoCarregadoFinal: axle.tare + cargo,
56
- distanciaOrigemSemPrimeiroEixo: axle_index === 0
57
- ? 0
58
- : input.chassi.get_axle_position(
59
- axle_index,
60
- find_grouper_reference(input.axles_indexes))
61
- }
62
- })
63
- }
@@ -1,116 +0,0 @@
1
- import { MsFaixasContract } from '../../contracts/ms_faixas_contract.js'
2
- import { Transport } from '../transports/transport.js'
3
- import { Chassi } from '../transports/chassi.js'
4
- import { MergedContainers } from '../transports/merged_containers.js'
5
- import { AxleWeightModel } from '../models/axle_weight_model.js'
6
- import {
7
- build_axle_weights_output,
8
- select_axles_for_grouper
9
- } from './axle_weight_output_builder.js'
10
-
11
- const TRANSPORT_LIST_FLAG = 'envs'
12
- const TRANSPORT_ID_FLAG = 'idCaminhao'
13
- const CONTAINERS_FLAG = 'conteiners'
14
- const SEQUENCE_FLAG = 'sequencia'
15
- const FAIXAS_FLAG = 'faixas'
16
- const TARE_FLAG = 'tara'
17
- const ITEMS_FLAG = 'items'
18
- const MAX_SUPPORTED_FLAG = 'pesoSuportado'
19
- const CENTER_OF_GRAVITY_FLAG = 'centroGravidade'
20
- const AXLE_WEIGHTS_FLAG = 'pesoEixos'
21
-
22
- /**
23
- * Full ms-faixas axle weight pipeline (Python AxleWeightService port).
24
- */
25
- export class AxleWeightService
26
- {
27
- private readonly transport: Transport
28
- private readonly chassi: Chassi
29
- private readonly allocated_by_sequence: Record<number, import('../items/allocated_item_manager.js').AllocatedItemManager>
30
-
31
- /**
32
- * @param input_data - Ms-faixas payload with envs.
33
- */
34
- constructor(input_data: Record<string, unknown>)
35
- {
36
- const contract = new MsFaixasContract(input_data)
37
- this.transport = new Transport(contract.transport_data)
38
- this.chassi = new Chassi(this.transport)
39
- this.allocated_by_sequence = contract.allocated_items_by_sequence_id
40
- }
41
-
42
- /**
43
- * @returns Math output with envs and pesoEixos per container.
44
- */
45
- run(): Record<string, unknown>
46
- {
47
- return {
48
- [TRANSPORT_LIST_FLAG]: [{
49
- [TRANSPORT_ID_FLAG]: this.transport.id,
50
- [CONTAINERS_FLAG]: this.build_containers_data()
51
- }]
52
- }
53
- }
54
-
55
- private build_containers_data(): Record<string, unknown>[]
56
- {
57
- const weights_by_sequence = this.evaluate_weight_on_axles()
58
- const center_of_gravity: Record<number, number> = {}
59
- for (const sequence of this.transport.list_containers_sequence_indexes())
60
- {
61
- center_of_gravity[sequence] = 0
62
- }
63
- return this.transport.list_containers_sequence_indexes().map((sequence) =>
64
- {
65
- const container = this.transport.get_container_by_sequence_index(sequence)
66
- return {
67
- [SEQUENCE_FLAG]: container.sequence_index,
68
- [FAIXAS_FLAG]: [],
69
- [TARE_FLAG]: 0,
70
- [ITEMS_FLAG]: [],
71
- [MAX_SUPPORTED_FLAG]: container.max_supported_weight,
72
- [CENTER_OF_GRAVITY_FLAG]: center_of_gravity[sequence],
73
- [AXLE_WEIGHTS_FLAG]: weights_by_sequence[sequence] ?? []
74
- }
75
- })
76
- }
77
-
78
- private evaluate_weight_on_axles(): Record<number, Record<string, unknown>[]>
79
- {
80
- const model = new AxleWeightModel(this.transport)
81
- const weight_on_axles = model.calculate_weight_on_axles(this.allocated_by_sequence)
82
- const merged = new MergedContainers(this.transport)
83
- const result: Record<number, Record<string, unknown>[]> = {}
84
- for (const grouper of merged.list_grouper_indexes())
85
- {
86
- this.assign_grouper_axle_outputs({
87
- grouper,
88
- grouped: merged.get_container_by_grouper_index(grouper),
89
- weight_on_axles,
90
- result
91
- })
92
- }
93
- return result
94
- }
95
-
96
- private assign_grouper_axle_outputs(input: {
97
- grouper: number
98
- grouped: import('../transports/grouped_containers.js').GroupedContainers
99
- weight_on_axles: number[]
100
- result: Record<number, Record<string, unknown>[]>
101
- }): void
102
- {
103
- const sequences = input.grouped.list_containers_sequence_indexes()
104
- const axles = select_axles_for_grouper(this.transport, input.grouper)
105
- input.result[sequences[0]] = build_axle_weights_output({
106
- transport: this.transport,
107
- chassi: this.chassi,
108
- axles_indexes: axles,
109
- weight_on_axles: input.weight_on_axles
110
- })
111
- for (let index = 1; index < sequences.length; index++)
112
- {
113
- input.result[sequences[index]] = []
114
- }
115
- }
116
- }
@@ -1,45 +0,0 @@
1
- import { WIRE_FLAGS } from '../../contracts/wire_flags.js'
2
- import type { TransportRecord } from '../../contracts/transport_record.js'
3
- import { CenterOfMass } from '../items/center_of_mass.js'
4
- import { AxleWeightModel } from '../models/axle_weight_model.js'
5
-
6
- /**
7
- * Center-of-mass-driven axle weight service (port of CMAxleWeightService).
8
- */
9
- export class CmAxleWeightService
10
- {
11
- /**
12
- * @param cm_axle_weight_data - Transport dict with center_of_mass map.
13
- * @returns Loaded cargo weight per axle.
14
- */
15
- calculate(cm_axle_weight_data: TransportRecord): number[]
16
- {
17
- const model = new AxleWeightModel(cm_axle_weight_data)
18
- const center_of_mass_by_grouper = read_center_of_mass_map(
19
- cm_axle_weight_data[WIRE_FLAGS.CM_SERVICE_CENTER_OF_MASS] as Record<string, unknown>)
20
- const chassi_forces = model.calculate_chassi_forces_with_load_center_of_mass(
21
- center_of_mass_by_grouper)
22
- return chassi_forces.list_axles_indexes().map(
23
- (index) => chassi_forces.get_force_on_axle(index))
24
- }
25
- }
26
-
27
- /**
28
- * @param cm_data - Wire center_of_mass map.
29
- * @returns Grouper id to CenterOfMass.
30
- */
31
- function read_center_of_mass_map(
32
- cm_data: Record<string, unknown>
33
- ): Record<number, CenterOfMass>
34
- {
35
- const result: Record<number, CenterOfMass> = {}
36
- for (const grouper_key of Object.keys(cm_data))
37
- {
38
- const entry = cm_data[grouper_key] as Record<string, unknown>
39
- const center_of_mass = new CenterOfMass()
40
- center_of_mass.mass = Number(entry[WIRE_FLAGS.CM_SERVICE_MASS])
41
- center_of_mass.z = Number(entry[WIRE_FLAGS.CM_SERVICE_Z])
42
- result[Number(grouper_key)] = center_of_mass
43
- }
44
- return result
45
- }
@@ -1,95 +0,0 @@
1
- /**
2
- * Container corner force distribution (ISSUE-349).
3
- */
4
- export class ContainerCornerForces
5
- {
6
- private readonly x_box_center: number[] = []
7
- private readonly z_box_center: number[] = []
8
- private readonly y_box_center: number[] = []
9
- private readonly weight_box: number[] = []
10
- private total_mass = 0
11
- private x_cm = 0
12
- private y_cm = 0
13
- private z_cm = 0
14
- private force_on_door: number | null = null
15
- private force_on_right_corner_door = 0
16
- private force_on_left_corner_door = 0
17
- private force_on_end_wall = 0
18
- private force_on_right_corner_end_wall = 0
19
- private force_on_left_corner_end_wall = 0
20
-
21
- /**
22
- * @param input_data - Items and container dimensions.
23
- */
24
- constructor(private readonly input_data: Record<string, unknown>)
25
- {
26
- const items = input_data.items as Record<string, unknown>[]
27
- for (const item of items)
28
- {
29
- this.x_box_center.push(Number(item.x) + 0.5 * Number(item.width))
30
- this.z_box_center.push(Number(item.z) + 0.5 * Number(item.length))
31
- this.y_box_center.push(Number(item.y) + 0.5 * Number(item.height))
32
- this.weight_box.push(Number(item.weight))
33
- }
34
- this.total_mass = this.weight_box.reduce((sum, weight) => sum + weight, 0)
35
- }
36
-
37
- /** Computes center of gravity from item boxes. */
38
- calculate_cm(): void
39
- {
40
- this.x_cm = dot(this.x_box_center, this.weight_box) / this.total_mass
41
- this.z_cm = dot(this.z_box_center, this.weight_box) / this.total_mass
42
- this.y_cm = dot(this.y_box_center, this.weight_box) / this.total_mass
43
- }
44
-
45
- /** Computes corner reaction forces including container tare split. */
46
- calculate_corner_forces(): void
47
- {
48
- const container = this.input_data.container as Record<string, unknown>
49
- const container_length = Number(container.length)
50
- const container_width = Number(container.width)
51
- this.force_on_door = (this.z_cm * this.total_mass) / container_length
52
- this.force_on_right_corner_door = (this.x_cm * this.force_on_door) / container_width
53
- this.force_on_left_corner_door = this.force_on_door - this.force_on_right_corner_door
54
- this.force_on_end_wall = this.total_mass - this.force_on_door
55
- this.force_on_right_corner_end_wall = (this.x_cm * this.force_on_end_wall) / container_width
56
- this.force_on_left_corner_end_wall = this.force_on_end_wall - this.force_on_right_corner_end_wall
57
- const tare_quarter = 0.25 * Number(container.tare)
58
- this.force_on_right_corner_door += tare_quarter
59
- this.force_on_left_corner_door += tare_quarter
60
- this.force_on_right_corner_end_wall += tare_quarter
61
- this.force_on_left_corner_end_wall += tare_quarter
62
- }
63
-
64
- /**
65
- * @returns Response JSON.
66
- */
67
- json(): Record<string, unknown>
68
- {
69
- const response: Record<string, unknown> = {
70
- centerOfGravity: { x: this.x_cm, y: this.y_cm, z: this.z_cm }
71
- }
72
- if (this.force_on_door !== null)
73
- {
74
- response.corner_forces = {
75
- force_on_door: this.force_on_door,
76
- force_on_right_corner_door: this.force_on_right_corner_door,
77
- force_on_left_corner_door: this.force_on_left_corner_door,
78
- force_on_end_wall: this.force_on_end_wall,
79
- force_on_right_corner_end_wall: this.force_on_right_corner_end_wall,
80
- force_on_left_corner_end_wall: this.force_on_left_corner_end_wall
81
- }
82
- }
83
- return response
84
- }
85
- }
86
-
87
- /**
88
- * @param values - Value list.
89
- * @param weights - Weight list.
90
- * @returns Weighted sum.
91
- */
92
- function dot(values: number[], weights: number[]): number
93
- {
94
- return values.reduce((sum, value, index) => sum + value * weights[index], 0)
95
- }
@@ -1,45 +0,0 @@
1
- import { WIRE_FLAGS } from '../../contracts/wire_flags.js'
2
- import { AxleRecord } from './axle_record.js'
3
- import type { TransportRecord } from '../../contracts/transport_record.js'
4
-
5
- /**
6
- * Ordered axle list for a transport.
7
- */
8
- export class AxleManager
9
- {
10
- axles: AxleRecord[]
11
-
12
- /**
13
- * @param transport_data - Raw transport JSON.
14
- */
15
- constructor(transport_data: TransportRecord)
16
- {
17
- const axles_data = transport_data[WIRE_FLAGS.AXLE_LIST]
18
- this.axles = []
19
- if (!Array.isArray(axles_data))
20
- {
21
- return
22
- }
23
- for (const axle_data of axles_data)
24
- {
25
- this.axles.push(new AxleRecord(axle_data as Record<string, unknown>))
26
- }
27
- }
28
-
29
- /**
30
- * @returns Axle index list [0..n-1].
31
- */
32
- list_axles_indexes(): number[]
33
- {
34
- return this.axles.map((_axle, index) => index)
35
- }
36
-
37
- /**
38
- * @param axle_index - Zero-based axle index.
39
- * @returns Axle at index.
40
- */
41
- get_axle(axle_index: number): AxleRecord
42
- {
43
- return this.axles[axle_index]
44
- }
45
- }
@@ -1,68 +0,0 @@
1
- import { WIRE_FLAGS } from '../../contracts/wire_flags.js'
2
-
3
- /**
4
- * Single axle geometry and capacity from wire JSON.
5
- */
6
- export class AxleRecord
7
- {
8
- distance_from_previous_axle: number
9
- max_supported_weight: number
10
- sequence_index: number
11
- dnit_weight_limit: number
12
- tare: number
13
- loaded_weight: number
14
- is_connected_to: number | null
15
-
16
- /**
17
- * @param axle_data - Raw axle object from transport JSON.
18
- */
19
- constructor(axle_data: Record<string, unknown>)
20
- {
21
- this.distance_from_previous_axle = read_number(axle_data, WIRE_FLAGS.DISTANCE_FROM_ORIGIN)
22
- this.max_supported_weight = read_number(axle_data, WIRE_FLAGS.MAX_SUPPORTED_WEIGHT)
23
- this.sequence_index = read_number(axle_data, WIRE_FLAGS.SEQUENCE_CONTAINER)
24
- this.dnit_weight_limit = read_number(axle_data, WIRE_FLAGS.DNIT_WEIGHT)
25
- this.tare = read_number(axle_data, WIRE_FLAGS.TARE)
26
- this.loaded_weight = read_optional_number(axle_data, 'pesoCarregado') ?? 0
27
- this.is_connected_to = read_optional_number(axle_data, 'mergeOnAxleIndex')
28
- }
29
-
30
- /**
31
- * @returns Shallow copy of axle wire fields.
32
- */
33
- to_wire(): Record<string, unknown>
34
- {
35
- return {
36
- distanciaOrigem: this.distance_from_previous_axle,
37
- pesoMaxSuportado: this.max_supported_weight,
38
- pesoDnit: this.dnit_weight_limit,
39
- tara: this.tare,
40
- sequenciaContainer: this.sequence_index,
41
- mergeOnAxleIndex: this.is_connected_to
42
- }
43
- }
44
- }
45
-
46
- /**
47
- * @param data - Source object.
48
- * @param key - Field key.
49
- * @returns Parsed number.
50
- */
51
- function read_number(data: Record<string, unknown>, key: string): number
52
- {
53
- return Number(data[key])
54
- }
55
-
56
- /**
57
- * @param data - Source object.
58
- * @param key - Field key.
59
- * @returns Parsed number or null.
60
- */
61
- function read_optional_number(data: Record<string, unknown>, key: string): number | null
62
- {
63
- if (data[key] === undefined || data[key] === null)
64
- {
65
- return null
66
- }
67
- return Number(data[key])
68
- }
@@ -1,130 +0,0 @@
1
- import { CHASSI_REFERENCE, type ChassiReference } from '../../contracts/chassi_reference.js'
2
- import type { Transport } from './transport.js'
3
- import { MergedContainers } from './merged_containers.js'
4
-
5
- /**
6
- * Chassis geometry reference frame for equilibrium models.
7
- */
8
- export class Chassi
9
- {
10
- private first_axle_distance: number
11
- private axle_positions: number[] = []
12
- private pin_positions: number[] = []
13
- private grouper_start: number[] = []
14
- private grouper_end: number[] = []
15
-
16
- /**
17
- * @param transport - Parsed transport.
18
- */
19
- constructor(transport: Transport)
20
- {
21
- this.first_axle_distance = transport.first_axle_distance
22
- const merged = new MergedContainers(transport)
23
- this.calculate_groupers_positions(merged)
24
- this.calculate_axles_positions(transport)
25
- this.calculate_pins_positions(merged)
26
- }
27
-
28
- /**
29
- * @param axle_index - Zero-based axle index.
30
- * @param chassi_reference - Reference frame.
31
- * @returns Axle position.
32
- */
33
- get_axle_position(axle_index: number, chassi_reference: ChassiReference): number
34
- {
35
- return this.axle_positions[axle_index]
36
- + this.chassi_reference_change_value(chassi_reference)
37
- }
38
-
39
- /**
40
- * @param pin_index - Zero-based pin index.
41
- * @param chassi_reference - Reference frame.
42
- * @returns Pin position.
43
- */
44
- get_pin_position(pin_index: number, chassi_reference: ChassiReference): number
45
- {
46
- return this.pin_positions[pin_index]
47
- + this.chassi_reference_change_value(chassi_reference)
48
- }
49
-
50
- /**
51
- * @param grouper_index - Grouper id (1-based).
52
- * @param chassi_reference - Reference frame.
53
- * @returns Grouper end position.
54
- */
55
- get_grouper_end(grouper_index: number, chassi_reference: ChassiReference): number
56
- {
57
- return this.grouper_end[grouper_index - 1]
58
- + this.chassi_reference_change_value(chassi_reference)
59
- }
60
-
61
- /**
62
- * @param chassi_reference - Reference frame.
63
- * @returns Offset for reference change.
64
- */
65
- private chassi_reference_change_value(chassi_reference: ChassiReference): number
66
- {
67
- if (chassi_reference === CHASSI_REFERENCE.GROUPER_1)
68
- {
69
- return 0
70
- }
71
- if (chassi_reference === CHASSI_REFERENCE.GROUPER_2)
72
- {
73
- return -this.grouper_start[1]
74
- }
75
- return this.first_axle_distance
76
- }
77
-
78
- /**
79
- * @param transport - Parsed transport.
80
- */
81
- private calculate_axles_positions(transport: Transport): void
82
- {
83
- this.axle_positions = [-this.first_axle_distance]
84
- const indexes = transport.axle_manager.list_axles_indexes()
85
- for (let index = 1; index < indexes.length; index++)
86
- {
87
- const axle = transport.axle_manager.get_axle(index)
88
- const previous = this.axle_positions[index - 1]
89
- this.axle_positions.push(previous + axle.distance_from_previous_axle)
90
- }
91
- }
92
-
93
- /**
94
- * @param merged_containers - Merged grouper geometry.
95
- */
96
- private calculate_groupers_positions(merged_containers: MergedContainers): void
97
- {
98
- const first = merged_containers.get_container_by_grouper_index(1)
99
- this.grouper_start = [0]
100
- this.grouper_end = [first.length]
101
- if (merged_containers.list_grouper_indexes().length <= 1)
102
- {
103
- return
104
- }
105
- const second = merged_containers.get_container_by_grouper_index(2)
106
- const second_start = this.grouper_end[0] + (second.container_distance_ahead ?? 0)
107
- this.grouper_start.push(second_start)
108
- this.grouper_end.push(second_start + second.length)
109
- }
110
-
111
- /**
112
- * @param merged_containers - Merged grouper geometry.
113
- */
114
- private calculate_pins_positions(merged_containers: MergedContainers): void
115
- {
116
- const first = merged_containers.get_container_by_grouper_index(1)
117
- this.pin_positions = [first.main_pin_distance ?? 0]
118
- if (merged_containers.list_grouper_indexes().length <= 1)
119
- {
120
- return
121
- }
122
- const second = merged_containers.get_container_by_grouper_index(2)
123
- if (second.main_pin_distance === null)
124
- {
125
- return
126
- }
127
- const second_pin = this.grouper_start[1] + second.main_pin_distance
128
- this.pin_positions.push(second_pin)
129
- }
130
- }