Salome HOME
Boost has been removed from code
[modules/shaper.git] / src / GeomAPI / GeomAPI_Dir2d.h
1 // File:        GeomAPI_Dir2d.hxx
2 // Created:     23 Apr 2014
3 // Author:      Mikhail PONIKAROV
4
5 #ifndef GeomAPI_Dir2d_H_
6 #define GeomAPI_Dir2d_H_
7
8 #include <GeomAPI_Interface.h>
9 #include <memory>
10
11 class GeomAPI_XY;
12
13 /**\class GeomAPI_Dir2d
14  * \ingroup DataModel
15  * \brief 2D direction defined by three normalized coordinates
16  */
17
18 class GEOMAPI_EXPORT GeomAPI_Dir2d : public GeomAPI_Interface
19 {
20  public:
21   /// Creation of direction by coordinates
22   GeomAPI_Dir2d(const double theX, const double theY);
23   /// Creation of direction by coordinates
24   GeomAPI_Dir2d(const std::shared_ptr<GeomAPI_XY>& theCoords);
25
26   /// returns X coordinate
27   double x() const;
28   /// returns Y coordinate
29   double y() const;
30
31   /// returns coordinates of the direction
32   const std::shared_ptr<GeomAPI_XY> xy();
33
34   /// result is a scalar product of directions
35   double dot(const std::shared_ptr<GeomAPI_Dir2d>& theArg) const;
36   /// result is a cross product of two directions
37   double cross(const std::shared_ptr<GeomAPI_Dir2d>& theArg) const;
38 };
39
40 #endif
41