This class manages SHL maps, e.g. by "allocating" rectangular areas in larger coefficient maps. More...
#include "SHLMapMan.hpp"
Classes  
struct  SHLMapT 
Public Member Functions  
SHLMapManT ()  
The constructor. More...  
~SHLMapManT ()  
The destructor. More...  
void  ReadSHLCoeffsTable (std::istream &InFile) 
Reads the lookuptable the indices are referring to (nothing is written when NrOfRepres==0 (uncompressed data)). More...  
void  WriteSHLCoeffsTable (std::ostream &OutFile) const 
Write the lookuptable the indices are referring to (nothing is written when NrOfRepres==0 (uncompressed data)). More...  
bool  Allocate (unsigned long SizeS, unsigned long SizeT, unsigned long &BitmapNr, unsigned long &PosS, unsigned long &PosT) 
Finds a position for a rectangular SHLMap within SHLMaps[SHLMaps.Size()1].Coeff. More...  
void  InitTextures () 
Initializes the MatSys textures. More...  
Public Attributes  
ArrayT< SHLMapT * >  SHLMaps 
ArrayT< float >  SHLCoeffsTable 
The lookuptable of representatives (NrOfRepres * (NrOfBands^2) many) the SHLMaps::Indices refer to. More...  
ArrayT< ArrayT < MatSys::TextureMapI * > >  SHLMapTextures 
For uncompressed SHL coeffs, for each SHLMap we store an array of texture objects, where each texture contains four SHL coeffs (in its RGBA components). More...  
MatSys::TextureMapI *  SHLRepresentativesTexture 
unsigned long  SHLRepresentativesTexWidth 
Static Public Attributes  
static const unsigned long  SIZE_S =256 
static const unsigned long  SIZE_T =256 
static char  NrOfBands =0 
Number n of bands for which we have computed and stored coefficients (n^2 many). More...  
static unsigned int  NrOfRepres =0 
Number of representatives of SH vectors. If >0, the SHL coeffs are compressed, uncompressed otherwise. More...  
This class manages SHL maps, e.g. by "allocating" rectangular areas in larger coefficient maps.
SHLMapManT::SHLMapManT  (  ) 
The constructor.
SHLMapManT::~SHLMapManT  (  ) 
The destructor.
bool SHLMapManT::Allocate  (  unsigned long  SizeS, 
unsigned long  SizeT,  
unsigned long &  BitmapNr,  
unsigned long &  PosS,  
unsigned long &  PosT  
) 
Finds a position for a rectangular SHLMap within SHLMaps[SHLMaps.Size()1].Coeff.
If no such position exists, a new, empty SHLMapT is created and appended to the SHLMaps. Returns true on success, false on failure (i.e. if SizeS>MAX_SIZE_S  SizeT>MAX_SIZE_T).
void SHLMapManT::InitTextures  (  ) 
Initializes the MatSys textures.
void SHLMapManT::ReadSHLCoeffsTable  (  std::istream &  InFile  ) 
Reads the lookuptable the indices are referring to (nothing is written when NrOfRepres==0 (uncompressed data)).
void SHLMapManT::WriteSHLCoeffsTable  (  std::ostream &  OutFile  )  const 
Write the lookuptable the indices are referring to (nothing is written when NrOfRepres==0 (uncompressed data)).
This writes a total of NrOfRepres*NR_OF_SH_COEFFS coefficients.

static 
Number n of bands for which we have computed and stored coefficients (n^2 many).

static 
Number of representatives of SH vectors. If >0, the SHL coeffs are compressed, uncompressed otherwise.
ArrayT<float> cf::SceneGraph::SHLMapManT::SHLCoeffsTable 
The lookuptable of representatives (NrOfRepres * (NrOfBands^2) many) the SHLMaps::Indices refer to.
ArrayT< ArrayT<MatSys::TextureMapI*> > cf::SceneGraph::SHLMapManT::SHLMapTextures 
For uncompressed SHL coeffs, for each SHLMap we store an array of texture objects, where each texture contains four SHL coeffs (in its RGBA components).
Thus, for 16 SHL coeffs (uncompressed), we keep 16/4 == 4 textures per SHLMap. For compressed SHL coeffs, each SHLMap only requires a single texture object (that is, the size of the inner arrays is always 1), because in this case, we only store SHL vector indices (16 bit precision) that only require the R and G components (8 bits each) of a single texture.