/** \file Header for Point class \author Stefano Argiro' \author Lukas Nellen \version $Id: Point.h 14717 2009-09-17 20:24:36Z lukas $ \date 22 May 2003 */ #ifndef _utl_Point_h_ #define _utl_Point_h_ #include #include namespace utl { class Vector; /** \class Point Point.h utl/Point.h \brief Point object \author Lukas Nellen \ingroup geometry \version $Id: Point.h 14717 2009-09-17 20:24:36Z lukas $ \date 22 May 2003 */ class Point : public PointBase { public: Point() : PointBase() { } /// Construct point from coordinates in a given coordinate system Point(const double x, const double y, const double z, const CoordinateSystemPtr& theCoordinateSystem) : PointBase(x, y, z, theCoordinateSystem) { } /// Construct a point from arbitrary representation Point(const double p1, const double p2, const double p3, const CoordinateSystemPtr& theCoordinateSystem, const CoordinateType& theType) : PointBase(p1, p2, p3, theCoordinateSystem, theType) { } private: /// Constructor from internal components for use by operators Point(const PointBase::DataType& thePoint, const CoordinateSystemPtr& theCoordinateSystem) : PointBase(thePoint, theCoordinateSystem) { } friend class TransformationPolicy; friend Point operator+(const Point& l, const Vector& r); friend Point operator+(const Vector& l, const Point& r); friend Point operator-(const Point& l, const Vector& r); friend Vector operator-(const Point& l, const Point& r); friend Point& operator+=(Point& p, const Vector& v); friend Point& operator-=(Point& p, const Vector& v); }; } // utl #ifdef _utl_Vector_h_ #include #endif #endif // _utl_Point_h_ // Configure (x)emacs for this file ... // Local Variables: // mode: c++ // compile-command: "make -C .. -k" // End: