// printf("A geocentric point is (%.2f, %.2f, %.2f)\n", gc_lon,
// gc_lat, sl_radius+geod[2]);
- pp.setvals(gc_lon, gc_lat, sl_radius + geod.radius());
+ pp = Point3D(gc_lon, gc_lat, sl_radius + geod.radius());
cp = fgPolarToCart3d(pp);
// printf("A cart point is (%.8f, %.8f, %.8f)\n", cp.x, cp.y, cp.z);
$Header$
$Log$
+Revision 1.3 1998/10/18 01:17:11 curt
+Point3D tweaks.
+
Revision 1.2 1998/10/16 23:36:37 curt
c++-ifying.
// $Log$
+// Revision 1.3 1998/10/18 01:17:11 curt
+// Point3D tweaks.
+//
// Revision 1.2 1998/10/16 23:36:37 curt
// c++-ifying.
//
using namespace std;
#endif
-/*
-#include <stdlib.h>
-#include <yvals.h>
-#include <math.h>
-*/
-
#include <assert.h>
#include <Include/fg_constants.h>
Point3D& operator -= ( const Point3D& p ); // decrementation by a Point3D
Point3D& operator *= ( const double d ); // multiplication by a constant
Point3D& operator /= ( const double d ); // division by a constant
- void setvals(const double x, const double y, const double z);
+
void setx(const double x);
void sety(const double y);
void setz(const double z);
};
+// output to stream
+inline ostream&
+operator << ( ostream& out, Point3D& p)
+{
+ double x, y, z;
+
+ x = p.x();
+ y = p.y();
+ z = p.z();
+
+ out << x << " " << y << " " << z;
+
+ return out;
+}
+
// input from stream
inline istream&
operator >> ( istream& in, Point3D& p)
in >> z;
- p.setvals(x, y, z);
+ p = Point3D(x, y, z);
return in;
}
return *this;
}
-inline void Point3D::setvals(const double x, const double y, const double z) {
- n[PX] = x; n[PY] = y; n[PZ] = z;
-}
-
inline void Point3D::setx(const double x) {
n[PX] = x;
}
// $Log$
+// Revision 1.2 1998/10/18 01:17:12 curt
+// Point3D tweaks.
+//
// Revision 1.1 1998/10/16 00:50:29 curt
// Added point3d.hxx to replace cheezy fgPoint3d struct.
//
tmp = cos( p.lat() ) * p.radius();
- pnew.setvals( cos( p.lon() ) * tmp,
- sin( p.lon() ) * tmp,
- sin( p.lat() ) * p.radius() );
+ pnew = Point3D ( cos( p.lon() ) * tmp,
+ sin( p.lon() ) * tmp,
+ sin( p.lat() ) * p.radius() );
- return(pnew);
+ return pnew;
}
Point3D fgCartToPolar3d(const Point3D& cp) {
Point3D pp;
- pp.setvals( atan2( cp.y(), cp.x() ),
- FG_PI_2 - atan2( sqrt(cp.x()*cp.x() + cp.y()*cp.y()), cp.z() ),
- sqrt(cp.x()*cp.x() + cp.y()*cp.y() + cp.z()*cp.z()) );
+ pp = Point3D( atan2( cp.y(), cp.x() ),
+ FG_PI_2 -
+ atan2( sqrt(cp.x()*cp.x() + cp.y()*cp.y()), cp.z() ),
+ sqrt(cp.x()*cp.x() + cp.y()*cp.y() + cp.z()*cp.z()) );
// printf("lon = %.2f lat = %.2f radius = %.2f\n",
// pp.lon, pp.lat, pp.radius);
- return(pp);
+ return pp;
}
// $Log$
+// Revision 1.5 1998/10/18 01:17:13 curt
+// Point3D tweaks.
+//
// Revision 1.4 1998/10/16 19:30:09 curt
// C++-ified the comments.
//
#include "strutils.hxx"
+const string whitespace = " \n\r\t";
+
//
string
trimleft( const string& s, const string& trimmings )
}
// $Log$
+// Revision 1.2 1998/10/18 01:17:15 curt
+// Point3D tweaks.
+//
// Revision 1.1 1998/09/01 19:06:30 curt
// Initial revision.
//