Releases: dvdoug/BoxPacker
Releases · dvdoug/BoxPacker
v1.6.2
- Do a better job of packing identical items together (previously 2 distinct item types could be mixed if they had identical physical dimensions)
v2.4.1
- Used/remaining space calculations were sometimes offset by 90 degrees leading to confusing numbers
v1.6.1
- Used/remaining space calculations were sometimes offset by 90 degrees leading to confusing numbers
v1.6.0
API-compatible backport of 2.4.0 to the v1 branch. All features present except 3D packing.
All users of v1 are highly recommended to upgrade to v2 which removes the "keep flat" limitation from v1.
- Significant reworking of core packing logic to clarify concepts used and split out large functions into more readable pieces
- Added
getUsed[Width|Length|Depth]()
on PackedBox
es to allow for better visibility into space utilisation
- Added callback system for more complex constraints e.g. max number of hazardous items in a box. To take advantage of the additional flexibility, implement
BoxPacker\ConstrainedItem
rather than BoxPacker\Item
- A specific
ItemTooLargeException
exception is now thrown when an item cannot fit inside any boxes rather than a generic \RuntimeException
- Equal distribution of weight is now turned off when the number of boxes becomes large as it provides very little to no benefit at that scale and is slow to calculate
v2.4.0
- Reworking of core packing algorithm for better clarity on concepts
v2.3.2
- In some cases, complex user-added constraints via
BoxPacker\ConstrainedItem
were not being obeyed
- Test classes refactored to be autoloadable
- Some internal refactoring
v2.3.1
PackedBox->getUsedDepth()
could incorrectly return a value of 0 in some situations
v2.3.0
- Add callback system for more complex constraints e.g. max number of hazardous items in a box. To take advantage of the additional flexibility, implement
BoxPacker\ConstrainedItem
rather than BoxPacker\Item
- Minor refactoring
v2.2.1
- Added
getItem()
to ItemTooLargeException
to make it programmatically possible determine what the affected item is
v2.2.0
- The previous limitation that all items were packed flat has been removed
- A specific
ItemTooLargeException
exception is now thrown when an item cannot fit inside any boxes rather than a generic \RuntimeException