Salome HOME
Dump names of features copied in Multi-Translation, Multi-Rotation and Mirror macro...
[modules/shaper.git] / src / SketchAPI / SketchAPI_Mirror.h
1 // Name   : SketchAPI_Mirror.h
2 // Purpose: 
3 //
4 // History:
5 // 16/06/16 - Sergey POKHODENKO - Creation of the file
6
7 #ifndef SRC_SKETCHAPI_SKETCHAPI_MIRROR_H_
8 #define SRC_SKETCHAPI_SKETCHAPI_MIRROR_H_
9
10 //--------------------------------------------------------------------------------------
11 #include "SketchAPI.h"
12
13 #include <list>
14
15 #include <SketchPlugin_ConstraintMirror.h>
16
17 #include <ModelHighAPI_Interface.h>
18 #include <ModelHighAPI_Macro.h>
19 //--------------------------------------------------------------------------------------
20 class ModelAPI_Object;
21 class ModelHighAPI_RefAttr;
22 //--------------------------------------------------------------------------------------
23 /**\class SketchAPI_Mirror
24  * \ingroup CPPHighAPI
25  * \brief Interface for Mirror feature
26  */
27 class SketchAPI_Mirror : public ModelHighAPI_Interface
28 {
29 public:
30   /// Constructor without values
31   SKETCHAPI_EXPORT
32   explicit SketchAPI_Mirror(const std::shared_ptr<ModelAPI_Feature> & theFeature);
33   /// Constructor with values
34   SKETCHAPI_EXPORT
35   SketchAPI_Mirror(const std::shared_ptr<ModelAPI_Feature> & theFeature,
36                    const ModelHighAPI_RefAttr & theMirrorLine,
37                    const std::list<std::shared_ptr<ModelAPI_Object> > & theObjects);
38   /// Destructor
39   SKETCHAPI_EXPORT
40   virtual ~SketchAPI_Mirror();
41
42   INTERFACE_4(SketchPlugin_ConstraintMirror::ID(),
43               mirrorLine, SketchPlugin_ConstraintMirror::ENTITY_A(), ModelAPI_AttributeRefAttr, /** Mirror line */,
44               mirrorList, SketchPlugin_ConstraintMirror::MIRROR_LIST_ID(), ModelAPI_AttributeRefList, /** Mirror list */,
45               referenceObjects, SketchPlugin_ConstraintMirror::ENTITY_B(), ModelAPI_AttributeRefList, /** Reference objects */,
46               mirroredObjects, SketchPlugin_ConstraintMirror::ENTITY_C(), ModelAPI_AttributeRefList, /** Mirrored objects */
47   )
48
49   /// List of mirrored objects
50   SKETCHAPI_EXPORT
51   std::list<std::shared_ptr<ModelHighAPI_Interface> > mirrored() const;
52
53   /// Dump wrapped feature
54   virtual void dump(ModelHighAPI_Dumper& theDumper) const;
55 };
56
57 //! Pointer on Mirror object
58 typedef std::shared_ptr<SketchAPI_Mirror> MirrorPtr;
59
60 //--------------------------------------------------------------------------------------
61 //--------------------------------------------------------------------------------------
62 #endif /* SRC_SKETCHAPI_SKETCHAPI_MIRROR_H_ */