Update of /cvsroot/csp/APPLICATIONS/CSPFlightSim/Source
In directory sc8-pr-cvs1:/tmp/cvs-serv21730
Modified Files:
AirplaneInput.cpp
Log Message:
Cleaning code
Adding Smooth method
Index: AirplaneInput.cpp
===================================================================
RCS file: /cvsroot/csp/APPLICATIONS/CSPFlightSim/Source/AirplaneInput.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** AirplaneInput.cpp 12 Dec 2002 21:13:45 -0000 1.3
--- AirplaneInput.cpp 11 Jan 2003 10:48:01 -0000 1.4
***************
*** 4,7 ****
--- 4,9 ----
#include "AirplaneObject.h"
+ extern double frameSeconds();
+
double const AirplaneInput::offsetControl = 0.05;
***************
*** 12,38 ****
m_foffsetRudder = 0.0;
m_foffsetThrottle = 0.0;
}
! void AirplaneInput::SetObject(BaseObject * pObject)
{
m_pAirplaneObject = dynamic_cast<AirplaneObject* >(pObject);
}
double AirplaneInput::Clamp(double p_setting) const
{
! if ( p_setting < - 1.0)
! p_setting = - 1.0;
! else
! if ( p_setting > 1.0 )
! p_setting = 1.0;
! return p_setting;
}
! void AirplaneInput::OnUpdate() const
{
if (m_foffsetAileron != 0.0)
{
double setting = m_pAirplaneObject->getAileron() + m_foffsetAileron;
! setting = Clamp(setting);
m_pAirplaneObject->setAileron( setting );
}
--- 14,49 ----
m_foffsetRudder = 0.0;
m_foffsetThrottle = 0.0;
+ m_oldsetting = 0.0;
}
! void AirplaneInput::SetObject(BaseObject * pObject)
{
m_pAirplaneObject = dynamic_cast<AirplaneObject* >(pObject);
}
+ double AirplaneInput::Smooth(double p_setting)
+ {
+ double u = 0.8 * frameSeconds();
+ p_setting = u * m_oldsetting + (1.0 - u) * p_setting;
+ m_oldsetting = p_setting;
+ return p_setting;
+ }
+
double AirplaneInput::Clamp(double p_setting) const
{
! if ( p_setting < - 1.0)
! p_setting = - 1.0;
! else
! if ( p_setting > 1.0 )
! p_setting = 1.0;
! return p_setting;
}
! void AirplaneInput::OnUpdate()
{
if (m_foffsetAileron != 0.0)
{
double setting = m_pAirplaneObject->getAileron() + m_foffsetAileron;
! setting = Smooth(Clamp(setting));
m_pAirplaneObject->setAileron( setting );
}
***************
*** 42,46 ****
{
double setting = m_pAirplaneObject->getElevator() + m_foffsetElevator;
! setting = Clamp(setting);
m_pAirplaneObject->setElevator( setting );
}
--- 53,57 ----
{
double setting = m_pAirplaneObject->getElevator() + m_foffsetElevator;
! setting = Smooth(Clamp(setting));
m_pAirplaneObject->setElevator( setting );
}
***************
*** 50,54 ****
{
double setting = m_pAirplaneObject->getRudder() + m_foffsetRudder;
! setting = Clamp(setting);
m_pAirplaneObject->setRudder( setting );
}
--- 61,65 ----
{
double setting = m_pAirplaneObject->getRudder() + m_foffsetRudder;
! setting = Smooth(Clamp(setting));
m_pAirplaneObject->setRudder( setting );
}
***************
*** 57,61 ****
{
double setting = m_pAirplaneObject->getThrottle() + m_foffsetThrottle;
! setting = Clamp(setting);
m_pAirplaneObject->setThrottle( setting );
}
--- 68,72 ----
{
double setting = m_pAirplaneObject->getThrottle() + m_foffsetThrottle;
! setting = Smooth(Clamp(setting));
m_pAirplaneObject->setThrottle( setting );
}
***************
*** 147,151 ****
<< ", axis: " << axis << ", val: " << val );
! float setting = val / 32768.0;
switch ( joynum )
--- 158,162 ----
<< ", axis: " << axis << ", val: " << val );
! float setting = Smooth(val / 32768.0);
switch ( joynum )
|