-\f
-////////////////////////////////////////////////////////////////////////
-// Default panel, instrument, and layer for when things go wrong...
-////////////////////////////////////////////////////////////////////////
-
-static FGCroppedTexture defaultTexture("Textures/default.rgb");
-
-
-/**
- * Default layer: the default texture.
- */
-class DefaultLayer : public FGTexturedLayer
-{
-public:
- DefaultLayer () : FGTexturedLayer(defaultTexture)
- {
- }
-
-};
-
-/**
- * Default instrument: a single default layer.
- */
-class DefaultInstrument : public FGLayeredInstrument
-{
-public:
- DefaultInstrument (int x, int y, int w, int h)
- : FGLayeredInstrument(x, y, w, h)
- {
- addLayer(new DefaultLayer());
- }
-};
-
-
-/**
- * Default panel: the default texture.
- */
-class DefaultPanel : public FGPanel
-{
-public:
- DefaultPanel (int x, int y, int w, int h) : FGPanel(x, y, w, h)
- {
- setBackground(defaultTexture.getTexture());
- }
-};
-
-
-\f
-////////////////////////////////////////////////////////////////////////
-// Built-in layer for the magnetic compass ribbon layer.
-//
-// TODO: move this out into a special directory for built-in
-// layers of various sorts.
-////////////////////////////////////////////////////////////////////////
-
-class FGMagRibbon : public FGTexturedLayer
-{
-public:
- FGMagRibbon (int w, int h);
- virtual ~FGMagRibbon () {}
-
- virtual void draw ();
-};
-
-FGMagRibbon::FGMagRibbon (int w, int h)
- : FGTexturedLayer(w, h)
-{
- FGCroppedTexture texture("Aircraft/c172/Instruments/Textures/compass-ribbon.rgb");
- setTexture(texture);
-}
-
-void
-FGMagRibbon::draw ()
-{
- double heading = FGSteam::get_MH_deg();
- double xoffset, yoffset;
-
- while (heading >= 360.0) {
- heading -= 360.0;
- }
- while (heading < 0.0) {
- heading += 360.0;
- }
-
- if (heading >= 60.0 && heading <= 180.0) {
- xoffset = heading / 240.0;
- yoffset = 0.75;
- } else if (heading >= 150.0 && heading <= 270.0) {
- xoffset = (heading - 90.0) / 240.0;
- yoffset = 0.50;
- } else if (heading >= 240.0 && heading <= 360.0) {
- xoffset = (heading - 180.0) / 240.0;
- yoffset = 0.25;
- } else {
- if (heading < 270.0)
- heading += 360.0;
- xoffset = (heading - 270.0) / 240.0;
- yoffset = 0.0;
- }
-
- xoffset = 1.0 - xoffset;
- // Adjust to put the number in the centre
- xoffset -= 0.25;
-
- FGCroppedTexture &t = getTexture();
- t.setCrop(xoffset, yoffset, xoffset + 0.5, yoffset + 0.25);
- FGTexturedLayer::draw();
-}
-
-