-// point3d.hxx -- a 3d point class.
-//
-// Adapted from algebra3 by Jean-Francois Doue, started October 1998.
-//
+/**
+ * \file point3d.hxx
+ * A 3d point class (depricated). This class is depricated and we are
+ * in the process of removing all usage of it in favor of plib's "sg"
+ * library of point, vector, and math routines. Plib's sg lib is less
+ * object oriented, but integrates more seamlessly with opengl.
+ *
+ * Adapted from algebra3 by Jean-Francois Doue, started October 1998.
+ */
+
// Copyright (C) 1998 Curtis L. Olson - curt@me.umn.edu
//
// This library is free software; you can redistribute it and/or
#include <simgear/compiler.h>
-#ifdef FG_MATH_EXCEPTION_CLASH
+#ifdef SG_MATH_EXCEPTION_CLASH
# define exception c_exception
#endif
-#ifdef FG_HAVE_STD_INCLUDES
+#ifdef SG_HAVE_STD_INCLUDES
# include <iostream>
# include <cassert>
# include <cmath>
#include <simgear/math/localconsts.hxx>
// I don't understand ... <math.h> or <cmath> should be included
-// already depending on how you defined FG_HAVE_STD_INCLUDES, but I
+// already depending on how you defined SG_HAVE_STD_INCLUDES, but I
// can go ahead and add this -- CLO
#ifdef __MWERKS__
-FG_USING_NAMESPACE(std);
+SG_USING_NAMESPACE(std);
#endif
-#ifndef FG_HAVE_NATIVE_SGI_COMPILERS
-FG_USING_STD(ostream);
-FG_USING_STD(istream);
+#ifndef SG_HAVE_NATIVE_SGI_COMPILERS
+SG_USING_STD(ostream);
+SG_USING_STD(istream);
#endif
bool operator== (const Point3D& a, const Point3D& b); // p1 == p2?
-///////////////////////////
-//
-// 3D Point
-//
-///////////////////////////
+/**
+ * 3D Point class.
+ */
class Point3D {
public:
- // Constructors
-
+ /** Default constructor */
Point3D();
Point3D(const double x, const double y, const double z);
explicit Point3D(const double d);
void setx(const double x);
void sety(const double y);
void setz(const double z);
+ void setlon(const double x);
+ void setlat(const double y);
+ void setradius(const double z);
+ void setelev(const double z);
// Queries
n[PZ] = z;
}
+inline void Point3D::setlon(const double x) {
+ n[PX] = x;
+}
+
+inline void Point3D::setlat(const double y) {
+ n[PY] = y;
+}
+
+inline void Point3D::setradius(const double z) {
+ n[PZ] = z;
+}
+
+inline void Point3D::setelev(const double z) {
+ n[PZ] = z;
+}
+
// QUERIES
inline double& Point3D::operator [] ( int i)