+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 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 seleted edge.
+ inline static const std::string& EDGE()
+ {
+ static const std::string ATTR_ID("edge");
+ return ATTR_ID;
+ }
+
+ /// Attribute name for distance.
+ inline static const std::string& DISTANCE_VALUE()
+ {
+ static const std::string ATTR_ID("value");
+ return ATTR_ID;
+ }
+
+ /// Attribute name for percent flag.
+ inline static const std::string& DISTANCE_PERCENT()