ExBoxPacker.Result.PackedBox (ExBoxPacker v0.2.0)

Copy Markdown View Source

A box together with the items packed into it, plus computed weight, space and utilisation accessors. Port of BoxPacker's PackedBox.

Summary

Types

t()

@type t() :: %ExBoxPacker.Result.PackedBox{
  box: ExBoxPacker.Box.t(),
  items: ExBoxPacker.Result.PackedItemList.t()
}

Functions

inner_volume(packed_box)

@spec inner_volume(t()) :: integer()

item_weight(packed_box)

@spec item_weight(t()) :: integer()

new(box, items)

remaining_depth(pb)

@spec remaining_depth(t()) :: integer()

remaining_length(pb)

@spec remaining_length(t()) :: integer()

remaining_weight(pb)

@spec remaining_weight(t()) :: integer()

remaining_width(pb)

@spec remaining_width(t()) :: integer()

unused_volume(pb)

@spec unused_volume(t()) :: integer()

used_depth(packed_box)

@spec used_depth(t()) :: integer()

used_length(packed_box)

@spec used_length(t()) :: integer()

used_volume(packed_box)

@spec used_volume(t()) :: integer()

used_width(packed_box)

@spec used_width(t()) :: integer()

validate(packed_box)

@spec validate(t()) :: :ok | {:error, term()}

Verify the packing is physically valid: every item is within the box bounds and no two items overlap. Returns :ok or {:error, reason}.

volume_utilisation(pb)

@spec volume_utilisation(t()) :: float()

weight(pb)

@spec weight(t()) :: integer()