#include <IceContainer.h>
Public Member Functions | |
inline_ Container & | Add (udword entry) |
inline_ Container & | Add (const udword *entries, udword nb) |
inline_ Container & | Add (float entry) |
inline_ Container & | Add (const float *entries, udword nb) |
inline_ Container & | AddUnique (udword entry) |
Add unique [slow]. | |
Container () | |
Container (const Container &object) | |
Container (udword size, float growth_factor) | |
bool | Contains (udword entry, udword *location=null) const |
bool | Delete (udword entry) |
inline_ void | DeleteIndex (udword index) |
Deletes the entry whose index is given. | |
bool | DeleteKeepingOrder (udword entry) |
inline_ void | DeleteLastEntry () |
Deletes the very last entry. | |
Container & | Empty () |
Container & | FindNext (udword &entry, FindMode find_mode=FIND_CLAMP) |
Container & | FindPrev (udword &entry, FindMode find_mode=FIND_CLAMP) |
inline_ void | ForceSize (udword size) |
inline_ udword * | GetEntries () const |
Returns the list of entries. | |
inline_ udword | GetEntry (udword i) const |
Returns ith entry. | |
inline_ udword | GetFirst () const |
inline_ float | GetGrowthFactor () const |
Returns the growth factor. | |
inline_ udword | GetLast () const |
inline_ udword | GetNbContainers () const |
Operator for "Container A = Container B". | |
inline_ udword | GetNbEntries () const |
Returns the current number of entries. | |
inline_ udword | GetTotalBytes () const |
udword | GetUsedRam () const |
inline_ bool | IsFull () const |
Checks the container is full. | |
inline_ BOOL | IsNotEmpty () const |
Checks the container is empty. | |
inline_ udword | operator[] (udword i) const |
Read-access as an array. | |
inline_ udword & | operator[] (udword i) |
Write-access as an array. | |
bool | Refit () |
inline_ void | Reset () |
inline_ void | SetGrowthFactor (float growth) |
Sets the growth factor. | |
bool | SetSize (udword nb) |
~Container () | |
Private Member Functions | |
bool | Resize (udword needed=1) |
Private Attributes | |
udword | mCurNbEntries |
Current number of entries. | |
udword * | mEntries |
List of entries. | |
float | mGrowthFactor |
Resize: new number of entries = old number * mGrowthFactor. | |
udword | mMaxNbEntries |
Maximum possible number of entries. | |
Static Private Attributes | |
static udword | mNbContainers |
Number of containers around. | |
static udword | mUsedRam |
Amount of bytes used by containers in the system. |
Contains a list of 32-bits values. Use this class when you need to store an unknown number of values. The list is automatically resized and can contains 32-bits entities (dwords or floats)
Definition at line 25 of file IceContainer.h.
Container::Container | ( | const Container & | object | ) |
Container::Container | ( | udword | size, |
float | growth_factor | ||
) |
inline_ Container& Container::Add | ( | udword | entry | ) | [inline] |
A O(1) method to add a value in the container. The container is automatically resized if needed. The method is inline, not the resize. The call overhead happens on resizes only, which is not a problem since the resizing operation costs a lot more than the call overhead...
entry | [in] a udword to store in the container |
Definition at line 47 of file IceContainer.h.
Definition at line 57 of file IceContainer.h.
inline_ Container& Container::Add | ( | float | entry | ) | [inline] |
A O(1) method to add a value in the container. The container is automatically resized if needed. The method is inline, not the resize. The call overhead happens on resizes only, which is not a problem since the resizing operation costs a lot more than the call overhead...
entry | [in] a float to store in the container |
Definition at line 81 of file IceContainer.h.
inline_ Container& Container::Add | ( | const float * | entries, |
udword | nb | ||
) | [inline] |
Definition at line 91 of file IceContainer.h.
inline_ Container& Container::AddUnique | ( | udword | entry | ) | [inline] |
Add unique [slow].
Definition at line 103 of file IceContainer.h.
bool Container::Contains | ( | udword | entry, |
udword * | location = null |
||
) | const |
bool Container::Delete | ( | udword | entry | ) |
inline_ void Container::DeleteIndex | ( | udword | index | ) | [inline] |
Deletes the entry whose index is given.
Definition at line 164 of file IceContainer.h.
bool Container::DeleteKeepingOrder | ( | udword | entry | ) |
inline_ void Container::DeleteLastEntry | ( | ) | [inline] |
Deletes the very last entry.
Definition at line 162 of file IceContainer.h.
Clears the container. All stored values are deleted, and it frees used ram.
Container& Container::FindNext | ( | udword & | entry, |
FindMode | find_mode = FIND_CLAMP |
||
) |
Container& Container::FindPrev | ( | udword & | entry, |
FindMode | find_mode = FIND_CLAMP |
||
) |
inline_ void Container::ForceSize | ( | udword | size | ) | [inline] |
Definition at line 133 of file IceContainer.h.
inline_ udword* Container::GetEntries | ( | ) | const [inline] |
Returns the list of entries.
Definition at line 172 of file IceContainer.h.
inline_ udword Container::GetEntry | ( | udword | i | ) | const [inline] |
Returns ith entry.
Definition at line 171 of file IceContainer.h.
inline_ udword Container::GetFirst | ( | ) | const [inline] |
Definition at line 174 of file IceContainer.h.
inline_ float Container::GetGrowthFactor | ( | ) | const [inline] |
Returns the growth factor.
Definition at line 178 of file IceContainer.h.
inline_ udword Container::GetLast | ( | ) | const [inline] |
Definition at line 175 of file IceContainer.h.
inline_ udword Container::GetNbContainers | ( | ) | const [inline] |
Operator for "Container A = Container B".
Definition at line 195 of file IceContainer.h.
inline_ udword Container::GetNbEntries | ( | ) | const [inline] |
Returns the current number of entries.
Definition at line 170 of file IceContainer.h.
inline_ udword Container::GetTotalBytes | ( | ) | const [inline] |
Definition at line 196 of file IceContainer.h.
udword Container::GetUsedRam | ( | ) | const |
inline_ bool Container::IsFull | ( | ) | const [inline] |
Checks the container is full.
Definition at line 180 of file IceContainer.h.
inline_ BOOL Container::IsNotEmpty | ( | ) | const [inline] |
Checks the container is empty.
Definition at line 181 of file IceContainer.h.
Read-access as an array.
Definition at line 184 of file IceContainer.h.
Write-access as an array.
Definition at line 186 of file IceContainer.h.
bool Container::Refit | ( | ) |
Refits the container and get rid of unused bytes.
inline_ void Container::Reset | ( | ) | [inline] |
Resets the container. Stored values are discarded but the buffer is kept so that further calls don't need resizing again. That's a kind of temporal coherence.
Reimplemented in CollisionFaces.
Definition at line 125 of file IceContainer.h.
bool Container::Resize | ( | udword | needed = 1 | ) | [private] |
inline_ void Container::SetGrowthFactor | ( | float | growth | ) | [inline] |
Sets the growth factor.
Definition at line 179 of file IceContainer.h.
bool Container::SetSize | ( | udword | nb | ) |
Sets the initial size of the container. If it already contains something, it's discarded.
nb | [in] Number of entries |
udword Container::mCurNbEntries [private] |
Current number of entries.
Definition at line 207 of file IceContainer.h.
udword* Container::mEntries [private] |
List of entries.
Definition at line 208 of file IceContainer.h.
float Container::mGrowthFactor [private] |
Resize: new number of entries = old number * mGrowthFactor.
Definition at line 209 of file IceContainer.h.
udword Container::mMaxNbEntries [private] |
Maximum possible number of entries.
Definition at line 206 of file IceContainer.h.
udword Container::mNbContainers [static, private] |
Number of containers around.
Definition at line 199 of file IceContainer.h.
udword Container::mUsedRam [static, private] |
Amount of bytes used by containers in the system.
Definition at line 200 of file IceContainer.h.