Skip to content

Latest commit

 

History

History
47 lines (40 loc) · 1.02 KB

README.md

File metadata and controls

47 lines (40 loc) · 1.02 KB

example:

Random random = new Random(46);

int count = 3000;
int[] sizes = new int[count * 2];
for (int i = 0; i < count; i++) {
    int w;
    int h;
    if (i < 90) {
        // big rectangles
        w = (random.nextInt(120) + 1);
        h = (random.nextInt(120) + 1);
    } else {
        // small rectangles
        w = (random.nextInt(20) + 1);
        h = (random.nextInt(20) + 1);
    }
    sizes[i*2] = w;
    sizes[i*2 + 1] = h;
}
LMPacker packer = new LMPacker(sizes);

int width = 1024;
int height = 1024;

if (packer.buildCompact(width, height, 1)) {
    // rectangles have same order as input (sizes)
    // rectangle can be indentified by index
    List<Rect> rects = packer.getResult();
    // visualization
    // ...
} else {
    System.err.println("Could not to pack");
}

Atlas generated in 236 ms [compact mode]:

  • black - images
  • white - extensions
  • red - unused space

Atlas generated in 83 ms [fast mode]: