Basic globe rendering
[tecorrec.git] / geo / tcGeoVector.h
blob064e2254292bb2e3e6605481ce842f471de6199d
1 /***************************************************************************
2 * This file is part of Tecorrec. *
3 * Copyright 2008 James Hogan <james@albanarts.com> *
4 * *
5 * Tecorrec is free software: you can redistribute it and/or modify *
6 * it under the terms of the GNU General Public License as published by *
7 * the Free Software Foundation, either version 2 of the License, or *
8 * (at your option) any later version. *
9 * *
10 * Tecorrec is distributed in the hope that it will be useful, *
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 * GNU General Public License for more details. *
14 * *
15 * You should have received a copy of the GNU General Public License *
16 * along with Tecorrec. If not, write to the Free Software Foundation, *
17 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
18 ***************************************************************************/
20 #ifndef _tcGeoVector_h_
21 #define _tcGeoVector_h_
23 /**
24 * @file tcGeoVector.h
25 * @brief Geographical coordinates.
28 /// Use doubles for angles.
29 typedef double tcGeoAngle;
31 /// Geographical coordinates.
32 class tcGeoVector
34 public:
37 * Constructors + destructor
40 /// Primary constructor.
41 tcGeoVector()
42 : m_azimuth(0.0)
43 , m_elevation(0.0)
47 /// Primary constructor.
48 tcGeoVector(const tcGeoAngle azimuth, const tcGeoAngle elevation)
49 : m_azimuth(azimuth)
50 , m_elevation(elevation)
55 * Accessors
58 /// Get the azimuth.
59 tcGeoAngle azim() const
61 return m_azimuth;
64 /// Get the elevation.
65 tcGeoAngle elev() const
67 return m_elevation;
71 * Mutators
74 /// Set the azimuth.
75 void setAzim(const tcGeoAngle azimuth)
77 m_azimuth = azimuth;
80 /// Set the elevation.
81 void setElev(const tcGeoAngle elevation)
83 m_elevation = elevation;
86 private:
89 * Variables
92 /** Azimuth (bearing).
93 * Units are radians.
95 tcGeoAngle m_azimuth;
97 /** Elevation (positive is upwards).
98 * Units are radians.
100 tcGeoAngle m_elevation;
104 #endif // _tcGeoVector_h_