// This file may be redistributed and modified only under the terms of
// the GNU General Public License (See COPYING for details).
// Copyright (C) 2000 Alistair Riddoch

// $Id: c7d681d45d1ab0a367ae62b341bb96af702ef87f $

#ifndef ELEVATION_H
#define ELEVATION_H

#include <list>

#include <Atlas/Message/Object.h>

#include <physics/Vector3D.h>

#include "Sun.h"
#include "Moon.h"
#include "Planet.h"
#include "World.h"

class Astronomy {
  private:
    World world; // Wacky values to make it compile
    std::list<Sun> m_suns;
    std::list<Moon> m_moons;
    std::list<Planet> m_planets;

    double m_longitude;

    static const int world_maxy = 200;
  public:
    Astronomy() : world(34, 35) { }

    Atlas::Message::Element asObject(const Vector3D & from)
    {
        Atlas::Message::Element::MapType amap;
        amap["longitude"] = (from.Y() / world_maxy) * 90;
    }
};

#endif // ELEVATION_H
