1 // Name : ConstructionAPI_Point.h
5 // 29/03/16 - Sergey POKHODENKO - Creation of the file
7 #ifndef SRC_CONSTRUCTIONAPI_CONSTRUCTIONAPI_POINT_H_
8 #define SRC_CONSTRUCTIONAPI_CONSTRUCTIONAPI_POINT_H_
10 //--------------------------------------------------------------------------------------
11 #include "ConstructionAPI.h"
13 #include <ConstructionPlugin_Point.h>
15 #include <ModelHighAPI_Interface.h>
16 #include <ModelHighAPI_Macro.h>
17 //--------------------------------------------------------------------------------------
18 class ModelAPI_AttributeDouble;
19 class ModelAPI_Document;
20 class ModelHighAPI_Double;
21 //--------------------------------------------------------------------------------------
22 /**\class ConstructionAPI_Point
24 * \brief Interface for Point feature
26 class ConstructionAPI_Point : public ModelHighAPI_Interface
29 /// Constructor without values
30 CONSTRUCTIONAPI_EXPORT
31 explicit ConstructionAPI_Point(const std::shared_ptr<ModelAPI_Feature> & theFeature);
32 /// Constructor with values
33 CONSTRUCTIONAPI_EXPORT
34 ConstructionAPI_Point(const std::shared_ptr<ModelAPI_Feature> & theFeature,
35 const ModelHighAPI_Double & theX,
36 const ModelHighAPI_Double & theY,
37 const ModelHighAPI_Double & theZ);
39 CONSTRUCTIONAPI_EXPORT
40 virtual ~ConstructionAPI_Point();
42 INTERFACE_3(ConstructionPlugin_Point::ID(),
43 x, ConstructionPlugin_Point::X(), ModelAPI_AttributeDouble, /** X attribute */,
44 y, ConstructionPlugin_Point::Y(), ModelAPI_AttributeDouble, /** Y attribute */,
45 z, ConstructionPlugin_Point::Z(), ModelAPI_AttributeDouble, /** Z attribute */)
48 CONSTRUCTIONAPI_EXPORT
49 void setPoint(const ModelHighAPI_Double & theX,
50 const ModelHighAPI_Double & theY,
51 const ModelHighAPI_Double & theZ);
54 //! Pointer on Point object
55 typedef std::shared_ptr<ConstructionAPI_Point> PointPtr;
57 /**\ingroup CPPHighAPI
58 * \brief Create Point feature
60 CONSTRUCTIONAPI_EXPORT
61 PointPtr addPoint(const std::shared_ptr<ModelAPI_Document> & thePart,
62 const ModelHighAPI_Double & theX,
63 const ModelHighAPI_Double & theY,
64 const ModelHighAPI_Double & theZ);
66 //--------------------------------------------------------------------------------------
67 //--------------------------------------------------------------------------------------
68 #endif /* SRC_CONSTRUCTIONAPI_CONSTRUCTIONAPI_POINT_H_ */