Added osg::FrameStamp::set/getSimulationTime().

Added setting of osg_SimulationTime and osg_DeltaSimulationTime to the uniforms set by SceneView

Added frame(double simulationTime) and advance(double simulationTime) parameters to
osgViewer::SimpleViewer, Vewer and CompositeViewer.

Updated various examples and Nodes to use SimulationTime where appropriate.
This commit is contained in:
Robert Osfield
2007-01-25 12:02:51 +00:00
parent 13dd5acb63
commit 7232a831da
48 changed files with 321 additions and 138 deletions

View File

@@ -35,6 +35,7 @@ CompositeViewer::CompositeViewer():
_frameStamp = new osg::FrameStamp;
_frameStamp->setFrameNumber(0);
_frameStamp->setReferenceTime(0);
_frameStamp->setSimulationTime(0);
setEventQueue(new osgGA::EventQueue);
@@ -722,7 +723,7 @@ void CompositeViewer::realize()
}
void CompositeViewer::frame()
void CompositeViewer::frame(double simulationTime)
{
if (_done) return;
@@ -739,19 +740,29 @@ void CompositeViewer::frame()
_firstFrame = false;
}
advance();
advance(simulationTime);
eventTraversal();
updateTraversal();
renderingTraversals();
}
void CompositeViewer::advance()
void CompositeViewer::advance(double simulationTime)
{
if (_done) return;
_frameStamp->setReferenceTime( osg::Timer::instance()->delta_s(_startTick, osg::Timer::instance()->tick()) );
_frameStamp->setFrameNumber(_frameStamp->getFrameNumber()+1);
_frameStamp->setReferenceTime( osg::Timer::instance()->delta_s(_startTick, osg::Timer::instance()->tick()) );
if (simulationTime==USE_REFERENCE_TIME)
{
_frameStamp->setSimulationTime(_frameStamp->getReferenceTime());
}
else
{
_frameStamp->setSimulationTime(simulationTime);
}
}
void CompositeViewer::setCameraWithFocus(osg::Camera* camera)