+// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
+
// File: GeomAPI_Pnt.hxx
// Created: 23 Apr 2014
// Author: Mikhail PONIKAROV
#define GeomAPI_Pnt_H_
#include <GeomAPI_Interface.h>
-#include <boost/shared_ptr.hpp>
+#include <memory>
class GeomAPI_XYZ;
+class GeomAPI_Pnt2d;
+class GeomAPI_Dir;
+class GeomAPI_Pln;
/**\class GeomAPI_Pnt
* \ingroup DataModel
/// Creation of point by coordinates
GeomAPI_Pnt(const double theX, const double theY, const double theZ);
/// Creation of point by coordinates
- GeomAPI_Pnt(const boost::shared_ptr<GeomAPI_XYZ>& theCoords);
+ GeomAPI_Pnt(const std::shared_ptr<GeomAPI_XYZ>& theCoords);
/// returns X coordinate
double x() const;
void setZ(const double theZ);
/// returns coordinates of the point
- const boost::shared_ptr<GeomAPI_XYZ> xyz();
+ const std::shared_ptr<GeomAPI_XYZ> xyz();
/// Distance between two points
- double distance(const boost::shared_ptr<GeomAPI_Pnt>& theOther) const;
+ double distance(const std::shared_ptr<GeomAPI_Pnt>& theOther) const;
+
+ /// Projects a point to the plane defined by the origin and 2 axes vectors in this plane
+ std::shared_ptr<GeomAPI_Pnt2d> to2D(const std::shared_ptr<GeomAPI_Pnt>& theOrigin,
+ const std::shared_ptr<GeomAPI_Dir>& theDirX,
+ const std::shared_ptr<GeomAPI_Dir>& theDirY);
+
+ /// Projects a point to the plane defined by the origin and 2 axes vectors in this plane
+ std::shared_ptr<GeomAPI_Pnt2d> to2D(const std::shared_ptr<GeomAPI_Pln>& thePln) const;
+
+ /// Translates the point along direction theDir on distance theDist
+ void translate(const std::shared_ptr<GeomAPI_Dir>& theDir, double theDist);
};
#endif
-