X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FConstructionPlugin%2FConstructionPlugin_Axis.h;h=ffaa95d04ed0614e0a1de31334fdd197250b9544;hb=f387a286673e6be6e5c065f3bbf3c19ed5981a30;hp=87ab72be5b709825ffc7b42bc0246dd3a8d90832;hpb=a0bf1eb5af40ce92ee7e682959bf5738a3fc092b;p=modules%2Fshaper.git diff --git a/src/ConstructionPlugin/ConstructionPlugin_Axis.h b/src/ConstructionPlugin/ConstructionPlugin_Axis.h index 87ab72be5..ffaa95d04 100644 --- a/src/ConstructionPlugin/ConstructionPlugin_Axis.h +++ b/src/ConstructionPlugin/ConstructionPlugin_Axis.h @@ -9,18 +9,9 @@ #include "ConstructionPlugin.h" #include +#include #include - -/// Point kind -const std::string CONSTRUCTION_AXIS_KIND("Axis"); - -/// attribute name for first point -const std::string POINT_ATTR_FIRST = "firstPoint"; - -/// attribute name for second point -const std::string POINT_ATTR_SECOND = "secondPoint"; - /**\class ConstructionPlugin_Axis * \ingroup Plugins * \brief Feature for creation of the new axis in PartSet. @@ -31,10 +22,45 @@ class ConstructionPlugin_Axis : public ModelAPI_Feature, public GeomAPI_ICustomP /// Returns the kind of a feature CONSTRUCTIONPLUGIN_EXPORT virtual const std::string& getKind() { - static std::string MY_KIND = CONSTRUCTION_AXIS_KIND; + static std::string MY_KIND = ConstructionPlugin_Axis::ID(); return MY_KIND; } + /// Axis kind + inline static const std::string& ID() + { + static const std::string CONSTRUCTION_AXIS_KIND("Axis"); + return CONSTRUCTION_AXIS_KIND; + } + + /// attribute name for first point + inline static const std::string& METHOD() + { + static const std::string METHOD_ATTR("CreationMethod"); + return METHOD_ATTR; + } + /// attribute name for first point + inline static const std::string& POINT_FIRST() + { + static const std::string POINT_ATTR_FIRST("FirstPoint"); + return POINT_ATTR_FIRST; + } + /// attribute name for second point + inline static const std::string& POINT_SECOND() + { + static const std::string POINT_ATTR_SECOND("SecondPoint"); + return POINT_ATTR_SECOND; + } + /// attribute name for second point + inline static const std::string& CYLINDRICAL_FACE() + { + static const std::string CYLINDRICAL_FACE_ATTR("CylindricalFace"); + return CYLINDRICAL_FACE_ATTR; + } + + /// Returns a minimal length for axis + inline static const double MINIMAL_LENGTH() { return 1.e-5; } + /// Creates a new part document if needed CONSTRUCTIONPLUGIN_EXPORT virtual void execute(); @@ -48,8 +74,15 @@ class ConstructionPlugin_Axis : public ModelAPI_Feature, public GeomAPI_ICustomP ConstructionPlugin_Axis(); /// Customize presentation of the feature - virtual void customisePresentation(AISObjectPtr thePrs); + virtual bool customisePresentation(ResultPtr theResult, AISObjectPtr thePrs, + std::shared_ptr theDefaultPrs); + + protected: + /// Creates a new axis by two defined points + void createAxisByTwoPoints(); + /// Creates a new axis as copy of cylindrical face axis + void createAxisByCylindricalFace(); }; -#endif \ No newline at end of file +#endif