#define _CONTROLS_HXX
-// #include <Include/fg_limits.h>
-
-
#ifndef __cplusplus
# error This library requires C++
#endif
// Define a structure containing the control parameters
-class fgCONTROLS {
+class FGControls {
public:
- static const int FG_ALL_ENGINES = -1;
- static const int FG_MAX_ENGINES = 10;
+ static const int ALL_ENGINES = -1;
+ static const int MAX_ENGINES = 10;
- static const int FG_ALL_WHEELS = -1;
- static const int FG_MAX_WHEELS = 3;
+ static const int ALL_WHEELS = -1;
+ static const int MAX_WHEELS = 3;
private:
double elevator;
double elevator_trim;
double rudder;
- double throttle[FG_MAX_ENGINES];
- double brake[FG_MAX_WHEELS];
+ double throttle[MAX_ENGINES];
+ double brake[MAX_WHEELS];
public:
- fgCONTROLS();
- ~fgCONTROLS();
+ FGControls();
+ ~FGControls();
// Query functions
inline double get_aileron() const { return aileron; }
if ( rudder > 1.0 ) rudder = 1.0;
}
inline void set_throttle( int engine, double pos ) {
- if ( engine == FG_ALL_ENGINES ) {
- for ( int i = 0; i < FG_MAX_ENGINES; i++ ) {
+ if ( engine == ALL_ENGINES ) {
+ for ( int i = 0; i < MAX_ENGINES; i++ ) {
throttle[i] = pos;
if ( throttle[i] < 0.0 ) throttle[i] = 0.0;
if ( throttle[i] > 1.0 ) throttle[i] = 1.0;
}
} else {
- if ( (engine >= 0) && (engine < FG_MAX_ENGINES) ) {
+ if ( (engine >= 0) && (engine < MAX_ENGINES) ) {
throttle[engine] = pos;
if ( throttle[engine] < 0.0 ) throttle[engine] = 0.0;
if ( throttle[engine] > 1.0 ) throttle[engine] = 1.0;
}
}
inline void move_throttle( int engine, double amt ) {
- if ( engine == FG_ALL_ENGINES ) {
- for ( int i = 0; i < FG_MAX_ENGINES; i++ ) {
+ if ( engine == ALL_ENGINES ) {
+ for ( int i = 0; i < MAX_ENGINES; i++ ) {
throttle[i] += amt;
if ( throttle[i] < 0.0 ) throttle[i] = 0.0;
if ( throttle[i] > 1.0 ) throttle[i] = 1.0;
}
} else {
- if ( (engine >= 0) && (engine < FG_MAX_ENGINES) ) {
+ if ( (engine >= 0) && (engine < MAX_ENGINES) ) {
throttle[engine] += amt;
if ( throttle[engine] < 0.0 ) throttle[engine] = 0.0;
if ( throttle[engine] > 1.0 ) throttle[engine] = 1.0;
}
}
inline void set_brake( int wheel, double pos ) {
- if ( wheel == FG_ALL_WHEELS ) {
- for ( int i = 0; i < FG_MAX_WHEELS; i++ ) {
+ if ( wheel == ALL_WHEELS ) {
+ for ( int i = 0; i < MAX_WHEELS; i++ ) {
brake[i] = pos;
if ( brake[i] < 0.0 ) brake[i] = 0.0;
if ( brake[i] > 1.0 ) brake[i] = 1.0;
}
} else {
- if ( (wheel >= 0) && (wheel < FG_MAX_WHEELS) ) {
+ if ( (wheel >= 0) && (wheel < MAX_WHEELS) ) {
brake[wheel] = pos;
if ( brake[wheel] < 0.0 ) brake[wheel] = 0.0;
if ( brake[wheel] > 1.0 ) brake[wheel] = 1.0;
}
}
inline void move_brake( int wheel, double amt ) {
- if ( wheel == FG_ALL_WHEELS ) {
- for ( int i = 0; i < FG_MAX_WHEELS; i++ ) {
+ if ( wheel == ALL_WHEELS ) {
+ for ( int i = 0; i < MAX_WHEELS; i++ ) {
brake[i] += amt;
if ( brake[i] < 0.0 ) brake[i] = 0.0;
if ( brake[i] > 1.0 ) brake[i] = 1.0;
}
} else {
- if ( (wheel >= 0) && (wheel < FG_MAX_WHEELS) ) {
+ if ( (wheel >= 0) && (wheel < MAX_WHEELS) ) {
brake[wheel] += amt;
if ( brake[wheel] < 0.0 ) brake[wheel] = 0.0;
if ( brake[wheel] > 1.0 ) brake[wheel] = 1.0;
};
-/*
-#define FG_Elevator c->elevator
-#define FG_Aileron c->aileron
-#define FG_Rudder c->rudder
-#define FG_Throttle c->throttle
-#define FG_Throttle_All -1
-#define FG_Elev_Trim c->elevator_trim
-#define FG_Brake_Amt c->brake_amt
-*/
+extern FGControls controls;
-extern fgCONTROLS controls;
-
-/*
-void fgControlsInit( void );
-void fgElevMove(double amt);
-void fgElevSet(double pos);
-void fgElevTrimMove(double amt);
-void fgElevTrimSet(double pos);
-void fgAileronMove(double amt);
-void fgAileronSet(double pos);
-void fgRudderMove(double amt);
-void fgRudderSet(double pos);
-void fgThrottleMove(int engine, double amt);
-void fgThrottleSet(int engine, double pos);
-void fgBrakeSet( double brake_amt );
-double fgBrakeGet( void );
-*/
#endif // _CONTROLS_HXX
// $Log$
+// Revision 1.3 1998/12/05 16:13:13 curt
+// Renamed class fgCONTROLS to class FGControls.
+//
// Revision 1.2 1998/10/25 14:08:42 curt
// Turned "struct fgCONTROLS" into a class, with inlined accessor functions.
//
// Pass the values to the control routines
controls.set_elevator( joy_y );
controls.set_aileron( -joy_x );
- controls.set_throttle( fgCONTROLS::FG_ALL_ENGINES, joy_z );
+ controls.set_throttle( FGControls::ALL_ENGINES, joy_z );
}
#endif // ENABLE_GLUT_JOYSTICK
if ( ! js1->notWorking() ) {
js1->read( &b, js_ax1 ) ;
controls.set_rudder( js_ax1[0] );
- controls.set_throttle( fgCONTROLS::FG_ALL_ENGINES, -js_ax1[1] * 1.05 );
+ controls.set_throttle( FGControls::ALL_ENGINES, -js_ax1[1] * 1.05 );
}
return 1;
// $Log$
+// Revision 1.6 1998/12/05 16:13:16 curt
+// Renamed class fgCONTROLS to class FGControls.
+//
// Revision 1.5 1998/11/06 21:18:04 curt
// Converted to new logstream debugging facility. This allows release
// builds with no messages at all (and no performance impact) by using
controls.set_rudder(0.0);
return;
case 57: // numeric keypad 9 (Pg Up)
- controls.move_throttle( fgCONTROLS::FG_ALL_ENGINES, 0.01 );
+ controls.move_throttle( FGControls::ALL_ENGINES, 0.01 );
return;
case 51: // numeric keypad 3 (Pg Dn)
- controls.move_throttle( fgCONTROLS::FG_ALL_ENGINES, -0.01 );
+ controls.move_throttle( FGControls::ALL_ENGINES, -0.01 );
return;
case 98: // b key
int b_ret;
double b_set;
b_ret = int( controls.get_brake( 0 ) );
b_set = double(!b_ret);
- controls.set_brake( fgCONTROLS::FG_ALL_WHEELS, b_set);
+ controls.set_brake( FGControls::ALL_WHEELS, b_set);
return;
case 104: // h key
HUD_brightkey( false );
controls.set_rudder(0.0);
return;
case GLUT_KEY_PAGE_UP: // numeric keypad 9 (Pg Up)
- controls.move_throttle( fgCONTROLS::FG_ALL_ENGINES, 0.01 );
+ controls.move_throttle( FGControls::ALL_ENGINES, 0.01 );
return;
case GLUT_KEY_PAGE_DOWN: // numeric keypad 3 (Pg Dn)
- controls.move_throttle( fgCONTROLS::FG_ALL_ENGINES, -0.01 );
+ controls.move_throttle( FGControls::ALL_ENGINES, -0.01 );
return;
}
}
// $Log$
+// Revision 1.35 1998/12/05 16:13:17 curt
+// Renamed class fgCONTROLS to class FGControls.
+//
// Revision 1.34 1998/12/05 15:54:17 curt
// Renamed class fgFLIGHT to class FGState as per request by JSB.
//