21 #include <OpenThreads/Mutex>
40 virtual void take(
View& rhs);
63 void setLightingMode(LightingMode lightingMode);
99 Slave(
bool useMastersSceneData=
true):
100 _useMastersSceneData(useMastersSceneData) {}
104 _projectionOffset(projectionOffset),
105 _viewOffset(viewOffset),
106 _useMastersSceneData(useMastersSceneData) {}
109 _camera(rhs._camera),
110 _projectionOffset(rhs._projectionOffset),
111 _viewOffset(rhs._viewOffset),
112 _useMastersSceneData(rhs._useMastersSceneData),
113 _updateSlaveCallback(rhs._updateSlaveCallback) {}
134 if (_updateSlaveCallback.valid()) _updateSlaveCallback->updateSlave(view, *
this);
135 else updateSlaveImplementation(view);
138 virtual void updateSlaveImplementation(
View& view);
151 bool removeSlave(
unsigned int pos);
153 unsigned int getNumSlaves()
const {
return static_cast<unsigned int>(_slaves.size()); }
158 unsigned int findSlaveIndexForCamera(
osg::Camera* camera)
const;
void setStats(osg::Stats *stats)
void updateSlave(View &view)
osg::FrameStamp * getFrameStamp()
bool addSlave(osg::Camera *camera, bool useMastersSceneData=true)
const osg::Light * getLight() const
osg::ref_ptr< osg::Light > _light
static Matrixd identity(void)
const Slave & getSlave(unsigned int pos) const
const osg::Stats * getStats() const
std::vector< Slave > Slaves
const osg::FrameStamp * getFrameStamp() const
virtual osg::GraphicsOperation * createRenderer(osg::Camera *)
Slave(bool useMastersSceneData=true)
osg::ref_ptr< osg::Camera > _camera
void setLight(osg::Light *light)
osg::ref_ptr< osg::FrameStamp > _frameStamp
LightingMode getLightingMode() const
Slave & getSlave(unsigned int pos)
#define META_Object(library, name)
void setFrameStamp(osg::FrameStamp *fs)
LightingMode _lightingMode
unsigned int getNumSlaves() const
osg::Matrixd _projectionOffset
osg::ref_ptr< osg::Camera > _camera
const osg::Camera * getCamera() const
osg::ref_ptr< UpdateSlaveCallback > _updateSlaveCallback
Slave(osg::Camera *camera, const osg::Matrixd &projectionOffset, const osg::Matrixd &viewOffset, bool useMastersSceneData=true)
bool _useMastersSceneData
osg::ref_ptr< osg::Stats > _stats
osg::Camera * getCamera()