#include <OSGDVRVolumeTexture.h>
Inheritance diagram for osg::DVRVolumeTexture:

Public Types | |
| typedef DVRVolumeTexturePtr | Ptr |
| enum | { ImageFieldId = Inherited::NextFieldId, HistogramFieldId = ImageFieldId + 1, MaxValFieldId = HistogramFieldId + 1, SliceThicknessFieldId = MaxValFieldId + 1, ResolutionFieldId = SliceThicknessFieldId + 1, FileNameFieldId = ResolutionFieldId + 1, NextFieldId = FileNameFieldId + 1 } |
Public Member Functions | |
Field Set | |
| *void | setImage (const ImagePtr &value) |
| Set the value of the DVRVolumeTexture::_sfImage field. | |
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 | |
FieldContainer Get | |
| *virtual FieldContainerType & | getType (void) |
| virtual const FieldContainerType & | getType (void) const |
| virtual UInt32 | getContainerSize (void) const |
Field Get | |
| *SFImagePtr * | getSFImage (void) |
| Get the DVRVolumeTexture::_sfImage field. | |
| MFReal32 * | getMFHistogram (void) |
| Get the DVRVolumeTexture::_mfHistogram field. | |
| SFReal32 * | getSFMaxVal (void) |
| Get the DVRVolumeTexture::_sfMaxVal field. | |
| SFVec3f * | getSFSliceThickness (void) |
| Get the DVRVolumeTexture::_sfSliceThickness field. | |
| SFVec3f * | getSFResolution (void) |
| Get the DVRVolumeTexture::_sfResolution field. | |
| SFString * | getSFFileName (void) |
| Get the DVRVolumeTexture::_sfFileName field. | |
| ImagePtr & | getImage (void) |
| Get the value of the DVRVolumeTexture::_sfImage field. | |
| const ImagePtr & | getImage (void) const |
| Get the value of the DVRVolumeTexture::_sfImage field. | |
| Real32 & | getMaxVal (void) |
| Get the value of the DVRVolumeTexture::_sfMaxVal field. | |
| const Real32 & | getMaxVal (void) const |
| Get the value of the DVRVolumeTexture::_sfMaxVal field. | |
| Vec3f & | getSliceThickness (void) |
| Get the value of the DVRVolumeTexture::_sfSliceThickness field. | |
| const Vec3f & | getSliceThickness (void) const |
| Get the value of the DVRVolumeTexture::_sfSliceThickness field. | |
| Vec3f & | getResolution (void) |
| Get the value of the DVRVolumeTexture::_sfResolution field. | |
| const Vec3f & | getResolution (void) const |
| Get the value of the DVRVolumeTexture::_sfResolution field. | |
| std::string & | getFileName (void) |
| Get the value of the DVRVolumeTexture::_sfFileName field. | |
| const std::string & | getFileName (void) const |
| Get the value of the DVRVolumeTexture::_sfFileName field. | |
| Real32 & | getHistogram (const UInt32 index) |
| Get the value of the index element the DVRVolumeTexture::_mfHistogram field. | |
| MFReal32 & | getHistogram (void) |
| Get the DVRVolumeTexture::_mfHistogram field. | |
| const MFReal32 & | getHistogram (void) const |
| Get the DVRVolumeTexture::_mfHistogram field. | |
Field Set | |
| void | setMaxVal (const Real32 &value) |
| Set the value of the DVRVolumeTexture::_sfMaxVal field. | |
| void | setSliceThickness (const Vec3f &value) |
| Set the value of the DVRVolumeTexture::_sfSliceThickness field. | |
| void | setResolution (const Vec3f &value) |
| Set the value of the DVRVolumeTexture::_sfResolution field. | |
| void | setFileName (const std::string &value) |
| Set the value of the DVRVolumeTexture::_sfFileName 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 FieldContainerType & | getClassType (void) |
| access the type of the class | |
| static UInt32 | getClassTypeId (void) |
| access the numerical type of the class | |
Construction | |
| *static DVRVolumeTexturePtr | create (void) |
| create a new instance of the class | |
| static DVRVolumeTexturePtr | createEmpty (void) |
| create an empty new instance of the class, do not copy the prototype | |
Static Public Attributes | |
| static const osg::BitVector | ImageFieldMask |
| static const osg::BitVector | HistogramFieldMask |
| static const osg::BitVector | MaxValFieldMask |
| static const osg::BitVector | SliceThicknessFieldMask |
| static const osg::BitVector | ResolutionFieldMask |
| static const osg::BitVector | FileNameFieldMask |
| 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 | |
| * | DVRVolumeTexture (void) |
| Constructor. | |
| DVRVolumeTexture (const DVRVolumeTexture &source) | |
| Copy Constructor. | |
Destructors | |
| *virtual | ~DVRVolumeTexture (void) |
| Destructor. | |
Sync | |
| *void | executeSyncImpl (DVRVolumeTextureBase *pOther, const BitVector &whichField) |
| virtual void | executeSync (FieldContainer &other, const BitVector &whichField) |
Protected Attributes | |
Fields | |
| *SFImagePtr | _sfImage |
| MFReal32 | _mfHistogram |
| SFReal32 | _sfMaxVal |
| SFVec3f | _sfSliceThickness |
| SFVec3f | _sfResolution |
| SFString | _sfFileName |
Private Types | |
| typedef DVRVolumeTextureBase | Inherited |
Private Member Functions | |
| void | operator= (const DVRVolumeTexture &source) |
Static Private Member Functions | |
| static void | initMethod (void) |
| initialize the static features of the class, e.g. action callbacks | |
Friends | |
| class | FieldContainer |
| class | DVRVolumeTextureBase |
Definition at line 54 of file OSGDVRVolumeTexture.h.
|
|
Reimplemented from osg::DVRVolumeTextureBase. Definition at line 58 of file OSGDVRVolumeTexture.h. |
|
|
Definition at line 95 of file OSGDVRVolumeTextureBase.h. |
|
|
Reimplemented from osg::Attachment. Definition at line 97 of file OSGDVRVolumeTextureBase.h. 00098 { 00099 ImageFieldId = Inherited::NextFieldId, 00100 HistogramFieldId = ImageFieldId + 1, 00101 MaxValFieldId = HistogramFieldId + 1, 00102 SliceThicknessFieldId = MaxValFieldId + 1, 00103 ResolutionFieldId = SliceThicknessFieldId + 1, 00104 FileNameFieldId = ResolutionFieldId + 1, 00105 NextFieldId = FileNameFieldId + 1 00106 };
|
|
|
Definition at line 63 of file OSGDVRVolumeTexture.cpp. 00063 : 00064 Inherited() 00065 { 00066 }
|
|
|
Definition at line 70 of file OSGDVRVolumeTexture.cpp. 00070 : 00071 Inherited(source) 00072 { 00073 }
|
|
|
Definition at line 77 of file OSGDVRVolumeTexture.cpp. References osg::DVRVolumeTextureBase::getImage(), osg::NullFC, and setImage().
|
|
|
Reimplemented from osg::DVRVolumeTextureBase. Definition at line 56 of file OSGDVRVolumeTexture.inl. References osg::DVRVolumeTextureBase::_sfImage, osg::SField< FieldTypeT, fieldNameSpace >::getValue(), and osg::setRefdCP(). Referenced by changed(), and ~DVRVolumeTexture().
|
|
||||||||||||
|
! FIXME: ! you can either change the image pointer or the file name Reimplemented from osg::FieldContainer. Definition at line 95 of file OSGDVRVolumeTexture.cpp. References osg::DVRVolumeTextureBase::_mfHistogram, osg::DVRVolumeTextureBase::_sfFileName, osg::DVRVolumeTextureBase::_sfImage, osg::DVRVolumeTextureBase::_sfMaxVal, osg::DVRVolumeTextureBase::_sfResolution, osg::DVRVolumeTextureBase::_sfSliceThickness, osg::ChangedOrigin::Abstract, osg::ChangedOrigin::AbstrIncRefCount, osg::addRefCP(), osg::beginEditCP(), osg::FieldContainer::changed(), osg::ImageBase::create(), osg::FieldContainerPtrBase::dump(), osg::endEditCP(), FDEBUG, osg::DVRVolumeTextureBase::FileNameFieldMask, FINFO, osg::DVRVolumeTextureBase::getImage(), osg::SField< FieldTypeT, fieldNameSpace >::getValue(), osg::DVRVolumeTextureBase::ImageFieldMask, osg::NullFC, osg::MField< FieldTypeT, fieldNameSpace >::resize(), setImage(), osg::SField< FieldTypeT, fieldNameSpace >::setValue(), and SWARNING. 00096 { 00097 DVRVolumeTexturePtr thisP(*this); 00098 00099 FDEBUG(("DVRVolumeTexture::changed - \n")); 00100 00101 if (whichField & ImageFieldMask) 00102 { 00103 FINFO(("DVRVolumeTexture::changed - new Image\n")); 00104 00105 if(origin & ChangedOrigin::Abstract) 00106 { 00107 if(origin & ChangedOrigin::AbstrIncRefCount) 00108 { 00109 addRefCP(_sfImage.getValue()); 00110 } 00111 else 00112 { 00113 ImagePtr pImage = _sfImage.getValue(); 00114 00115 _sfImage.setValue(NullFC); 00116 00117 setImage(pImage); 00118 } 00119 } 00120 00121 _mfHistogram.resize(256); 00122 00123 // update histogram 00124 Real32 *hist = &(_mfHistogram[0]); 00125 UChar8 *img = getImage()->getData(); 00126 Real32 maxVal = 0; 00127 00128 for(UInt32 i = 0; i < 256; i++) 00129 hist[i] = 0; 00130 00131 if(img == NULL) 00132 return; 00133 00134 FDEBUG(("Image: %d %d %d\n", 00135 getImage()->getWidth(), 00136 getImage()->getHeight(), 00137 getImage()->getDepth())); 00138 00139 // need to fix this for compressed textures! 00140 for(Int32 j = 0;j < getImage()->getSize();j++) 00141 { 00142 // cerr << j << ": " << (int) img[j] << std::endl ; 00143 hist[img[j]]++; 00144 } 00145 00146 for(UInt32 k = 0; k < 256; k++) 00147 maxVal = (hist[k] > maxVal) ? hist[k] : maxVal; 00148 00149 _sfMaxVal.setValue(maxVal); 00150 00151 // update sliceThickness 00152 const std::string * sTatt = 00153 getImage()->findAttachmentField("SliceThickness"); 00154 00155 if(sTatt) 00156 { 00157 Real64 sT[3]; 00158 00159 sscanf(sTatt->c_str(), "%lf %lf %lf", &sT[0], &sT[1], &sT[2]); 00160 00161 _sfSliceThickness.setValue( 00162 Vec3f(Real32(sT[0]), 00163 Real32(sT[1]), 00164 Real32(sT[2]))); 00165 } 00166 else 00167 { 00168 SWARNING << "DVRVolumeTexture::changed - No SliceThickness found" 00169 << std::endl; 00170 } 00171 00172 // update resolution 00173 const std::string * resAtt = 00174 getImage()->findAttachmentField("Resolution"); 00175 00176 if (resAtt) 00177 { 00178 Real64 sT[3]; 00179 00180 sscanf(resAtt->c_str(), "%lf %lf %lf", &sT[0], &sT[1], &sT[2]); 00181 00182 _sfResolution.setValue( 00183 Vec3f(Real32(sT[0]), 00184 Real32(sT[1]), 00185 Real32(sT[2]))); 00186 } 00187 else 00188 { 00189 _sfResolution.setValue(Vec3f(getImage()->getWidth (), 00190 getImage()->getHeight(), 00191 getImage()->getDepth ())); 00192 } 00193 00196 whichField &= ~FileNameFieldMask; 00197 } 00198 00199 if (whichField & FileNameFieldMask) 00200 { 00201 FINFO(("DVRVolumeTexture::changed - new fileName\n")); 00202 00203 ImagePtr datImage = Image::create(); 00204 00205 datImage->read(_sfFileName.getValue().c_str()); 00206 00207 datImage->dump(); 00208 00209 beginEditCP(thisP, ImageFieldMask); 00210 { 00211 setImage(datImage); 00212 } 00213 endEditCP (thisP, ImageFieldMask); 00214 } 00215 00216 Inherited::changed(whichField, origin); 00217 }
|
|
||||||||||||
|
Reimplemented from osg::Attachment. Definition at line 221 of file OSGDVRVolumeTexture.cpp. References SLOG. 00223 { 00224 SLOG << "Dump DVRVolumeTexture NI" << std::endl; 00225 }
|
|
|
Definition at line 89 of file OSGDVRVolumeTexture.cpp.
|
|
|
|
|
|
Reimplemented from osg::Attachment. Definition at line 58 of file OSGDVRVolumeTextureBase.inl. References osg::DVRVolumeTextureBase::_type. Referenced by osg::DVRVolumeTextureBase::create(). 00059 { 00060 return _type; 00061 }
|
|
|
Reimplemented from osg::Attachment. Definition at line 65 of file OSGDVRVolumeTextureBase.inl. References osg::DVRVolumeTextureBase::_type, and osg::TypeBase::getId(). 00066 { 00067 return _type.getId(); 00068 }
|
|
|
Reimplemented from osg::Attachment. Definition at line 161 of file OSGDVRVolumeTextureBase.cpp. References osg::DVRVolumeTextureBase::_type. 00162 { 00163 return _type; 00164 }
|
|
|
Reimplemented from osg::Attachment. Definition at line 166 of file OSGDVRVolumeTextureBase.cpp. References osg::DVRVolumeTextureBase::_type. 00167 { 00168 return _type; 00169 }
|
|
|
Reimplemented from osg::Attachment. Definition at line 181 of file OSGDVRVolumeTextureBase.cpp. 00182 { 00183 return sizeof(DVRVolumeTexture); 00184 }
|
|
|
Definition at line 101 of file OSGDVRVolumeTextureBase.inl. References osg::DVRVolumeTextureBase::_sfImage. 00102 { 00103 return &_sfImage; 00104 }
|
|
|
Definition at line 108 of file OSGDVRVolumeTextureBase.inl. References osg::DVRVolumeTextureBase::_mfHistogram. 00109 { 00110 return &_mfHistogram; 00111 }
|
|
|
Definition at line 115 of file OSGDVRVolumeTextureBase.inl. References osg::DVRVolumeTextureBase::_sfMaxVal. 00116 { 00117 return &_sfMaxVal; 00118 }
|
|
|
Definition at line 122 of file OSGDVRVolumeTextureBase.inl. References osg::DVRVolumeTextureBase::_sfSliceThickness. 00123 { 00124 return &_sfSliceThickness; 00125 }
|
|
|
Definition at line 129 of file OSGDVRVolumeTextureBase.inl. References osg::DVRVolumeTextureBase::_sfResolution. 00130 { 00131 return &_sfResolution; 00132 }
|
|
|
Definition at line 136 of file OSGDVRVolumeTextureBase.inl. References osg::DVRVolumeTextureBase::_sfFileName. 00137 { 00138 return &_sfFileName; 00139 }
|
|
|
Definition at line 144 of file OSGDVRVolumeTextureBase.inl. References osg::DVRVolumeTextureBase::_sfImage, and osg::SField< FieldTypeT, fieldNameSpace >::getValue(). Referenced by changed(), and ~DVRVolumeTexture(). 00145 { 00146 return _sfImage.getValue(); 00147 }
|
|
|
Definition at line 151 of file OSGDVRVolumeTextureBase.inl. References osg::DVRVolumeTextureBase::_sfImage, and osg::SField< FieldTypeT, fieldNameSpace >::getValue(). 00152 { 00153 return _sfImage.getValue(); 00154 }
|
|
|
Definition at line 165 of file OSGDVRVolumeTextureBase.inl. References osg::DVRVolumeTextureBase::_sfMaxVal, and osg::SField< FieldTypeT, fieldNameSpace >::getValue(). 00166 { 00167 return _sfMaxVal.getValue(); 00168 }
|
|
|
Definition at line 172 of file OSGDVRVolumeTextureBase.inl. References osg::DVRVolumeTextureBase::_sfMaxVal, and osg::SField< FieldTypeT, fieldNameSpace >::getValue(). 00173 { 00174 return _sfMaxVal.getValue(); 00175 }
|
|
|
Definition at line 186 of file OSGDVRVolumeTextureBase.inl. References osg::DVRVolumeTextureBase::_sfSliceThickness, and osg::SField< FieldTypeT, fieldNameSpace >::getValue(). 00187 { 00188 return _sfSliceThickness.getValue(); 00189 }
|
|
|
Definition at line 193 of file OSGDVRVolumeTextureBase.inl. References osg::DVRVolumeTextureBase::_sfSliceThickness, and osg::SField< FieldTypeT, fieldNameSpace >::getValue(). 00194 { 00195 return _sfSliceThickness.getValue(); 00196 }
|
|
|
Definition at line 207 of file OSGDVRVolumeTextureBase.inl. References osg::DVRVolumeTextureBase::_sfResolution, and osg::SField< FieldTypeT, fieldNameSpace >::getValue(). 00208 { 00209 return _sfResolution.getValue(); 00210 }
|
|
|
Definition at line 214 of file OSGDVRVolumeTextureBase.inl. References osg::DVRVolumeTextureBase::_sfResolution, and osg::SField< FieldTypeT, fieldNameSpace >::getValue(). 00215 { 00216 return _sfResolution.getValue(); 00217 }
|
|
|
Definition at line 228 of file OSGDVRVolumeTextureBase.inl. References osg::DVRVolumeTextureBase::_sfFileName, and osg::SField< FieldTypeT, fieldNameSpace >::getValue(). 00229 { 00230 return _sfFileName.getValue(); 00231 }
|
|
|
Definition at line 235 of file OSGDVRVolumeTextureBase.inl. References osg::DVRVolumeTextureBase::_sfFileName, and osg::SField< FieldTypeT, fieldNameSpace >::getValue(). 00236 { 00237 return _sfFileName.getValue(); 00238 }
|
|
|
Definition at line 250 of file OSGDVRVolumeTextureBase.inl. References osg::DVRVolumeTextureBase::_mfHistogram. 00251 { 00252 return _mfHistogram[index]; 00253 }
|
|
|
Definition at line 257 of file OSGDVRVolumeTextureBase.inl. References osg::DVRVolumeTextureBase::_mfHistogram. 00258 { 00259 return _mfHistogram; 00260 }
|
|
|
Definition at line 264 of file OSGDVRVolumeTextureBase.inl. References osg::DVRVolumeTextureBase::_mfHistogram. 00265 { 00266 return _mfHistogram; 00267 }
|
|
|
Definition at line 179 of file OSGDVRVolumeTextureBase.inl. References osg::DVRVolumeTextureBase::_sfMaxVal, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().
|
|
|
Definition at line 200 of file OSGDVRVolumeTextureBase.inl. References osg::DVRVolumeTextureBase::_sfSliceThickness, and osg::SField< FieldTypeT, fieldNameSpace >::setValue(). 00201 { 00202 _sfSliceThickness.setValue(value); 00203 }
|
|
|
Definition at line 221 of file OSGDVRVolumeTextureBase.inl. References osg::DVRVolumeTextureBase::_sfResolution, and osg::SField< FieldTypeT, fieldNameSpace >::setValue(). 00222 { 00223 _sfResolution.setValue(value); 00224 }
|
|
|
Definition at line 242 of file OSGDVRVolumeTextureBase.inl. References osg::DVRVolumeTextureBase::_sfFileName, and osg::SField< FieldTypeT, fieldNameSpace >::setValue(). 00243 { 00244 _sfFileName.setValue(value); 00245 }
|
|
|
||||||||||||