Rebel Fork Framework
|
Rectangular area allocator. More...
#include <Urho3D/Math/AreaAllocator.h>
Public Member Functions | |
AreaAllocator () | |
Default construct with empty size. | |
AreaAllocator (int width, int height, bool fastMode=true) | |
Construct with given width and height. | |
AreaAllocator (int width, int height, int maxWidth, int maxHeight, bool fastMode=true) | |
Construct with given width and height, and set the maximum it allows to grow. | |
void | Reset (int width, int height, int maxWidth=0, int maxHeight=0, bool fastMode=true) |
Reset to given width and height and remove all previous allocations. | |
bool | Allocate (int width, int height, int &x, int &y) |
Try to allocate an area. Return true if successful, with x & y coordinates filled. | |
int | GetWidth () const |
Return the current width. | |
int | GetHeight () const |
Return the current height. | |
bool | GetFastMode () const |
Return whether uses fast mode. Fast mode uses a simpler allocation scheme which may waste free space, but is OK for eg. fonts. | |
Private Member Functions | |
bool | SplitRect (unsigned freeAreaIndex, const IntRect &reserve) |
Remove space from a free rectangle. Return true if the original rectangle should be erased from the free list. Not called in fast mode. | |
void | Cleanup () |
Clean up redundant free space. Not called in fast mode. | |
Private Attributes | |
ea::vector< IntRect > | freeAreas_ |
Free rectangles. | |
IntVector2 | size_ |
Current size. | |
IntVector2 | maxSize_ |
Maximum size it allows to grow. It is zero when it is not allowed to grow. | |
bool | doubleWidth_ {true} |
The dimension use for next growth. Used internally. | |
bool | fastMode_ {true} |
Fast mode flag. | |
Rectangular area allocator.