RenderInfo
Go to the documentation of this file.
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield
*
* This library is open source and may be redistributed and/or modified under
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
* (at your option) any later version. The full license is in LICENSE file
* included with this distribution, and on the openscenegraph.org website.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* OpenSceneGraph Public License for more details.
*/
#ifndef OSG_RENDERINFO
#define OSG_RENDERINFO 1
#include <osg/State>
#include <osg/View>
namespace osgUtil {
// forward declare RenderBin so we can refer to it in RenderInfo
class RenderBin;
}
namespace osg {
class RenderInfo
{
public:
RenderInfo():
_view(0) {}
RenderInfo(const RenderInfo& rhs):
_state(rhs._state),
_view(rhs._view),
_cameraStack(rhs._cameraStack),
_renderBinStack(rhs._renderBinStack),
_userData(rhs._userData) {}
RenderInfo(State* state, View* view):
_state(state),
_view(view) {}
RenderInfo& operator = (const RenderInfo& rhs)
{
_state = rhs._state;
_view = rhs._view;
_cameraStack = rhs._cameraStack;
_renderBinStack = rhs._renderBinStack;
_userData = rhs._userData;
return *this;
}
unsigned int getContextID() const { return _state.valid() ? _state->getContextID() : 0; }
void setState(State* state) { _state = state; }
State* getState() { return _state.get(); }
const State* getState() const { return _state.get(); }
void setView(View* view) { _view = view; }
View* getView() { return _view; }
const View* getView() const { return _view; }
void pushCamera(Camera* camera) { _cameraStack.push_back(camera); }
void popCamera() { if (!_cameraStack.empty()) _cameraStack.pop_back(); }
typedef std::vector<Camera*> CameraStack;
CameraStack& getCameraStack() { return _cameraStack; }
Camera* getCurrentCamera() { return _cameraStack.empty() ? 0 : _cameraStack.back(); }
void pushRenderBin(osgUtil::RenderBin* bin) { _renderBinStack.push_back(bin); }
void popRenderBin() { _renderBinStack.pop_back(); }
typedef std::vector<osgUtil::RenderBin*> RenderBinStack;
RenderBinStack& getRenderBinStack() { return _renderBinStack; }
void setUserData(Referenced* userData) { _userData = userData; }
Referenced* getUserData() { return _userData.get(); }
const Referenced* getUserData() const { return _userData.get(); }
protected:
ref_ptr<State> _state;
View* _view;
CameraStack _cameraStack;
RenderBinStack _renderBinStack;
ref_ptr<Referenced> _userData;
};
}
#endif
State
osgUtil::RenderBin
Definition RenderBin:34
osg::Camera
Definition Camera:45
osg::Referenced
Definition Referenced:44
osg::RenderInfo::getState
const State * getState() const
Definition RenderInfo:59
osg::RenderInfo::getView
const View * getView() const
Definition RenderInfo:63
osg::RenderInfo::RenderInfo
RenderInfo(const RenderInfo &rhs)
Definition RenderInfo:34
osg::RenderInfo::getCameraStack
CameraStack & getCameraStack()
Definition RenderInfo:69
osg::RenderInfo::popRenderBin
void popRenderBin()
Definition RenderInfo:74
osg::RenderInfo::operator=
RenderInfo & operator=(const RenderInfo &rhs)
Definition RenderInfo:45
osg::RenderInfo::getUserData
const Referenced * getUserData() const
Definition RenderInfo:81
osg::RenderInfo::RenderInfo
RenderInfo()
Definition RenderInfo:31
osg::RenderInfo::getRenderBinStack
RenderBinStack & getRenderBinStack()
Definition RenderInfo:77
osg::RenderInfo::getUserData
Referenced * getUserData()
Definition RenderInfo:80
osg::RenderInfo::RenderInfo
RenderInfo(State *state, View *view)
Definition RenderInfo:41
osg::RenderInfo::_cameraStack
CameraStack _cameraStack
Definition RenderInfo:88
osg::RenderInfo::pushRenderBin
void pushRenderBin(osgUtil::RenderBin *bin)
Definition RenderInfo:73
osg::RenderInfo::setUserData
void setUserData(Referenced *userData)
Definition RenderInfo:79
osg::RenderInfo::_state
ref_ptr< State > _state
Definition RenderInfo:86
osg::RenderInfo::getState
State * getState()
Definition RenderInfo:58
osg::RenderInfo::CameraStack
std::vector< Camera * > CameraStack
Definition RenderInfo:68
osg::RenderInfo::_renderBinStack
RenderBinStack _renderBinStack
Definition RenderInfo:89
osg::RenderInfo::setState
void setState(State *state)
Definition RenderInfo:57
osg::RenderInfo::getCurrentCamera
Camera * getCurrentCamera()
Definition RenderInfo:71
osg::RenderInfo::getContextID
unsigned int getContextID() const
Definition RenderInfo:55
osg::RenderInfo::RenderBinStack
std::vector< osgUtil::RenderBin * > RenderBinStack
Definition RenderInfo:76
osg::RenderInfo::_userData
ref_ptr< Referenced > _userData
Definition RenderInfo:90
osg::RenderInfo::setView
void setView(View *view)
Definition RenderInfo:61
osg::RenderInfo::getView
View * getView()
Definition RenderInfo:62
osg::RenderInfo::pushCamera
void pushCamera(Camera *camera)
Definition RenderInfo:65
osg::RenderInfo::popCamera
void popCamera()
Definition RenderInfo:66
osg::RenderInfo::_view
View * _view
Definition RenderInfo:87
osg::State
Definition State:80
osg::View
Definition osg/View:30
osg::ref_ptr
Definition ref_ptr:32
osgUtil
Definition NodeVisitor:25
osg
Definition AlphaFunc:19
View