14 #ifndef OSGSIM_OVERLAYNODE
15 #define OSGSIM_OVERLAYNODE 1
17 #include <osg/buffered_value>
19 #include <osg/Texture2D>
20 #include <osg/TexGenNode>
23 #include <osgUtil/CullVisitor>
25 #include <osgSim/Export>
39 VIEW_DEPENDENT_WITH_PERSPECTIVE_OVERLAY
42 OverlayNode(OverlayTechnique technique=OBJECT_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY);
51 void setOverlayTechnique(OverlayTechnique technique);
68 void dirtyOverlayTexture();
93 void setTexEnvMode(GLenum mode);
99 void setOverlayTextureUnit(
unsigned int unit);
105 void setOverlayTextureSizeHint(
unsigned int size);
112 virtual void setThreadSafeRefUnref(
bool threadSafe);
115 virtual void resizeGLObjectBuffers(
unsigned int );
120 virtual void releaseGLObjects(
osg::State* = 0)
const;
127 void init_OBJECT_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY();
128 void init_VIEW_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY();
129 void init_VIEW_DEPENDENT_WITH_PERSPECTIVE_OVERLAY();
131 void traverse_OBJECT_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY(
osg::NodeVisitor& nv);
132 void traverse_VIEW_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY(
osg::NodeVisitor& nv);
133 void traverse_VIEW_DEPENDENT_WITH_PERSPECTIVE_OVERLAY(
osg::NodeVisitor& nv);
136 void updateMainSubgraphStateSet();
166 void setThreadSafeRefUnref(
bool threadSafe);
167 void resizeGLObjectBuffers(
unsigned int maxSize);
168 void releaseGLObjects(
osg::State* state= 0)
const;
184 typedef std::map<osgUtil::CullVisitor*, osg::ref_ptr<OverlayData> >
OverlayDataMap;
double _overlayBaseHeight
osg::Camera::RenderTargetImplementation _renderTargetImpl
This class provides an object-oriented thread mutex interface.
osg::ref_ptr< osg::Uniform > _y0
osg::Polytope _textureFrustum
double getOverlayBaseHeight() const
osg::Node * getOverlaySubgraph()
osg::ref_ptr< osg::Camera > _camera
osg::ref_ptr< osg::Node > _overlaySubgraph
const osg::Vec4 & getOverlayClearColor() const
#define META_Node(library, name)
OverlayTechnique _overlayTechnique
void setContinuousUpdate(bool update)
osg::ref_ptr< osg::TexGenNode > _texgenNode
unsigned int _textureSizeHint
osg::Vec4 _overlayClearColor
osg::ref_ptr< osg::Uniform > _lightingEnabled
osg::ref_ptr< osg::Texture2D > _texture
unsigned int getOverlayTextureUnit() const
OpenThreads::Mutex _overlayDataMapMutex
void setOverlayClearColor(const osg::Vec4 &color)
void setOverlayBaseHeight(double baseHeight)
GLenum getTexEnvMode() const
osg::ref_ptr< osg::Geode > _geode
osg::buffered_value< int > TextureObjectValidList
osg::ref_ptr< osg::StateSet > _mainStateSet
RenderTargetImplementation
osg::ref_ptr< osg::StateSet > _overlayStateSet
osg::ref_ptr< osg::StateSet > _overlayStateSet
osg::ref_ptr< osg::Program > _mainSubgraphProgram
unsigned int _textureUnit
OverlayDataMap _overlayDataMap
std::map< osgUtil::CullVisitor *, osg::ref_ptr< OverlayData > > OverlayDataMap
bool getContinuousUpdate() const
TextureObjectValidList _textureObjectValidList
const osg::Node * getOverlaySubgraph() const
unsigned int getOverlayTextureSizeHint() const
OverlayTechnique getOverlayTechnique() const
osg::ref_ptr< osg::StateSet > _mainSubgraphStateSet