#include <OSGImageForeground.h>
Inheritance diagram for osg::ImageForeground:

Public Types | |
| typedef ImageForegroundPtr | Ptr |
| enum | { ImagesFieldId = Inherited::NextFieldId, PositionsFieldId = ImagesFieldId + 1, NextFieldId = PositionsFieldId + 1 } |
Public Member Functions | |
transformation | |
| *virtual void | changed (BitVector whichField, UInt32 origin) |
dump | |
| *virtual void | dump (UInt32 uiIndent=0, const BitVector bvFlags=0) const |
access fields | |
| *void | addImage (ImagePtr image, Pnt2f position) |
draw | |
| *virtual void | draw (DrawActionBase *, Viewport *) |
FieldContainer Get | |
| *virtual FieldContainerType & | getType (void) |
| virtual const FieldContainerType & | getType (void) const |
| virtual UInt32 | getContainerSize (void) const |
Field Get | |
| *MFImagePtr * | getMFImages (void) |
| Get the ImageForeground::_mfImages field. | |
| MFPnt2f * | getMFPositions (void) |
| Get the ImageForeground::_mfPositions field. | |
| ImagePtr & | getImages (const UInt32 index) |
| Get the value of the index element the ImageForeground::_mfImages field. | |
| MFImagePtr & | getImages (void) |
| Get the ImageForeground::_mfImages field. | |
| const MFImagePtr & | getImages (void) const |
| Get the ImageForeground::_mfImages field. | |
| Pnt2f & | getPositions (const UInt32 index) |
| Get the value of the index element the ImageForeground::_mfPositions field. | |
| MFPnt2f & | getPositions (void) |
| Get the ImageForeground::_mfPositions field. | |
| const MFPnt2f & | getPositions (void) const |
| Get the ImageForeground::_mfPositions 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 |
Field Get | |
| *SFBool * | getSFActive (void) |
| Get the Foreground::_sfActive field. | |
| bool & | getActive (void) |
| Get the value of the Foreground::_sfActive field. | |
| const bool & | getActive (void) const |
| Get the value of the Foreground::_sfActive field. | |
Field Set | |
| *void | setActive (const bool &value) |
| Set the value of the Foreground::_sfActive field. | |
Static Public Member Functions | |
Class Get | |
| *static const char * | getClassname (void) |
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 ImageForegroundPtr | create (void) |
| create a new instance of the class | |
| static ImageForegroundPtr | createEmpty (void) |
| create an empty new instance of the class, do not copy the prototype | |
Static Public Attributes | |
| static const osg::BitVector | ImagesFieldMask |
| static const osg::BitVector | PositionsFieldMask |
| static const osg::BitVector | MTInfluenceMask |
| static const osg::BitVector | ActiveFieldMask |
| static const BitVector | AttachmentsFieldMask |
| static const BitVector | NextFieldMask |
Protected Member Functions | |
Constructors | |
| * | ImageForeground (void) |
| ImageForeground (const ImageForeground &source) | |
Destructors | |
| *virtual | ~ImageForeground (void) |
Sync | |
| *void | executeSyncImpl (ImageForegroundBase *pOther, const BitVector &whichField) |
| virtual void | executeSync (FieldContainer &other, const BitVector &whichField) |
Sync | |
| *void | executeSyncImpl (ForegroundBase *pOther, const BitVector &whichField) |
Protected Attributes | |
Fields | |
| *MFImagePtr | _mfImages |
| MFPnt2f | _mfPositions |
Fields | |
| *SFBool | _sfActive |
Private Types | |
| typedef ImageForegroundBase | Inherited |
Private Member Functions | |
| void | operator= (const ImageForeground &source) |
Static Private Member Functions | |
| static void | initMethod (void) |
Friends | |
| class | FieldContainer |
| class | ImageForegroundBase |
The images are stored in the _mfImages Field, the corresponding positions in the _mfPositions Field.
Definition at line 56 of file OSGImageForeground.h.
|
|
Reimplemented from osg::ImageForegroundBase. Definition at line 61 of file OSGImageForeground.h. |
|
|
Reimplemented from osg::ForegroundBase. Definition at line 91 of file OSGImageForegroundBase.h. |
|
|
Reimplemented from osg::ForegroundBase. Definition at line 93 of file OSGImageForegroundBase.h. 00094 { 00095 ImagesFieldId = Inherited::NextFieldId, 00096 PositionsFieldId = ImagesFieldId + 1, 00097 NextFieldId = PositionsFieldId + 1 00098 };
|
|
|
Definition at line 97 of file OSGImageForeground.cpp. 00097 : 00098 Inherited() 00099 { 00100 }
|
|
|
Definition at line 102 of file OSGImageForeground.cpp. 00102 : 00103 Inherited(source) 00104 { 00105 }
|
|
|
Definition at line 107 of file OSGImageForeground.cpp.
|
|
|
Reimplemented from osg::Foreground. Definition at line 70 of file OSGImageForeground.h.
|
|
||||||||||||
|
Reimplemented from osg::Foreground. Definition at line 111 of file OSGImageForeground.cpp. References osg::Foreground::changed(). 00112 { 00113 Inherited::changed(whichField, origin); 00114 }
|
|
||||||||||||
|
Reimplemented from osg::Foreground. Definition at line 118 of file OSGImageForeground.cpp. References SLOG. 00120 { 00121 SLOG << "Dump ImageForeground NI" << std::endl; 00122 }
|
|
||||||||||||
|
Definition at line 48 of file OSGImageForeground.inl. References osg::ImageForegroundBase::getImages(), osg::ImageForegroundBase::getPositions(), and osg::MField< FieldTypeT, fieldNameSpace >::push_back(). 00049 { 00050 getImages().push_back( image ); 00051 getPositions().push_back( position ); 00052 }
|
|
||||||||||||
|
Implements osg::Foreground. Definition at line 125 of file OSGImageForeground.cpp. References osg::ForegroundBase::getActive(), osg::ImageForegroundBase::getImages(), osg::ImageForegroundBase::getPositions(), GLboolean, osg::NullFC, p, and osg::MField< FieldTypeT, fieldNameSpace >::size(). 00126 { 00127 if(getActive() == false) 00128 return; 00129 00130 UInt16 i; 00131 00132 for(i = 0; i < getPositions().size(); i++) 00133 { 00134 if(getImages(i) != NullFC) 00135 break; 00136 } 00137 00138 if(i == getPositions().size()) // all images == NULL? 00139 return; 00140 00141 GLboolean light = glIsEnabled(GL_LIGHTING); 00142 // if(light) glDisable(GL_LIGHTING); 00143 00144 GLint fill[2]; 00145 glGetIntegerv(GL_POLYGON_MODE, fill); 00146 glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); 00147 00148 GLboolean depth = glIsEnabled(GL_DEPTH_TEST); 00149 glDisable(GL_DEPTH_TEST); 00150 00151 GLboolean colmat = glIsEnabled(GL_COLOR_MATERIAL); 00152 glDisable(GL_COLOR_MATERIAL); 00153 00154 glDisable(GL_TEXTURE_2D); 00155 00156 glMatrixMode(GL_MODELVIEW); 00157 glPushMatrix(); 00158 glLoadIdentity(); 00159 00160 glMatrixMode(GL_PROJECTION); 00161 glPushMatrix(); 00162 glLoadIdentity(); 00163 glOrtho(0, 1, 0, 1, 0, 1); 00164 00165 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 00166 glEnable(GL_BLEND); 00167 00168 for(i = 0; i < getPositions().size(); i++) 00169 { 00170 ImagePtr img = getImages(i); 00171 00172 if(img == NullFC) 00173 continue; 00174 00175 Pnt2f p = getPositions(i); 00176 glRasterPos2f(p[0], p[1]); 00177 glDrawPixels(img->getWidth(), img->getHeight(), 00178 img->getPixelFormat(), GL_UNSIGNED_BYTE, 00179 img->getData()); 00180 } 00181 glDisable(GL_BLEND); 00182 00183 00184 glPopMatrix(); 00185 glMatrixMode(GL_MODELVIEW); 00186 glPopMatrix(); 00187 00188 if(depth == GL_TRUE) 00189 glEnable(GL_DEPTH_TEST); 00190 if(light == GL_TRUE) 00191 glEnable(GL_LIGHTING); 00192 if(colmat == GL_TRUE) 00193 glEnable(GL_COLOR_MATERIAL); 00194 glPolygonMode(GL_FRONT, fill[0]); 00195 glPolygonMode(GL_BACK , fill[1]); 00196 }
|
|
|
Reimplemented from osg::Foreground. Definition at line 87 of file OSGImageForeground.cpp.
|
|
|
|
|
|
Reimplemented from osg::ForegroundBase. Definition at line 58 of file OSGImageForegroundBase.inl. References osg::ImageForegroundBase::_type. Referenced by osg::ImageForegroundBase::create(). 00059 { 00060 return _type; 00061 }
|
|
|
Reimplemented from osg::ForegroundBase. Definition at line 65 of file OSGImageForegroundBase.inl. References osg::ImageForegroundBase::_type, and osg::TypeBase::getId(). 00066 { 00067 return _type.getId(); 00068 }
|
|
|
Reimplemented from osg::ForegroundBase. Definition at line 117 of file OSGImageForegroundBase.cpp. References osg::ImageForegroundBase::_type. 00118 { 00119 return _type; 00120 }
|
|
|
Reimplemented from osg::ForegroundBase. Definition at line 122 of file OSGImageForegroundBase.cpp. References osg::ImageForegroundBase::_type. 00123 { 00124 return _type; 00125 }
|
|
|
Reimplemented from osg::ForegroundBase. Definition at line 137 of file OSGImageForegroundBase.cpp. 00138 { 00139 return sizeof(ImageForeground); 00140 }
|
|
|
Definition at line 101 of file OSGImageForegroundBase.inl. References osg::ImageForegroundBase::_mfImages. 00102 { 00103 return &_mfImages; 00104 }
|
|
|
Definition at line 108 of file OSGImageForegroundBase.inl. References osg::ImageForegroundBase::_mfPositions. 00109 { 00110 return &_mfPositions; 00111 }
|
|
|
Definition at line 117 of file OSGImageForegroundBase.inl. References osg::ImageForegroundBase::_mfImages. 00118 { 00119 return _mfImages[index]; 00120 }
|
|
|
Definition at line 124 of file OSGImageForegroundBase.inl. References osg::ImageForegroundBase::_mfImages. Referenced by addImage(), and draw(). 00125 { 00126 return _mfImages; 00127 }
|
|
|
Definition at line 131 of file OSGImageForegroundBase.inl. References osg::ImageForegroundBase::_mfImages. 00132 { 00133 return _mfImages; 00134 }
|
|
|
Definition at line 138 of file OSGImageForegroundBase.inl. References osg::ImageForegroundBase::_mfPositions. 00139 { 00140 return _mfPositions[index]; 00141 }
|
|
|
Definition at line 145 of file OSGImageForegroundBase.inl. References osg::ImageForegroundBase::_mfPositions. Referenced by addImage(), and draw(). 00146 { 00147 return _mfPositions; 00148 }
|
|
|
Definition at line 152 of file OSGImageForegroundBase.inl. References osg::ImageForegroundBase::_mfPositions. 00153 { 00154 return _mfPositions; 00155 }
|
|
|
Reimplemented from osg::ForegroundBase. Definition at line 203 of file OSGImageForegroundBase.cpp. References osg::ImageForegroundBase::_mfImages, osg::ImageForegroundBase::_mfPositions, osg::MField< FieldTypeT, fieldNameSpace >::getBinSize(), osg::ForegroundBase::getBinSize(), osg::ImageForegroundBase::ImagesFieldMask, osg::FieldBits::NoField, and osg::ImageForegroundBase::PositionsFieldMask. 00204 { 00205 UInt32 returnValue = Inherited::getBinSize(whichField); 00206 00207 if(FieldBits::NoField != (ImagesFieldMask & whichField)) 00208 { 00209 returnValue += _mfImages.getBinSize(); 00210 } 00211 00212 if(FieldBits::NoField != (PositionsFieldMask & whichField)) 00213 { 00214 returnValue += _mfPositions.getBinSize(); 00215 } 00216 00217 00218 return returnValue; 00219 }
|
|
||||||||||||
|
Reimplemented from osg::ForegroundBase. Definition at line 221 of file OSGImageForegroundBase.cpp. References osg::ImageForegroundBase::_mfImages, osg::ImageForegroundBase::_mfPositions, osg::MField< FieldTypeT, fieldNameSpace >::copyToBin(), osg::ForegroundBase::copyToBin(), osg::ImageForegroundBase::ImagesFieldMask, osg::FieldBits::NoField, and osg::ImageForegroundBase::PositionsFieldMask. 00223 { 00224 Inherited::copyToBin(pMem, whichField); 00225 00226 if(FieldBits::NoField != (ImagesFieldMask & whichField)) 00227 { 00228 _mfImages.copyToBin(pMem); 00229 } 00230 00231 if(FieldBits::NoField != (PositionsFieldMask & whichField)) 00232 { 00233 _mfPositions.copyToBin(pMem); 00234 } 00235 00236 00237 }
|
|
||||||||||||
|
Reimplemented from osg::ForegroundBase. Definition at line 239 of file OSGImageForegroundBase.cpp. References osg::ImageForegroundBase::_mfImages, osg::ImageForegroundBase::_mfPositions, osg::MField< FieldTypeT, fieldNameSpace >::copyFromBin(), osg::ForegroundBase::copyFromBin(), osg::ImageForegroundBase::ImagesFieldMask, osg::FieldBits::NoField, and osg::ImageForegroundBase::PositionsFieldMask. 00241 { 00242 Inherited::copyFromBin(pMem, whichField); 00243 00244 if(FieldBits::NoField != (ImagesFieldMask & whichField)) 00245 { 00246 _mfImages.copyFromBin(pMem); 00247 } 00248 00249 if(FieldBits::NoField != (PositionsFieldMask & whichField)) 00250 { 00251 _mfPositions.copyFromBin(pMem); 00252 } 00253 00254 00255 }
|
|
|
Definition at line 72 of file OSGImageForegroundBase.inl. References osg::AttachmentContainerPtr::dcast(), osg::ImageForegroundBase::getClassType(), osg::FieldContainerType::getPrototype(), osg::NullFC, and osg::ImageForegroundBase::shallowCopy(). Referenced by osg::SimpleSceneManager::initialize(). 00073 { 00074 ImageForegroundPtr fc; 00075 00076 if(getClassType().getPrototype() != OSG::NullFC) 00077 { 00078 fc = ImageForegroundPtr::dcast( 00079 getClassType().getPrototype()-> shallowCopy()); 00080 } 00081 00082 return fc; 00083 }
|
|
|
Definition at line 87 of file OSGImageForegroundBase.inl. References osg::FieldContainer::newPtr(). 00088 { 00089 ImageForegroundPtr returnValue; 00090 00091 newPtr(returnValue); 00092 00093 return returnValue; 00094 }
|
|
|
Implements osg::FieldContainer. Definition at line 128 of file OSGImageForegroundBase.cpp. References osg::FieldContainer::newPtr(). Referenced by osg::ImageForegroundBase::create(). 00129 { 00130 ImageForegroundPtr returnValue; 00131 00132 newPtr(returnValue, dynamic_cast<const ImageForeground *>(this)); 00133 00134 return returnValue; 00135 }
|
|
||||||||||||
|
Definition at line 258 of file OSGImageForegroundBase.cpp. References osg::ImageForegroundBase::_mfImages, osg::ImageForegroundBase::_mfPositions, osg::ForegroundBase::executeSyncImpl(), osg::ImageForegroundBase::ImagesFieldMask, osg::FieldBits::NoField, osg::ImageForegroundBase::PositionsFieldMask, and osg::MField< FieldTypeT, fieldNameSpace >::syncWith(). Referenced by osg::ImageForegroundBase::executeSync(). 00260 { 00261 00262 Inherited::executeSyncImpl(pOther, whichField); 00263 00264 if(FieldBits::NoField != (ImagesFieldMask & whichField)) 00265 _mfImages.syncWith(pOther->_mfImages); 00266 00267 if(FieldBits::NoField != (PositionsFieldMask & whichField)) 00268 _mfPositions.syncWith(pOther->_mfPositions); 00269 00270 00271 }
|
|
||||||||||||
|
Definition at line 219 of file OSGForegroundBase.cpp. References osg::ForegroundBase::_sfActive, osg::ForegroundBase::ActiveFieldMask, osg::AttachmentContainer::executeSyncImpl(), osg::FieldBits::NoField, and osg::SField< FieldTypeT, fieldNameSpace >::syncWith(). Referenced by osg::ForegroundBase::executeSync(), osg::TextureGrabForegroundBase::executeSyncImpl(), osg::StatisticsForegroundBase::executeSyncImpl(), osg::PolygonForegroundBase::executeSyncImpl(), osg::ImageForegroundBase::executeSyncImpl(), and osg::GrabForegroundBase::executeSyncImpl(). 00221 { 00222 00223 Inherited::executeSyncImpl(pOther, whichField); 00224 00225 if(FieldBits::NoField != (ActiveFieldMask & whichField)) 00226 _sfActive.syncWith(pOther->_sfActive); 00227 00228 00229 }
|
|
||||||||||||
|
||||||||||||
|
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::ForegroundBase. Definition at line 144 of file OSGImageForegroundBase.cpp. References osg::ImageForegroundBase::executeSyncImpl(). 00146 { 00147 this->executeSyncImpl((ImageForegroundBase *) &other, whichField); 00148 }
|
|
|
Definition at line 75 of file OSGForegroundBase.inl. References osg::ForegroundBase::_sfActive. 00076 { 00077 return &_sfActive; 00078 }
|
|
|
Definition at line 83 of file OSGForegroundBase.inl. References osg::ForegroundBase::_sfActive, and osg::SField< FieldTypeT, fieldNameSpace >::getValue(). Referenced by draw(), osg::GrabForeground::draw(), and osg::FileGrabForeground::draw(). 00084 { 00085 return _sfActive.getValue(); 00086 }
|
|
|
Definition at line 90 of file OSGForegroundBase.inl. References osg::ForegroundBase::_sfActive, and osg::SField< FieldTypeT, fieldNameSpace >::getValue(). 00091 { 00092 return _sfActive.getValue(); 00093 }
|
|
|
Definition at line 97 of file OSGForegroundBase.inl. References osg::ForegroundBase::_sfActive, and osg::SField< FieldTypeT, fieldNameSpace >::setValue(). Referenced by osg::GrabForeground::GrabForeground().
|
|
||||||||||||
|
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 } |