Util::SparseTable< TYPE > Class Template Reference
#include <sparsetable.h>
Detailed Description
template<class TYPE>
class Util::SparseTable< TYPE >
A 2D sparse table where many entries may be redundant and support for multiple entries per cell.(C) 2009 Radon Labs GmbH
Public Member Functions | |
SparseTable () | |
constructor | |
void | BeginSetup (const Array< StringAtom > &columnNames, const Array< StringAtom > &rowNames, SizeT numUnique=0) |
setup the sparse table | |
void | AddSingle (IndexT colIndex, IndexT rowIndex, const TYPE &elm) |
add a single new unique entry | |
void | AddMultiple (IndexT colIndex, IndexT rowIndex, const TYPE *firstElm, SizeT numElements) |
add a new multiple entry | |
void | AddReference (IndexT colIndex, IndexT rowIndex, IndexT refColIndex, IndexT refRowIndex) |
add a reference to another column/index | |
void | SetEntryDirect (IndexT colIndex, IndexT rowIndex, ushort startIndex, ushort numElements) |
add a direct reference using an index into the unique element array | |
void | EndSetup () |
finish setting up the sparse table | |
void | Clear () |
clear object | |
SizeT | GetNumColumns () const |
get number of columns in the sparse table | |
SizeT | GetNumRows () const |
get number of rows in the sparse table | |
bool | HasColumn (const StringAtom &colName) const |
return true if column exists | |
bool | HasRow (const StringAtom &rowName) const |
return true if row exists | |
IndexT | GetColumnIndexByName (const StringAtom &colName) const |
return column index by name | |
IndexT | GetRowIndexByName (const StringAtom &rowName) const |
return row index by name | |
SizeT | GetNumUniqueElements () const |
get current number of unique elements | |
const TYPE * | GetElements (IndexT colIndex, IndexT rowIndex, SizeT &outNumElements) const |
get entry at given index | |
const TYPE * | LookupElements (const StringAtom &colName, const StringAtom &rowName, SizeT &outNumElements) const |
lookup entry by row/column names |
Member Function Documentation
template<class TYPE>
void Util::SparseTable< TYPE >::AddReference | ( | IndexT | colIndex, | |
IndexT | rowIndex, | |||
IndexT | refColIndex, | |||
IndexT | refRowIndex | |||
) |
add a reference to another column/index
NOTE: forward references are not allowed!