From 2b34388ea671ba65d7e7dafb36f9d20dfec01f5a Mon Sep 17 00:00:00 2001 From: david Date: Sat, 22 Dec 2001 23:18:28 +0000 Subject: [PATCH] Modified FGSubsystem::update() to take an int parameter for delta time (i.e. multiloop). Most subsystems currently ignore the parameter, but eventually, it will allow all subsystems to update by time rather than by framerate. --- src/Main/viewer.cxx | 48 +++++++++++++++++++++++++++++++++++++++++ src/Main/viewer.hxx | 7 ++++++ src/Main/viewer_rph.hxx | 2 +- 3 files changed, 56 insertions(+), 1 deletion(-) diff --git a/src/Main/viewer.cxx b/src/Main/viewer.cxx index b723733ff..c13e17806 100644 --- a/src/Main/viewer.cxx +++ b/src/Main/viewer.cxx @@ -57,3 +57,51 @@ void FGViewer::update() { // Destructor FGViewer::~FGViewer( void ) { } + +void +FGViewer::init () +{ +} + +void +FGViewer::bind () +{ +} + +void +FGViewer::unbind () +{ +} + +void +FGViewer::update (int dt) +{ + for ( int i = 0; i < dt; i++ ) { + if ( fabs(get_goal_view_offset() - get_view_offset()) < 0.05 ) { + set_view_offset( get_goal_view_offset() ); + break; + } else { + // move current_view.view_offset towards + // current_view.goal_view_offset + if ( get_goal_view_offset() > get_view_offset() ) + { + if ( get_goal_view_offset() - get_view_offset() < SGD_PI ){ + inc_view_offset( 0.01 ); + } else { + inc_view_offset( -0.01 ); + } + } else { + if ( get_view_offset() - get_goal_view_offset() < SGD_PI ){ + inc_view_offset( -0.01 ); + } else { + inc_view_offset( 0.01 ); + } + } + if ( get_view_offset() > SGD_2PI ) { + inc_view_offset( -SGD_2PI ); + } else if ( get_view_offset() < 0 ) { + inc_view_offset( SGD_2PI ); + } + } + } +} diff --git a/src/Main/viewer.hxx b/src/Main/viewer.hxx index ccb51e5c0..e5307f3de 100644 --- a/src/Main/viewer.hxx +++ b/src/Main/viewer.hxx @@ -34,6 +34,8 @@ #include // plib include +#include "fgfs.hxx" + #define FG_FOV_MIN 0.1 #define FG_FOV_MAX 179.9 @@ -129,6 +131,11 @@ public: // Destructor virtual ~FGViewer( void ); + virtual void init (); + virtual void bind (); + virtual void unbind (); + virtual void update (int dt); + ////////////////////////////////////////////////////////////////////// // setter functions ////////////////////////////////////////////////////////////////////// diff --git a/src/Main/viewer_rph.hxx b/src/Main/viewer_rph.hxx index fc8a580a5..dbd4cbb7a 100644 --- a/src/Main/viewer_rph.hxx +++ b/src/Main/viewer_rph.hxx @@ -69,7 +69,7 @@ public: ~FGViewerRPH( void ); // Initialize a view class - void init( void ); +// void init( void ); ////////////////////////////////////////////////////////////////////// // setter functions -- 2.39.5