Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

osg::DVRLookupTable Class Reference

*put brief class description here* More...

#include <OSGDVRLookupTable.h>

Inheritance diagram for osg::DVRLookupTable:

osg::DVRLookupTableBase osg::Attachment osg::FieldContainer List of all members.

Public Types

typedef DVRLookupTablePtr Ptr
enum  {
  DimensionFieldId = Inherited::NextFieldId, SizeFieldId = DimensionFieldId + 1, ChannelFieldId = SizeFieldId + 1, DataFieldId = ChannelFieldId + 1,
  DataRFieldId = DataFieldId + 1, DataGFieldId = DataRFieldId + 1, DataBFieldId = DataGFieldId + 1, DataAFieldId = DataBFieldId + 1,
  TouchedFieldId = DataAFieldId + 1, NextFieldId = TouchedFieldId + 1
}

Public Member Functions

Sync
*virtual void changed (BitVector whichField, UInt32 from)
 react to field changes
Output
*virtual void dump (UInt32 uiIndent=0, const BitVector bvFlags=0) const
 output the instance for debug purposes
Field set
*void setTouched (const bool &value)
FieldContainer Get
*virtual FieldContainerTypegetType (void)
virtual const FieldContainerTypegetType (void) const
virtual UInt32 getContainerSize (void) const
Field Get
*SFUInt8getSFDimension (void)
 Get the DVRLookupTable::_sfDimension field.
MFUInt32getMFSize (void)
 Get the DVRLookupTable::_mfSize field.
SFUInt8getSFChannel (void)
 Get the DVRLookupTable::_sfChannel field.
MFUInt8getMFData (void)
 Get the DVRLookupTable::_mfData field.
MFReal32getMFDataR (void)
 Get the DVRLookupTable::_mfDataR field.
MFReal32getMFDataG (void)
 Get the DVRLookupTable::_mfDataG field.
MFReal32getMFDataB (void)
 Get the DVRLookupTable::_mfDataB field.
MFReal32getMFDataA (void)
 Get the DVRLookupTable::_mfDataA field.
SFBoolgetSFTouched (void)
 Get the DVRLookupTable::_sfTouched field.
UInt8getDimension (void)
 Get the value of the DVRLookupTable::_sfDimension field.
const UInt8getDimension (void) const
 Get the value of the DVRLookupTable::_sfDimension field.
UInt8getChannel (void)
 Get the value of the DVRLookupTable::_sfChannel field.
const UInt8getChannel (void) const
 Get the value of the DVRLookupTable::_sfChannel field.
bool & getTouched (void)
 Get the value of the DVRLookupTable::_sfTouched field.
const bool & getTouched (void) const
 Get the value of the DVRLookupTable::_sfTouched field.
UInt32getSize (const UInt32 index)
 Get the value of the index element the DVRLookupTable::_mfSize field.
MFUInt32getSize (void)
 Get the DVRLookupTable::_mfSize field.
const MFUInt32getSize (void) const
 Get the DVRLookupTable::_mfSize field.
UInt8getData (const UInt32 index)
 Get the value of the index element the DVRLookupTable::_mfData field.
MFUInt8getData (void)
 Get the DVRLookupTable::_mfData field.
const MFUInt8getData (void) const
 Get the DVRLookupTable::_mfData field.
Real32getDataR (const UInt32 index)
 Get the value of the index element the DVRLookupTable::_mfDataR field.
MFReal32getDataR (void)
 Get the DVRLookupTable::_mfDataR field.
const MFReal32getDataR (void) const
 Get the DVRLookupTable::_mfDataR field.
Real32getDataG (const UInt32 index)
 Get the value of the index element the DVRLookupTable::_mfDataG field.
MFReal32getDataG (void)
 Get the DVRLookupTable::_mfDataG field.
const MFReal32getDataG (void) const
 Get the DVRLookupTable::_mfDataG field.
Real32getDataB (const UInt32 index)
 Get the value of the index element the DVRLookupTable::_mfDataB field.
MFReal32getDataB (void)
 Get the DVRLookupTable::_mfDataB field.
const MFReal32getDataB (void) const
 Get the DVRLookupTable::_mfDataB field.
Real32getDataA (const UInt32 index)
 Get the value of the index element the DVRLookupTable::_mfDataA field.
MFReal32getDataA (void)
 Get the DVRLookupTable::_mfDataA field.
const MFReal32getDataA (void) const
 Get the DVRLookupTable::_mfDataA field.
Field Set
*void setDimension (const UInt8 &value)
 Set the value of the DVRLookupTable::_sfDimension field.
void setChannel (const UInt8 &value)
 Set the value of the DVRLookupTable::_sfChannel field.
Binary Access
*virtual UInt32 getBinSize (const BitVector &whichField)
virtual void copyToBin (BinaryDataHandler &pMem, const BitVector &whichField)
virtual void copyFromBin (BinaryDataHandler &pMem, const BitVector &whichField)
Copy
*virtual FieldContainerPtr shallowCopy (void) const

Static Public Member Functions

Class Get
*static FieldContainerTypegetClassType (void)
 access the type of the class
static UInt32 getClassTypeId (void)
 access the numerical type of the class
Construction
*static DVRLookupTablePtr create (void)
 create a new instance of the class
static DVRLookupTablePtr createEmpty (void)
 create an empty new instance of the class, do not copy the prototype

Static Public Attributes

static const osg::BitVector DimensionFieldMask
static const osg::BitVector SizeFieldMask
static const osg::BitVector ChannelFieldMask
static const osg::BitVector DataFieldMask
static const osg::BitVector DataRFieldMask
static const osg::BitVector DataGFieldMask
static const osg::BitVector DataBFieldMask
static const osg::BitVector DataAFieldMask
static const osg::BitVector TouchedFieldMask
static const osg::BitVector MTInfluenceMask
static const BitVector InternalFieldMask = (1 << Attachment::InternalFieldId)
static const BitVector ParentsFieldMask = (1 << Attachment::ParentsFieldId)
static const BitVector NextFieldMask

Protected Member Functions

Constructors
DVRLookupTable (void)
 Constructor.
 DVRLookupTable (const DVRLookupTable &source)
 Copy Constructor.
Destructors
*virtual ~DVRLookupTable (void)
 Destructor.
Sync
*void executeSyncImpl (DVRLookupTableBase *pOther, const BitVector &whichField)
virtual void executeSync (FieldContainer &other, const BitVector &whichField)

Protected Attributes

Fields
*SFUInt8 _sfDimension
MFUInt32 _mfSize
SFUInt8 _sfChannel
MFUInt8 _mfData
MFReal32 _mfDataR
MFReal32 _mfDataG
MFReal32 _mfDataB
MFReal32 _mfDataA
SFBool _sfTouched

Private Types

typedef DVRLookupTableBase Inherited

Private Member Functions

void operator= (const DVRLookupTable &source)
void commonConstructor (void)
 used to initialize class to initialize member variables - method is called by every constructor

Static Private Member Functions

static void initMethod (void)
 initialize the static features of the class, e.g. action callbacks

Friends

class FieldContainer
class DVRLookupTableBase

Detailed Description

Attachment for storing and handling Lookup-Tables for volume rendering.

Definition at line 54 of file OSGDVRLookupTable.h.


Member Typedef Documentation

typedef DVRLookupTableBase osg::DVRLookupTable::Inherited [private]
 

Reimplemented from osg::DVRLookupTableBase.

Definition at line 58 of file OSGDVRLookupTable.h.

typedef DVRLookupTablePtr osg::DVRLookupTableBase::Ptr [inherited]
 

Definition at line 98 of file OSGDVRLookupTableBase.h.


Member Enumeration Documentation

anonymous enum [inherited]
 

Enumerator:
DimensionFieldId 
SizeFieldId 
ChannelFieldId 
DataFieldId 
DataRFieldId 
DataGFieldId 
DataBFieldId 
DataAFieldId 
TouchedFieldId 
NextFieldId 

Reimplemented from osg::Attachment.

Definition at line 100 of file OSGDVRLookupTableBase.h.

00101     {
00102         DimensionFieldId = Inherited::NextFieldId,
00103         SizeFieldId      = DimensionFieldId + 1,
00104         ChannelFieldId   = SizeFieldId      + 1,
00105         DataFieldId      = ChannelFieldId   + 1,
00106         DataRFieldId     = DataFieldId      + 1,
00107         DataGFieldId     = DataRFieldId     + 1,
00108         DataBFieldId     = DataGFieldId     + 1,
00109         DataAFieldId     = DataBFieldId     + 1,
00110         TouchedFieldId   = DataAFieldId     + 1,
00111         NextFieldId      = TouchedFieldId   + 1
00112     };


Constructor & Destructor Documentation

DVRLookupTable::DVRLookupTable void   )  [protected]
 

Definition at line 60 of file OSGDVRLookupTable.cpp.

References commonConstructor().

00060                                    :
00061     Inherited()
00062 {
00063 #if 0
00064     commonConstructor();
00065 #endif
00066 }

DVRLookupTable::DVRLookupTable const DVRLookupTable source  )  [protected]
 

Definition at line 69 of file OSGDVRLookupTable.cpp.

References commonConstructor().

00069                                                            :
00070     Inherited(source)
00071 {
00072 #if 0
00073     commonConstructor();
00074 #endif
00075 }

DVRLookupTable::~DVRLookupTable void   )  [protected, virtual]
 

Definition at line 78 of file OSGDVRLookupTable.cpp.

00079 {
00080 }


Member Function Documentation

void DVRLookupTable::changed BitVector  whichField,
UInt32  origin
[virtual]
 

! TODO: REMOVE as soon as the loader works correctly

! setValue ( <value>, index )

! setValue ( <value>, index )

! setValue ( <value>, index )

! setValue ( <value>, index )

! setValue ( <value>, index )

Reimplemented from osg::FieldContainer.

Definition at line 90 of file OSGDVRLookupTable.cpp.

References osg::DVRLookupTableBase::_mfData, osg::DVRLookupTableBase::_mfDataA, osg::DVRLookupTableBase::_mfDataB, osg::DVRLookupTableBase::_mfDataG, osg::DVRLookupTableBase::_mfDataR, osg::DVRLookupTableBase::_mfSize, osg::DVRLookupTableBase::_sfChannel, osg::DVRLookupTableBase::_sfDimension, osg::FieldContainer::changed(), osg::DVRLookupTableBase::ChannelFieldMask, commonConstructor(), osg::DVRLookupTableBase::DataAFieldMask, osg::DVRLookupTableBase::DataBFieldMask, osg::DVRLookupTableBase::DataFieldMask, osg::DVRLookupTableBase::DataGFieldMask, osg::DVRLookupTableBase::DataRFieldMask, osg::DVRLookupTableBase::DimensionFieldMask, osg::Attachment::getMFParents(), osg::SField< FieldTypeT, fieldNameSpace >::getValue(), osg::MField< FieldTypeT, fieldNameSpace >::resize(), setTouched(), SINFO, osg::MField< FieldTypeT, fieldNameSpace >::size(), osg::DVRLookupTableBase::SizeFieldMask, and osg::DVRLookupTableBase::TouchedFieldMask.

00091 {
00092     SINFO << "DVRLookupTable::changed" << std::endl;
00093 
00094     if(whichField & DataFieldMask) 
00095     {
00096         // copy data from interleaved field to single fields
00097         UInt32 iter = 0;
00098 
00099         for(UInt32 i = 0; i < _sfDimension.getValue(); i++) 
00100         {
00101             for(UInt32 j = 0; j < _mfSize[i]; j++) 
00102             {
00103                 for (UInt32 k = 0; k < _sfChannel.getValue(); k++) 
00104                 {
00105 
00106 #if 1
00107 
00108                     if(_mfDataR.size() < _mfData.size() / 4) 
00109                     {
00110                         int size = _mfData.size() / 4;
00111 
00112                         _mfDataR.resize(size);
00113                         _mfDataG.resize(size);
00114                         _mfDataB.resize(size);
00115                         _mfDataA.resize(size);
00116                     }
00117 #endif
00118         
00120                     if(k == 0)
00121                     {
00122                         _mfDataR[j] = 
00123                             (Real32) _mfData[iter++] / 
00124                             (Real32) TypeTraits<UInt8>::getMax();
00125                     }
00126                     else if(k == 1)
00127                     {
00128                         _mfDataG[j] =
00129                             (Real32) _mfData[iter++] / 
00130                             (Real32) TypeTraits<UInt8>::getMax();
00131                     }
00132                     else if(k == 2)
00133                     {
00134                         _mfDataB[j] = 
00135                             (Real32) _mfData[iter++] / 
00136                             (Real32) TypeTraits<UInt8>::getMax();
00137                     }
00138                     else if(k == 3)
00139                     {
00140                         _mfDataA[j] =
00141                             (Real32) _mfData[iter++] / 
00142                             (Real32) TypeTraits<UInt8>::getMax();
00143                     }
00144                 }
00145             }
00146         }
00147     }
00148 
00149 
00150     if(whichField & DataRFieldMask) 
00151     {
00152         // copy data from R field to channel 0 of interleaved field
00153         UInt32 iter        = 0;
00154         UInt32 numChannels = _sfChannel.getValue();
00155 
00156         for(UInt32 i = 0; i < _sfDimension.getValue(); i++) 
00157         {
00158             for(UInt32 j = 0; j < _mfSize[i]; j++) 
00159             {
00161                 
00162                 _mfData[iter] = 
00163                     UInt8(Real32(_mfDataR[j]) * 
00164                           Real32(TypeTraits<UInt8>::getMax()));
00165 
00166                 iter += numChannels;
00167             }
00168         }
00169     }
00170 
00171     
00172     if(whichField & DataGFieldMask) 
00173     {
00174         // copy data from G field to channel 1 of interleaved field
00175         UInt32 iter        = 1;
00176         UInt32 numChannels = _sfChannel.getValue();
00177 
00178         for(UInt32 i = 0; i < _sfDimension.getValue(); i++) 
00179         {
00180             for(UInt32 j = 0; j < _mfSize[i]; j++) 
00181             {
00183                 _mfData[iter] = 
00184                     UInt8(Real32(_mfDataG[j]) * 
00185                           Real32(TypeTraits<UInt8>::getMax()));
00186 
00187                 iter += numChannels;
00188             }
00189         }
00190     }
00191 
00192     if(whichField & DataBFieldMask) 
00193     {
00194         // copy data from B field to channel 2 of interleaved field
00195         UInt32 iter        = 2;
00196         UInt32 numChannels = _sfChannel.getValue();
00197         
00198         for(UInt32 i = 0; i < _sfDimension.getValue(); i++) 
00199         {
00200             for(UInt32 j = 0; j < _mfSize[i]; j++) 
00201             {
00203                 _mfData[iter] =
00204                     UInt8(Real32(_mfDataB[j]) * 
00205                           Real32(TypeTraits<UInt8>::getMax()));
00206 
00207                 iter += numChannels;
00208             }
00209         }
00210     }
00211 
00212     
00213     if(whichField & DataAFieldMask) 
00214     {
00215         // copy data from A field to to channel 3 interleaved field
00216         UInt32 iter        = 3;
00217         UInt32 numChannels = _sfChannel.getValue();
00218         
00219         for(UInt32 i = 0; i < _sfDimension.getValue(); i++) 
00220         {
00221             for(UInt32 j = 0; j < _mfSize[i]; j++) 
00222             {
00224                 _mfData[iter] = 
00225                     UInt8(Real32(_mfDataA[j]) * 
00226                           Real32(TypeTraits<UInt8>::getMax()));
00227 
00228                 iter += numChannels;
00229             }
00230         }
00231     }
00232 
00233     
00234     if(whichField & (DimensionFieldMask | SizeFieldMask | ChannelFieldMask)) 
00235     {
00236         SINFO << "DVRLookupTable::changed - DimensionFieldMask | "
00237               << "SizeFieldMask | ChannelFieldMask " 
00238               << std::endl;
00239 
00240         if(whichField & DimensionFieldMask) 
00241         {
00242             SINFO << "DVRLookupTable::changed - dimension " 
00243                   << _sfDimension.getValue() 
00244                   << std::endl;
00245         }
00246 
00247         if(whichField & SizeFieldMask) 
00248         {
00249             SINFO << "DVRLookupTable::changed - size " 
00250                   << _mfSize[0] 
00251                   << std::endl;
00252         }
00253 
00254         if(whichField & ChannelFieldMask) 
00255         {
00256             SINFO << "DVRLookupTable::changed - channel " 
00257                   << _sfChannel.getValue() 
00258                   << std::endl;
00259         }
00260 
00261 #if 0
00262         commonConstructor();
00263 #endif
00264     }
00265 
00266     if(whichField & TouchedFieldMask) 
00267     {
00268         SINFO << "DVRLookupTable::changed - touched " << std::endl;
00269     }
00270 
00271 #if 0
00272     // mark table as being changed
00273     setTouched( true );
00274 #endif
00275     
00276 
00277     // notify parent if appearance 
00278     // CHECK
00279 #if 0
00280     MFFieldContainerPtr *par = getMFParents();
00281 
00282     for(UInt32 i = 0; i < par->size(); i++) 
00283     {
00284     }
00285 #endif
00286 
00287     Inherited::changed(whichField, origin);
00288 }

void DVRLookupTable::dump UInt32  uiIndent = 0,
const BitVector  bvFlags = 0
const [virtual]
 

Reimplemented from osg::Attachment.

Definition at line 292 of file OSGDVRLookupTable.cpp.

References osg::DVRLookupTableBase::_mfData, osg::DVRLookupTableBase::_mfDataA, osg::DVRLookupTableBase::_mfDataB, osg::DVRLookupTableBase::_mfDataG, osg::DVRLookupTableBase::_mfDataR, osg::DVRLookupTableBase::_mfSize, osg::MField< FieldTypeT, fieldNameSpace >::begin(), osg::FieldContainerPtrBase::dump(), osg::MField< FieldTypeT, fieldNameSpace >::end(), osg::DVRLookupTableBase::getChannel(), osg::DVRLookupTableBase::getDimension(), osg::indentLog(), PLOG, osg::FCDumpFlags::RefCount, and osg::MField< FieldTypeT, fieldNameSpace >::size().

00294 {
00295     UInt32 col = 8; // print 8 values in each row
00296     UInt32   i = 0;
00297 
00298     DVRLookupTablePtr thisP(*this);
00299     thisP.dump(uiIndent, FCDumpFlags::RefCount);
00300 
00301     indentLog(uiIndent, PLOG);
00302     PLOG << "DVRLookupTable at " << this << std::endl;
00303 
00304     indentLog(uiIndent, PLOG);
00305     PLOG << "dim: " 
00306          << (int) getDimension() 
00307          << " channel: "
00308          << (int) getChannel() 
00309          << std::endl;
00310 
00311     indentLog(uiIndent, PLOG);
00312     PLOG << "sizes: ";
00313 
00314     for(MFUInt32::const_iterator   it  = _mfSize.begin(); 
00315                                    it != _mfSize.end  (); 
00316                                  ++it)
00317     {
00318         PLOG << std::dec << (int) *it << " ";
00319     }
00320 
00321     PLOG << std::endl;
00322 
00323     // Data
00324     indentLog(uiIndent, PLOG);
00325     PLOG << "Data:" << std::endl; 
00326 
00327     uiIndent += 4;
00328 
00329     indentLog(uiIndent, PLOG);
00330     for(i = 0; i < _mfData.size(); i++) 
00331     {
00332         PLOG << std::setw(9) << std::left << (int) _mfData[i] << " ";
00333 
00334         if((i + 1) % getChannel() == 0) 
00335         {
00336             PLOG << std::endl; indentLog(uiIndent, PLOG); 
00337         }
00338     }
00339 
00340     uiIndent -= 4;
00341     
00342     // DataR
00343     PLOG << std::endl;
00344 
00345     indentLog(uiIndent, PLOG);
00346     PLOG << "DataR:" << std::endl; 
00347     
00348     uiIndent += 4;
00349 
00350     indentLog(uiIndent, PLOG);
00351 
00352     for(i = 0; i < _mfDataR.size(); i++) 
00353     {
00354         PLOG << std::setw(9) << std::left <<_mfDataR[i] << " ";
00355 
00356         if((i + 1) % col == 0) 
00357         {
00358             PLOG << std::endl; indentLog(uiIndent, PLOG); 
00359         }
00360     }
00361 
00362     uiIndent -= 4;
00363 
00364     // DataG
00365     PLOG << std::endl;
00366 
00367     indentLog(uiIndent, PLOG);
00368     PLOG << "DataG:" << std::endl; 
00369 
00370     uiIndent += 4;
00371 
00372     indentLog(uiIndent, PLOG);
00373     
00374     for(i = 0; i < _mfDataG.size(); i++) 
00375     {
00376         PLOG << std::setw(9) << std::left << _mfDataG[i] << " ";
00377 
00378         if((i + 1) % col == 0) 
00379         {
00380             PLOG << std::endl; indentLog(uiIndent, PLOG); 
00381         }
00382     }
00383 
00384     uiIndent -= 4;
00385 
00386     // DataB
00387     PLOG << std::endl;
00388 
00389     indentLog(uiIndent, PLOG);
00390     PLOG << "DataB:" << std::endl; 
00391     
00392     uiIndent += 4;
00393 
00394     indentLog(uiIndent, PLOG);
00395 
00396     for(i = 0; i < _mfDataB.size(); i++) 
00397     {
00398         PLOG << std::setw(9) << std::left << _mfDataB[i] << " ";
00399 
00400         if((i + 1) % col == 0)
00401         {
00402             PLOG << std::endl; indentLog(uiIndent, PLOG); 
00403         }
00404     }
00405 
00406     uiIndent -= 4;
00407     
00408     // DataA
00409     PLOG << std::endl;
00410 
00411     indentLog(uiIndent, PLOG);
00412     PLOG << "DataA:" << std::endl; 
00413 
00414     uiIndent += 4;
00415 
00416     indentLog(uiIndent, PLOG);
00417 
00418     for(i = 0; i < _mfDataA.size(); i++) 
00419     {
00420         PLOG << std::setw(9) << std::left << _mfDataA[i] << " ";
00421 
00422         if((i + 1) % col == 0) 
00423         {
00424             PLOG << std::endl; indentLog(uiIndent, PLOG); 
00425         }
00426     }
00427 
00428     uiIndent -= 4;
00429 
00430     PLOG << std::endl;
00431 }

void osg::DVRLookupTable::setTouched const bool &  value  )  [inline]
 

! This is very tricky: ! It prevents the common constructor from beeing called when ! loading the FC from an osg file ! Loading will initialize "size" before "touched" and will thus ! not go in this brach - otherwhise "touched" is eventually ! altered and at this point the constructor is called if the ! FC hasn't otherwise been initialized

Reimplemented from osg::DVRLookupTableBase.

Definition at line 46 of file OSGDVRLookupTable.inl.

References osg::DVRLookupTableBase::_mfDataR, commonConstructor(), osg::DVRLookupTableBase::setTouched(), and osg::MField< FieldTypeT, fieldNameSpace >::size().

Referenced by changed().

00047 {
00048     
00056 
00057     if(_mfDataR.size() == 0)
00058         commonConstructor();
00059     
00060     DVRLookupTableBase::setTouched( value );
00061 }

void DVRLookupTable::initMethod void   )  [static, private]
 

Definition at line 85 of file OSGDVRLookupTable.cpp.

00086 {
00087 }

void osg::DVRLookupTable::operator= const DVRLookupTable source  )  [private]
 

void DVRLookupTable::commonConstructor void   )  [private]
 

! setValue ( <value>, index )

Definition at line 435 of file OSGDVRLookupTable.cpp.

References osg::DVRLookupTableBase::_mfData, osg::DVRLookupTableBase::_mfDataA, osg::DVRLookupTableBase::_mfDataB, osg::DVRLookupTableBase::_mfDataG, osg::DVRLookupTableBase::_mfDataR, osg::DVRLookupTableBase::_mfSize, osg::DVRLookupTableBase::_sfChannel, osg::DVRLookupTableBase::_sfDimension, osg::SField< FieldTypeT, fieldNameSpace >::getValue(), osg::MField< FieldTypeT, fieldNameSpace >::resize(), and SLOG.

Referenced by changed(), DVRLookupTable(), and setTouched().

00436 {
00437     SLOG << "DVRLookupTable::commonConstructor" << std::endl;
00438     
00439     UInt32 size = _sfDimension.getValue();
00440   
00441     // set default size for every dimension
00442     _mfSize.resize(_sfDimension.getValue());
00443 
00444     for(UInt32 j = 0; j < _sfDimension.getValue(); j++) 
00445     {
00446         _mfSize[j] = 256;
00447 
00448         size *= _mfSize[j];
00449     }
00450 
00451     // allocate data field
00452     _mfData .resize(size * _sfChannel.getValue());
00453     _mfDataR.resize(size                        );
00454     _mfDataG.resize(size                        );
00455     _mfDataB.resize(size                        );
00456     _mfDataA.resize(size                        );
00457 
00458     // store default ramp
00459     UInt32 iter       = 0;
00460     UInt32 singleIter = 0;
00461 
00462     for(UInt32 i = 0; i < _sfDimension.getValue(); i++) 
00463     {
00464         for(UInt32 j = 0; j < _mfSize[i]; j++) 
00465         {
00467 
00468             _mfDataR[singleIter] = 
00469                 (Real32) j / 
00470                 (Real32) TypeTraits<UInt8>::getMax();
00471 
00472             _mfDataG[singleIter] = 
00473                 (Real32) j / 
00474                 (Real32) TypeTraits<UInt8>::getMax();
00475 
00476             _mfDataB[singleIter] = 
00477                 (Real32) j / 
00478                 (Real32) TypeTraits<UInt8>::getMax();
00479 
00480             _mfDataA[singleIter] = 
00481                 (Real32) j / 
00482                 (Real32) TypeTraits<UInt8>::getMax();
00483             
00484             singleIter++;
00485             
00486             for(UInt32 k = 0; k < _sfChannel.getValue(); k++) 
00487             {
00488                 _mfData[iter++] = j;
00489             }
00490         }
00491     }
00492 }

osg::FieldContainerType & osg::DVRLookupTableBase::getClassType void   )  [inline, static, inherited]
 

Reimplemented from osg::Attachment.

Definition at line 58 of file OSGDVRLookupTableBase.inl.

References osg::DVRLookupTableBase::_type.

Referenced by osg::DVRLookupTableBase::create().

00059 {
00060     return _type; 
00061 } 

osg::UInt32 osg::DVRLookupTableBase::getClassTypeId void   )  [inline, static, inherited]
 

Reimplemented from osg::Attachment.

Definition at line 65 of file OSGDVRLookupTableBase.inl.

References osg::DVRLookupTableBase::_type, and osg::TypeBase::getId().

00066 {
00067     return _type.getId(); 
00068 } 

FieldContainerType & DVRLookupTableBase::getType void   )  [virtual, inherited]
 

Reimplemented from osg::Attachment.

Definition at line 194 of file OSGDVRLookupTableBase.cpp.

References osg::DVRLookupTableBase::_type.

00195 {
00196     return _type; 
00197 } 

const FieldContainerType & DVRLookupTableBase::getType void   )  const [virtual, inherited]
 

Reimplemented from osg::Attachment.

Definition at line 199 of file OSGDVRLookupTableBase.cpp.

References osg::DVRLookupTableBase::_type.

00200 {
00201     return _type;
00202 } 

UInt32 DVRLookupTableBase::getContainerSize void   )  const [virtual, inherited]
 

Reimplemented from osg::Attachment.

Definition at line 214 of file OSGDVRLookupTableBase.cpp.

00215 { 
00216     return sizeof(DVRLookupTable); 
00217 }

SFUInt8 * osg::DVRLookupTableBase::getSFDimension void   )  [inline, inherited]
 

Definition at line 101 of file OSGDVRLookupTableBase.inl.

References osg::DVRLookupTableBase::_sfDimension.

00102 {
00103     return &_sfDimension;
00104 }

MFUInt32 * osg::DVRLookupTableBase::getMFSize void   )  [inline, inherited]
 

Definition at line 108 of file OSGDVRLookupTableBase.inl.

References osg::DVRLookupTableBase::_mfSize.

00109 {
00110     return &_mfSize;
00111 }

SFUInt8 * osg::DVRLookupTableBase::getSFChannel void   )  [inline, inherited]
 

Definition at line 115 of file OSGDVRLookupTableBase.inl.

References osg::DVRLookupTableBase::_sfChannel.

00116 {
00117     return &_sfChannel;
00118 }