Salome HOME
Add Rotation
[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 "SketchAPI_SketchEntity.h"
18 //--------------------------------------------------------------------------------------
19 class ModelAPI_Object;
20 class ModelHighAPI_Double;
21 class ModelHighAPI_Integer;
22 class ModelHighAPI_RefAttr;
23 //--------------------------------------------------------------------------------------
24 /**\class SketchAPI_Rotation
25  * \ingroup CPPHighAPI
26  * \brief Interface for Rotation feature
27  */
28 class SketchAPI_Rotation : public SketchAPI_SketchEntity
29 {
30 public:
31   /// Constructor without values
32   SKETCHAPI_EXPORT
33   explicit SketchAPI_Rotation(const std::shared_ptr<ModelAPI_Feature> & theFeature);
34   /// Constructor with values
35   SKETCHAPI_EXPORT
36   SketchAPI_Rotation(const std::shared_ptr<ModelAPI_Feature> & theFeature,
37                      const std::list<std::shared_ptr<ModelAPI_Object> > & theObjects,
38                      const ModelHighAPI_RefAttr & theCenter,
39                      const ModelHighAPI_Double & theAngle,
40                      const ModelHighAPI_Integer & theNumberOfObjects,
41                      bool theFullValue = false);
42   /// Destructor
43   SKETCHAPI_EXPORT
44   virtual ~SketchAPI_Rotation();
45
46   INTERFACE_7(SketchPlugin_MultiRotation::ID(),
47               rotationList, SketchPlugin_MultiRotation::ROTATION_LIST_ID(), ModelAPI_AttributeRefList, /** Rotation list */,
48               center, SketchPlugin_MultiRotation::CENTER_ID(), ModelAPI_AttributeRefAttr, /** Center */,
49               angle, SketchPlugin_MultiRotation::ANGLE_ID(), ModelAPI_AttributeDouble, /** Angle */,
50               numberOfObjects, SketchPlugin_MultiRotation::NUMBER_OF_OBJECTS_ID(), ModelAPI_AttributeInteger, /** Number of objects */,
51               valueType, SketchPlugin_MultiRotation::ANGLE_TYPE(), ModelAPI_AttributeString, /** Value type */,
52               referenceObjects, SketchPlugin_MultiRotation::ENTITY_A(), ModelAPI_AttributeRefList, /** Reference objects */,
53               rotatedObjects, SketchPlugin_MultiRotation::ENTITY_B(), ModelAPI_AttributeRefList, /** Rotated objects */
54   )
55
56 };
57
58 //! Pointer on Rotation object
59 typedef std::shared_ptr<SketchAPI_Rotation> RotationPtr;
60
61 //--------------------------------------------------------------------------------------
62 //--------------------------------------------------------------------------------------
63 #endif /* SRC_SKETCHAPI_SKETCHAPI_ROTATION_H_ */