/* -*- 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