1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D -->
3 // File: SketchShapePlugin_Feature.h
4 // Created: 25 Nov 2015
5 // Author: Natalia ERMOLAEVA
7 #ifndef SKETCHSHAPEPLUGIN_FEATURE_H_
8 #define SKETCHSHAPEPLUGIN_FEATURE_H_
10 #include "SketchShapePlugin.h"
12 #include <ModelAPI_Feature.h>
14 /**\class SketchShapePlugin_Feature
16 * \brief Feature for extraction shapes from the sketch.
17 * The visualization of this object is a result and
18 * it is calculated if all attributes are initialized.
19 * It is possible to extract simultaneously vertices, edges and faces.
22 class SketchShapePlugin_Feature : public ModelAPI_Feature
25 /// SketchShape feature kind
26 inline static const std::string& ID()
28 static const std::string MY_SKETCH_SHAPE_ID("SketchShape");
29 return MY_SKETCH_SHAPE_ID;
33 inline static const std::string& SKETCH_ID()
35 static const std::string MY_SKETCH_ID("Sketch");
39 /// State whether the vertices are selectable
40 inline static const std::string& VERTEX_CHOICE_ID()
42 static const std::string MY_VERTEX_CHOICE_ID("VertexChoice");
43 return MY_VERTEX_CHOICE_ID;
46 /// List of vertices to be extracted
47 inline static const std::string& VERTEX_LIST_ID()
49 static const std::string MY_VERTEX_LIST_ID("VertexList");
50 return MY_VERTEX_LIST_ID;
53 /// State whether the vertices are selectable
54 inline static const std::string& EDGE_CHOICE_ID()
56 static const std::string MY_EDGE_CHOICE_ID("EdgeChoice");
57 return MY_EDGE_CHOICE_ID;
60 /// List of vertices to be extracted
61 inline static const std::string& EDGE_LIST_ID()
63 static const std::string MY_EDGE_LIST_ID("EdgeList");
64 return MY_EDGE_LIST_ID;
67 /// State whether the vertices are selectable
68 inline static const std::string& FACE_CHOICE_ID()
70 static const std::string MY_FACE_CHOICE_ID("FaceChoice");
71 return MY_FACE_CHOICE_ID;
74 /// List of vertices to be extracted
75 inline static const std::string& FACE_LIST_ID()
77 static const std::string MY_FACE_LIST_ID("FaceList");
78 return MY_FACE_LIST_ID;
81 /// Returns the kind of a feature
82 SKETCHSHAPEPLUGIN_EXPORT virtual const std::string& getKind()
84 static std::string MY_KIND = SketchShapePlugin_Feature::ID();
88 /// Creates an arc-shape
89 SKETCHSHAPEPLUGIN_EXPORT virtual void execute();
91 /// Request for initialization of data model of the feature: adding all attributes
92 SKETCHSHAPEPLUGIN_EXPORT virtual void initAttributes();
94 /// Called on change of any argument-attribute of this object
95 /// \param theID identifier of changed attribute
96 SKETCHSHAPEPLUGIN_EXPORT virtual void attributeChanged(const std::string& theID);
98 /// Use plugin manager for features creation
99 SketchShapePlugin_Feature();