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