Packer.d.ts 788 B

123456789101112131415161718192021222324252627282930
  1. /**
  2. * Modified version of Jake Gordon's Bin Packing algorithm used for Filterizr's 'packed' layout
  3. * @see {@link https://github.com/jakesgordon/bin-packing}
  4. */
  5. interface PackerRoot {
  6. x: number;
  7. y: number;
  8. w: number;
  9. h?: number;
  10. used?: boolean;
  11. down?: PackerRoot;
  12. right?: PackerRoot;
  13. }
  14. interface PackerBlock {
  15. x?: number;
  16. y?: number;
  17. w?: number;
  18. h?: number;
  19. fit?: PackerRoot | void;
  20. }
  21. export default class Packer {
  22. root: PackerRoot;
  23. constructor(w: number);
  24. init(w: number): void;
  25. fit(blocks: PackerBlock[]): void;
  26. findNode(root: PackerRoot, w: number, h: number): PackerRoot | void;
  27. splitNode(node: PackerRoot, w: number, h: number): PackerRoot;
  28. growDown(w: number, h: number): PackerRoot | void;
  29. }
  30. export {};