refactor angle computation into class/compile unit

This commit is contained in:
Dennis Luxen
2014-10-10 18:47:28 +02:00
parent f2b72113c1
commit ed960ccc8d
5 changed files with 58 additions and 14 deletions
+9
View File
@@ -30,6 +30,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <iosfwd> //for std::ostream
#include <string>
#include <type_traits>
constexpr float COORDINATE_PRECISION = 1000000.f;
@@ -40,6 +41,14 @@ struct FixedPointCoordinate
FixedPointCoordinate();
FixedPointCoordinate(int lat, int lon);
template<class T>
FixedPointCoordinate(const T &coordinate) : lat(coordinate.lat), lon(coordinate.lon)
{
static_assert(std::is_same<decltype(lat), decltype(coordinate.lat)>::value, "coordinate types incompatible");
static_assert(std::is_same<decltype(lon), decltype(coordinate.lon)>::value, "coordinate types incompatible");
}
void Reset();
bool isSet() const;
bool isValid() const;