Salome HOME
Cleare Macros for easy atribute initialization in C++HighAPI interfaces
[modules/shaper.git] / src / ConstructionAPI / ConstructionAPI_Point.h
index 88d97e4a9d5067b2e5ef36dec3b5a276f6086fd2..aef5b8150ad4f0e236215f4efd78db29963ac42c 100644 (file)
 #include "ConstructionAPI.h"
 
 #include <ModelHighAPI_Interface.h>
+#include <ModelHighAPI_Macro.h>
 //--------------------------------------------------------------------------------------
 class ModelAPI_AttributeDouble;
 class ModelAPI_Document;
 class ModelHighAPI_Double;
 //--------------------------------------------------------------------------------------
-/*
- *
+/**\class ConstructionAPI_Point
+ * \ingroup CPPHighAPI
+ * \brief Interface for Point feature
  */
 class ConstructionAPI_Point : public ModelHighAPI_Interface
 {
 public:
-  ConstructionAPI_Point(const std::shared_ptr<ModelAPI_Feature> & theFeature);
+  /// Constructor without values
+  explicit ConstructionAPI_Point(const std::shared_ptr<ModelAPI_Feature> & theFeature);
+  /// Constructor with values
   ConstructionAPI_Point(const std::shared_ptr<ModelAPI_Feature> & theFeature,
                         const ModelHighAPI_Double & theX,
                         const ModelHighAPI_Double & theY,
                         const ModelHighAPI_Double & theZ);
+  /// Destructor
   virtual ~ConstructionAPI_Point();
 
+  INTERFACE_3("Point",
+              x, "x", Double, /** X attribute */,
+              y, "y", Double, /** Y attribute */,
+              z, "z", Double, /** Z attribute */)
+
+  /// Set point values
   void setPoint(const ModelHighAPI_Double & theX,
                 const ModelHighAPI_Double & theY,
                 const ModelHighAPI_Double & theZ);
-
-  std::shared_ptr<ModelAPI_AttributeDouble> x() const;
-  std::shared_ptr<ModelAPI_AttributeDouble> y() const;
-  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;
 
-PointPtr addPoint(std::shared_ptr<ModelAPI_Document> thePart);
-PointPtr addPoint(std::shared_ptr<ModelAPI_Document> thePart,
+/**\ingroup CPPHighAPI
+ * \brief Create Point feature
+ */
+PointPtr addPoint(const std::shared_ptr<ModelAPI_Document> & thePart,
                   const ModelHighAPI_Double & theX,
                   const ModelHighAPI_Double & theY,
                   const ModelHighAPI_Double & theZ);