Expand description
Pack small rectangles into a larger one. This is useful for creating texture atlases for the efficient GPU rendering.
Usage example:
use rect_packer::Packer;
let config = rect_packer::Config {
width: 1024,
height: 1024,
border_padding: 5,
rectangle_padding: 10,
};
let rectangles = [(50, 70), (350, 210), (255, 410)];
let mut packer = Packer::new(config);
for &(width, height) in &rectangles {
if let Some(rect) = packer.pack(width, height, false) {
println!("Rectangle is at position ({}, {}) within the encompassing rectangle",
rect.x,
rect.y);
}
}
Structsยง
- Config
- Describes size and padding requirements of rectangle packing.
- Dense
Packer - Similar to
Packer
but does not add any padding between rectangles. - Packer
Packer
is the main structure in this crate. It holds packing context.- Rect
- Rectangle with integer coordinates.