Salome HOME
Dump names of features copied in Multi-Translation, Multi-Rotation and Mirror macro...
[modules/shaper.git] / src / SketchAPI / SketchAPI_Rotation.h
1 // Name   : SketchAPI_Rotation.h
2 // Purpose: 
3 //
4 // History:
5 // 16/06/16 - Sergey POKHODENKO - Creation of the file
6
7 #ifndef SRC_SKETCHAPI_SKETCHAPI_ROTATION_H_
8 #define SRC_SKETCHAPI_SKETCHAPI_ROTATION_H_
9
10 //--------------------------------------------------------------------------------------
11 #include "SketchAPI.h"
12
13 #include <list>
14
15 #include <SketchPlugin_MultiRotation.h>
16
17 #include <ModelHighAPI_Interface.h>
18 #include <ModelHighAPI_Macro.h>
19 //--------------------------------------------------------------------------------------
20 class ModelAPI_Object;
21 class ModelHighAPI_Double;
22 class ModelHighAPI_Integer;
23 class ModelHighAPI_RefAttr;
24 //--------------------------------------------------------------------------------------
25 /**\class SketchAPI_Rotation
26  * \ingroup CPPHighAPI
27  * \brief Interface for Rotation feature
28  */
29 class SketchAPI_Rotation : public ModelHighAPI_Interface
30 {
31 public:
32   /// Constructor without values
33   SKETCHAPI_EXPORT
34   explicit SketchAPI_Rotation(const std::shared_ptr<ModelAPI_Feature> & theFeature);
35   /// Constructor with values
36   SKETCHAPI_EXPORT
37   SketchAPI_Rotation(const std::shared_ptr<ModelAPI_Feature> & theFeature,
38                      const std::list<std::shared_ptr<ModelAPI_Object> > & theObjects,
39                      const ModelHighAPI_RefAttr & theCenter,
40                      const ModelHighAPI_Double & theAngle,
41                      const ModelHighAPI_Integer & theNumberOfObjects,
42                      bool theFullValue = false);
43   /// Destructor
44   SKETCHAPI_EXPORT
45   virtual ~SketchAPI_Rotation();
46
47   INTERFACE_7(SketchPlugin_MultiRotation::ID(),
48               rotationList, SketchPlugin_MultiRotation::ROTATION_LIST_ID(), ModelAPI_AttributeRefList, /** Rotation list */,
49               center, SketchPlugin_MultiRotation::CENTER_ID(), ModelAPI_AttributeRefAttr, /** Center */,
50               angle, SketchPlugin_MultiRotation::ANGLE_ID(), ModelAPI_AttributeDouble, /** Angle */,
51               numberOfObjects, SketchPlugin_MultiRotation::NUMBER_OF_OBJECTS_ID(), ModelAPI_AttributeInteger, /** Number of objects */,
52               valueType, SketchPlugin_MultiRotation::ANGLE_TYPE(), ModelAPI_AttributeString, /** Value type */,
53               referenceObjects, SketchPlugin_MultiRotation::ENTITY_A(), ModelAPI_AttributeRefList, /** Reference objects */,
54               rotatedObjects, SketchPlugin_MultiRotation::ENTITY_B(), ModelAPI_AttributeRefList, /** Rotated objects */
55   )
56
57   /// List of rotated objects
58   SKETCHAPI_EXPORT
59   std::list<std::shared_ptr<ModelHighAPI_Interface> > rotated() const;
60
61   /// Dump wrapped feature
62   virtual void dump(ModelHighAPI_Dumper& theDumper) const;
63 };
64
65 //! Pointer on Rotation object
66 typedef std::shared_ptr<SketchAPI_Rotation> RotationPtr;
67
68 //--------------------------------------------------------------------------------------
69 //--------------------------------------------------------------------------------------
70 #endif /* SRC_SKETCHAPI_SKETCHAPI_ROTATION_H_ */