User Tools

Site Tools


maxrects-lua

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
maxrects-lua [2021/02/13 08:13]
muragami [Rectangles]
maxrects-lua [2021/02/13 10:21] (current)
muragami [:insertCollection(collect,sort)]
Line 88: Line 88:
 MyOtherRect = MaxRects.copy(MyRect) -- shallow copy of just the 4 indexes and two fields MyOtherRect = MaxRects.copy(MyRect) -- shallow copy of just the 4 indexes and two fields
 </code> </code>
-===== Functions =====+ 
 +===== Functions (module) =====
  
 All the exposed functions of this module, with in-depth explanations. All the exposed functions of this module, with in-depth explanations.
Line 100: Line 101:
  
 Creates a new instance of a packing algorithm. This can be bypassed if you ever just need on instance, calling MaxRects:init(width,height,canflip) allows you to call later MaxRects:insert(), etc. The .new() is protected from changes you might make using MaxRects: calls and will always return a blank instance. Creates a new instance of a packing algorithm. This can be bypassed if you ever just need on instance, calling MaxRects:init(width,height,canflip) allows you to call later MaxRects:insert(), etc. The .new() is protected from changes you might make using MaxRects: calls and will always return a blank instance.
 +
 +==== MaxRects.copy(rect) ====
 +
 +  * **rect**: The rectangle to duplicate.
 +
 +  * **return**: A table containing the new copied rectangle.
 +
 +Creates a shallow copy of a rectangle. Does not duplicate .data for instance, but copies the reference. Explicitly only copies: [1], [2], [3], [4], .data, and .flip.
 +
 +===== Functions (instance) =====
  
 ==== :reset(width,height,canflip) ==== ==== :reset(width,height,canflip) ====
Line 119: Line 130:
 Inserts a rectangle into the collection, using the algorithm to assign a location. If the rectangle can't fit, returns false. Inserts a rectangle into the collection, using the algorithm to assign a location. If the rectangle can't fit, returns false.
  
 +==== :insertRect(rect) ====
 +
 +  * **rect**: The rectangle to insert. X/Y([0]/[1]) are ignored, only Width([3]) and Height([4]) count.
 +
 +  * **return**: Boolean. True if the rectangle was inserted, False if it didn't fit.
 +
 +Inserts a rectangle into the collection, using the algorithm to assign a location. If the rectangle can't fit, returns false. Copies .data into the stored node in the collection.
 +
 +==== :insertCollection(collect,sort) ====
 +
 +  * **collect**: A table array of rectangles to insert into the collection (see [[#:insertRect(rect)]])
 +  * **//sort//**: //optional// A method to sort the rectangles before insert.
 +
 +  * **return**: Boolean, Number. True if all were inserted, False if only some fit. The number is the amount added.
 +
 +Inserts rectangles into the collection, from an array table. If you define sort to one of: 'SortArea', 'SortShortSide', or 'SortLongSide' it will sort them from biggest to smallest using that method before inserting. If you pass anything else as sort, it'll throw an error. Note: If you pass a sort, then **table.sort() is applied to collect, so it's order might/will be changed by this function.**
 ==== :occupancy() ==== ==== :occupancy() ====
  
Line 140: Line 167:
 </code> </code>
  
 +==== :setAlgorithm(algo) ====
 +
 +  * **algo**: The algorithm to use for this instance. Defaults to 'BestShortSideFit'.
 +
 +Applies a given algorithm to the packer. The options are: 'BestShortSideFit', 'BestLongSideFit', 'BestAreaFit', and 'ContactPointRule'. Passing any other value will throw an error.
 +
 +==== :algorithmName() ====
 +
 +  * **return**: The algorithm in use for this instance. Defaults to 'BestShortSideFit'.
 +
 +Returns the algorithm in use by the packer. The options are: 'BestShortSideFit', 'BestLongSideFit', 'BestAreaFit', and 'ContactPointRule'.
 +
 +===== Simple LÖVE Texture Packer =====
  
 +TODO!
maxrects-lua.1613232827.txt.gz · Last modified: 2021/02/13 08:13 by muragami