Skip to content
Snippets Groups Projects
Commit 691f3295 authored by Jano Hendriks's avatar Jano Hendriks
Browse files

Add packing functions for Bob Box

parent 1139ae37
Branches
Tags v1.125.0
Loading
package bob_box_utils
import "sort"
type ParcelDimensions struct {
Height float64 `json:"height"`
Width float64 `json:"width"`
Length float64 `json:"length"`
}
// GetStackedParcelDimensions sorts the parcels so and stacks them
func GetStackedParcelDimensions(parcels []ParcelDimensions) ParcelDimensions {
var totalParcelHeight, maxParcelWidth, maxParcelLength float64
// Stack the parcels
for _, parcel := range parcels {
parcelHeight, parcelWidth, parcelLength := SortDimensionsInIncreasingOrder(parcel.Height, parcel.Width, parcel.Length)
// To stack, sum all the heights
totalParcelHeight += parcelHeight
// Get the max width
if parcelWidth > maxParcelWidth {
maxParcelWidth = parcelWidth
}
//Get the max length
if parcelLength > maxParcelLength {
maxParcelLength = parcelLength
}
}
return ParcelDimensions{totalParcelHeight, maxParcelWidth, maxParcelLength}
}
// SortDimensionsInIncreasingOrder sorts the given dimensions in increasing order
func SortDimensionsInIncreasingOrder(dim1, dim2, dim3 float64) (float64, float64, float64) {
dims := []float64{dim1, dim2, dim3}
sort.Float64s(dims)
return dims[0], dims[1], dims[2]
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment