@jetta/axle-load-calculator 0.3.4 → 0.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -1
- package/build-cjs/core/contracts/ChassiReference.d.ts +7 -0
- package/build-cjs/core/contracts/ChassiReference.d.ts.map +1 -0
- package/build-cjs/core/contracts/ChassiReference.js +8 -0
- package/build-cjs/core/contracts/MsFaixasContract.d.ts +13 -0
- package/build-cjs/core/contracts/MsFaixasContract.d.ts.map +1 -0
- package/build-cjs/core/contracts/MsFaixasContract.js +93 -0
- package/build-cjs/core/contracts/RotationEnum.d.ts +11 -0
- package/build-cjs/core/contracts/RotationEnum.d.ts.map +1 -0
- package/build-cjs/core/contracts/RotationEnum.js +12 -0
- package/build-cjs/core/contracts/SuspensionType.d.ts +5 -0
- package/build-cjs/core/contracts/SuspensionType.d.ts.map +1 -0
- package/build-cjs/core/contracts/SuspensionType.js +7 -0
- package/build-cjs/core/contracts/TransportRecord.d.ts +5 -0
- package/build-cjs/core/contracts/TransportRecord.d.ts.map +1 -0
- package/build-cjs/core/contracts/TransportRecord.js +2 -0
- package/build-cjs/core/contracts/VehicleType.d.ts +12 -0
- package/build-cjs/core/contracts/VehicleType.d.ts.map +1 -0
- package/build-cjs/core/contracts/VehicleType.js +13 -0
- package/build-cjs/core/contracts/VehicleVersion.d.ts +8 -0
- package/build-cjs/core/contracts/VehicleVersion.d.ts.map +1 -0
- package/build-cjs/core/contracts/VehicleVersion.js +10 -0
- package/build-cjs/core/contracts/WireFlags.d.ts +27 -0
- package/build-cjs/core/contracts/WireFlags.d.ts.map +1 -0
- package/build-cjs/core/contracts/WireFlags.js +29 -0
- package/build-cjs/core/math/FloatTools.d.ts +7 -0
- package/build-cjs/core/math/FloatTools.d.ts.map +1 -0
- package/build-cjs/core/math/FloatTools.js +17 -0
- package/build-cjs/core/math/GaussianElimination.d.ts +8 -0
- package/build-cjs/core/math/GaussianElimination.d.ts.map +1 -0
- package/build-cjs/core/math/GaussianElimination.js +88 -0
- package/build-cjs/core/orchestration/AxleWeightPhysics.d.ts +7 -0
- package/build-cjs/core/orchestration/AxleWeightPhysics.d.ts.map +1 -0
- package/build-cjs/core/orchestration/AxleWeightPhysics.js +30 -0
- package/build-cjs/core/orchestration/CollisionChecker.d.ts +8 -0
- package/build-cjs/core/orchestration/CollisionChecker.d.ts.map +1 -0
- package/build-cjs/core/orchestration/CollisionChecker.js +63 -0
- package/build-cjs/core/orchestration/ConnectorPayloadBuilder.d.ts +11 -0
- package/build-cjs/core/orchestration/ConnectorPayloadBuilder.d.ts.map +1 -0
- package/build-cjs/core/orchestration/ConnectorPayloadBuilder.js +84 -0
- package/build-cjs/core/orchestration/ItemOverlapError.d.ts +7 -0
- package/build-cjs/core/orchestration/ItemOverlapError.d.ts.map +1 -0
- package/build-cjs/core/orchestration/ItemOverlapError.js +13 -0
- package/build-cjs/core/orchestration/JavaMassCenter.d.ts +10 -0
- package/build-cjs/core/orchestration/JavaMassCenter.d.ts.map +1 -0
- package/build-cjs/core/orchestration/JavaMassCenter.js +135 -0
- package/build-cjs/core/orchestration/OutputBuilder.d.ts +7 -0
- package/build-cjs/core/orchestration/OutputBuilder.d.ts.map +1 -0
- package/build-cjs/core/orchestration/OutputBuilder.js +10 -0
- package/build-cjs/core/orchestration/RequestSchema.d.ts +57 -0
- package/build-cjs/core/orchestration/RequestSchema.d.ts.map +1 -0
- package/build-cjs/core/orchestration/RequestSchema.js +21 -0
- package/build-cjs/core/orchestration/WeightByAxisResponse.d.ts +11 -0
- package/build-cjs/core/orchestration/WeightByAxisResponse.d.ts.map +1 -0
- package/build-cjs/core/orchestration/WeightByAxisResponse.js +2 -0
- package/build-cjs/core/orchestration/WeightByAxisTask.d.ts +18 -0
- package/build-cjs/core/orchestration/WeightByAxisTask.d.ts.map +1 -0
- package/build-cjs/core/orchestration/WeightByAxisTask.js +110 -0
- package/build-cjs/core/physics/items/AllocatedItem.d.ts +22 -0
- package/build-cjs/core/physics/items/AllocatedItem.d.ts.map +1 -0
- package/build-cjs/core/physics/items/AllocatedItem.js +33 -0
- package/build-cjs/core/physics/items/AllocatedItemManager.d.ts +31 -0
- package/build-cjs/core/physics/items/AllocatedItemManager.d.ts.map +1 -0
- package/build-cjs/core/physics/items/AllocatedItemManager.js +42 -0
- package/build-cjs/core/physics/items/BindChassiSolver.d.ts +12 -0
- package/build-cjs/core/physics/items/BindChassiSolver.d.ts.map +1 -0
- package/build-cjs/core/physics/items/BindChassiSolver.js +13 -0
- package/build-cjs/core/physics/items/CenterOfMass.d.ts +14 -0
- package/build-cjs/core/physics/items/CenterOfMass.d.ts.map +1 -0
- package/build-cjs/core/physics/items/CenterOfMass.js +28 -0
- package/build-cjs/core/physics/items/ComputeGrouperCenterOfMass.d.ts +19 -0
- package/build-cjs/core/physics/items/ComputeGrouperCenterOfMass.d.ts.map +1 -0
- package/build-cjs/core/physics/items/ComputeGrouperCenterOfMass.js +32 -0
- package/build-cjs/core/physics/items/ItemTemplates.d.ts +32 -0
- package/build-cjs/core/physics/items/ItemTemplates.d.ts.map +1 -0
- package/build-cjs/core/physics/items/ItemTemplates.js +58 -0
- package/build-cjs/core/physics/items/MultiContainerAllocatedItems.d.ts +37 -0
- package/build-cjs/core/physics/items/MultiContainerAllocatedItems.d.ts.map +1 -0
- package/build-cjs/core/physics/items/MultiContainerAllocatedItems.js +95 -0
- package/build-cjs/core/physics/items/RotationTransforms.d.ts +8 -0
- package/build-cjs/core/physics/items/RotationTransforms.d.ts.map +1 -0
- package/build-cjs/core/physics/items/RotationTransforms.js +24 -0
- package/build-cjs/core/physics/items/UnknownItemIdError.d.ts +10 -0
- package/build-cjs/core/physics/items/UnknownItemIdError.d.ts.map +1 -0
- package/build-cjs/core/physics/items/UnknownItemIdError.js +16 -0
- package/build-cjs/core/physics/models/AxleWeightModel.d.ts +32 -0
- package/build-cjs/core/physics/models/AxleWeightModel.d.ts.map +1 -0
- package/build-cjs/core/physics/models/AxleWeightModel.js +77 -0
- package/build-cjs/core/physics/models/BiTruckModel.d.ts +21 -0
- package/build-cjs/core/physics/models/BiTruckModel.d.ts.map +1 -0
- package/build-cjs/core/physics/models/BiTruckModel.js +64 -0
- package/build-cjs/core/physics/models/BiTruckTractorSemiTrailerModel.d.ts +21 -0
- package/build-cjs/core/physics/models/BiTruckTractorSemiTrailerModel.d.ts.map +1 -0
- package/build-cjs/core/physics/models/BiTruckTractorSemiTrailerModel.js +73 -0
- package/build-cjs/core/physics/models/BitremModel.d.ts +33 -0
- package/build-cjs/core/physics/models/BitremModel.d.ts.map +1 -0
- package/build-cjs/core/physics/models/BitremModel.js +128 -0
- package/build-cjs/core/physics/models/ChassiForces.d.ts +30 -0
- package/build-cjs/core/physics/models/ChassiForces.d.ts.map +1 -0
- package/build-cjs/core/physics/models/ChassiForces.js +43 -0
- package/build-cjs/core/physics/models/OldTareModel.d.ts +17 -0
- package/build-cjs/core/physics/models/OldTareModel.d.ts.map +1 -0
- package/build-cjs/core/physics/models/OldTareModel.js +45 -0
- package/build-cjs/core/physics/models/OldTareScale.d.ts +7 -0
- package/build-cjs/core/physics/models/OldTareScale.d.ts.map +1 -0
- package/build-cjs/core/physics/models/OldTareScale.js +11 -0
- package/build-cjs/core/physics/models/OldTareSemireboque.d.ts +7 -0
- package/build-cjs/core/physics/models/OldTareSemireboque.d.ts.map +1 -0
- package/build-cjs/core/physics/models/OldTareSemireboque.js +40 -0
- package/build-cjs/core/physics/models/OldTareTruck.d.ts +7 -0
- package/build-cjs/core/physics/models/OldTareTruck.d.ts.map +1 -0
- package/build-cjs/core/physics/models/OldTareTruck.js +15 -0
- package/build-cjs/core/physics/models/OldTareVanderleia.d.ts +7 -0
- package/build-cjs/core/physics/models/OldTareVanderleia.d.ts.map +1 -0
- package/build-cjs/core/physics/models/OldTareVanderleia.js +34 -0
- package/build-cjs/core/physics/models/PercentageOnAxlesCalculator.d.ts +19 -0
- package/build-cjs/core/physics/models/PercentageOnAxlesCalculator.d.ts.map +1 -0
- package/build-cjs/core/physics/models/PercentageOnAxlesCalculator.js +43 -0
- package/build-cjs/core/physics/models/QuadSemiTrailerModel.d.ts +21 -0
- package/build-cjs/core/physics/models/QuadSemiTrailerModel.d.ts.map +1 -0
- package/build-cjs/core/physics/models/QuadSemiTrailerModel.js +74 -0
- package/build-cjs/core/physics/models/RodotremModel.d.ts +33 -0
- package/build-cjs/core/physics/models/RodotremModel.d.ts.map +1 -0
- package/build-cjs/core/physics/models/RodotremModel.js +106 -0
- package/build-cjs/core/physics/models/SemiDelegate.d.ts +9 -0
- package/build-cjs/core/physics/models/SemiDelegate.d.ts.map +1 -0
- package/build-cjs/core/physics/models/SemiDelegate.js +2 -0
- package/build-cjs/core/physics/models/SemiReboqueBase.d.ts +34 -0
- package/build-cjs/core/physics/models/SemiReboqueBase.d.ts.map +1 -0
- package/build-cjs/core/physics/models/SemiReboqueBase.js +89 -0
- package/build-cjs/core/physics/models/SemiReboqueModel.d.ts +41 -0
- package/build-cjs/core/physics/models/SemiReboqueModel.d.ts.map +1 -0
- package/build-cjs/core/physics/models/SemiReboqueModel.js +89 -0
- package/build-cjs/core/physics/models/SimpleTruckBase.d.ts +29 -0
- package/build-cjs/core/physics/models/SimpleTruckBase.d.ts.map +1 -0
- package/build-cjs/core/physics/models/SimpleTruckBase.js +61 -0
- package/build-cjs/core/physics/models/SimpleTruckModel.d.ts +41 -0
- package/build-cjs/core/physics/models/SimpleTruckModel.d.ts.map +1 -0
- package/build-cjs/core/physics/models/SimpleTruckModel.js +81 -0
- package/build-cjs/core/physics/models/SingleContainerTare.d.ts +18 -0
- package/build-cjs/core/physics/models/SingleContainerTare.d.ts.map +1 -0
- package/build-cjs/core/physics/models/SingleContainerTare.js +49 -0
- package/build-cjs/core/physics/models/TareModel.d.ts +12 -0
- package/build-cjs/core/physics/models/TareModel.d.ts.map +1 -0
- package/build-cjs/core/physics/models/TareModel.js +40 -0
- package/build-cjs/core/physics/models/TruckDelegate.d.ts +9 -0
- package/build-cjs/core/physics/models/TruckDelegate.d.ts.map +1 -0
- package/build-cjs/core/physics/models/TruckDelegate.js +2 -0
- package/build-cjs/core/physics/models/UnrecognizedSuspensionTypeError.d.ts +10 -0
- package/build-cjs/core/physics/models/UnrecognizedSuspensionTypeError.d.ts.map +1 -0
- package/build-cjs/core/physics/models/UnrecognizedSuspensionTypeError.js +16 -0
- package/build-cjs/core/physics/models/UnsupportedVehicleTypeError.d.ts +10 -0
- package/build-cjs/core/physics/models/UnsupportedVehicleTypeError.d.ts.map +1 -0
- package/build-cjs/core/physics/models/UnsupportedVehicleTypeError.js +16 -0
- package/build-cjs/core/physics/models/VanderleiaModel.d.ts +33 -0
- package/build-cjs/core/physics/models/VanderleiaModel.d.ts.map +1 -0
- package/build-cjs/core/physics/models/VanderleiaModel.js +106 -0
- package/build-cjs/core/physics/models/VehicleModel.d.ts +11 -0
- package/build-cjs/core/physics/models/VehicleModel.d.ts.map +1 -0
- package/build-cjs/core/physics/models/VehicleModel.js +2 -0
- package/build-cjs/core/physics/models/deflection/BeamDeflection.d.ts +28 -0
- package/build-cjs/core/physics/models/deflection/BeamDeflection.d.ts.map +1 -0
- package/build-cjs/core/physics/models/deflection/BeamDeflection.js +82 -0
- package/build-cjs/core/physics/models/deflection/BitremDeflection.d.ts +22 -0
- package/build-cjs/core/physics/models/deflection/BitremDeflection.d.ts.map +1 -0
- package/build-cjs/core/physics/models/deflection/BitremDeflection.js +58 -0
- package/build-cjs/core/physics/models/deflection/CreateDeflectionDelegate.d.ts +9 -0
- package/build-cjs/core/physics/models/deflection/CreateDeflectionDelegate.d.ts.map +1 -0
- package/build-cjs/core/physics/models/deflection/CreateDeflectionDelegate.js +27 -0
- package/build-cjs/core/physics/models/deflection/DeflectionDelegate.d.ts +8 -0
- package/build-cjs/core/physics/models/deflection/DeflectionDelegate.d.ts.map +1 -0
- package/build-cjs/core/physics/models/deflection/DeflectionDelegate.js +2 -0
- package/build-cjs/core/physics/models/deflection/DeflectionDelegateFactories.d.ts +36 -0
- package/build-cjs/core/physics/models/deflection/DeflectionDelegateFactories.d.ts.map +1 -0
- package/build-cjs/core/physics/models/deflection/DeflectionDelegateFactories.js +57 -0
- package/build-cjs/core/physics/models/deflection/DeflectionModel.d.ts +19 -0
- package/build-cjs/core/physics/models/deflection/DeflectionModel.d.ts.map +1 -0
- package/build-cjs/core/physics/models/deflection/DeflectionModel.js +27 -0
- package/build-cjs/core/physics/models/deflection/DeflectionModelNotImplementedError.d.ts +9 -0
- package/build-cjs/core/physics/models/deflection/DeflectionModelNotImplementedError.d.ts.map +1 -0
- package/build-cjs/core/physics/models/deflection/DeflectionModelNotImplementedError.js +15 -0
- package/build-cjs/core/physics/models/deflection/DeflectionSupportManager.d.ts +35 -0
- package/build-cjs/core/physics/models/deflection/DeflectionSupportManager.d.ts.map +1 -0
- package/build-cjs/core/physics/models/deflection/DeflectionSupportManager.js +58 -0
- package/build-cjs/core/physics/models/deflection/DeflectionTools.d.ts +6 -0
- package/build-cjs/core/physics/models/deflection/DeflectionTools.d.ts.map +1 -0
- package/build-cjs/core/physics/models/deflection/DeflectionTools.js +13 -0
- package/build-cjs/core/physics/models/deflection/DelegateFactory.d.ts +12 -0
- package/build-cjs/core/physics/models/deflection/DelegateFactory.d.ts.map +1 -0
- package/build-cjs/core/physics/models/deflection/DelegateFactory.js +2 -0
- package/build-cjs/core/physics/models/deflection/IntegrationConstantCalculator.d.ts +25 -0
- package/build-cjs/core/physics/models/deflection/IntegrationConstantCalculator.d.ts.map +1 -0
- package/build-cjs/core/physics/models/deflection/IntegrationConstantCalculator.js +55 -0
- package/build-cjs/core/physics/models/deflection/RodotremDeflection.d.ts +22 -0
- package/build-cjs/core/physics/models/deflection/RodotremDeflection.d.ts.map +1 -0
- package/build-cjs/core/physics/models/deflection/RodotremDeflection.js +51 -0
- package/build-cjs/core/physics/models/deflection/SemiReboqueDeflection.d.ts +21 -0
- package/build-cjs/core/physics/models/deflection/SemiReboqueDeflection.d.ts.map +1 -0
- package/build-cjs/core/physics/models/deflection/SemiReboqueDeflection.js +35 -0
- package/build-cjs/core/physics/models/deflection/SimpleTruckDeflection.d.ts +20 -0
- package/build-cjs/core/physics/models/deflection/SimpleTruckDeflection.d.ts.map +1 -0
- package/build-cjs/core/physics/models/deflection/SimpleTruckDeflection.js +32 -0
- package/build-cjs/core/physics/models/deflection/VanderleiaDeflection.d.ts +21 -0
- package/build-cjs/core/physics/models/deflection/VanderleiaDeflection.d.ts.map +1 -0
- package/build-cjs/core/physics/models/deflection/VanderleiaDeflection.js +45 -0
- package/build-cjs/core/physics/services/AxleWeightOutputBuilder.d.ts +27 -0
- package/build-cjs/core/physics/services/AxleWeightOutputBuilder.d.ts.map +1 -0
- package/build-cjs/core/physics/services/AxleWeightOutputBuilder.js +47 -0
- package/build-cjs/core/physics/services/AxleWeightService.d.ts +20 -0
- package/build-cjs/core/physics/services/AxleWeightService.d.ts.map +1 -0
- package/build-cjs/core/physics/services/AxleWeightService.js +95 -0
- package/build-cjs/core/physics/services/CmAxleWeightService.d.ts +12 -0
- package/build-cjs/core/physics/services/CmAxleWeightService.d.ts.map +1 -0
- package/build-cjs/core/physics/services/CmAxleWeightService.js +37 -0
- package/build-cjs/core/physics/services/ContainerCornerForces.d.ts +33 -0
- package/build-cjs/core/physics/services/ContainerCornerForces.d.ts.map +1 -0
- package/build-cjs/core/physics/services/ContainerCornerForces.js +88 -0
- package/build-cjs/core/physics/transports/AxleManager.d.ts +22 -0
- package/build-cjs/core/physics/transports/AxleManager.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/AxleManager.js +38 -0
- package/build-cjs/core/physics/transports/AxleRecord.d.ts +21 -0
- package/build-cjs/core/physics/transports/AxleRecord.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/AxleRecord.js +61 -0
- package/build-cjs/core/physics/transports/Chassi.d.ts +52 -0
- package/build-cjs/core/physics/transports/Chassi.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/Chassi.js +109 -0
- package/build-cjs/core/physics/transports/ContainerRecord.d.ts +25 -0
- package/build-cjs/core/physics/transports/ContainerRecord.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/ContainerRecord.js +53 -0
- package/build-cjs/core/physics/transports/ContainerSequenceNotFoundError.d.ts +10 -0
- package/build-cjs/core/physics/transports/ContainerSequenceNotFoundError.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/ContainerSequenceNotFoundError.js +16 -0
- package/build-cjs/core/physics/transports/GroupedContainers.d.ts +34 -0
- package/build-cjs/core/physics/transports/GroupedContainers.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/GroupedContainers.js +73 -0
- package/build-cjs/core/physics/transports/GrouperNotFoundError.d.ts +10 -0
- package/build-cjs/core/physics/transports/GrouperNotFoundError.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/GrouperNotFoundError.js +16 -0
- package/build-cjs/core/physics/transports/MergedContainers.d.ts +26 -0
- package/build-cjs/core/physics/transports/MergedContainers.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/MergedContainers.js +50 -0
- package/build-cjs/core/physics/transports/MissingContainerError.d.ts +10 -0
- package/build-cjs/core/physics/transports/MissingContainerError.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/MissingContainerError.js +16 -0
- package/build-cjs/core/physics/transports/Transport.d.ts +33 -0
- package/build-cjs/core/physics/transports/Transport.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/Transport.js +115 -0
- package/build-cjs/core/physics/transports/containerweight/ContainerMaxWeightCalculator.d.ts +21 -0
- package/build-cjs/core/physics/transports/containerweight/ContainerMaxWeightCalculator.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/containerweight/ContainerMaxWeightCalculator.js +44 -0
- package/build-cjs/core/physics/transports/containerweight/ContainerTareCalculator.d.ts +28 -0
- package/build-cjs/core/physics/transports/containerweight/ContainerTareCalculator.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/containerweight/ContainerTareCalculator.js +59 -0
- package/build-cjs/core/physics/transports/containerweight/ContainerWeightModel.d.ts +15 -0
- package/build-cjs/core/physics/transports/containerweight/ContainerWeightModel.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/containerweight/ContainerWeightModel.js +35 -0
- package/build-cjs/core/physics/transports/containerweight/MaxWeightInput.d.ts +10 -0
- package/build-cjs/core/physics/transports/containerweight/MaxWeightInput.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/containerweight/MaxWeightInput.js +2 -0
- package/build-cjs/core/physics/transports/containerweight/MergedContainersWeightCalculator.d.ts +17 -0
- package/build-cjs/core/physics/transports/containerweight/MergedContainersWeightCalculator.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/containerweight/MergedContainersWeightCalculator.js +35 -0
- package/build-cjs/core/physics/transports/containerweight/SingleContainerWeightCalculator.d.ts +20 -0
- package/build-cjs/core/physics/transports/containerweight/SingleContainerWeightCalculator.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/containerweight/SingleContainerWeightCalculator.js +52 -0
- package/build-cjs/core/physics/transports/tare/BitremAxleSplit.d.ts +8 -0
- package/build-cjs/core/physics/transports/tare/BitremAxleSplit.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/tare/BitremAxleSplit.js +2 -0
- package/build-cjs/core/physics/transports/tare/BitremAxleSplitTarget.d.ts +12 -0
- package/build-cjs/core/physics/transports/tare/BitremAxleSplitTarget.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/tare/BitremAxleSplitTarget.js +2 -0
- package/build-cjs/core/physics/transports/tare/BitremAxleSplitter.d.ts +26 -0
- package/build-cjs/core/physics/transports/tare/BitremAxleSplitter.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/tare/BitremAxleSplitter.js +88 -0
- package/build-cjs/core/physics/transports/tare/BitremAxleWeightSplit.d.ts +13 -0
- package/build-cjs/core/physics/transports/tare/BitremAxleWeightSplit.d.ts.map +1 -0
- package/build-cjs/core/physics/transports/tare/BitremAxleWeightSplit.js +36 -0
- package/build-cjs/index.d.ts +25 -0
- package/build-cjs/index.d.ts.map +1 -0
- package/build-cjs/index.js +35 -0
- package/build-cjs/package.json +3 -0
- package/package.json +27 -4
- package/CHANGELOG.md +0 -71
- package/tsconfig.eslint.json +0 -15
- package/tsconfig.json +0 -19
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SemiReboqueDeflection = void 0;
|
|
4
|
+
const BeamDeflection_js_1 = require("./BeamDeflection.js");
|
|
5
|
+
const DeflectionTools_js_1 = require("./DeflectionTools.js");
|
|
6
|
+
/**
|
|
7
|
+
* Semi-reboque beam deflection indicator.
|
|
8
|
+
*/
|
|
9
|
+
class SemiReboqueDeflection {
|
|
10
|
+
semi_reboque_model;
|
|
11
|
+
number_of_curve_samples;
|
|
12
|
+
/**
|
|
13
|
+
* @param semi_reboque_model - Axle weight model.
|
|
14
|
+
* @param number_of_curve_samples - Curve sample count.
|
|
15
|
+
*/
|
|
16
|
+
constructor(semi_reboque_model, number_of_curve_samples) {
|
|
17
|
+
this.semi_reboque_model = semi_reboque_model;
|
|
18
|
+
this.number_of_curve_samples = number_of_curve_samples;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* @param multi_items - Allocated items.
|
|
22
|
+
* @returns Deflection indicator scalar.
|
|
23
|
+
*/
|
|
24
|
+
calculate_deflection(multi_items) {
|
|
25
|
+
const curve = this.calculate_deflection_curve(multi_items);
|
|
26
|
+
return (0, DeflectionTools_js_1.calculate_deflection_indicator)(curve);
|
|
27
|
+
}
|
|
28
|
+
calculate_deflection_curve(multi_items) {
|
|
29
|
+
const support = this.semi_reboque_model.calculate_support_data(multi_items);
|
|
30
|
+
const allocated = multi_items.get_allocated_items_by_grouper_index(1);
|
|
31
|
+
const beam = new BeamDeflection_js_1.BeamDeflection(support, allocated);
|
|
32
|
+
return beam.generate_curve_values(this.semi_reboque_model.calculate_container_length(), this.number_of_curve_samples);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.SemiReboqueDeflection = SemiReboqueDeflection;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { SimpleTruckModel } from '../SimpleTruckModel.js';
|
|
2
|
+
import type { MultiContainerAllocatedItems } from '../../items/MultiContainerAllocatedItems.js';
|
|
3
|
+
/**
|
|
4
|
+
* Caminhão beam deflection indicator.
|
|
5
|
+
*/
|
|
6
|
+
export declare class SimpleTruckDeflection {
|
|
7
|
+
private readonly simple_truck_model;
|
|
8
|
+
private readonly number_of_curve_samples;
|
|
9
|
+
/**
|
|
10
|
+
* @param simple_truck_model - Axle weight model.
|
|
11
|
+
* @param number_of_curve_samples - Curve sample count.
|
|
12
|
+
*/
|
|
13
|
+
constructor(simple_truck_model: SimpleTruckModel, number_of_curve_samples: number);
|
|
14
|
+
/**
|
|
15
|
+
* @param multi_items - Allocated items.
|
|
16
|
+
* @returns Deflection indicator scalar.
|
|
17
|
+
*/
|
|
18
|
+
calculate_deflection(multi_items: MultiContainerAllocatedItems): number;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=SimpleTruckDeflection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SimpleTruckDeflection.d.ts","sourceRoot":"","sources":["../../../../../src/core/physics/models/deflection/SimpleTruckDeflection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,6CAA6C,CAAA;AAI/F;;GAEG;AACH,qBAAa,qBAAqB;IAO1B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IAN5C;;;OAGG;gBAEkB,kBAAkB,EAAE,gBAAgB,EACpC,uBAAuB,EAAE,MAAM;IAIpD;;;OAGG;IACH,oBAAoB,CAAC,WAAW,EAAE,4BAA4B,GAAG,MAAM;CAU1E"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SimpleTruckDeflection = void 0;
|
|
4
|
+
const BeamDeflection_js_1 = require("./BeamDeflection.js");
|
|
5
|
+
const DeflectionTools_js_1 = require("./DeflectionTools.js");
|
|
6
|
+
/**
|
|
7
|
+
* Caminhão beam deflection indicator.
|
|
8
|
+
*/
|
|
9
|
+
class SimpleTruckDeflection {
|
|
10
|
+
simple_truck_model;
|
|
11
|
+
number_of_curve_samples;
|
|
12
|
+
/**
|
|
13
|
+
* @param simple_truck_model - Axle weight model.
|
|
14
|
+
* @param number_of_curve_samples - Curve sample count.
|
|
15
|
+
*/
|
|
16
|
+
constructor(simple_truck_model, number_of_curve_samples) {
|
|
17
|
+
this.simple_truck_model = simple_truck_model;
|
|
18
|
+
this.number_of_curve_samples = number_of_curve_samples;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* @param multi_items - Allocated items.
|
|
22
|
+
* @returns Deflection indicator scalar.
|
|
23
|
+
*/
|
|
24
|
+
calculate_deflection(multi_items) {
|
|
25
|
+
const support = this.simple_truck_model.calculate_support_data(multi_items);
|
|
26
|
+
const allocated = multi_items.get_allocated_items_by_grouper_index(1);
|
|
27
|
+
const beam = new BeamDeflection_js_1.BeamDeflection(support, allocated);
|
|
28
|
+
const curve = beam.generate_curve_values(this.simple_truck_model.calculate_container_length(), this.number_of_curve_samples);
|
|
29
|
+
return (0, DeflectionTools_js_1.calculate_deflection_indicator)(curve);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.SimpleTruckDeflection = SimpleTruckDeflection;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { VanderleiaModel } from '../VanderleiaModel.js';
|
|
2
|
+
import type { MultiContainerAllocatedItems } from '../../items/MultiContainerAllocatedItems.js';
|
|
3
|
+
/**
|
|
4
|
+
* Vanderleia trailer beam deflection indicator.
|
|
5
|
+
*/
|
|
6
|
+
export declare class VanderleiaDeflection {
|
|
7
|
+
private readonly vanderleia_model;
|
|
8
|
+
private readonly number_of_curve_samples;
|
|
9
|
+
/**
|
|
10
|
+
* @param vanderleia_model - Axle weight model.
|
|
11
|
+
* @param number_of_curve_samples - Curve sample count.
|
|
12
|
+
*/
|
|
13
|
+
constructor(vanderleia_model: VanderleiaModel, number_of_curve_samples: number);
|
|
14
|
+
/**
|
|
15
|
+
* @param multi_items - Allocated items.
|
|
16
|
+
* @returns Deflection indicator scalar.
|
|
17
|
+
*/
|
|
18
|
+
calculate_deflection(multi_items: MultiContainerAllocatedItems): number;
|
|
19
|
+
private generate_support_data;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=VanderleiaDeflection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VanderleiaDeflection.d.ts","sourceRoot":"","sources":["../../../../../src/core/physics/models/deflection/VanderleiaDeflection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,6CAA6C,CAAA;AAI/F;;GAEG;AACH,qBAAa,oBAAoB;IAOzB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IAN5C;;;OAGG;gBAEkB,gBAAgB,EAAE,eAAe,EACjC,uBAAuB,EAAE,MAAM;IAIpD;;;OAGG;IACH,oBAAoB,CAAC,WAAW,EAAE,4BAA4B,GAAG,MAAM;IAUvE,OAAO,CAAC,qBAAqB;CAYhC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VanderleiaDeflection = void 0;
|
|
4
|
+
const ChassiReference_js_1 = require("../../../contracts/ChassiReference.js");
|
|
5
|
+
const BeamDeflection_js_1 = require("./BeamDeflection.js");
|
|
6
|
+
const DeflectionTools_js_1 = require("./DeflectionTools.js");
|
|
7
|
+
/**
|
|
8
|
+
* Vanderleia trailer beam deflection indicator.
|
|
9
|
+
*/
|
|
10
|
+
class VanderleiaDeflection {
|
|
11
|
+
vanderleia_model;
|
|
12
|
+
number_of_curve_samples;
|
|
13
|
+
/**
|
|
14
|
+
* @param vanderleia_model - Axle weight model.
|
|
15
|
+
* @param number_of_curve_samples - Curve sample count.
|
|
16
|
+
*/
|
|
17
|
+
constructor(vanderleia_model, number_of_curve_samples) {
|
|
18
|
+
this.vanderleia_model = vanderleia_model;
|
|
19
|
+
this.number_of_curve_samples = number_of_curve_samples;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* @param multi_items - Allocated items.
|
|
23
|
+
* @returns Deflection indicator scalar.
|
|
24
|
+
*/
|
|
25
|
+
calculate_deflection(multi_items) {
|
|
26
|
+
const support = this.generate_support_data(multi_items);
|
|
27
|
+
const allocated = multi_items.get_allocated_items_by_grouper_index(1);
|
|
28
|
+
const beam = new BeamDeflection_js_1.BeamDeflection(support, allocated);
|
|
29
|
+
const length = this.vanderleia_model.chassi.get_grouper_end(1, ChassiReference_js_1.CHASSI_REFERENCE.GROUPER_1);
|
|
30
|
+
const curve = beam.generate_curve_values(length, this.number_of_curve_samples);
|
|
31
|
+
return (0, DeflectionTools_js_1.calculate_deflection_indicator)(curve);
|
|
32
|
+
}
|
|
33
|
+
generate_support_data(multi_items) {
|
|
34
|
+
const forces = this.vanderleia_model.calculate_chassi_forces(multi_items);
|
|
35
|
+
const trailer_force = forces.get_force_on_axle(2)
|
|
36
|
+
+ forces.get_force_on_axle(3)
|
|
37
|
+
+ forces.get_force_on_axle(4);
|
|
38
|
+
const pin = this.vanderleia_model.chassi.get_pin_position(0, ChassiReference_js_1.CHASSI_REFERENCE.GROUPER_1);
|
|
39
|
+
const axle_3 = this.vanderleia_model.chassi.get_axle_position(2, ChassiReference_js_1.CHASSI_REFERENCE.GROUPER_1);
|
|
40
|
+
const axle_5 = this.vanderleia_model.chassi.get_axle_position(4, ChassiReference_js_1.CHASSI_REFERENCE.GROUPER_1);
|
|
41
|
+
const mean_axle = 0.5 * (axle_5 - axle_3) + axle_3;
|
|
42
|
+
return [[pin, forces.get_force_on_pin(0)], [mean_axle, trailer_force]];
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.VanderleiaDeflection = VanderleiaDeflection;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { CHASSI_REFERENCE } from '../../contracts/ChassiReference.js';
|
|
2
|
+
import type { Transport } from '../transports/Transport.js';
|
|
3
|
+
import type { Chassi } from '../transports/Chassi.js';
|
|
4
|
+
/**
|
|
5
|
+
* @param transport - Parsed transport.
|
|
6
|
+
* @param grouper - Grouper index.
|
|
7
|
+
* @returns Axle indexes for grouper output.
|
|
8
|
+
*/
|
|
9
|
+
export declare function select_axles_for_grouper(transport: Transport, grouper: number): number[];
|
|
10
|
+
/**
|
|
11
|
+
* @param axles_indexes - Axle indexes in output row.
|
|
12
|
+
* @returns Chassi reference for distance helper.
|
|
13
|
+
*/
|
|
14
|
+
export declare function find_grouper_reference(axles_indexes: number[]): typeof CHASSI_REFERENCE.GROUPER_1 | typeof CHASSI_REFERENCE.GROUPER_2;
|
|
15
|
+
type AxleWeightOutputInput = {
|
|
16
|
+
transport: Transport;
|
|
17
|
+
chassi: Chassi;
|
|
18
|
+
axles_indexes: number[];
|
|
19
|
+
weight_on_axles: number[];
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* @param input - Transport, chassi, axles, and cargo loads.
|
|
23
|
+
* @returns pesoEixos wire rows.
|
|
24
|
+
*/
|
|
25
|
+
export declare function build_axle_weights_output(input: AxleWeightOutputInput): Record<string, unknown>[];
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=AxleWeightOutputBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AxleWeightOutputBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/physics/services/AxleWeightOutputBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAErD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAQxF;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAClC,aAAa,EAAE,MAAM,EAAE,GACxB,OAAO,gBAAgB,CAAC,SAAS,GAAG,OAAO,gBAAgB,CAAC,SAAS,CAGvE;AAED,KAAK,qBAAqB,GAAG;IACzB,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,eAAe,EAAE,MAAM,EAAE,CAAA;CAC5B,CAAA;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAoBjG"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.select_axles_for_grouper = select_axles_for_grouper;
|
|
4
|
+
exports.find_grouper_reference = find_grouper_reference;
|
|
5
|
+
exports.build_axle_weights_output = build_axle_weights_output;
|
|
6
|
+
const VehicleType_js_1 = require("../../contracts/VehicleType.js");
|
|
7
|
+
const ChassiReference_js_1 = require("../../contracts/ChassiReference.js");
|
|
8
|
+
/**
|
|
9
|
+
* @param transport - Parsed transport.
|
|
10
|
+
* @param grouper - Grouper index.
|
|
11
|
+
* @returns Axle indexes for grouper output.
|
|
12
|
+
*/
|
|
13
|
+
function select_axles_for_grouper(transport, grouper) {
|
|
14
|
+
const type = transport.vehicle_type;
|
|
15
|
+
if (type === VehicleType_js_1.VEHICLE_TYPE.RODOTREM || type === VehicleType_js_1.VEHICLE_TYPE.BITREM) {
|
|
16
|
+
return grouper === 1 ? [0, 1, 2] : [3, 4];
|
|
17
|
+
}
|
|
18
|
+
return transport.axle_manager.list_axles_indexes();
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* @param axles_indexes - Axle indexes in output row.
|
|
22
|
+
* @returns Chassi reference for distance helper.
|
|
23
|
+
*/
|
|
24
|
+
function find_grouper_reference(axles_indexes) {
|
|
25
|
+
return axles_indexes.includes(0) ? ChassiReference_js_1.CHASSI_REFERENCE.GROUPER_1 : ChassiReference_js_1.CHASSI_REFERENCE.GROUPER_2;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* @param input - Transport, chassi, axles, and cargo loads.
|
|
29
|
+
* @returns pesoEixos wire rows.
|
|
30
|
+
*/
|
|
31
|
+
function build_axle_weights_output(input) {
|
|
32
|
+
return input.axles_indexes.map((axle_index) => {
|
|
33
|
+
const axle = input.transport.axle_manager.get_axle(axle_index);
|
|
34
|
+
const cargo = input.weight_on_axles[axle_index];
|
|
35
|
+
return {
|
|
36
|
+
distanciaOrigem: axle.distance_from_previous_axle,
|
|
37
|
+
pesoMaxFinal: axle.max_supported_weight,
|
|
38
|
+
tara: axle.tare,
|
|
39
|
+
pesoMax: axle.max_supported_weight - axle.tare,
|
|
40
|
+
pesoCarregado: cargo,
|
|
41
|
+
pesoCarregadoFinal: axle.tare + cargo,
|
|
42
|
+
distanciaOrigemSemPrimeiroEixo: axle_index === 0
|
|
43
|
+
? 0
|
|
44
|
+
: input.chassi.get_axle_position(axle_index, find_grouper_reference(input.axles_indexes))
|
|
45
|
+
};
|
|
46
|
+
});
|
|
47
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Full ms-faixas axle weight pipeline (Python AxleWeightService port).
|
|
3
|
+
*/
|
|
4
|
+
export declare class AxleWeightService {
|
|
5
|
+
private readonly transport;
|
|
6
|
+
private readonly chassi;
|
|
7
|
+
private readonly allocated_by_sequence;
|
|
8
|
+
/**
|
|
9
|
+
* @param input_data - Ms-faixas payload with envs.
|
|
10
|
+
*/
|
|
11
|
+
constructor(input_data: Record<string, unknown>);
|
|
12
|
+
/**
|
|
13
|
+
* @returns Math output with envs and pesoEixos per container.
|
|
14
|
+
*/
|
|
15
|
+
run(): Record<string, unknown>;
|
|
16
|
+
private build_containers_data;
|
|
17
|
+
private evaluate_weight_on_axles;
|
|
18
|
+
private assign_grouper_axle_outputs;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=AxleWeightService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AxleWeightService.d.ts","sourceRoot":"","sources":["../../../../src/core/physics/services/AxleWeightService.ts"],"names":[],"mappings":"AAqBA;;GAEG;AACH,qBAAa,iBAAiB;IAE1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAiF;IAEvH;;OAEG;gBACS,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAQ/C;;OAEG;IACH,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAU9B,OAAO,CAAC,qBAAqB;IAuB7B,OAAO,CAAC,wBAAwB;IAkBhC,OAAO,CAAC,2BAA2B;CAoBtC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AxleWeightService = void 0;
|
|
4
|
+
const MsFaixasContract_js_1 = require("../../contracts/MsFaixasContract.js");
|
|
5
|
+
const Transport_js_1 = require("../transports/Transport.js");
|
|
6
|
+
const Chassi_js_1 = require("../transports/Chassi.js");
|
|
7
|
+
const MergedContainers_js_1 = require("../transports/MergedContainers.js");
|
|
8
|
+
const AxleWeightModel_js_1 = require("../models/AxleWeightModel.js");
|
|
9
|
+
const AxleWeightOutputBuilder_js_1 = require("./AxleWeightOutputBuilder.js");
|
|
10
|
+
const TRANSPORT_LIST_FLAG = 'envs';
|
|
11
|
+
const TRANSPORT_ID_FLAG = 'idCaminhao';
|
|
12
|
+
const CONTAINERS_FLAG = 'conteiners';
|
|
13
|
+
const SEQUENCE_FLAG = 'sequencia';
|
|
14
|
+
const FAIXAS_FLAG = 'faixas';
|
|
15
|
+
const TARE_FLAG = 'tara';
|
|
16
|
+
const ITEMS_FLAG = 'items';
|
|
17
|
+
const MAX_SUPPORTED_FLAG = 'pesoSuportado';
|
|
18
|
+
const CENTER_OF_GRAVITY_FLAG = 'centroGravidade';
|
|
19
|
+
const AXLE_WEIGHTS_FLAG = 'pesoEixos';
|
|
20
|
+
/**
|
|
21
|
+
* Full ms-faixas axle weight pipeline (Python AxleWeightService port).
|
|
22
|
+
*/
|
|
23
|
+
class AxleWeightService {
|
|
24
|
+
transport;
|
|
25
|
+
chassi;
|
|
26
|
+
allocated_by_sequence;
|
|
27
|
+
/**
|
|
28
|
+
* @param input_data - Ms-faixas payload with envs.
|
|
29
|
+
*/
|
|
30
|
+
constructor(input_data) {
|
|
31
|
+
const contract = new MsFaixasContract_js_1.MsFaixasContract(input_data);
|
|
32
|
+
this.transport = new Transport_js_1.Transport(contract.transport_data);
|
|
33
|
+
this.chassi = new Chassi_js_1.Chassi(this.transport);
|
|
34
|
+
this.allocated_by_sequence = contract.allocated_items_by_sequence_id;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* @returns Math output with envs and pesoEixos per container.
|
|
38
|
+
*/
|
|
39
|
+
run() {
|
|
40
|
+
return {
|
|
41
|
+
[TRANSPORT_LIST_FLAG]: [{
|
|
42
|
+
[TRANSPORT_ID_FLAG]: this.transport.id,
|
|
43
|
+
[CONTAINERS_FLAG]: this.build_containers_data()
|
|
44
|
+
}]
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
build_containers_data() {
|
|
48
|
+
const weights_by_sequence = this.evaluate_weight_on_axles();
|
|
49
|
+
const center_of_gravity = {};
|
|
50
|
+
for (const sequence of this.transport.list_containers_sequence_indexes()) {
|
|
51
|
+
center_of_gravity[sequence] = 0;
|
|
52
|
+
}
|
|
53
|
+
return this.transport.list_containers_sequence_indexes().map((sequence) => {
|
|
54
|
+
const container = this.transport.get_container_by_sequence_index(sequence);
|
|
55
|
+
return {
|
|
56
|
+
[SEQUENCE_FLAG]: container.sequence_index,
|
|
57
|
+
[FAIXAS_FLAG]: [],
|
|
58
|
+
[TARE_FLAG]: 0,
|
|
59
|
+
[ITEMS_FLAG]: [],
|
|
60
|
+
[MAX_SUPPORTED_FLAG]: container.max_supported_weight,
|
|
61
|
+
[CENTER_OF_GRAVITY_FLAG]: center_of_gravity[sequence],
|
|
62
|
+
[AXLE_WEIGHTS_FLAG]: weights_by_sequence[sequence] ?? []
|
|
63
|
+
};
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
evaluate_weight_on_axles() {
|
|
67
|
+
const model = new AxleWeightModel_js_1.AxleWeightModel(this.transport);
|
|
68
|
+
const weight_on_axles = model.calculate_weight_on_axles(this.allocated_by_sequence);
|
|
69
|
+
const merged = new MergedContainers_js_1.MergedContainers(this.transport);
|
|
70
|
+
const result = {};
|
|
71
|
+
for (const grouper of merged.list_grouper_indexes()) {
|
|
72
|
+
this.assign_grouper_axle_outputs({
|
|
73
|
+
grouper,
|
|
74
|
+
grouped: merged.get_container_by_grouper_index(grouper),
|
|
75
|
+
weight_on_axles,
|
|
76
|
+
result
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
return result;
|
|
80
|
+
}
|
|
81
|
+
assign_grouper_axle_outputs(input) {
|
|
82
|
+
const sequences = input.grouped.list_containers_sequence_indexes();
|
|
83
|
+
const axles = (0, AxleWeightOutputBuilder_js_1.select_axles_for_grouper)(this.transport, input.grouper);
|
|
84
|
+
input.result[sequences[0]] = (0, AxleWeightOutputBuilder_js_1.build_axle_weights_output)({
|
|
85
|
+
transport: this.transport,
|
|
86
|
+
chassi: this.chassi,
|
|
87
|
+
axles_indexes: axles,
|
|
88
|
+
weight_on_axles: input.weight_on_axles
|
|
89
|
+
});
|
|
90
|
+
for (let index = 1; index < sequences.length; index++) {
|
|
91
|
+
input.result[sequences[index]] = [];
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
exports.AxleWeightService = AxleWeightService;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { TransportRecord } from '../../contracts/TransportRecord.js';
|
|
2
|
+
/**
|
|
3
|
+
* Center-of-mass-driven axle weight service (port of CMAxleWeightService).
|
|
4
|
+
*/
|
|
5
|
+
export declare class CmAxleWeightService {
|
|
6
|
+
/**
|
|
7
|
+
* @param cm_axle_weight_data - Transport dict with center_of_mass map.
|
|
8
|
+
* @returns Loaded cargo weight per axle.
|
|
9
|
+
*/
|
|
10
|
+
calculate(cm_axle_weight_data: TransportRecord): number[];
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=CmAxleWeightService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CmAxleWeightService.d.ts","sourceRoot":"","sources":["../../../../src/core/physics/services/CmAxleWeightService.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AAIzE;;GAEG;AACH,qBAAa,mBAAmB;IAE5B;;;OAGG;IACH,SAAS,CAAC,mBAAmB,EAAE,eAAe,GAAG,MAAM,EAAE;CAU5D"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CmAxleWeightService = void 0;
|
|
4
|
+
const WireFlags_js_1 = require("../../contracts/WireFlags.js");
|
|
5
|
+
const CenterOfMass_js_1 = require("../items/CenterOfMass.js");
|
|
6
|
+
const AxleWeightModel_js_1 = require("../models/AxleWeightModel.js");
|
|
7
|
+
/**
|
|
8
|
+
* Center-of-mass-driven axle weight service (port of CMAxleWeightService).
|
|
9
|
+
*/
|
|
10
|
+
class CmAxleWeightService {
|
|
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) {
|
|
16
|
+
const model = new AxleWeightModel_js_1.AxleWeightModel(cm_axle_weight_data);
|
|
17
|
+
const center_of_mass_by_grouper = read_center_of_mass_map(cm_axle_weight_data[WireFlags_js_1.WIRE_FLAGS.CM_SERVICE_CENTER_OF_MASS]);
|
|
18
|
+
const chassi_forces = model.calculate_chassi_forces_with_load_center_of_mass(center_of_mass_by_grouper);
|
|
19
|
+
return chassi_forces.list_axles_indexes().map((index) => chassi_forces.get_force_on_axle(index));
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.CmAxleWeightService = CmAxleWeightService;
|
|
23
|
+
/**
|
|
24
|
+
* @param cm_data - Wire center_of_mass map.
|
|
25
|
+
* @returns Grouper id to CenterOfMass.
|
|
26
|
+
*/
|
|
27
|
+
function read_center_of_mass_map(cm_data) {
|
|
28
|
+
const result = {};
|
|
29
|
+
for (const grouper_key of Object.keys(cm_data)) {
|
|
30
|
+
const entry = cm_data[grouper_key];
|
|
31
|
+
const center_of_mass = new CenterOfMass_js_1.CenterOfMass();
|
|
32
|
+
center_of_mass.mass = Number(entry[WireFlags_js_1.WIRE_FLAGS.CM_SERVICE_MASS]);
|
|
33
|
+
center_of_mass.z = Number(entry[WireFlags_js_1.WIRE_FLAGS.CM_SERVICE_Z]);
|
|
34
|
+
result[Number(grouper_key)] = center_of_mass;
|
|
35
|
+
}
|
|
36
|
+
return result;
|
|
37
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Container corner force distribution (ISSUE-349).
|
|
3
|
+
*/
|
|
4
|
+
export declare class ContainerCornerForces {
|
|
5
|
+
private readonly input_data;
|
|
6
|
+
private readonly x_box_center;
|
|
7
|
+
private readonly z_box_center;
|
|
8
|
+
private readonly y_box_center;
|
|
9
|
+
private readonly weight_box;
|
|
10
|
+
private total_mass;
|
|
11
|
+
private x_cm;
|
|
12
|
+
private y_cm;
|
|
13
|
+
private z_cm;
|
|
14
|
+
private force_on_door;
|
|
15
|
+
private force_on_right_corner_door;
|
|
16
|
+
private force_on_left_corner_door;
|
|
17
|
+
private force_on_end_wall;
|
|
18
|
+
private force_on_right_corner_end_wall;
|
|
19
|
+
private force_on_left_corner_end_wall;
|
|
20
|
+
/**
|
|
21
|
+
* @param input_data - Items and container dimensions.
|
|
22
|
+
*/
|
|
23
|
+
constructor(input_data: Record<string, unknown>);
|
|
24
|
+
/** Computes center of gravity from item boxes. */
|
|
25
|
+
calculate_cm(): void;
|
|
26
|
+
/** Computes corner reaction forces including container tare split. */
|
|
27
|
+
calculate_corner_forces(): void;
|
|
28
|
+
/**
|
|
29
|
+
* @returns Response JSON.
|
|
30
|
+
*/
|
|
31
|
+
json(): Record<string, unknown>;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=ContainerCornerForces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContainerCornerForces.d.ts","sourceRoot":"","sources":["../../../../src/core/physics/services/ContainerCornerForces.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,qBAAqB;IAoBlB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAlBvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAe;IAC1C,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,IAAI,CAAI;IAChB,OAAO,CAAC,IAAI,CAAI;IAChB,OAAO,CAAC,IAAI,CAAI;IAChB,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,0BAA0B,CAAI;IACtC,OAAO,CAAC,yBAAyB,CAAI;IACrC,OAAO,CAAC,iBAAiB,CAAI;IAC7B,OAAO,CAAC,8BAA8B,CAAI;IAC1C,OAAO,CAAC,6BAA6B,CAAI;IAEzC;;OAEG;gBAC0B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAahE,kDAAkD;IAClD,YAAY,IAAI,IAAI;IAOpB,sEAAsE;IACtE,uBAAuB,IAAI,IAAI;IAkB/B;;OAEG;IACH,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAkBlC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ContainerCornerForces = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Container corner force distribution (ISSUE-349).
|
|
6
|
+
*/
|
|
7
|
+
class ContainerCornerForces {
|
|
8
|
+
input_data;
|
|
9
|
+
x_box_center = [];
|
|
10
|
+
z_box_center = [];
|
|
11
|
+
y_box_center = [];
|
|
12
|
+
weight_box = [];
|
|
13
|
+
total_mass = 0;
|
|
14
|
+
x_cm = 0;
|
|
15
|
+
y_cm = 0;
|
|
16
|
+
z_cm = 0;
|
|
17
|
+
force_on_door = null;
|
|
18
|
+
force_on_right_corner_door = 0;
|
|
19
|
+
force_on_left_corner_door = 0;
|
|
20
|
+
force_on_end_wall = 0;
|
|
21
|
+
force_on_right_corner_end_wall = 0;
|
|
22
|
+
force_on_left_corner_end_wall = 0;
|
|
23
|
+
/**
|
|
24
|
+
* @param input_data - Items and container dimensions.
|
|
25
|
+
*/
|
|
26
|
+
constructor(input_data) {
|
|
27
|
+
this.input_data = input_data;
|
|
28
|
+
const items = input_data.items;
|
|
29
|
+
for (const item of items) {
|
|
30
|
+
this.x_box_center.push(Number(item.x) + 0.5 * Number(item.width));
|
|
31
|
+
this.z_box_center.push(Number(item.z) + 0.5 * Number(item.length));
|
|
32
|
+
this.y_box_center.push(Number(item.y) + 0.5 * Number(item.height));
|
|
33
|
+
this.weight_box.push(Number(item.weight));
|
|
34
|
+
}
|
|
35
|
+
this.total_mass = this.weight_box.reduce((sum, weight) => sum + weight, 0);
|
|
36
|
+
}
|
|
37
|
+
/** Computes center of gravity from item boxes. */
|
|
38
|
+
calculate_cm() {
|
|
39
|
+
this.x_cm = dot(this.x_box_center, this.weight_box) / this.total_mass;
|
|
40
|
+
this.z_cm = dot(this.z_box_center, this.weight_box) / this.total_mass;
|
|
41
|
+
this.y_cm = dot(this.y_box_center, this.weight_box) / this.total_mass;
|
|
42
|
+
}
|
|
43
|
+
/** Computes corner reaction forces including container tare split. */
|
|
44
|
+
calculate_corner_forces() {
|
|
45
|
+
const container = this.input_data.container;
|
|
46
|
+
const container_length = Number(container.length);
|
|
47
|
+
const container_width = Number(container.width);
|
|
48
|
+
this.force_on_door = (this.z_cm * this.total_mass) / container_length;
|
|
49
|
+
this.force_on_right_corner_door = (this.x_cm * this.force_on_door) / container_width;
|
|
50
|
+
this.force_on_left_corner_door = this.force_on_door - this.force_on_right_corner_door;
|
|
51
|
+
this.force_on_end_wall = this.total_mass - this.force_on_door;
|
|
52
|
+
this.force_on_right_corner_end_wall = (this.x_cm * this.force_on_end_wall) / container_width;
|
|
53
|
+
this.force_on_left_corner_end_wall = this.force_on_end_wall - this.force_on_right_corner_end_wall;
|
|
54
|
+
const tare_quarter = 0.25 * Number(container.tare);
|
|
55
|
+
this.force_on_right_corner_door += tare_quarter;
|
|
56
|
+
this.force_on_left_corner_door += tare_quarter;
|
|
57
|
+
this.force_on_right_corner_end_wall += tare_quarter;
|
|
58
|
+
this.force_on_left_corner_end_wall += tare_quarter;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* @returns Response JSON.
|
|
62
|
+
*/
|
|
63
|
+
json() {
|
|
64
|
+
const response = {
|
|
65
|
+
centerOfGravity: { x: this.x_cm, y: this.y_cm, z: this.z_cm }
|
|
66
|
+
};
|
|
67
|
+
if (this.force_on_door !== null) {
|
|
68
|
+
response.corner_forces = {
|
|
69
|
+
force_on_door: this.force_on_door,
|
|
70
|
+
force_on_right_corner_door: this.force_on_right_corner_door,
|
|
71
|
+
force_on_left_corner_door: this.force_on_left_corner_door,
|
|
72
|
+
force_on_end_wall: this.force_on_end_wall,
|
|
73
|
+
force_on_right_corner_end_wall: this.force_on_right_corner_end_wall,
|
|
74
|
+
force_on_left_corner_end_wall: this.force_on_left_corner_end_wall
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
return response;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
exports.ContainerCornerForces = ContainerCornerForces;
|
|
81
|
+
/**
|
|
82
|
+
* @param values - Value list.
|
|
83
|
+
* @param weights - Weight list.
|
|
84
|
+
* @returns Weighted sum.
|
|
85
|
+
*/
|
|
86
|
+
function dot(values, weights) {
|
|
87
|
+
return values.reduce((sum, value, index) => sum + value * weights[index], 0);
|
|
88
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { AxleRecord } from './AxleRecord.js';
|
|
2
|
+
import type { TransportRecord } from '../../contracts/TransportRecord.js';
|
|
3
|
+
/**
|
|
4
|
+
* Ordered axle list for a transport.
|
|
5
|
+
*/
|
|
6
|
+
export declare class AxleManager {
|
|
7
|
+
axles: AxleRecord[];
|
|
8
|
+
/**
|
|
9
|
+
* @param transport_data - Raw transport JSON.
|
|
10
|
+
*/
|
|
11
|
+
constructor(transport_data: TransportRecord);
|
|
12
|
+
/**
|
|
13
|
+
* @returns Axle index list [0..n-1].
|
|
14
|
+
*/
|
|
15
|
+
list_axles_indexes(): number[];
|
|
16
|
+
/**
|
|
17
|
+
* @param axle_index - Zero-based axle index.
|
|
18
|
+
* @returns Axle at index.
|
|
19
|
+
*/
|
|
20
|
+
get_axle(axle_index: number): AxleRecord;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=AxleManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AxleManager.d.ts","sourceRoot":"","sources":["../../../../src/core/physics/transports/AxleManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AAEzE;;GAEG;AACH,qBAAa,WAAW;IAEpB,KAAK,EAAE,UAAU,EAAE,CAAA;IAEnB;;OAEG;gBACS,cAAc,EAAE,eAAe;IAc3C;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAK9B;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU;CAI3C"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AxleManager = void 0;
|
|
4
|
+
const WireFlags_js_1 = require("../../contracts/WireFlags.js");
|
|
5
|
+
const AxleRecord_js_1 = require("./AxleRecord.js");
|
|
6
|
+
/**
|
|
7
|
+
* Ordered axle list for a transport.
|
|
8
|
+
*/
|
|
9
|
+
class AxleManager {
|
|
10
|
+
axles;
|
|
11
|
+
/**
|
|
12
|
+
* @param transport_data - Raw transport JSON.
|
|
13
|
+
*/
|
|
14
|
+
constructor(transport_data) {
|
|
15
|
+
const axles_data = transport_data[WireFlags_js_1.WIRE_FLAGS.AXLE_LIST];
|
|
16
|
+
this.axles = [];
|
|
17
|
+
if (!Array.isArray(axles_data)) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
for (const axle_data of axles_data) {
|
|
21
|
+
this.axles.push(new AxleRecord_js_1.AxleRecord(axle_data));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* @returns Axle index list [0..n-1].
|
|
26
|
+
*/
|
|
27
|
+
list_axles_indexes() {
|
|
28
|
+
return this.axles.map((_axle, index) => index);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* @param axle_index - Zero-based axle index.
|
|
32
|
+
* @returns Axle at index.
|
|
33
|
+
*/
|
|
34
|
+
get_axle(axle_index) {
|
|
35
|
+
return this.axles[axle_index];
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.AxleManager = AxleManager;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Single axle geometry and capacity from wire JSON.
|
|
3
|
+
*/
|
|
4
|
+
export declare class AxleRecord {
|
|
5
|
+
distance_from_previous_axle: number;
|
|
6
|
+
max_supported_weight: number;
|
|
7
|
+
sequence_index: number;
|
|
8
|
+
dnit_weight_limit: number;
|
|
9
|
+
tare: number;
|
|
10
|
+
loaded_weight: number;
|
|
11
|
+
is_connected_to: number | null;
|
|
12
|
+
/**
|
|
13
|
+
* @param axle_data - Raw axle object from transport JSON.
|
|
14
|
+
*/
|
|
15
|
+
constructor(axle_data: Record<string, unknown>);
|
|
16
|
+
/**
|
|
17
|
+
* @returns Shallow copy of axle wire fields.
|
|
18
|
+
*/
|
|
19
|
+
to_wire(): Record<string, unknown>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=AxleRecord.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AxleRecord.d.ts","sourceRoot":"","sources":["../../../../src/core/physics/transports/AxleRecord.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,qBAAa,UAAU;IAEnB,2BAA2B,EAAE,MAAM,CAAA;IACnC,oBAAoB,EAAE,MAAM,CAAA;IAC5B,cAAc,EAAE,MAAM,CAAA;IACtB,iBAAiB,EAAE,MAAM,CAAA;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAE9B;;OAEG;gBACS,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAW9C;;OAEG;IACH,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAWrC"}
|