1 // File: FeaturesPlugin_Extrusion.h
2 // Created: 30 May 2014
3 // Author: Vitaly SMETANNIKOV
5 #ifndef FeaturesPlugin_Extrusion_HeaderFile
6 #define FeaturesPlugin_Extrusion_HeaderFile
8 #include "FeaturesPlugin.h"
9 #include <ModelAPI_Feature.h>
11 class FeaturesPlugin_Extrusion: public ModelAPI_Feature
15 inline static const std::string& ID()
17 static const std::string MY_EXTRUSION_ID("Extrusion");
18 return MY_EXTRUSION_ID;
20 /// attribute name of referenced face
21 inline static const std::string& FACE_ID()
23 static const std::string MY_FACE_ID("FeaturesPlugin_Extrusion::FACE_ID()");
26 /// attribute name of extrusion size
27 inline static const std::string& SIZE_ID()
29 static const std::string MY_SIZE_ID("FeaturesPlugin_Extrusion::SIZE_ID()");
32 /// attribute name of reverse direction
33 inline static const std::string& REVERSE_ID()
35 static const std::string MY_REVERSE_ID("FeaturesPlugin_Extrusion::REVERSE_ID()");
39 /// Returns the kind of a feature
40 FEATURESPLUGIN_EXPORT virtual const std::string& getKind()
41 { static std::string MY_KIND = FeaturesPlugin_Extrusion::ID(); return MY_KIND; }
43 /// Returns to which group in the document must be added feature
44 FEATURESPLUGIN_EXPORT virtual const std::string& getGroup()
45 { static std::string MY_GROUP = "Construction"; return MY_GROUP; }
47 /// Creates a new part document if needed
48 FEATURESPLUGIN_EXPORT virtual void execute();
50 /// Request for initialization of data model of the feature: adding all attributes
51 FEATURESPLUGIN_EXPORT virtual void initAttributes();
53 /// Use plugin manager for features creation
54 FeaturesPlugin_Extrusion();