Salome HOME
Fixed addAxis import
[modules/shaper.git] / src / ConstructionAPI / ConstructionAPI_Point.h
index 56d3a57169cbed9a88eeeba9935c8cd561496f39..d2af332986b9a2c43d25bee8ccd1fd9e702a7aef 100644 (file)
 //--------------------------------------------------------------------------------------
 #include "ConstructionAPI.h"
 
+#include <ConstructionPlugin_Point.h>
+
 #include <ModelHighAPI_Interface.h>
+#include <ModelHighAPI_Macro.h>
 //--------------------------------------------------------------------------------------
 class ModelAPI_AttributeDouble;
 class ModelAPI_Document;
@@ -23,41 +26,40 @@ class ModelHighAPI_Double;
 class ConstructionAPI_Point : public ModelHighAPI_Interface
 {
 public:
-  /// Constructor
+  /// Constructor without values
+  CONSTRUCTIONAPI_EXPORT
   explicit ConstructionAPI_Point(const std::shared_ptr<ModelAPI_Feature> & theFeature);
   /// Constructor with values
+  CONSTRUCTIONAPI_EXPORT
   ConstructionAPI_Point(const std::shared_ptr<ModelAPI_Feature> & theFeature,
                         const ModelHighAPI_Double & theX,
                         const ModelHighAPI_Double & theY,
                         const ModelHighAPI_Double & theZ);
   /// Destructor
+  CONSTRUCTIONAPI_EXPORT
   virtual ~ConstructionAPI_Point();
 
+  INTERFACE_3(ConstructionPlugin_Point::ID(),
+              x, ConstructionPlugin_Point::X(), ModelAPI_AttributeDouble, /** X attribute */,
+              y, ConstructionPlugin_Point::Y(), ModelAPI_AttributeDouble, /** Y attribute */,
+              z, ConstructionPlugin_Point::Z(), ModelAPI_AttributeDouble, /** Z attribute */
+  )
+
   /// Set point values
+  CONSTRUCTIONAPI_EXPORT
   void setPoint(const ModelHighAPI_Double & theX,
                 const ModelHighAPI_Double & theY,
                 const ModelHighAPI_Double & theZ);
-
-  /// X coordinate for the point
-  std::shared_ptr<ModelAPI_AttributeDouble> x() const;
-  /// Y coordinate for the point
-  std::shared_ptr<ModelAPI_AttributeDouble> y() const;
-  /// Z coordinate for the point
-  std::shared_ptr<ModelAPI_AttributeDouble> z() const;
-
-protected:
-  std::shared_ptr<ModelAPI_AttributeDouble> myX, myY, myZ;
-
-  bool initialize();
 };
 
-//! Pointer on point object
+//! Pointer on Point object
 typedef std::shared_ptr<ConstructionAPI_Point> PointPtr;
 
 /**\ingroup CPPHighAPI
  * \brief Create Point feature
  */
-PointPtr addPoint(std::shared_ptr<ModelAPI_Document> thePart,
+CONSTRUCTIONAPI_EXPORT
+PointPtr addPoint(const std::shared_ptr<ModelAPI_Document> & thePart,
                   const ModelHighAPI_Double & theX,
                   const ModelHighAPI_Double & theY,
                   const ModelHighAPI_Double & theZ);