#include <OSGImageBackground.h>
Inheritance diagram for osg::ImageBackground:

Public Types | |
| typedef ImageBackgroundPtr | Ptr |
| enum | { ColorFieldId = Inherited::NextFieldId, ImageFieldId = ColorFieldId + 1, ScaleFieldId = ImageFieldId + 1, NextFieldId = ScaleFieldId + 1 } |
Public Member Functions | |
Actions | |
| *virtual void | clear (DrawActionBase *, Viewport *) |
Sync | |
| *virtual void | changed (BitVector whichField, UInt32 origin) |
Output | |
| *virtual void | dump (UInt32 uiIndent=0, const BitVector bvFlags=0) const |
FieldContainer Get | |
| *virtual FieldContainerType & | getType (void) |
| virtual const FieldContainerType & | getType (void) const |
| virtual UInt32 | getContainerSize (void) const |
Field Get | |
| *SFColor3f * | getSFColor (void) |
| Get the ImageBackground::_sfColor field. | |
| SFImagePtr * | getSFImage (void) |
| Get the ImageBackground::_sfImage field. | |
| SFBool * | getSFScale (void) |
| Get the ImageBackground::_sfScale field. | |
| Color3f & | getColor (void) |
| Get the value of the ImageBackground::_sfColor field. | |
| const Color3f & | getColor (void) const |
| Get the value of the ImageBackground::_sfColor field. | |
| ImagePtr & | getImage (void) |
| Get the value of the ImageBackground::_sfImage field. | |
| const ImagePtr & | getImage (void) const |
| Get the value of the ImageBackground::_sfImage field. | |
| bool & | getScale (void) |
| Get the value of the ImageBackground::_sfScale field. | |
| const bool & | getScale (void) const |
| Get the value of the ImageBackground::_sfScale field. | |
Field Set | |
| *void | setColor (const Color3f &value) |
| Set the value of the ImageBackground::_sfColor field. | |
| void | setImage (const ImagePtr &value) |
| Set the value of the ImageBackground::_sfImage field. | |
| void | setScale (const bool &value) |
| Set the value of the ImageBackground::_sfScale 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 ImageBackgroundPtr | create (void) |
| create a new instance of the class | |
| static ImageBackgroundPtr | createEmpty (void) |
| create an empty new instance of the class, do not copy the prototype | |
Static Public Attributes | |
| static const osg::BitVector | ColorFieldMask |
| static const osg::BitVector | ImageFieldMask |
| static const osg::BitVector | ScaleFieldMask |
| static const osg::BitVector | MTInfluenceMask |
| static const BitVector | AttachmentsFieldMask |
| static const BitVector | NextFieldMask |
Protected Member Functions | |
Constructors | |
| * | ImageBackground (void) |
| ImageBackground (const ImageBackground &source) | |
Destructors | |
| *virtual | ~ImageBackground (void) |
Sync | |
| *void | executeSyncImpl (ImageBackgroundBase *pOther, const BitVector &whichField) |
| virtual void | executeSync (FieldContainer &other, const BitVector &whichField) |
Protected Attributes | |
Fields | |
| *SFColor3f | _sfColor |
| SFImagePtr | _sfImage |
| SFBool | _sfScale |
Private Types | |
| typedef ImageBackgroundBase | Inherited |
Private Member Functions | |
| void | operator= (const ImageBackground &source) |
Static Private Member Functions | |
| static void | initMethod (void) |
Friends | |
| class | FieldContainer |
| class | ImageBackgroundBase |
The background color is defined by _sfColor, the image by _sfImage, and the scaling by _sfScale.
Definition at line 59 of file OSGImageBackground.h.
|
|
Reimplemented from osg::ImageBackgroundBase. Definition at line 63 of file OSGImageBackground.h. |
|
|
Reimplemented from osg::BackgroundBase. Definition at line 92 of file OSGImageBackgroundBase.h. |
|
|
Reimplemented from osg::AttachmentContainer. Definition at line 94 of file OSGImageBackgroundBase.h. 00095 { 00096 ColorFieldId = Inherited::NextFieldId, 00097 ImageFieldId = ColorFieldId + 1, 00098 ScaleFieldId = ImageFieldId + 1, 00099 NextFieldId = ScaleFieldId + 1 00100 };
|
|
|
Definition at line 74 of file OSGImageBackground.cpp. 00074 : 00075 Inherited() 00076 { 00077 }
|
|
|
Definition at line 79 of file OSGImageBackground.cpp. 00079 : 00080 Inherited(source) 00081 { 00082 }
|
|
|
Definition at line 84 of file OSGImageBackground.cpp.
|
|
||||||||||||
|
Implements osg::Background. Definition at line 99 of file OSGImageBackground.cpp. References osg::ImageBackgroundBase::_sfColor, osg::ImageBackgroundBase::getImage(), osg::Viewport::getPixelHeight(), osg::Viewport::getPixelWidth(), osg::ImageBackgroundBase::getScale(), osg::SField< FieldTypeT, fieldNameSpace >::getValue(), GLboolean, and osg::NullFC. 00100 { 00101 glClearColor(_sfColor.getValue()[0], 00102 _sfColor.getValue()[1], 00103 _sfColor.getValue()[2], 00104 1); 00105 00106 ImagePtr img = getImage(); 00107 00108 if(img == NullFC || img->getWidth() <= 0 || img->getHeight() <= 0) 00109 { 00110 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 00111 return; 00112 } 00113 00114 glClear(GL_COLOR_BUFFER_BIT); 00115 00116 GLboolean depth = glIsEnabled(GL_DEPTH_TEST); 00117 glDisable(GL_DEPTH_TEST); 00118 00119 glDisable(GL_TEXTURE_2D); 00120 00121 glMatrixMode(GL_MODELVIEW); 00122 glPushMatrix(); 00123 glLoadIdentity(); 00124 00125 glMatrixMode(GL_PROJECTION); 00126 glPushMatrix(); 00127 glLoadIdentity(); 00128 glOrtho(0, 1, 0, 1, 0, 1); 00129 00130 if(getScale()) 00131 { 00132 glPixelZoom(vp->getPixelWidth () / (Real32)img->getWidth (), 00133 vp->getPixelHeight() / (Real32)img->getHeight()); 00134 } 00135 00136 glRasterPos2f(0, 0); 00137 glDrawPixels(img->getWidth(), img->getHeight(), 00138 img->getPixelFormat(), GL_UNSIGNED_BYTE, 00139 img->getData() ); 00140 00141 glPopMatrix(); 00142 glMatrixMode(GL_MODELVIEW); 00143 glPopMatrix(); 00144 00145 if(getScale()) 00146 glPixelZoom(1, 1); 00147 00148 if(depth == GL_TRUE) 00149 glEnable(GL_DEPTH_TEST); 00150 00151 glClear(GL_DEPTH_BUFFER_BIT); 00152 }
|
|
||||||||||||
|
Reimplemented from osg::Background. Definition at line 94 of file OSGImageBackground.cpp. References osg::Background::changed(). 00095 { 00096 Inherited::changed(whichField, origin); 00097 }
|
|
||||||||||||
|
Reimplemented from osg::Background. Definition at line 154 of file OSGImageBackground.cpp. References SLOG. 00156 { 00157 SLOG << "Dump ImageBackground NI" << std::endl; 00158 }
|
|
|
Reimplemented from osg::Background. Definition at line 90 of file OSGImageBackground.cpp.
|
|
|
|
|
|
Reimplemented from osg::BackgroundBase. Definition at line 58 of file OSGImageBackgroundBase.inl. References osg::ImageBackgroundBase::_type. Referenced by osg::ImageBackgroundBase::create(). 00059 { 00060 return _type; 00061 }
|
|
|
Reimplemented from osg::BackgroundBase. Definition at line 65 of file OSGImageBackgroundBase.inl. References osg::ImageBackgroundBase::_type, and osg::TypeBase::getId(). 00066 { 00067 return _type.getId(); 00068 }
|
|
|
Reimplemented from osg::BackgroundBase. Definition at line 128 of file OSGImageBackgroundBase.cpp. References osg::ImageBackgroundBase::_type. 00129 { 00130 return _type; 00131 }
|
|
|
Reimplemented from osg::BackgroundBase. Definition at line 133 of file OSGImageBackgroundBase.cpp. References osg::ImageBackgroundBase::_type. 00134 { 00135 return _type; 00136 }
|
|
|
Reimplemented from osg::BackgroundBase. Definition at line 148 of file OSGImageBackgroundBase.cpp. 00149 { 00150 return sizeof(ImageBackground); 00151 }
|
|
|
Definition at line 101 of file OSGImageBackgroundBase.inl. References osg::ImageBackgroundBase::_sfColor. 00102 { 00103 return &_sfColor; 00104 }
|
|
|
Definition at line 108 of file OSGImageBackgroundBase.inl. References osg::ImageBackgroundBase::_sfImage. 00109 { 00110 return &_sfImage; 00111 }
|
|
|
Definition at line 115 of file OSGImageBackgroundBase.inl. References osg::ImageBackgroundBase::_sfScale. 00116 { 00117 return &_sfScale; 00118 }
|
|
|
Definition at line 123 of file OSGImageBackgroundBase.inl. References osg::ImageBackgroundBase::_sfColor, and osg::SField< FieldTypeT, fieldNameSpace >::getValue(). 00124 { 00125 return _sfColor.getValue(); 00126 }
|
|
|
Definition at line 130 of file OSGImageBackgroundBase.inl. References osg::ImageBackgroundBase::_sfColor, and osg::SField< FieldTypeT, fieldNameSpace >::getValue(). 00131 { 00132 return _sfColor.getValue(); 00133 }
|
|
|
Definition at line 144 of file OSGImageBackgroundBase.inl. References osg::ImageBackgroundBase::_sfImage, and osg::SField< FieldTypeT, fieldNameSpace >::getValue(). Referenced by clear(). 00145 { 00146 return _sfImage.getValue(); 00147 }
|
|
|
Definition at line 151 of file OSGImageBackgroundBase.inl. References osg::ImageBackgroundBase::_sfImage, and osg::SField< FieldTypeT, fieldNameSpace >::getValue(). 00152 { 00153 return _sfImage.getValue(); 00154 }
|
|
|
Definition at line 165 of file OSGImageBackgroundBase.inl. References osg::ImageBackgroundBase::_sfScale, and osg::SField< FieldTypeT, fieldNameSpace >::getValue(). Referenced by clear(). 00166 { 00167 return _sfScale.getValue(); 00168 }
|
|
|
Definition at line 172 of file OSGImageBackgroundBase.inl. References osg::ImageBackgroundBase::_sfScale, and osg::SField< FieldTypeT, fieldNameSpace >::getValue(). 00173 { 00174 return _sfScale.getValue(); 00175 }
|
|
|
Definition at line 137 of file OSGImageBackgroundBase.inl. References osg::ImageBackgroundBase::_sfColor, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().
|
|
|
Definition at line 158 of file OSGImageBackgroundBase.inl. References osg::ImageBackgroundBase::_sfImage, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().
|
|
|
Definition at line 179 of file OSGImageBackgroundBase.inl. References osg::ImageBackgroundBase::_sfScale, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().
|
|
|
Reimplemented from osg::BackgroundBase. Definition at line 214 of file OSGImageBackgroundBase.cpp. References osg::ImageBackgroundBase::_sfColor, osg::ImageBackgroundBase::_sfImage, osg::ImageBackgroundBase::_sfScale, osg::ImageBackgroundBase::ColorFieldMask, osg::SField< FieldTypeT, fieldNameSpace >::getBinSize(), osg::BackgroundBase::getBinSize(), osg::ImageBackgroundBase::ImageFieldMask, osg::FieldBits::NoField, and osg::ImageBackgroundBase::ScaleFieldMask. 00215 { 00216 UInt32 returnValue = Inherited::getBinSize(whichField); 00217 00218 if(FieldBits::NoField != (ColorFieldMask & whichField)) 00219 { 00220 returnValue += _sfColor.getBinSize(); 00221 } 00222 00223 if(FieldBits::NoField != (ImageFieldMask & whichField)) 00224 { 00225 returnValue += _sfImage.getBinSize(); 00226 } 00227 00228 if(FieldBits::NoField != (ScaleFieldMask & whichField)) 00229 { 00230 returnValue += _sfScale.getBinSize(); 00231 } 00232 00233 00234 return returnValue; 00235 }
|
|
||||||||||||
|
Reimplemented from osg::BackgroundBase. Definition at line 237 of file OSGImageBackgroundBase.cpp. References osg::ImageBackgroundBase::_sfColor, osg::ImageBackgroundBase::_sfImage, osg::ImageBackgroundBase::_sfScale, osg::ImageBackgroundBase::ColorFieldMask, osg::SField< FieldTypeT, fieldNameSpace >::copyToBin(), osg::BackgroundBase::copyToBin(), osg::ImageBackgroundBase::ImageFieldMask, osg::FieldBits::NoField, and osg::ImageBackgroundBase::ScaleFieldMask. 00239 { 00240 Inherited::copyToBin(pMem, whichField); 00241 00242 if(FieldBits::NoField != (ColorFieldMask & whichField)) 00243 { 00244 _sfColor.copyToBin(pMem); 00245 } 00246 00247 if(FieldBits::NoField != (ImageFieldMask & whichField)) 00248 { 00249 _sfImage.copyToBin(pMem); 00250 } 00251 00252 if(FieldBits::NoField != (ScaleFieldMask & whichField)) 00253 { 00254 _sfScale.copyToBin(pMem); 00255 } 00256 00257 00258 }
|
|
||||||||||||
|
Reimplemented from osg::BackgroundBase. Definition at line 260 of file OSGImageBackgroundBase.cpp. References osg::ImageBackgroundBase::_sfColor, osg::ImageBackgroundBase::_sfImage, osg::ImageBackgroundBase::_sfScale, osg::ImageBackgroundBase::ColorFieldMask, osg::SField< FieldTypeT, fieldNameSpace >::copyFromBin(), osg::BackgroundBase::copyFromBin(), osg::ImageBackgroundBase::ImageFieldMask, osg::FieldBits::NoField, and osg::ImageBackgroundBase::ScaleFieldMask. 00262 { 00263 Inherited::copyFromBin(pMem, whichField); 00264 00265 if(FieldBits::NoField != (ColorFieldMask & whichField)) 00266 { 00267 _sfColor.copyFromBin(pMem); 00268 } 00269 00270 if(FieldBits::NoField != (ImageFieldMask & whichField)) 00271 { 00272 _sfImage.copyFromBin(pMem); 00273 } 00274 00275 if(FieldBits::NoField != (ScaleFieldMask & whichField)) 00276 { 00277 _sfScale.copyFromBin(pMem); 00278 } 00279 00280 00281 }
|
|
|
Definition at line 72 of file OSGImageBackgroundBase.inl. References osg::AttachmentContainerPtr::dcast(), osg::ImageBackgroundBase::getClassType(), osg::FieldContainerType::getPrototype(), osg::NullFC, and osg::ImageBackgroundBase::shallowCopy(). 00073 { 00074 ImageBackgroundPtr fc; 00075 00076 if(getClassType().getPrototype() != OSG::NullFC) 00077 { 00078 fc = ImageBackgroundPtr::dcast( 00079 getClassType().getPrototype()-> shallowCopy()); 00080 } 00081 00082 return fc; 00083 }
|
|
|
Definition at line 87 of file OSGImageBackgroundBase.inl. References osg::FieldContainer::newPtr(). 00088 { 00089 ImageBackgroundPtr returnValue; 00090 00091 newPtr(returnValue); 00092 00093 return returnValue; 00094 }
|
|
|
Implements osg::FieldContainer. Definition at line 139 of file OSGImageBackgroundBase.cpp. References osg::FieldContainer::newPtr(). Referenced by osg::ImageBackgroundBase::create(). 00140 { 00141 ImageBackgroundPtr returnValue; 00142 00143 newPtr(returnValue, dynamic_cast<const ImageBackground *>(this)); 00144 00145 return returnValue; 00146 }
|
|
||||||||||||
|
Definition at line 284 of file OSGImageBackgroundBase.cpp. References osg::ImageBackgroundBase::_sfColor, osg::ImageBackgroundBase::_sfImage, osg::ImageBackgroundBase::_sfScale, osg::ImageBackgroundBase::ColorFieldMask, osg::BackgroundBase::executeSyncImpl(), osg::ImageBackgroundBase::ImageFieldMask, osg::FieldBits::NoField, osg::ImageBackgroundBase::ScaleFieldMask, and osg::SField< FieldTypeT, fieldNameSpace >::syncWith(). Referenced by osg::ImageBackgroundBase::executeSync(). 00286 { 00287 00288 Inherited::executeSyncImpl(pOther, whichField); 00289 00290 if(FieldBits::NoField != (ColorFieldMask & whichField)) 00291 _sfColor.syncWith(pOther->_sfColor); 00292 00293 if(FieldBits::NoField != (ImageFieldMask & whichField)) 00294 _sfImage.syncWith(pOther->_sfImage); 00295 00296 if(FieldBits::NoField != (ScaleFieldMask & whichField)) 00297 _sfScale.syncWith(pOther->_sfScale); 00298 00299 00300 }
|
|
||||||||||||
|
Definition at line 182 of file OSGBackgroundBase.cpp. References osg::AttachmentContainer::executeSyncImpl(). Referenced by osg::BackgroundBase::executeSync(), osg::TextureBackgroundBase::executeSyncImpl(), osg::SolidBackgroundBase::executeSyncImpl(), osg::SkyBackgroundBase::executeSyncImpl(), osg::PolygonBackgroundBase::executeSyncImpl(), osg::PassiveBackgroundBase::executeSyncImpl(), osg::ImageBackgroundBase::executeSyncImpl(), osg::GradientBackgroundBase::executeSyncImpl(), and osg::DepthClearBackgroundBase::executeSyncImpl(). 00184 { 00185 00186 Inherited::executeSyncImpl(pOther, whichField); 00187 00188 00189 }
|
|
||||||||||||
|
||||||||||||
|
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().
|
|
||||||||||||
|
Reimplemented from osg::BackgroundBase. Definition at line 155 of file OSGImageBackgroundBase.cpp. References osg::ImageBackgroundBase::executeSyncImpl(). 00157 { 00158 this->executeSyncImpl((ImageBackgroundBase *) &other, whichField); 00159 }
|
|
|
Reimplemented in osg::GradientBackground, and osg::SolidBackground. Definition at line 70 of file OSGBackground.h.
|
|
||||||||||||
|
Definition at line 84 of file OSGAttachmentContainer.cpp. References osg::addRefCP(), osg::beginEditCP(), osg::endEditCP(), osg::NullFC, and osg::subRefCP(). Referenced by osg::AttachmentContainer::AttachmentContainer(), osg::Node::onCreate(), and osg::Image::setAttachmentField(). 00086 { 00087 UInt32 key; 00088 00089 if(fieldContainerP == NullFC) 00090 return; 00091 00092 key = (UInt32 (fieldContainerP->getGroupId()) << 16) | binding; 00093 00094 addRefCP(fieldContainerP); 00095 00096 beginEditCP(fieldContainerP, Attachment::ParentsFieldMask); 00097 { 00098 fieldContainerP->addParent(getPtr()); 00099 } 00100 endEditCP (fieldContainerP, Attachment::ParentsFieldMask); 00101 00102 AttachmentMap::iterator fcI = _attachmentMap.getValue().find(key); 00103 00104 if(fcI != _attachmentMap.getValue().end()) 00105 { 00106 beginEditCP((*fcI).second, Attachment::ParentsFieldMask); 00107 { 00108 (*fcI).second->subParent(getPtr()); 00109 } 00110 endEditCP ((*fcI).second, Attachment::ParentsFieldMask); 00111 00112 subRefCP((*fcI).second); 00113 00114 (*fcI).second = fieldContainerP; 00115 } 00116 else 00117 { 00118 _attachmentMap.getValue()[key] = fieldContainerP; 00119 } 00120 }
|
|
||||||||||||
|
Definition at line 122 of file OSGAttachmentContainer.cpp. References osg::AttachmentContainer::_attachmentMap, osg::beginEditCP(), osg::endEditCP(), osg::AttachmentContainer::getPtr(), osg::SField< FieldTypeT, fieldNameSpace >::getValue(), osg::NullFC, osg::Attachment::ParentsFieldMask, and osg::subRefCP(). 00124 { 00125 UInt32 key; 00126 00127 AttachmentMap::iterator fcI; 00128 00129 if(fieldContainerP == NullFC) 00130 return; 00131 00132 key = (UInt32(fieldContainerP->getGroupId()) << 16) | binding; 00133 00134 fcI = _attachmentMap.getValue().find(key); 00135 00136 if(fcI != _attachmentMap.getValue().end()) 00137 { 00138 beginEditCP(fieldContainerP, Attachment::ParentsFieldMask); 00139 { 00140 (*fcI).second->subParent(getPtr()); 00141 } 00142 endEditCP (fieldContainerP, Attachment::ParentsFieldMask); 00143 00144 subRefCP((*fcI).second); 00145 00146 _attachmentMap.getValue().erase(fcI); 00147 } 00148 }
|
|
||||||||||||
|
Definition at line 150 of file OSGAttachmentContainer.cpp. References osg::AttachmentContainer::_attachmentMap, osg::SField< FieldTypeT, fieldNameSpace >::getValue(), and osg::NullFC. Referenced by osg::Image::f |