Salome HOME
refs #80 - Sketch base GUI: create/draw point, circle and arc
[modules/shaper.git] / src / GeomAPI / GeomAPI_Dir2d.h
diff --git a/src/GeomAPI/GeomAPI_Dir2d.h b/src/GeomAPI/GeomAPI_Dir2d.h
new file mode 100644 (file)
index 0000000..4c9e6fc
--- /dev/null
@@ -0,0 +1,41 @@
+// File:        GeomAPI_Dir2d.hxx
+// Created:     23 Apr 2014
+// Author:      Mikhail PONIKAROV
+
+#ifndef GeomAPI_Dir2d_HeaderFile
+#define GeomAPI_Dir2d_HeaderFile
+
+#include <GeomAPI_Interface.h>
+#include <boost/shared_ptr.hpp>
+
+class GeomAPI_XY;
+
+/**\class GeomAPI_Dir2d
+ * \ingroup DataModel
+ * \brief 2D direction defined by three normalized coordinates
+ */
+
+class GEOMAPI_EXPORT GeomAPI_Dir2d: public GeomAPI_Interface
+{
+public:
+  /// Creation of direction by coordinates
+  GeomAPI_Dir2d(const double theX, const double theY);
+  /// Creation of direction by coordinates
+  GeomAPI_Dir2d(const boost::shared_ptr<GeomAPI_XY>& theCoords);
+
+  /// returns X coordinate
+  double x() const;
+  /// returns Y coordinate
+  double y() const;
+
+  /// returns coordinates of the direction
+  const boost::shared_ptr<GeomAPI_XY> xy();
+
+  /// result is a scalar product of directions
+  double dot(const boost::shared_ptr<GeomAPI_Dir2d>& theArg) const;
+  /// result is a cross product of two directions
+  double cross(const boost::shared_ptr<GeomAPI_Dir2d>& theArg) const;
+};
+
+#endif
+