//--------------------------------------------------------------------------------------
#include "ConstructionAPI.h"
+#include <ConstructionPlugin_Point.h>
+
#include <ModelHighAPI_Interface.h>
+#include <ModelHighAPI_Macro.h>
//--------------------------------------------------------------------------------------
class ModelAPI_AttributeDouble;
class ModelAPI_Document;
//--------------------------------------------------------------------------------------
/**\class ConstructionAPI_Point
* \ingroup CPPHighAPI
- * \brief C++ HighAPI interface for Point feature
+ * \brief Interface for Point feature
*/
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 C++ HighAPI function for creating Point feature
+ * \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);