+public:
+ /// Returns the kind of a feature.
+ CONSTRUCTIONPLUGIN_EXPORT virtual const std::string& getKind();
+
+ /// Point kind.
+ inline static const std::string& ID()
+ {
+ static const std::string CONSTRUCTION_POINT_KIND("Point");
+ return CONSTRUCTION_POINT_KIND;
+ }
+
+ /// Attribute name for creation method.
+ inline static const std::string& CREATION_METHOD()
+ {
+ static const std::string MY_CREATION_METHOD_ID("creation_method");
+ return MY_CREATION_METHOD_ID;
+ }
+
+ /// Attribute name for creation method.
+ inline static const std::string& CREATION_METHOD_BY_XYZ()
+ {
+ static const std::string MY_CREATION_METHOD_ID("by_xyz");
+ return MY_CREATION_METHOD_ID;
+ }
+
+ /// Attribute name for creation method.
+ inline static const std::string& CREATION_METHOD_BY_DISTANCE_ON_EDGE()
+ {
+ static const std::string MY_CREATION_METHOD_ID("by_distance_on_edge");
+ return MY_CREATION_METHOD_ID;
+ }
+
+ /// Attribute name for creation method.
+ inline static const std::string& CREATION_METHOD_BY_PROJECTION_ON_FACE()
+ {
+ static const std::string MY_CREATION_METHOD_ID("by_projection_on_face");
+ return MY_CREATION_METHOD_ID;
+ }
+
+ /*
+ /// Attribute name for creation method.
+ inline static const std::string& CREATION_METHOD_BY_LINES_INTERSECTION()
+ {
+ static const std::string MY_CREATION_METHOD_ID("by_lines_intersection");
+ return MY_CREATION_METHOD_ID;
+ }
+ */
+
+ /// Attribute name for creation method.
+ inline static const std::string& CREATION_METHOD_BY_LINE_AND_PLANE_INTERSECTION()
+ {
+ static const std::string MY_CREATION_METHOD_ID("by_line_and_plane_intersection");
+ return MY_CREATION_METHOD_ID;
+ }
+
+ /// Attribute name for X coordinate.
+ inline static const std::string& X()
+ {
+ static const std::string POINT_ATTR_X("x");
+ return POINT_ATTR_X;
+ }
+
+ /// Attribute name for Y coordinate.
+ inline static const std::string& Y()
+ {
+ static const std::string POINT_ATTR_Y("y");
+ return POINT_ATTR_Y;
+ }
+
+ /// Attribute name for Z coordinate.
+ inline static const std::string& Z()
+ {
+ static const std::string POINT_ATTR_Z("z");
+ return POINT_ATTR_Z;
+ }
+
+ /// Attribute name for selected edge.
+ inline static const std::string& EDGE()
+ {
+ static const std::string ATTR_ID("edge");
+ return ATTR_ID;
+ }
+
+ /// Attribute name for offset type on selected edge.
+ inline static const std::string& OFFSET_TYPE()
+ {
+ static const std::string ATTR_ID("offset_type");
+ return ATTR_ID;
+ }
+
+ /// Attribute name for offset type by distance.
+ inline static const std::string& OFFSET_TYPE_BY_DISTANCE()
+ {
+ static const std::string ATTR_ID("offset_type_by_distance");
+ return ATTR_ID;
+ }
+
+ /// Attribute name for offset type by ratio.
+ inline static const std::string& OFFSET_TYPE_BY_RATIO()
+ {
+ static const std::string ATTR_ID("offset_type_by_ratio");
+ return ATTR_ID;
+ }
+
+ /// Attribute name for distance.
+ inline static const std::string& DISTANCE()
+ {
+ static const std::string ATTR_ID("distance");
+ return ATTR_ID;
+ }
+
+ /// Attribute name for percent flag.
+ inline static const std::string& RATIO()
+ {
+ static const std::string ATTR_ID("ratio");
+ return ATTR_ID;
+ }
+
+ /// Attribute name for reverse flag.
+ inline static const std::string& REVERSE()
+ {
+ static const std::string ATTR_ID("reverse");
+ return ATTR_ID;
+ }
+
+ /// Attribute name for point to project on surface.
+ inline static const std::string& POINT_TO_PROJECT_ON_FACE()
+ {
+ static const std::string ATTR_ID("point_to_project_on_face");
+ return ATTR_ID;
+ }
+
+ /// Attribute name for face for point projection.
+ inline static const std::string& FACE_FOR_POINT_PROJECTION()
+ {
+ static const std::string ATTR_ID("face_for_point_projection");
+ return ATTR_ID;
+ }
+
+ /*
+ /// Attribute name for selected first line.
+ inline static const std::string& FIRST_LINE()
+ {
+ static const std::string ATTR_ID("first_line");
+ return ATTR_ID;
+ }
+
+ /// Attribute name for selected second line.
+ inline static const std::string& SECOND_LINE()
+ {
+ static const std::string ATTR_ID("second_line");
+ return ATTR_ID;
+ }
+ */
+
+ /// Attribute name for selected intersection line.
+ inline static const std::string& INTERSECTION_LINE()
+ {
+ static const std::string ATTR_ID("intersection_line");
+ return ATTR_ID;
+ }
+
+ /// Attribute name for selected intersection plane.
+ inline static const std::string& INTERSECTION_PLANE()
+ {
+ static const std::string ATTR_ID("intersection_plane");
+ return ATTR_ID;
+ }
+
+ /// Attribute name for use offset for the intersection plane.
+ inline static const std::string& USE_OFFSET()
+ {
+ static const std::string ATTR_ID("use_offset");
+ return ATTR_ID;
+ }
+
+ /// Attribute name for offset for the intersection plane.
+ inline static const std::string& OFFSET()