OpenSceneGraph  3.4.1
Public Types | Public Member Functions | Friends | List of all members
osg::ref_ptr< T > Class Template Reference

Smart pointer for handling referenced counted objects. More...

Public Types

typedef T element_type
 

Public Member Functions

 ref_ptr ()
 
 ref_ptr (T *ptr)
 
 ref_ptr (const ref_ptr &rp)
 
template<class Other >
 ref_ptr (const ref_ptr< Other > &rp)
 
 ref_ptr (observer_ptr< T > &optr)
 
 ~ref_ptr ()
 
ref_ptroperator= (const ref_ptr &rp)
 
template<class Other >
ref_ptroperator= (const ref_ptr< Other > &rp)
 
ref_ptroperator= (T *ptr)
 
bool operator== (const ref_ptr &rp) const
 
bool operator== (const T *ptr) const
 
bool operator!= (const ref_ptr &rp) const
 
bool operator!= (const T *ptr) const
 
bool operator< (const ref_ptr &rp) const
 
 operator unspecified_bool_type () const
 
T & operator* () const
 
T * operator-> () const
 
T * get () const
 
bool operator! () const
 
bool valid () const
 
T * release ()
 release the pointer from ownership by this ref_ptr<>, decrementing the objects refencedCount() via unref_nodelete() to prevent the Object object from being deleted even if the reference count goes to zero. More...
 
void swap (ref_ptr &rp)
 

Friends

template<class Other >
class ref_ptr
 
bool operator== (const T *ptr, const ref_ptr &rp)
 
bool operator!= (const T *ptr, const ref_ptr &rp)
 

Detailed Description

template<class T>
class osg::ref_ptr< T >

Smart pointer for handling referenced counted objects.

Member Typedef Documentation

template<class T>
typedef T osg::ref_ptr< T >::element_type

Constructor & Destructor Documentation

template<class T>
osg::ref_ptr< T >::ref_ptr ( )
inline
template<class T>
osg::ref_ptr< T >::ref_ptr ( T *  ptr)
inline
template<class T>
osg::ref_ptr< T >::ref_ptr ( const ref_ptr< T > &  rp)
inline
template<class T>
template<class Other >
osg::ref_ptr< T >::ref_ptr ( const ref_ptr< Other > &  rp)
inline
template<class T>
osg::ref_ptr< T >::ref_ptr ( observer_ptr< T > &  optr)
inline
template<class T>
osg::ref_ptr< T >::~ref_ptr ( )
inline

Member Function Documentation

template<class T>
T* osg::ref_ptr< T >::get ( ) const
inline

Referenced by osgVolume::Locator::addCallback(), osg::PagedLOD::addChild(), osg::ProxyNode::addChild(), osg::Sequence::addChild(), osg::Group::addChild(), osg::LOD::addChild(), osg::CompositeShape::addChild(), osgManipulator::Dragger::addConstraint(), osg::Node::addCullCallback(), osgViewer::View::addDevice(), osgManipulator::CompositeDragger::addDragger(), osgManipulator::Dragger::addDraggerCallback(), osg::Geode::addDrawable(), osgUtil::CullVisitor::addDrawable(), osgUtil::CullVisitor::addDrawableAndDepth(), osg::Node::addEventCallback(), osgViewer::View::addEventHandler(), osg::ImageSequence::addImage(), osgVolume::CompositeLayer::addLayer(), osgTerrain::CompositeLayer::addLayer(), osgVolume::Layer::addProperty(), osgVolume::CompositeProperty::addProperty(), osg::Program::addShader(), osg::StateSet::addUniform(), osg::Node::addUpdateCallback(), osg::UserDataContainer::addUserObject(), osgViewer::View::apply(), osg::clone(), osg::cloneType(), osg::const_pointer_cast(), osgViewer::View::containsCamera(), osgManipulator::CompositeDragger::containsDragger(), osg::Geode::containsDrawable(), osg::Group::containsNode(), osg::createGeodeForImage(), osgWidget::Frame::createSimpleFrameFromTheme(), osgWidget::Frame::createSimpleFrameWithSingleTexture(), osg::dynamic_pointer_cast(), osg::State::get(), osg::get_pointer(), osg::Geode::getDrawableIndex(), osg::CullStack::getModelViewMatrix(), osg::CullStack::getMVPW(), osgAnimation::TemplateChannel< SamplerType >::getOrCreateSampler(), osgFX::BumpMapping::getOverrideDiffuseTexture(), osgFX::BumpMapping::getOverrideNormalMapTexture(), osg::CullStack::getProjectionMatrix(), osgAnimation::TemplateChannel< SamplerType >::getSampler(), osgAnimation::TemplateChannel< SamplerType >::getSamplerTyped(), osg::CullStack::getViewport(), osg::CullStack::getWindowMatrix(), osg::Sequence::insertChild(), osg::Group::insertChild(), osg::observer_ptr< osgWidget::Widget >::observer_ptr(), osg::observer_ptr< osgWidget::Widget >::operator=(), osgUtil::Optimizer::optimize(), osgDB::InputStream::readObjectOfType(), osg::StateSet::removeAttribute(), osg::Group::removeChild(), osgManipulator::Dragger::removeConstraint(), osg::Node::removeCullCallback(), osgManipulator::CompositeDragger::removeDragger(), osgManipulator::Dragger::removeDraggerCallback(), osg::Geode::removeDrawable(), osg::Node::removeEventCallback(), osgViewer::View::removeEventHandler(), osg::Program::removeShader(), osg::StateSet::removeTextureAttribute(), osg::StateSet::removeUniform(), osg::Node::removeUpdateCallback(), osg::Group::replaceChild(), osg::Geode::replaceDrawable(), osgParticle::Particle::setAlphaInterpolator(), osg::StateSet::setAttribute(), osg::StateSet::setAttributeAndModes(), osgViewer::View::setCameraManipulator(), osgParticle::Particle::setColorInterpolator(), osgTerrain::TerrainTile::setColorLayer(), osg::Node::setComputeBoundingSphereCallback(), osg::Node::setCullCallback(), osgViewer::View::setDatabasePager(), osgViewer::View::setDisplaySettings(), osg::Geode::setDrawable(), osgTerrain::TerrainTile::setElevationLayer(), osg::Node::setEventCallback(), osg::StateSet::setEventCallback(), osgViewer::View::setEventQueue(), osgTerrain::HeightFieldLayer::setHeightField(), osg::Texture2DArray::setImage(), osg::TextureCubeMap::setImage(), osg::Texture2D::setImage(), osg::Texture3D::setImage(), osg::Texture1D::setImage(), osg::TextureRectangle::setImage(), osg::ImageSequence::setImage(), osgWidget::Widget::setImage(), osgVolume::ImageLayer::setImage(), osgTerrain::ImageLayer::setImage(), osg::Texture::setImage(), osgViewer::View::setImagePager(), osgVolume::CompositeLayer::setLayer(), osgTerrain::CompositeLayer::setLayer(), osgTerrain::Layer::setLocator(), osgVolume::Layer::setLocator(), osgTerrain::TerrainTile::setLocator(), osgSim::OverlayNode::setOverlaySubgraph(), osgParticle::ParticleEffect::setParticleSystem(), osgVolume::Layer::setProperty(), osgVolume::CompositeProperty::setProperty(), osg::Texture::setReadPBuffer(), osgViewer::View::setSceneData(), osgShadow::ShadowedScene::setShadowSettings(), osgShadow::ShadowedScene::setShadowTechnique(), osg::Drawable::setShape(), osgParticle::Particle::setSizeInterpolator(), osg::Node::setStateSet(), osgTerrain::TerrainTile::setTerrainTechnique(), osg::StateSet::setTextureAttribute(), osg::StateSet::setTextureAttributeAndModes(), osgTerrain::ContourLayer::setTransferFunction(), osg::Node::setUpdateCallback(), osg::StateSet::setUpdateCallback(), osg::Object::setUserData(), osg::Object::setUserDataContainer(), osg::ShapeDrawable::ShapeDrawable(), osg::static_pointer_cast(), osg::Texture1D::Texture1D(), osg::Texture2D::Texture2D(), osg::Texture3D::Texture3D(), and osg::TextureRectangle::TextureRectangle().

template<class T>
osg::ref_ptr< T >::operator unspecified_bool_type ( ) const
inline
template<class T>
bool osg::ref_ptr< T >::operator! ( ) const
inline
template<class T>
bool osg::ref_ptr< T >::operator!= ( const ref_ptr< T > &  rp) const
inline
template<class T>
bool osg::ref_ptr< T >::operator!= ( const T *  ptr) const
inline
template<class T>
T& osg::ref_ptr< T >::operator* ( ) const
inline
template<class T>
T* osg::ref_ptr< T >::operator-> ( ) const
inline
template<class T>
bool osg::ref_ptr< T >::operator< ( const ref_ptr< T > &  rp) const
inline
template<class T>
ref_ptr& osg::ref_ptr< T >::operator= ( const ref_ptr< T > &  rp)
inline
template<class T>
template<class Other >
ref_ptr& osg::ref_ptr< T >::operator= ( const ref_ptr< Other > &  rp)
inline
template<class T>
ref_ptr& osg::ref_ptr< T >::operator= ( T *  ptr)
inline
template<class T>
bool osg::ref_ptr< T >::operator== ( const ref_ptr< T > &  rp) const
inline
template<class T>
bool osg::ref_ptr< T >::operator== ( const T *  ptr) const
inline
template<class T>
T* osg::ref_ptr< T >::release ( )
inline

release the pointer from ownership by this ref_ptr<>, decrementing the objects refencedCount() via unref_nodelete() to prevent the Object object from being deleted even if the reference count goes to zero.

Use when using a local ref_ptr<> to an Object that you want to return from a function/method via a C pointer, whilst preventing the normal ref_ptr<> destructor from cleaning up the object. When using release() you are implicitly expecting other code to take over management of the object, otherwise a memory leak will result.

Referenced by osg::clone(), osg::cloneType(), and osgDB::InputStream::readObjectOfType().

template<class T>
void osg::ref_ptr< T >::swap ( ref_ptr< T > &  rp)
inline

Referenced by osg::swap().

template<class T>
bool osg::ref_ptr< T >::valid ( ) const
inline

Friends And Related Function Documentation

template<class T>
bool operator!= ( const T *  ptr,
const ref_ptr< T > &  rp 
)
friend
template<class T>
bool operator== ( const T *  ptr,
const ref_ptr< T > &  rp 
)
friend
template<class T>
template<class Other >
friend class ref_ptr
friend

The documentation for this class was generated from the following file:

osg logo
Generated at Sun Jun 19 2022 09:25:42 for the OpenSceneGraph by doxygen 1.8.5.