+\f
+////////////////////////////////////////////////////////////////////////
+// Implementation of FGInput::button.
+////////////////////////////////////////////////////////////////////////
+
+FGInput::button::button ()
+ : is_repeatable(false),
+ last_state(-1)
+{
+}
+
+FGInput::button::~button ()
+{
+ // FIXME: memory leak
+// for (int i = 0; i < FG_MOD_MAX; i++)
+// for (int j = 0; i < bindings[i].size(); j++)
+// delete bindings[i][j];
+}
+
+
+\f
+////////////////////////////////////////////////////////////////////////
+// Implementation of FGInput::axis.
+////////////////////////////////////////////////////////////////////////
+
+FGInput::axis::axis ()
+ : last_value(9999999),
+ tolerance(0.002),
+ low_threshold(-0.9),
+ high_threshold(0.9)
+{
+}
+
+FGInput::axis::~axis ()
+{
+// for (int i = 0; i < FG_MOD_MAX; i++)
+// for (int j = 0; i < bindings[i].size(); j++)
+// delete bindings[i][j];
+}
+
+
+\f
+////////////////////////////////////////////////////////////////////////
+// Implementation of FGInput::joystick.
+////////////////////////////////////////////////////////////////////////
+
+FGInput::joystick::joystick ()
+{
+}
+
+FGInput::joystick::~joystick ()
+{
+// delete js;
+// delete[] axes;
+// delete[] buttons;
+}
+
+
+\f
+////////////////////////////////////////////////////////////////////////
+// Implementation of GLUT callbacks.
+////////////////////////////////////////////////////////////////////////
+
+