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

osg::DVRSimpleLUTShaderBase Class Reference

DVRSimpleLUTShader Base Class.

#include <OSGDVRSimpleLUTShaderBase.h>

Inheritance diagram for osg::DVRSimpleLUTShaderBase:

osg::DVRSimpleShader osg::DVRSimpleShaderBase osg::DVRShader osg::DVRShaderBase osg::FieldContainer osg::DVRSimpleLUTShader osg::DVRMtexLUTShaderBase osg::DVRMtexLUTShader List of all members.

Public Types

typedef DVRSimpleLUTShaderPtr Ptr
enum  { LutModeFieldId = Inherited::NextFieldId, ActiveLutModeFieldId = LutModeFieldId + 1, NextFieldId = ActiveLutModeFieldId + 1 }

Public Member Functions

FieldContainer Get
*virtual FieldContainerTypegetType (void)
virtual const FieldContainerTypegetType (void) const
virtual UInt32 getContainerSize (void) const
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
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
Volume Rendering
*virtual bool initialize (DVRVolume *volume, DrawActionBase *action)
 Callback to set up shader - register textures here.
virtual void activate (DVRVolume *volume, DrawActionBase *action)
 Callback before any slice is rendered - setup per volume.
virtual void brickActivate (DVRVolume *volume, DrawActionBase *action, Brick *brick)
 Callback before any brick - state setup per brick.
virtual void deactivate (DVRVolume *volume, DrawActionBase *action)
 Callback after all rendering of the volume is done.
virtual void cleanup (DVRVolume *volume, DrawActionBase *action)
 Callback to clean up shader resources.
Volume Rendering
virtual void renderSlice (DVRVolume *volume, DrawActionBase *action, Real32 *data, UInt32 vertices, UInt32 values)
virtual void renderSlice (DVRVolume *volume, DrawActionBase *action, DVRRenderSlice *clippedSlice)
virtual bool hasRenderCallback (void)
virtual bool useMTSlabs (void)

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 DVRSimpleLUTShaderPtr create (void)
 create a new instance of the class
static DVRSimpleLUTShaderPtr createEmpty (void)
 create an empty new instance of the class, do not copy the prototype

Static Public Attributes

static const osg::BitVector LutModeFieldMask
static const osg::BitVector ActiveLutModeFieldMask
static const osg::BitVector MTInfluenceMask
static const BitVector NextFieldMask

Protected Member Functions

Sync
*void executeSyncImpl (DVRShaderBase *pOther, const BitVector &whichField)
Constructors
DVRSimpleLUTShaderBase (void)
 DVRSimpleLUTShaderBase (const DVRSimpleLUTShaderBase &source)
Destructors
*virtual ~DVRSimpleLUTShaderBase (void)
Field Get
*SFInt8getSFLutMode (void)
 Get the DVRSimpleLUTShader::_sfLutMode field.
SFInt8getSFActiveLutMode (void)
 Get the DVRSimpleLUTShader::_sfActiveLutMode field.
Int8getLutMode (void)
 Get the value of the DVRSimpleLUTShader::_sfLutMode field.
const Int8getLutMode (void) const
 Get the value of the DVRSimpleLUTShader::_sfLutMode field.
Int8getActiveLutMode (void)
 Get the value of the DVRSimpleLUTShader::_sfActiveLutMode field.
const Int8getActiveLutMode (void) const
 Get the value of the DVRSimpleLUTShader::_sfActiveLutMode field.
Field Set
*void setLutMode (const Int8 &value)
 Set the value of the DVRSimpleLUTShader::_sfLutMode field.
void setActiveLutMode (const Int8 &value)
 Set the value of the DVRSimpleLUTShader::_sfActiveLutMode field.
Sync
*void executeSyncImpl (DVRSimpleLUTShaderBase *pOther, const BitVector &whichField)
virtual void executeSync (FieldContainer &other, const BitVector &whichField)
Sync
*void executeSyncImpl (DVRSimpleShaderBase *pOther, const BitVector &whichField)
Sync
*void executeSyncImpl (DVRShaderBase *pOther, const BitVector &whichField)

Protected Attributes

Int32 m_nTextureId
Fields
*SFInt8 _sfLutMode
SFInt8 _sfActiveLutMode

Private Types

typedef DVRSimpleShader Inherited

Private Member Functions

void operator= (const DVRSimpleLUTShaderBase &source)

Static Private Attributes

static FieldDescription_desc []
 DVRSimpleLUTShader description.
static FieldContainerType _type

Friends

class FieldContainer

Detailed Description

Definition at line 82 of file OSGDVRSimpleLUTShaderBase.h.


Member Typedef Documentation

typedef DVRSimpleShader osg::DVRSimpleLUTShaderBase::Inherited [private]
 

Reimplemented from osg::DVRSimpleShader.

Reimplemented in osg::DVRMtexLUTShader, osg::DVRMtexLUTShaderBase, and osg::DVRSimpleLUTShader.

Definition at line 86 of file OSGDVRSimpleLUTShaderBase.h.

typedef DVRSimpleLUTShaderPtr osg::DVRSimpleLUTShaderBase::Ptr
 

Reimplemented from osg::DVRSimpleShaderBase.

Reimplemented in osg::DVRMtexLUTShaderBase.

Definition at line 91 of file OSGDVRSimpleLUTShaderBase.h.


Member Enumeration Documentation

anonymous enum
 

Enumerator:
LutModeFieldId 
ActiveLutModeFieldId 
NextFieldId 

Reimplemented from osg::FieldContainer.

Definition at line 93 of file OSGDVRSimpleLUTShaderBase.h.

00094     {
00095         LutModeFieldId       = Inherited::NextFieldId,
00096         ActiveLutModeFieldId = LutModeFieldId       + 1,
00097         NextFieldId          = ActiveLutModeFieldId + 1
00098     };


Constructor & Destructor Documentation

DVRSimpleLUTShaderBase::DVRSimpleLUTShaderBase void   )  [protected]
 

Definition at line 175 of file OSGDVRSimpleLUTShaderBase.cpp.

00175                                                    :
00176     _sfLutMode                (Int8(0)), 
00177     _sfActiveLutMode          (), 
00178     Inherited() 
00179 {
00180 }

DVRSimpleLUTShaderBase::DVRSimpleLUTShaderBase const DVRSimpleLUTShaderBase source  )  [protected]
 

Definition at line 186 of file OSGDVRSimpleLUTShaderBase.cpp.

00186                                                                                    :
00187     _sfLutMode                (source._sfLutMode                ), 
00188     _sfActiveLutMode          (source._sfActiveLutMode          ), 
00189     Inherited                 (source)
00190 {
00191 }

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

Definition at line 195 of file OSGDVRSimpleLUTShaderBase.cpp.

00196 {
00197 }


Member Function Documentation

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

Reimplemented from osg::DVRSimpleShaderBase.

Reimplemented in osg::DVRMtexLUTShaderBase.

Definition at line 58 of file OSGDVRSimpleLUTShaderBase.inl.

References _type.

Referenced by create().

00059 {
00060     return _type; 
00061 } 

osg::UInt32 osg::DVRSimpleLUTShaderBase::getClassTypeId void   )  [inline, static]
 

Reimplemented from osg::DVRSimpleShaderBase.

Reimplemented in osg::DVRMtexLUTShaderBase.

Definition at line 65 of file OSGDVRSimpleLUTShaderBase.inl.

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

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

FieldContainerType & DVRSimpleLUTShaderBase::getType void   )  [virtual]
 

Reimplemented from osg::DVRSimpleShaderBase.

Reimplemented in osg::DVRMtexLUTShaderBase.

Definition at line 117 of file OSGDVRSimpleLUTShaderBase.cpp.

References _type.

00118 {
00119     return _type; 
00120 } 

const FieldContainerType & DVRSimpleLUTShaderBase::getType void   )  const [virtual]
 

Reimplemented from osg::DVRSimpleShaderBase.

Reimplemented in osg::DVRMtexLUTShaderBase.

Definition at line 122 of file OSGDVRSimpleLUTShaderBase.cpp.

References _type.

00123 {
00124     return _type;
00125 } 

UInt32 DVRSimpleLUTShaderBase::getContainerSize void   )  const [virtual]
 

Reimplemented from osg::DVRSimpleShaderBase.

Reimplemented in osg::DVRMtexLUTShaderBase.

Definition at line 137 of file OSGDVRSimpleLUTShaderBase.cpp.

00138 { 
00139     return sizeof(DVRSimpleLUTShader); 
00140 }

UInt32 DVRSimpleLUTShaderBase::getBinSize const BitVector whichField  )  [virtual]
 

Reimplemented from osg::DVRSimpleShaderBase.

Reimplemented in osg::DVRMtexLUTShaderBase.

Definition at line 201 of file OSGDVRSimpleLUTShaderBase.cpp.

References _sfActiveLutMode, _sfLutMode, ActiveLutModeFieldMask, osg::SField< FieldTypeT, fieldNameSpace >::getBinSize(), osg::DVRSimpleShaderBase::getBinSize(), LutModeFieldMask, and osg::FieldBits::NoField.

Referenced by osg::DVRMtexLUTShaderBase::getBinSize().

00202 {
00203     UInt32 returnValue = Inherited::getBinSize(whichField);
00204 
00205     if(FieldBits::NoField != (LutModeFieldMask & whichField))
00206     {
00207         returnValue += _sfLutMode.getBinSize();
00208     }
00209 
00210     if(FieldBits::NoField != (ActiveLutModeFieldMask & whichField))
00211     {
00212         returnValue += _sfActiveLutMode.getBinSize();
00213     }
00214 
00215 
00216     return returnValue;
00217 }

void DVRSimpleLUTShaderBase::copyToBin BinaryDataHandler pMem,
const BitVector whichField
[virtual]
 

Reimplemented from osg::DVRSimpleShaderBase.

Reimplemented in osg::DVRMtexLUTShaderBase.

Definition at line 219 of file OSGDVRSimpleLUTShaderBase.cpp.

References _sfActiveLutMode, _sfLutMode, ActiveLutModeFieldMask, osg::SField< FieldTypeT, fieldNameSpace >::copyToBin(), osg::DVRSimpleShaderBase::copyToBin(), LutModeFieldMask, and osg::FieldBits::NoField.

Referenced by osg::DVRMtexLUTShaderBase::copyToBin().

00221 {
00222     Inherited::copyToBin(pMem, whichField);
00223 
00224     if(FieldBits::NoField != (LutModeFieldMask & whichField))
00225     {
00226         _sfLutMode.copyToBin(pMem);
00227     }
00228 
00229     if(FieldBits::NoField != (ActiveLutModeFieldMask & whichField))
00230     {
00231         _sfActiveLutMode.copyToBin(pMem);
00232     }
00233 
00234 
00235 }

void DVRSimpleLUTShaderBase::copyFromBin BinaryDataHandler pMem,
const BitVector whichField
[virtual]
 

Reimplemented from osg::DVRSimpleShaderBase.

Reimplemented in osg::DVRMtexLUTShaderBase.

Definition at line 237 of file OSGDVRSimpleLUTShaderBase.cpp.

References _sfActiveLutMode, _sfLutMode, ActiveLutModeFieldMask, osg::SField< FieldTypeT, fieldNameSpace >::copyFromBin(), osg::DVRSimpleShaderBase::copyFromBin(), LutModeFieldMask, and osg::FieldBits::NoField.

Referenced by osg::DVRMtexLUTShaderBase::copyFromBin().

00239 {
00240     Inherited::copyFromBin(pMem, whichField);
00241 
00242     if(FieldBits::NoField != (LutModeFieldMask & whichField))
00243     {
00244         _sfLutMode.copyFromBin(pMem);
00245     }
00246 
00247     if(FieldBits::NoField != (ActiveLutModeFieldMask & whichField))
00248     {
00249         _sfActiveLutMode.copyFromBin(pMem);
00250     }
00251 
00252 
00253 }

DVRSimpleLUTShaderPtr osg::DVRSimpleLUTShaderBase::create void   )  [inline, static]
 

Reimplemented from osg::DVRSimpleShaderBase.

Reimplemented in osg::DVRMtexLUTShaderBase.

Definition at line 72 of file OSGDVRSimpleLUTShaderBase.inl.

References getClassType(), osg::FieldContainerType::getPrototype(), osg::NullFC, and shallowCopy().

00073 {
00074     DVRSimpleLUTShaderPtr fc; 
00075 
00076     if(getClassType().getPrototype() != OSG::NullFC) 
00077     {
00078         fc = DVRSimpleLUTShaderPtr::dcast(
00079             getClassType().getPrototype()-> shallowCopy()); 
00080     }
00081     
00082     return fc; 
00083 }

DVRSimpleLUTShaderPtr osg::DVRSimpleLUTShaderBase::createEmpty void   )  [inline, static]
 

Reimplemented from osg::DVRSimpleShaderBase.

Reimplemented in osg::DVRMtexLUTShaderBase.

Definition at line 87 of file OSGDVRSimpleLUTShaderBase.inl.

References osg::FieldContainer::newPtr().

00088 { 
00089     DVRSimpleLUTShaderPtr returnValue; 
00090     
00091     newPtr(returnValue); 
00092 
00093     return returnValue; 
00094 }

FieldContainerPtr DVRSimpleLUTShaderBase::shallowCopy void   )  const [virtual]
 

Reimplemented from osg::DVRSimpleShaderBase.

Reimplemented in osg::DVRMtexLUTShaderBase.

Definition at line 128 of file OSGDVRSimpleLUTShaderBase.cpp.

References osg::FieldContainer::newPtr().

Referenced by create().

00129 { 
00130     DVRSimpleLUTShaderPtr returnValue; 
00131 
00132     newPtr(returnValue, dynamic_cast<const DVRSimpleLUTShader *>(this)); 
00133 
00134     return returnValue; 
00135 }

SFInt8 * osg::DVRSimpleLUTShaderBase::getSFLutMode void   )  [inline, protected]
 

Definition at line 101 of file OSGDVRSimpleLUTShaderBase.inl.

References _sfLutMode.

00102 {
00103     return &_sfLutMode;
00104 }

SFInt8 * osg::DVRSimpleLUTShaderBase::getSFActiveLutMode void   )  [inline, protected]
 

Definition at line 108 of file OSGDVRSimpleLUTShaderBase.inl.

References _sfActiveLutMode.

00109 {
00110     return &_sfActiveLutMode;
00111 }

Int8 & osg::DVRSimpleLUTShaderBase::getLutMode void   )  [inline, protected]
 

Definition at line 116 of file OSGDVRSimpleLUTShaderBase.inl.

References _sfLutMode, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by osg::DVRSimpleLUTShader::initialize(), and osg::DVRMtexLUTShader::initialize().

00117 {
00118     return _sfLutMode.getValue();
00119 }

const Int8 & osg::DVRSimpleLUTShaderBase::getLutMode void   )  const [inline, protected]
 

Definition at line 123 of file OSGDVRSimpleLUTShaderBase.inl.

References _sfLutMode, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00124 {
00125     return _sfLutMode.getValue();
00126 }

Int8 & osg::DVRSimpleLUTShaderBase::getActiveLutMode void   )  [inline, protected]
 

Definition at line 137 of file OSGDVRSimpleLUTShaderBase.inl.

References _sfActiveLutMode, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by osg::DVRSimpleLUTShader::activate().

00138 {
00139     return _sfActiveLutMode.getValue();
00140 }

const Int8 & osg::DVRSimpleLUTShaderBase::getActiveLutMode void   )  const [inline, protected]
 

Definition at line 144 of file OSGDVRSimpleLUTShaderBase.inl.

References _sfActiveLutMode, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00145 {
00146     return _sfActiveLutMode.getValue();
00147 }

void osg::DVRSimpleLUTShaderBase::setLutMode const Int8 value  )  [inline, protected]
 

Definition at line 130 of file OSGDVRSimpleLUTShaderBase.inl.

References _sfLutMode, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00131 {
00132     _sfLutMode.setValue(value);
00133 }

void osg::DVRSimpleLUTShaderBase::setActiveLutMode const Int8 value  )  [inline, protected]
 

Definition at line 151 of file OSGDVRSimpleLUTShaderBase.inl.

References _sfActiveLutMode, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

Referenced by osg::DVRSimpleLUTShader::changed(), osg::DVRSimpleLUTShader::initialize(), and osg::DVRMtexLUTShader::initialize().

00152 {
00153     _sfActiveLutMode.setValue(value);
00154 }

void DVRSimpleLUTShaderBase::executeSyncImpl DVRSimpleLUTShaderBase pOther,
const BitVector whichField
[protected]
 

Definition at line 256 of file OSGDVRSimpleLUTShaderBase.cpp.

References _sfActiveLutMode, _sfLutMode, ActiveLutModeFieldMask, osg::DVRSimpleShaderBase::executeSyncImpl(), LutModeFieldMask, osg::FieldBits::NoField, and osg::SField< FieldTypeT, fieldNameSpace >::syncWith().

Referenced by executeSync(), and osg::DVRMtexLUTShaderBase::executeSyncImpl().

00258 {
00259 
00260     Inherited::executeSyncImpl(pOther, whichField);
00261 
00262     if(FieldBits::NoField != (LutModeFieldMask & whichField))
00263         _sfLutMode.syncWith(pOther->_sfLutMode);
00264 
00265     if(FieldBits::NoField != (ActiveLutModeFieldMask & whichField))
00266         _sfActiveLutMode.syncWith(pOther->_sfActiveLutMode);
00267 
00268 
00269 }

void DVRSimpleLUTShaderBase::executeSync FieldContainer other,
const BitVector whichField
[protected, virtual]
 

Reimplemented from osg::DVRSimpleShaderBase.

Reimplemented in osg::DVRMtexLUTShaderBase.

Definition at line 144 of file OSGDVRSimpleLUTShaderBase.cpp.

References executeSyncImpl().

00146 {
00147     this->executeSyncImpl((DVRSimpleLUTShaderBase *) &other, whichField);
00148 }

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

void DVRSimpleShader::changed BitVector  whichField,
UInt32  from
[virtual, inherited]
 

Reimplemented from osg::DVRShader.

Reimplemented in osg::DVRMtexLUTShader, and osg::DVRSimpleLUTShader.

Definition at line 89 of file OSGDVRSimpleShader.cpp.

References osg::DVRShader::changed().

Referenced by osg::DVRSimpleLUTShader::changed().

00090 {
00091     Inherited::changed(whichField, origin);
00092 }

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

Reimplemented from osg::DVRShader.

Reimplemented in osg::DVRMtexLUTShader, and osg::DVRSimpleLUTShader.

Definition at line 95 of file OSGDVRSimpleShader.cpp.

References SLOG.

00097 {
00098     SLOG << "Dump DVRSimpleShader NI" << std::endl;
00099 }

bool DVRSimpleShader::initialize DVRVolume volume,
DrawActionBase action
[virtual, inherited]
 

Reimplemented from osg::DVRShader.

Reimplemented in osg::DVRMtexLUTShader, and osg::DVRSimpleLUTShader.

Definition at line 103 of file OSGDVRSimpleShader.cpp.

References DVRVOLUME_PARAMETER, FDEBUG, FNOTICE, FWARNING, osg::DVRVolume::getTextureManager(), GLenum, osg::DVRSimpleShader::m_nTextureId, osg::Image::OSG_FLOAT16_IMAGEDATA, osg::Image::OSG_FLOAT32_IMAGEDATA, osg::Image::OSG_L_PF, osg::Image::OSG_LA_PF, osg::Image::OSG_RGB_DXT1, osg::Image::OSG_RGB_PF, osg::Image::OSG_RGBA_DXT1, osg::Image::OSG_RGBA_DXT3, osg::Image::OSG_RGBA_DXT5, osg::Image::OSG_RGBA_PF, osg::Image::OSG_UINT16_IMAGEDATA, osg::Image::OSG_UINT32_IMAGEDATA, osg::Image::OSG_UINT8_IMAGEDATA, osg::TextureManager::registerTexture(), and SWARNING.

00105 {
00106     FDEBUG(("DVRSimpleShader::initialize\n"));
00107     
00108     m_nTextureId = -1;
00109 
00110     DVRVolumeTexturePtr vol = DVRVOLUME_PARAMETER(volume, DVRVolumeTexture);
00111 
00112     ImagePtr img = vol->getImage();
00113     
00114     // Map the size to an index
00115     
00116     static Int16 types[] =  { Image::OSG_UINT8_IMAGEDATA,
00117                               Image::OSG_UINT16_IMAGEDATA,
00118                               Image::OSG_UINT32_IMAGEDATA,
00119                               Image::OSG_FLOAT16_IMAGEDATA,
00120                               Image::OSG_FLOAT32_IMAGEDATA,
00121                               -1 };
00122     
00123     UInt16 type = 0;
00124     while(types[type] != -1 && types[type] != img->getDataType()) type++;
00125     
00126     if(!types[type])
00127     {
00128         FWARNING(("DVRSimpleShader::initialize: Image data type %d "
00129                   "unknown!\n", img->getDataType()));
00130         type = 0;
00131     }
00132     
00133     if(type > 2) // Ignore float types for now
00134     {
00135         FWARNING(("DVRSimpleShader::initialize: Can't do float image types,"
00136                   " treating as int.\n"));
00137         type = 0;
00138     }
00139     
00140     
00141     // Map the pixel format to an index
00142        
00143     static Int16 formats[] =  { Image::OSG_L_PF,
00144                                 Image::OSG_LA_PF,
00145                                 Image::OSG_RGBA_DXT1,
00146                                 Image::OSG_RGBA_DXT3,
00147                                 Image::OSG_RGBA_DXT5,
00148                                 Image::OSG_RGBA_PF,
00149                                 Image::OSG_RGB_DXT1,
00150                                 Image::OSG_RGB_PF,
00151                                 -1 };
00152     
00153     UInt16 format = 0;
00154     while(formats[format] != -1 && 
00155           formats[format] != img->getPixelFormat()) format++;
00156     
00157     if(!formats[format])
00158     {
00159         FWARNING(("DVRSimpleShader::initialize: Image pixel format %d "
00160                   "unknown!\n", img->getPixelFormat()));
00161         format = 0;
00162     }
00163     
00164     if(type > 5) // RGB doesn't have alpha...
00165     {
00166         FNOTICE(("DVRSimpleShader::initialize: Image pixel format doesn't "
00167                  "have alpha! Volume will not be transparent!\n"));
00168     }
00169 
00170     // Now get the best internal format for the image
00171     
00172     static GLenum intfs[8][3] = {
00173         { GL_INTENSITY, GL_INTENSITY16, GL_INTENSITY16 },
00174         { GL_LUMINANCE_ALPHA, GL_LUMINANCE16_ALPHA16, GL_LUMINANCE16_ALPHA16 },
00175         { GL_RGBA, GL_RGBA, GL_RGBA },
00176         { GL_RGBA, GL_RGBA, GL_RGBA },
00177         { GL_RGBA, GL_RGBA, GL_RGBA },
00178         { GL_RGBA, GL_RGBA16, GL_RGBA16 },
00179         { GL_RGB, GL_RGB, GL_RGB },
00180         { GL_RGB, GL_RGB16, GL_RGB16 }
00181         };
00182                                
00183     
00184     m_nTextureId = volume->getTextureManager().registerTexture(
00185         vol->getImage(),        // image
00186         intfs[format][type],    // internalFormat
00187         GL_NONE,                // externalFormat
00188         1,                      // doBricking
00189         0,                      // textureStage0
00190         -1);                    // textureStage1
00191     
00192     if(m_nTextureId == -1) 
00193     {
00194         SWARNING << "Error registering textures ..." << std::endl;
00195         return false;
00196     }
00197     
00198     return true;
00199 }

void DVRSimpleShader::activate DVRVolume volume,
DrawActionBase action
[virtual, inherited]
 

Reimplemented from osg::DVRShader.

Reimplemented in osg::DVRMtexLUTShader, and osg::DVRSimpleLUTShader.

Definition at line 203 of file OSGDVRSimpleShader.cpp.

References osg::DVRVolumeBase::getDoTextures().

Referenced by osg::DVRSimpleLUTShader::activate().

00204 {
00205     //FDEBUG << "DVRSimpleShader::activate\n"));
00206 
00207     glPushAttrib(GL_ENABLE_BIT         | 
00208                  GL_COLOR_BUFFER_BIT   |
00209                  GL_STENCIL_BUFFER_BIT |
00210                  GL_DEPTH_BUFFER_BIT   | 
00211                  GL_POLYGON_BIT        | 
00212                  GL_TEXTURE_BIT);
00213 
00214     glDisable(GL_DITHER);
00215     glDisable(GL_LIGHTING);
00216     
00217     glColor4f(1.0,1.0,1.0,1.0); 
00218     
00219     if(volume->getDoTextures()) 
00220     {
00221         // glDisable(GL_TEXTURE_2D);  
00222         // glEnable(GL_TEXTURE_3D_EXT);  
00223         glEnable(GL_BLEND);  
00224         glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);   
00225         
00226         glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);  
00227     }
00228 }

void DVRSimpleShader::brickActivate DVRVolume volume,
DrawActionBase action,
Brick brick
[virtual, inherited]
 

Reimplemented from osg::DVRShader.

Reimplemented in osg::DVRSimpleLUTShader.

Definition at line 231 of file OSGDVRSimpleShader.cpp.

Referenced by osg::DVRSimpleLUTShader::brickActivate().

00234 {
00235     //FDEBUG(("DVRSimpleShader::brickActivate\n"));
00236 }

void DVRSimpleShader::deactivate DVRVolume volume,
DrawActionBase action
[virtual, inherited]
 

Reimplemented from osg::DVRShader.

Reimplemented in osg::DVRMtexLUTShader, and osg::DVRSimpleLUTShader.

Definition at line 239 of file OSGDVRSimpleShader.cpp.

References FDEBUG.

Referenced by osg::DVRSimpleLUTShader::deactivate().

00241 {
00242     FDEBUG(("DVRSimpleShader::deactivate\n"));
00243     
00244     glPopAttrib();
00245 }

void DVRSimpleShader::cleanup DVRVolume volume,
DrawActionBase action
[virtual, inherited]
 

Reimplemented in osg::DVRMtexLUTShader, and osg::DVRSimpleLUTShader.

Definition at line 248 of file OSGDVRSimpleShader.cpp.

References osg::DVRVolume::getTextureManager(), osg::DVRSimpleShader::m_nTextureId, and osg::TextureManager::unregisterTexture().

00249 {
00250     if (volume != NULL)
00251     {
00252         if (m_nTextureId != -1)
00253             volume->getTextureManager().unregisterTexture(m_nTextureId);
00254     }
00255 }

void DVRSimpleShaderBase::executeSyncImpl DVRSimpleShaderBase pOther,
const BitVector whichField
[protected, inherited]
 

Definition at line 191 of file OSGDVRSimpleShaderBase.cpp.

References osg::DVRShaderBase::executeSyncImpl().

Referenced by osg::DVRSimpleShaderBase::executeSync(), and executeSyncImpl().

00193 {
00194 
00195     Inherited::executeSyncImpl(pOther, whichField);
00196 
00197 
00198 }

void DVRShaderBase::executeSyncImpl DVRShaderBase pOther,
const BitVector whichField
[protected, inherited]
 

Definition at line 182 of file OSGDVRShaderBase.cpp.

References osg::FieldContainer::executeSyncImpl().

Referenced by osg::DVRShaderBase::executeSync(), osg::DVRSimpleShaderBase::executeSyncImpl(), and osg::DVRIsoShaderBase::executeSyncImpl().

00184 {
00185 
00186     Inherited::executeSyncImpl(pOther, whichField);
00187 
00188 
00189 }

void osg::FieldContainer::executeSyncImpl FieldContainer pOther,
const BitVector whichField
[inline, protected, inherited]
 

Definition at line 333 of file OSGFieldContainerImpl.inl.

Referenced by osg::StateBase::executeSyncImpl(), osg::DVRShaderBase::executeSyncImpl(), osg::DVRClipGeometryBase::executeSyncImpl(), osg::AttachmentContainer::executeSyncImpl(), and osg::Attachment::executeSyncImpl().

00335 {
00336 }

void DVRShader::renderSlice DVRVolume volume,
DrawActionBase action,
Real32 data,
UInt32