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