Salome HOME
9f3848d39771ecc319b94feb5df169be703666c8
[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 "SketchAPI_SketchEntity.h"
18 //--------------------------------------------------------------------------------------
19 class ModelAPI_Object;
20 class ModelHighAPI_RefAttr;
21 //--------------------------------------------------------------------------------------
22 /**\class SketchAPI_Mirror
23  * \ingroup CPPHighAPI
24  * \brief Interface for Mirror feature
25  */
26 class SketchAPI_Mirror : public SketchAPI_SketchEntity
27 {
28 public:
29   /// Constructor without values
30   SKETCHAPI_EXPORT
31   explicit SketchAPI_Mirror(const std::shared_ptr<ModelAPI_Feature> & theFeature);
32   /// Constructor with values
33   SKETCHAPI_EXPORT
34   SketchAPI_Mirror(const std::shared_ptr<ModelAPI_Feature> & theFeature,
35                    const ModelHighAPI_RefAttr & theMirrorLine,
36                    const std::list<std::shared_ptr<ModelAPI_Object> > & theObjects);
37   /// Destructor
38   SKETCHAPI_EXPORT
39   virtual ~SketchAPI_Mirror();
40
41   INTERFACE_4(SketchPlugin_ConstraintMirror::ID(),
42               mirrorLine, SketchPlugin_ConstraintMirror::ENTITY_A(), ModelAPI_AttributeRefAttr, /** Mirror line */,
43               mirrorList, SketchPlugin_ConstraintMirror::MIRROR_LIST_ID(), ModelAPI_AttributeRefList, /** Mirror list */,
44               sourceObjects, SketchPlugin_ConstraintMirror::ENTITY_B(), ModelAPI_AttributeRefList, /** Source objects */,
45               mirroredObjects, SketchPlugin_ConstraintMirror::ENTITY_C(), ModelAPI_AttributeRefList, /** Mirrored objects */
46   )
47
48 };
49
50 //! Pointer on Mirror object
51 typedef std::shared_ptr<SketchAPI_Mirror> MirrorPtr;
52
53 //--------------------------------------------------------------------------------------
54 //--------------------------------------------------------------------------------------
55 #endif /* SRC_SKETCHAPI_SKETCHAPI_MIRROR_H_ */