The MFDdrawable Class

#define NUM_MFDS      4
#define MFD_SIZE      154
 

 public:
      enum {MfdMenu = 1, MfdOff = 2};
      MfdDrawable (int which) {mfdDisplayType = which;};
      ~MfdDrawable(void);
      virtual void DisplayInit (ImageBuffer*);
      virtual void Display (VirtualDisplay*);
      void PushButton (int, int);

   private:
      int mfdDisplayType;


class MFDClass

{
   public:
      MFDClass (int count, Render3D *r3d);
      ~MFDClass (void);

      int id;
      char changeMode;
      enum MfdMode {MfdOff, MfdMenu, FCCMode, FCRMode, SMSMode, RWRMode, HUDMode};
      MfdMode mode;
      MfdMode newMode;
      MfdMode restoreMode;

      void ButtonPushed(int, int);
      void NextMode(void);
      void SetMode (MfdMode);
      void SetOwnship (AircraftClass *newOwnship);
      void SetPosition (int xPos, int yPos);
      void SetNewRenderer(Render3D *r3d);
      void SetNewMode(MfdMode); //VWF 8/12/97
      void Exec(int,int); //VWF 4/5/97
      void Exit(void);
      void UpdateVirtualPosition( const Tpoint *pos, const Trotation *rot );
      void SetImageBuffer (ImageBuffer*, float, float, float, float);

      ImageBuffer*   image;
      ImageBuffer*   privateImage;
      DrawableClass   *drawable;
      Canvas3D    *virtMFD;
      static DrawableClass *ownDraw;
      static DrawableClass *offDraw;
  int Color (void);
  void IncreaseBrightness (void);
  void DecreaseBrightness(void);

   private:
      AircraftClass *ownship;
      RViewPoint *viewPoint;
      float   vTop, vLeft, vBottom, vRight;
      int         color;

   private:
      void   FreeDrawable (void);
};