/* -*- C -*- * point3d.h * $Id: point3d.h,v 1.1.1.1 2000/07/20 20:54:13 ghali Exp $ */ #ifndef POINT3D_H #define POINT3D_H #include <stdlib.h> #include <iostream.h> #include "vector3d.h" #include "direction3d.h" namespace MSG { class Point3d { protected: double x, y, z; public: Point3d(); Point3d(double xx, double yy, double zz); virtual double X() const; virtual double Y() const; virtual double Z() const; virtual void setX(double a); virtual void setY(double a); virtual void setZ(double a); double sqr_dist(const Point3d& p) const; // Point3d::findMid() in regular/platonic/regular.h Point3d findSphericalMid(const Point3d& p) const; Point3d operator+(Vector3d v); Point3d operator+(Direction3d v); Point3d operator-(Vector3d v); friend ostream& operator<<( ostream& out, const Point3d& p); friend istream& operator>>( istream& in, Point3d& p ); // virtual void print() const { cout << " ("<<x<<", "<<y<<", "<<z<<") "; } }; } #endif