@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,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AllocatedItemManager = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Items allocated inside one container sequence.
|
|
6
|
+
*/
|
|
7
|
+
class AllocatedItemManager {
|
|
8
|
+
templates;
|
|
9
|
+
items = [];
|
|
10
|
+
/**
|
|
11
|
+
* @param templates - Item templates for this container.
|
|
12
|
+
*/
|
|
13
|
+
constructor(templates) {
|
|
14
|
+
this.templates = templates;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* @param items - Items to add.
|
|
18
|
+
*/
|
|
19
|
+
add_allocated_items(items) {
|
|
20
|
+
this.items.push(...items);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* @returns Item count.
|
|
24
|
+
*/
|
|
25
|
+
count_items() {
|
|
26
|
+
return this.items.length;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* @returns Item indexes.
|
|
30
|
+
*/
|
|
31
|
+
list_item_indexes() {
|
|
32
|
+
return this.items.map((_item, index) => index);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* @param item_index - Item index.
|
|
36
|
+
* @returns Item instance.
|
|
37
|
+
*/
|
|
38
|
+
get_item(item_index) {
|
|
39
|
+
return this.items[item_index];
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.AllocatedItemManager = AllocatedItemManager;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { CenterOfMass } from './CenterOfMass.js';
|
|
2
|
+
import type { ChassiForces } from '../models/ChassiForces.js';
|
|
3
|
+
type ChassiForceSolver = {
|
|
4
|
+
calculate_chassi_forces_with_load_center_of_mass: (center_of_mass_by_grouper: Record<number, CenterOfMass>) => ChassiForces;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* @param solver - Vehicle model that resolves chassis forces from center of mass.
|
|
8
|
+
* @returns Bound solver callback for calculate_chassi_forces_from_multi.
|
|
9
|
+
*/
|
|
10
|
+
export declare function bind_chassi_solver(solver: ChassiForceSolver): (center_of_mass_by_grouper: Record<number, CenterOfMass>) => ChassiForces;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=BindChassiSolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BindChassiSolver.d.ts","sourceRoot":"","sources":["../../../../src/core/physics/items/BindChassiSolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAE7D,KAAK,iBAAiB,GAAG;IACrB,gDAAgD,EAAE,CAC9C,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,KACtD,YAAY,CAAA;CACpB,CAAA;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,GAAG,CAC3D,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,KACtD,YAAY,CAShB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.bind_chassi_solver = bind_chassi_solver;
|
|
4
|
+
/**
|
|
5
|
+
* @param solver - Vehicle model that resolves chassis forces from center of mass.
|
|
6
|
+
* @returns Bound solver callback for calculate_chassi_forces_from_multi.
|
|
7
|
+
*/
|
|
8
|
+
function bind_chassi_solver(solver) {
|
|
9
|
+
function solve_chassi_forces_from_center_of_mass(center_of_mass_by_grouper) {
|
|
10
|
+
return solver.calculate_chassi_forces_with_load_center_of_mass(center_of_mass_by_grouper);
|
|
11
|
+
}
|
|
12
|
+
return solve_chassi_forces_from_center_of_mass;
|
|
13
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { AllocatedItemManager } from './AllocatedItemManager.js';
|
|
2
|
+
/**
|
|
3
|
+
* Center of mass for a load grouper (longitudinal z in chassis coordinates).
|
|
4
|
+
*/
|
|
5
|
+
export declare class CenterOfMass {
|
|
6
|
+
mass: number;
|
|
7
|
+
z: number;
|
|
8
|
+
/**
|
|
9
|
+
* Computes center of mass from allocated items.
|
|
10
|
+
* @param allocated_items - Item manager for one grouper.
|
|
11
|
+
*/
|
|
12
|
+
set_center_of_mass_with_allocated_items(allocated_items: AllocatedItemManager): void;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=CenterOfMass.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CenterOfMass.d.ts","sourceRoot":"","sources":["../../../../src/core/physics/items/CenterOfMass.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAErE;;GAEG;AACH,qBAAa,YAAY;IAErB,IAAI,SAAI;IACR,CAAC,SAAI;IAEL;;;OAGG;IACH,uCAAuC,CAAC,eAAe,EAAE,oBAAoB,GAAG,IAAI;CAgBvF"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CenterOfMass = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Center of mass for a load grouper (longitudinal z in chassis coordinates).
|
|
6
|
+
*/
|
|
7
|
+
class CenterOfMass {
|
|
8
|
+
mass = 0;
|
|
9
|
+
z = 0;
|
|
10
|
+
/**
|
|
11
|
+
* Computes center of mass from allocated items.
|
|
12
|
+
* @param allocated_items - Item manager for one grouper.
|
|
13
|
+
*/
|
|
14
|
+
set_center_of_mass_with_allocated_items(allocated_items) {
|
|
15
|
+
let accumulated_weighted_positions = 0;
|
|
16
|
+
this.mass = 0;
|
|
17
|
+
for (const item_index of allocated_items.list_item_indexes()) {
|
|
18
|
+
const item = allocated_items.get_item(item_index);
|
|
19
|
+
accumulated_weighted_positions += item.center_of_gravity_z * item.weight;
|
|
20
|
+
this.mass += item.weight;
|
|
21
|
+
}
|
|
22
|
+
if (this.mass === 0) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
this.z = accumulated_weighted_positions / this.mass;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.CenterOfMass = CenterOfMass;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Transport } from '../transports/Transport.js';
|
|
2
|
+
import { MergedContainers } from '../transports/MergedContainers.js';
|
|
3
|
+
import { CenterOfMass } from './CenterOfMass.js';
|
|
4
|
+
import type { MultiContainerAllocatedItems } from './MultiContainerAllocatedItems.js';
|
|
5
|
+
import type { ChassiForces } from '../models/ChassiForces.js';
|
|
6
|
+
/**
|
|
7
|
+
* @param multi_items - Allocated items across containers.
|
|
8
|
+
* @param merged - Merged container layout.
|
|
9
|
+
* @returns Center of mass map keyed by grouper id.
|
|
10
|
+
*/
|
|
11
|
+
export declare function compute_center_of_mass_by_grouper(multi_items: MultiContainerAllocatedItems, merged: MergedContainers): Record<number, CenterOfMass>;
|
|
12
|
+
/**
|
|
13
|
+
* @param transport - Parsed transport.
|
|
14
|
+
* @param multi_items - Allocated items.
|
|
15
|
+
* @param solve - Model solver from CM map.
|
|
16
|
+
* @returns Chassis forces.
|
|
17
|
+
*/
|
|
18
|
+
export declare function calculate_chassi_forces_from_multi(transport: Transport, multi_items: MultiContainerAllocatedItems, solve: (center_of_mass_by_grouper: Record<number, CenterOfMass>) => ChassiForces): ChassiForces;
|
|
19
|
+
//# sourceMappingURL=ComputeGrouperCenterOfMass.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ComputeGrouperCenterOfMass.d.ts","sourceRoot":"","sources":["../../../../src/core/physics/items/ComputeGrouperCenterOfMass.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAA;AACrF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAE7D;;;;GAIG;AACH,wBAAgB,iCAAiC,CAC7C,WAAW,EAAE,4BAA4B,EACzC,MAAM,EAAE,gBAAgB,GACzB,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAY9B;AAED;;;;;GAKG;AACH,wBAAgB,kCAAkC,CAC9C,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,4BAA4B,EACzC,KAAK,EAAE,CAAC,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,YAAY,GACjF,YAAY,CAKd"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.compute_center_of_mass_by_grouper = compute_center_of_mass_by_grouper;
|
|
4
|
+
exports.calculate_chassi_forces_from_multi = calculate_chassi_forces_from_multi;
|
|
5
|
+
const MergedContainers_js_1 = require("../transports/MergedContainers.js");
|
|
6
|
+
const CenterOfMass_js_1 = require("./CenterOfMass.js");
|
|
7
|
+
/**
|
|
8
|
+
* @param multi_items - Allocated items across containers.
|
|
9
|
+
* @param merged - Merged container layout.
|
|
10
|
+
* @returns Center of mass map keyed by grouper id.
|
|
11
|
+
*/
|
|
12
|
+
function compute_center_of_mass_by_grouper(multi_items, merged) {
|
|
13
|
+
multi_items.merge_allocated_items(merged);
|
|
14
|
+
const result = {};
|
|
15
|
+
for (const grouper of merged.list_grouper_indexes()) {
|
|
16
|
+
const center_of_mass = new CenterOfMass_js_1.CenterOfMass();
|
|
17
|
+
center_of_mass.set_center_of_mass_with_allocated_items(multi_items.get_allocated_items_by_grouper_index(grouper));
|
|
18
|
+
result[grouper] = center_of_mass;
|
|
19
|
+
}
|
|
20
|
+
return result;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* @param transport - Parsed transport.
|
|
24
|
+
* @param multi_items - Allocated items.
|
|
25
|
+
* @param solve - Model solver from CM map.
|
|
26
|
+
* @returns Chassis forces.
|
|
27
|
+
*/
|
|
28
|
+
function calculate_chassi_forces_from_multi(transport, multi_items, solve) {
|
|
29
|
+
const merged = new MergedContainers_js_1.MergedContainers(transport);
|
|
30
|
+
const center_of_mass_by_grouper = compute_center_of_mass_by_grouper(multi_items, merged);
|
|
31
|
+
return solve(center_of_mass_by_grouper);
|
|
32
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { RotationCode } from '../../contracts/RotationEnum.js';
|
|
2
|
+
/**
|
|
3
|
+
* Item dimensions and weights keyed by template index.
|
|
4
|
+
*/
|
|
5
|
+
export declare class ItemTemplates {
|
|
6
|
+
ids: string[];
|
|
7
|
+
weights: number[];
|
|
8
|
+
lengths: number[];
|
|
9
|
+
widths: number[];
|
|
10
|
+
heights: number[];
|
|
11
|
+
private dimensions;
|
|
12
|
+
/**
|
|
13
|
+
* @param item_id - Template id string.
|
|
14
|
+
* @returns Template index.
|
|
15
|
+
*/
|
|
16
|
+
index_of(item_id: string): number;
|
|
17
|
+
/**
|
|
18
|
+
* @param item_data - Ms-faixas or math input item definition.
|
|
19
|
+
*/
|
|
20
|
+
add_template_from_item_data(item_data: Record<string, unknown>): void;
|
|
21
|
+
/**
|
|
22
|
+
* @param template_index - Template index.
|
|
23
|
+
* @param rotation - Rotation code.
|
|
24
|
+
* @returns Length along chassis z for rotation.
|
|
25
|
+
*/
|
|
26
|
+
get_length(template_index: number, rotation?: RotationCode): number;
|
|
27
|
+
/**
|
|
28
|
+
* @param item_data - Math input item row.
|
|
29
|
+
*/
|
|
30
|
+
add_template_from_math_item(item_data: Record<string, unknown>): void;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=ItemTemplates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ItemTemplates.d.ts","sourceRoot":"","sources":["../../../../src/core/physics/items/ItemTemplates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAKnE;;GAEG;AACH,qBAAa,aAAa;IAEtB,GAAG,EAAE,MAAM,EAAE,CAAK;IAClB,OAAO,EAAE,MAAM,EAAE,CAAK;IACtB,OAAO,EAAE,MAAM,EAAE,CAAK;IACtB,MAAM,EAAE,MAAM,EAAE,CAAK;IACrB,OAAO,EAAE,MAAM,EAAE,CAAK;IACtB,OAAO,CAAC,UAAU,CAAiC;IAEnD;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAUjC;;OAEG;IACH,2BAA2B,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAcrE;;;;OAIG;IACH,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,GAAE,YAA4B,GAAG,MAAM;IAKlF;;OAEG;IACH,2BAA2B,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAIxE"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ItemTemplates = void 0;
|
|
4
|
+
const RotationEnum_js_1 = require("../../contracts/RotationEnum.js");
|
|
5
|
+
const RotationTransforms_js_1 = require("./RotationTransforms.js");
|
|
6
|
+
const UnknownItemIdError_js_1 = require("./UnknownItemIdError.js");
|
|
7
|
+
/**
|
|
8
|
+
* Item dimensions and weights keyed by template index.
|
|
9
|
+
*/
|
|
10
|
+
class ItemTemplates {
|
|
11
|
+
ids = [];
|
|
12
|
+
weights = [];
|
|
13
|
+
lengths = [];
|
|
14
|
+
widths = [];
|
|
15
|
+
heights = [];
|
|
16
|
+
dimensions = [];
|
|
17
|
+
/**
|
|
18
|
+
* @param item_id - Template id string.
|
|
19
|
+
* @returns Template index.
|
|
20
|
+
*/
|
|
21
|
+
index_of(item_id) {
|
|
22
|
+
const index = this.ids.indexOf(item_id);
|
|
23
|
+
if (index < 0) {
|
|
24
|
+
throw new UnknownItemIdError_js_1.UnknownItemIdError(item_id);
|
|
25
|
+
}
|
|
26
|
+
return index;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* @param item_data - Ms-faixas or math input item definition.
|
|
30
|
+
*/
|
|
31
|
+
add_template_from_item_data(item_data) {
|
|
32
|
+
const id = String(item_data.id ?? item_data._id);
|
|
33
|
+
this.ids.push(id);
|
|
34
|
+
this.weights.push(Number(item_data.peso ?? item_data.weight ?? 0));
|
|
35
|
+
const width = Number(item_data.largura ?? item_data.width ?? 0);
|
|
36
|
+
const length = Number(item_data.comprimento ?? item_data.length ?? 0);
|
|
37
|
+
const height = Number(item_data.altura ?? item_data.height ?? 0);
|
|
38
|
+
this.widths.push(width);
|
|
39
|
+
this.lengths.push(length);
|
|
40
|
+
this.heights.push(height);
|
|
41
|
+
this.dimensions.push([width, length, height]);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* @param template_index - Template index.
|
|
45
|
+
* @param rotation - Rotation code.
|
|
46
|
+
* @returns Length along chassis z for rotation.
|
|
47
|
+
*/
|
|
48
|
+
get_length(template_index, rotation = RotationEnum_js_1.ROTATION.POS1) {
|
|
49
|
+
return (0, RotationTransforms_js_1.rotate_dimensions)(rotation, this.dimensions[template_index])[1];
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* @param item_data - Math input item row.
|
|
53
|
+
*/
|
|
54
|
+
add_template_from_math_item(item_data) {
|
|
55
|
+
this.add_template_from_item_data(item_data);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.ItemTemplates = ItemTemplates;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { MergedContainers } from '../transports/MergedContainers.js';
|
|
2
|
+
import { AllocatedItemManager } from './AllocatedItemManager.js';
|
|
3
|
+
import type { ItemTemplates } from './ItemTemplates.js';
|
|
4
|
+
/**
|
|
5
|
+
* Allocated items grouped by container sequence and merged by grouper.
|
|
6
|
+
*/
|
|
7
|
+
export declare class MultiContainerAllocatedItems {
|
|
8
|
+
allocated_items_by_sequence_index: Record<number, AllocatedItemManager>;
|
|
9
|
+
allocated_items_by_grouper_index: Record<number, AllocatedItemManager>;
|
|
10
|
+
/**
|
|
11
|
+
* @param allocated_items_by_sequence_index - Items per container sequence.
|
|
12
|
+
*/
|
|
13
|
+
constructor(allocated_items_by_sequence_index: Record<number, AllocatedItemManager>);
|
|
14
|
+
/**
|
|
15
|
+
* @param sequence_index - Container sequence id.
|
|
16
|
+
* @returns Manager for sequence.
|
|
17
|
+
*/
|
|
18
|
+
get_allocated_items_by_sequence_index(sequence_index: number): AllocatedItemManager;
|
|
19
|
+
/**
|
|
20
|
+
* @param grouper_index - Grouper id.
|
|
21
|
+
* @returns Manager for grouper.
|
|
22
|
+
*/
|
|
23
|
+
get_allocated_items_by_grouper_index(grouper_index: number): AllocatedItemManager;
|
|
24
|
+
/**
|
|
25
|
+
* @param grouper_index_list - Grouper ids to initialize.
|
|
26
|
+
*/
|
|
27
|
+
create_allocated_items_by_grouper(grouper_index_list: number[]): void;
|
|
28
|
+
/**
|
|
29
|
+
* @param merged_containers - Merged container geometry.
|
|
30
|
+
*/
|
|
31
|
+
merge_allocated_items(merged_containers: MergedContainers): void;
|
|
32
|
+
/**
|
|
33
|
+
* @returns Shared item templates.
|
|
34
|
+
*/
|
|
35
|
+
get_item_templates(): ItemTemplates;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=MultiContainerAllocatedItems.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultiContainerAllocatedItems.d.ts","sourceRoot":"","sources":["../../../../src/core/physics/items/MultiContainerAllocatedItems.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AAEzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEvD;;GAEG;AACH,qBAAa,4BAA4B;IAErC,iCAAiC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;IACvE,gCAAgC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAK;IAE3E;;OAEG;gBACS,iCAAiC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC;IAKnF;;;OAGG;IACH,qCAAqC,CAAC,cAAc,EAAE,MAAM,GAAG,oBAAoB;IAKnF;;;OAGG;IACH,oCAAoC,CAAC,aAAa,EAAE,MAAM,GAAG,oBAAoB;IAKjF;;OAEG;IACH,iCAAiC,CAAC,kBAAkB,EAAE,MAAM,EAAE,GAAG,IAAI;IASrE;;OAEG;IACH,qBAAqB,CAAC,iBAAiB,EAAE,gBAAgB,GAAG,IAAI;IAahE;;OAEG;IACH,kBAAkB,IAAI,aAAa;CAMtC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MultiContainerAllocatedItems = void 0;
|
|
4
|
+
const AllocatedItem_js_1 = require("./AllocatedItem.js");
|
|
5
|
+
const AllocatedItemManager_js_1 = require("./AllocatedItemManager.js");
|
|
6
|
+
/**
|
|
7
|
+
* Allocated items grouped by container sequence and merged by grouper.
|
|
8
|
+
*/
|
|
9
|
+
class MultiContainerAllocatedItems {
|
|
10
|
+
allocated_items_by_sequence_index;
|
|
11
|
+
allocated_items_by_grouper_index = {};
|
|
12
|
+
/**
|
|
13
|
+
* @param allocated_items_by_sequence_index - Items per container sequence.
|
|
14
|
+
*/
|
|
15
|
+
constructor(allocated_items_by_sequence_index) {
|
|
16
|
+
this.allocated_items_by_sequence_index = allocated_items_by_sequence_index;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* @param sequence_index - Container sequence id.
|
|
20
|
+
* @returns Manager for sequence.
|
|
21
|
+
*/
|
|
22
|
+
get_allocated_items_by_sequence_index(sequence_index) {
|
|
23
|
+
return this.allocated_items_by_sequence_index[sequence_index];
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* @param grouper_index - Grouper id.
|
|
27
|
+
* @returns Manager for grouper.
|
|
28
|
+
*/
|
|
29
|
+
get_allocated_items_by_grouper_index(grouper_index) {
|
|
30
|
+
return this.allocated_items_by_grouper_index[grouper_index];
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* @param grouper_index_list - Grouper ids to initialize.
|
|
34
|
+
*/
|
|
35
|
+
create_allocated_items_by_grouper(grouper_index_list) {
|
|
36
|
+
const templates = this.get_item_templates();
|
|
37
|
+
for (const grouper_index of grouper_index_list) {
|
|
38
|
+
this.allocated_items_by_grouper_index[grouper_index] = new AllocatedItemManager_js_1.AllocatedItemManager(templates);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* @param merged_containers - Merged container geometry.
|
|
43
|
+
*/
|
|
44
|
+
merge_allocated_items(merged_containers) {
|
|
45
|
+
if (Object.keys(this.allocated_items_by_grouper_index).length > 0) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
this.create_allocated_items_by_grouper(merged_containers.list_grouper_indexes());
|
|
49
|
+
for (const grouper of merged_containers.list_grouper_indexes()) {
|
|
50
|
+
merge_grouper_items(this, merged_containers, grouper);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* @returns Shared item templates.
|
|
55
|
+
*/
|
|
56
|
+
get_item_templates() {
|
|
57
|
+
const keys = Object.keys(this.allocated_items_by_sequence_index);
|
|
58
|
+
const first_key = Number(keys[0]);
|
|
59
|
+
return this.allocated_items_by_sequence_index[first_key].templates;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
exports.MultiContainerAllocatedItems = MultiContainerAllocatedItems;
|
|
63
|
+
/**
|
|
64
|
+
* @param multi - Multi-container item holder.
|
|
65
|
+
* @param merged - Merged containers.
|
|
66
|
+
* @param grouper - Grouper id.
|
|
67
|
+
*/
|
|
68
|
+
function merge_grouper_items(multi, merged, grouper) {
|
|
69
|
+
const grouped = merged.get_container_by_grouper_index(grouper);
|
|
70
|
+
let last_end = 0;
|
|
71
|
+
for (const sequence_index of grouped.list_containers_sequence_indexes()) {
|
|
72
|
+
const sequence_items = multi.get_allocated_items_by_sequence_index(sequence_index);
|
|
73
|
+
const grouper_items = multi.get_allocated_items_by_grouper_index(grouper);
|
|
74
|
+
for (const item_index of sequence_items.list_item_indexes()) {
|
|
75
|
+
const source = sequence_items.get_item(item_index);
|
|
76
|
+
const item = clone_allocated_item(source);
|
|
77
|
+
item.zi += last_end;
|
|
78
|
+
grouper_items.add_allocated_items([item]);
|
|
79
|
+
}
|
|
80
|
+
const container = grouped.get_container_by_sequence_index(sequence_index);
|
|
81
|
+
last_end += container.length;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* @param source - Sequence-level allocated item.
|
|
86
|
+
* @returns Copy safe to offset for grouper merge.
|
|
87
|
+
*/
|
|
88
|
+
function clone_allocated_item(source) {
|
|
89
|
+
const item = new AllocatedItem_js_1.AllocatedItem(source.templates, source.template_index);
|
|
90
|
+
item.xi = source.xi;
|
|
91
|
+
item.yi = source.yi;
|
|
92
|
+
item.zi = source.zi;
|
|
93
|
+
item.rotation = source.rotation;
|
|
94
|
+
return item;
|
|
95
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { RotationCode } from '../../contracts/RotationEnum.js';
|
|
2
|
+
/**
|
|
3
|
+
* @param rotation - Rotation code.
|
|
4
|
+
* @param dimensions - [width, length, height].
|
|
5
|
+
* @returns Rotated [width, length, height].
|
|
6
|
+
*/
|
|
7
|
+
export declare function rotate_dimensions(rotation: RotationCode, dimensions: [number, number, number]): [number, number, number];
|
|
8
|
+
//# sourceMappingURL=RotationTransforms.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RotationTransforms.d.ts","sourceRoot":"","sources":["../../../../src/core/physics/items/RotationTransforms.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAgBnE;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC7B,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GACrC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAI1B"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.rotate_dimensions = rotate_dimensions;
|
|
4
|
+
const RotationEnum_js_1 = require("../../contracts/RotationEnum.js");
|
|
5
|
+
const WIDTH = 0;
|
|
6
|
+
const LENGTH = 1;
|
|
7
|
+
const HEIGHT = 2;
|
|
8
|
+
const ROTATION_DIM_INDEX = {
|
|
9
|
+
[RotationEnum_js_1.ROTATION.POS1]: [WIDTH, LENGTH, HEIGHT],
|
|
10
|
+
[RotationEnum_js_1.ROTATION.POS2]: [WIDTH, HEIGHT, LENGTH],
|
|
11
|
+
[RotationEnum_js_1.ROTATION.POS3]: [HEIGHT, LENGTH, WIDTH],
|
|
12
|
+
[RotationEnum_js_1.ROTATION.POS4]: [LENGTH, WIDTH, HEIGHT],
|
|
13
|
+
[RotationEnum_js_1.ROTATION.POS5]: [HEIGHT, WIDTH, LENGTH],
|
|
14
|
+
[RotationEnum_js_1.ROTATION.POS6]: [LENGTH, HEIGHT, WIDTH]
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* @param rotation - Rotation code.
|
|
18
|
+
* @param dimensions - [width, length, height].
|
|
19
|
+
* @returns Rotated [width, length, height].
|
|
20
|
+
*/
|
|
21
|
+
function rotate_dimensions(rotation, dimensions) {
|
|
22
|
+
const index = ROTATION_DIM_INDEX[rotation];
|
|
23
|
+
return [dimensions[index[0]], dimensions[index[1]], dimensions[index[2]]];
|
|
24
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Raised when an allocated item references a template id that was not registered.
|
|
3
|
+
*/
|
|
4
|
+
export declare class UnknownItemIdError extends Error {
|
|
5
|
+
/**
|
|
6
|
+
* @param item_id - Missing template id.
|
|
7
|
+
*/
|
|
8
|
+
constructor(item_id: string);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=UnknownItemIdError.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UnknownItemIdError.d.ts","sourceRoot":"","sources":["../../../../src/core/physics/items/UnknownItemIdError.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;IAEzC;;OAEG;gBACS,OAAO,EAAE,MAAM;CAK9B"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UnknownItemIdError = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Raised when an allocated item references a template id that was not registered.
|
|
6
|
+
*/
|
|
7
|
+
class UnknownItemIdError extends Error {
|
|
8
|
+
/**
|
|
9
|
+
* @param item_id - Missing template id.
|
|
10
|
+
*/
|
|
11
|
+
constructor(item_id) {
|
|
12
|
+
super(`Unknown item id ${item_id}`);
|
|
13
|
+
this.name = 'UnknownItemIdError';
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.UnknownItemIdError = UnknownItemIdError;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { TransportRecord } from '../../contracts/TransportRecord.js';
|
|
2
|
+
import { Transport } from '../transports/Transport.js';
|
|
3
|
+
import { CenterOfMass } from '../items/CenterOfMass.js';
|
|
4
|
+
import type { AllocatedItemManager } from '../items/AllocatedItemManager.js';
|
|
5
|
+
import { ChassiForces } from './ChassiForces.js';
|
|
6
|
+
/**
|
|
7
|
+
* Dispatches to vehicle-specific axle weight models.
|
|
8
|
+
*/
|
|
9
|
+
export declare class AxleWeightModel {
|
|
10
|
+
private readonly model;
|
|
11
|
+
private readonly transport;
|
|
12
|
+
/**
|
|
13
|
+
* @param transport_or_data - Parsed transport or raw wire dict.
|
|
14
|
+
*/
|
|
15
|
+
constructor(transport_or_data: Transport | TransportRecord);
|
|
16
|
+
/**
|
|
17
|
+
* @param center_of_mass_by_grouper - Precomputed CM per grouper.
|
|
18
|
+
* @returns Chassis force result.
|
|
19
|
+
*/
|
|
20
|
+
calculate_chassi_forces_with_load_center_of_mass(center_of_mass_by_grouper: Record<number, CenterOfMass>): ChassiForces;
|
|
21
|
+
/**
|
|
22
|
+
* @param allocated_by_sequence - Items per container sequence index.
|
|
23
|
+
* @returns Loaded cargo per axle.
|
|
24
|
+
*/
|
|
25
|
+
calculate_weight_on_axles(allocated_by_sequence: Record<number, AllocatedItemManager>): number[];
|
|
26
|
+
/**
|
|
27
|
+
* @param allocated_by_sequence - Items per container sequence index.
|
|
28
|
+
* @returns Utilization percentage per axle.
|
|
29
|
+
*/
|
|
30
|
+
calculate_percentages_on_axles(allocated_by_sequence: Record<number, AllocatedItemManager>): number[];
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=AxleWeightModel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AxleWeightModel.d.ts","sourceRoot":"","sources":["../../../../src/core/physics/models/AxleWeightModel.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAMtD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAA;AAE5E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAKhD;;GAEG;AACH,qBAAa,eAAe;IAExB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IAErC;;OAEG;gBACS,iBAAiB,EAAE,SAAS,GAAG,eAAe;IAQ1D;;;OAGG;IACH,gDAAgD,CAC5C,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GACxD,YAAY;IAMf;;;OAGG;IACH,yBAAyB,CACrB,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,GAC5D,MAAM,EAAE;IAMX;;;OAGG;IACH,8BAA8B,CAC1B,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,GAC5D,MAAM,EAAE;CAMd"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AxleWeightModel = void 0;
|
|
4
|
+
const VehicleType_js_1 = require("../../contracts/VehicleType.js");
|
|
5
|
+
const Transport_js_1 = require("../transports/Transport.js");
|
|
6
|
+
const BitremModel_js_1 = require("./BitremModel.js");
|
|
7
|
+
const RodotremModel_js_1 = require("./RodotremModel.js");
|
|
8
|
+
const VanderleiaModel_js_1 = require("./VanderleiaModel.js");
|
|
9
|
+
const SimpleTruckModel_js_1 = require("./SimpleTruckModel.js");
|
|
10
|
+
const SemiReboqueModel_js_1 = require("./SemiReboqueModel.js");
|
|
11
|
+
const MultiContainerAllocatedItems_js_1 = require("../items/MultiContainerAllocatedItems.js");
|
|
12
|
+
const PercentageOnAxlesCalculator_js_1 = require("./PercentageOnAxlesCalculator.js");
|
|
13
|
+
const UnsupportedVehicleTypeError_js_1 = require("./UnsupportedVehicleTypeError.js");
|
|
14
|
+
/**
|
|
15
|
+
* Dispatches to vehicle-specific axle weight models.
|
|
16
|
+
*/
|
|
17
|
+
class AxleWeightModel {
|
|
18
|
+
model;
|
|
19
|
+
transport;
|
|
20
|
+
/**
|
|
21
|
+
* @param transport_or_data - Parsed transport or raw wire dict.
|
|
22
|
+
*/
|
|
23
|
+
constructor(transport_or_data) {
|
|
24
|
+
this.transport = transport_or_data instanceof Transport_js_1.Transport
|
|
25
|
+
? transport_or_data
|
|
26
|
+
: new Transport_js_1.Transport(transport_or_data);
|
|
27
|
+
this.model = select_vehicle_model(this.transport);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* @param center_of_mass_by_grouper - Precomputed CM per grouper.
|
|
31
|
+
* @returns Chassis force result.
|
|
32
|
+
*/
|
|
33
|
+
calculate_chassi_forces_with_load_center_of_mass(center_of_mass_by_grouper) {
|
|
34
|
+
return this.model.calculate_chassi_forces_with_load_center_of_mass(center_of_mass_by_grouper);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* @param allocated_by_sequence - Items per container sequence index.
|
|
38
|
+
* @returns Loaded cargo per axle.
|
|
39
|
+
*/
|
|
40
|
+
calculate_weight_on_axles(allocated_by_sequence) {
|
|
41
|
+
const multi = new MultiContainerAllocatedItems_js_1.MultiContainerAllocatedItems(allocated_by_sequence);
|
|
42
|
+
return this.model.calculate_weight_on_axles(multi);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* @param allocated_by_sequence - Items per container sequence index.
|
|
46
|
+
* @returns Utilization percentage per axle.
|
|
47
|
+
*/
|
|
48
|
+
calculate_percentages_on_axles(allocated_by_sequence) {
|
|
49
|
+
const weights = this.calculate_weight_on_axles(allocated_by_sequence);
|
|
50
|
+
return new PercentageOnAxlesCalculator_js_1.PercentageOnAxlesCalculator(this.transport)
|
|
51
|
+
.weight_on_axles_to_percentages(weights);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.AxleWeightModel = AxleWeightModel;
|
|
55
|
+
/**
|
|
56
|
+
* @param transport - Parsed transport.
|
|
57
|
+
* @returns Vehicle model implementation.
|
|
58
|
+
*/
|
|
59
|
+
function select_vehicle_model(transport) {
|
|
60
|
+
const type = transport.vehicle_type;
|
|
61
|
+
if (type === VehicleType_js_1.VEHICLE_TYPE.SEMIREBOQUE || type === VehicleType_js_1.VEHICLE_TYPE.REBAIXADO) {
|
|
62
|
+
return new SemiReboqueModel_js_1.SemiReboqueModel(transport);
|
|
63
|
+
}
|
|
64
|
+
if (type === VehicleType_js_1.VEHICLE_TYPE.BITREM) {
|
|
65
|
+
return new BitremModel_js_1.BitremModel(transport);
|
|
66
|
+
}
|
|
67
|
+
if (type === VehicleType_js_1.VEHICLE_TYPE.RODOTREM) {
|
|
68
|
+
return new RodotremModel_js_1.RodotremModel(transport);
|
|
69
|
+
}
|
|
70
|
+
if (type === VehicleType_js_1.VEHICLE_TYPE.VANDERLEIA) {
|
|
71
|
+
return new VanderleiaModel_js_1.VanderleiaModel(transport);
|
|
72
|
+
}
|
|
73
|
+
if (type === VehicleType_js_1.VEHICLE_TYPE.CAMINHAO || type === VehicleType_js_1.VEHICLE_TYPE.VUC) {
|
|
74
|
+
return new SimpleTruckModel_js_1.SimpleTruckModel(transport);
|
|
75
|
+
}
|
|
76
|
+
throw new UnsupportedVehicleTypeError_js_1.UnsupportedVehicleTypeError(type);
|
|
77
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Transport } from '../transports/Transport.js';
|
|
2
|
+
import { CenterOfMass } from '../items/CenterOfMass.js';
|
|
3
|
+
import { ChassiForces } from './ChassiForces.js';
|
|
4
|
+
import { SimpleTruckBase } from './SimpleTruckBase.js';
|
|
5
|
+
/**
|
|
6
|
+
* Bitruck caminhão: equivalent 2-axle truck + front axle pair split.
|
|
7
|
+
*/
|
|
8
|
+
export declare class BiTruckModel {
|
|
9
|
+
private readonly chassi;
|
|
10
|
+
readonly equivalent_truck: SimpleTruckBase;
|
|
11
|
+
/**
|
|
12
|
+
* @param transport - Parsed transport.
|
|
13
|
+
*/
|
|
14
|
+
constructor(transport: Transport);
|
|
15
|
+
/**
|
|
16
|
+
* @param center_of_mass_by_grouper - CM per grouper.
|
|
17
|
+
* @returns Three-axle forces.
|
|
18
|
+
*/
|
|
19
|
+
calculate_chassi_forces_with_load_center_of_mass(center_of_mass_by_grouper: Record<number, CenterOfMass>): ChassiForces;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=BiTruckModel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BiTruckModel.d.ts","sourceRoot":"","sources":["../../../../src/core/physics/models/BiTruckModel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAG3D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAGtD;;GAEG;AACH,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,QAAQ,CAAC,gBAAgB,EAAE,eAAe,CAAA;IAE1C;;OAEG;gBACS,SAAS,EAAE,SAAS;IAOhC;;;OAGG;IACH,gDAAgD,CAC5C,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GACxD,YAAY;CAclB"}
|