owlps/owlps-positioning/point3d.hh

53 lines
1.4 KiB
C++
Raw Normal View History

#ifndef _OWLPS_POSITIONING_POINT3D_HH_
#define _OWLPS_POSITIONING_POINT3D_HH_
#include <iostream>
#include <cmath>
using namespace std ;
class Point3D
{
protected:
float x ;
float y ;
float z ;
public:
Point3D(const float &_x = 0, const float &_y = 0, const float &_z = 0) ;
Point3D(const Point3D &p) ;
Point3D(const float c[3]) ;
~Point3D() {}
float get_x(void) const ;
float get_y(void) const ;
float get_z(void) const ;
void set_x(const float &_x) ;
void set_y(const float &_y) ;
void set_z(const float &_z) ;
void set_coordinates(const Point3D &p) ;
float square_distance(const Point3D &p) const ;
inline float distance(const Point3D &p) const ;
float square_distance(const float &mx,
const float &my,
const float &mz) const ;
inline float distance(const float &mx,
const float &my,
const float &mz) const ;
Point3D operator=(const Point3D &p) ;
bool operator==(const Point3D &p) const ;
inline bool operator!=(const Point3D &p) const ;
bool operator<(const Point3D &p) const ;
inline bool operator>(const Point3D &p) const ;
bool operator<=(const Point3D &p) const ;
inline bool operator>=(const Point3D &p) const ;
friend ostream& operator<<(ostream &os, const Point3D &p) ;
} ;
#endif // _OWLPS_POSITIONING_POINT3D_HH_