Salome HOME
Fix for the issue #1100
[modules/shaper.git] / src / GeomAlgoAPI / GeomAlgoAPI_Rotation.h
index 3f77f21593c63df5f8c0a9fa7e5bba6e9b2b8196..ef56c33eafc67e79573d515ea50d601c27eb87d6 100644 (file)
@@ -12,6 +12,7 @@
 #include <GeomAPI_Ax1.h>
 #include <GeomAPI_DataMapOfShapeShape.h>
 #include <GeomAPI_Shape.h>
+#include <GeomAPI_Trsf.h>
 
 /** \class GeomAlgoAPI_Rotation
  *  \ingroup DataAlgo
@@ -39,17 +40,17 @@ public:
   /// \return true if resulting shape has volume.
   GEOMALGOAPI_EXPORT const bool hasVolume() const;
 
-  /// \return result of the Placement algorithm which may be a Solid or a Face.
+  /// \return result of the rotation algorithm.
   GEOMALGOAPI_EXPORT const std::shared_ptr<GeomAPI_Shape>& shape() const;
 
   /// \return map of sub-shapes of the result. To be used for History keeping.
-  GEOMALGOAPI_EXPORT void  mapOfShapes(GeomAPI_DataMapOfShapeShape& theMap) const;
+  GEOMALGOAPI_EXPORT std::shared_ptr<GeomAPI_DataMapOfShapeShape> mapOfShapes() const;
 
   /// \return interface for for History processing.
-  GEOMALGOAPI_EXPORT GeomAlgoAPI_MakeShape* makeShape() const;
+  GEOMALGOAPI_EXPORT std::shared_ptr<GeomAlgoAPI_MakeShape> makeShape() const;
 
-  /// Destructor.
-  GEOMALGOAPI_EXPORT virtual ~GeomAlgoAPI_Rotation();
+  /// Returns the simple transformation
+  GEOMALGOAPI_EXPORT std::shared_ptr<GeomAPI_Trsf> transformation() const;
 
 private:
   /// Builds resulting shape.
@@ -61,8 +62,9 @@ private:
   /// Fields.
   bool myDone;
   std::shared_ptr<GeomAPI_Shape> myShape;
-  GeomAPI_DataMapOfShapeShape    myMap;
-  GeomAlgoAPI_MakeShape*         myMkShape;
+  std::shared_ptr<GeomAPI_DataMapOfShapeShape> myMap;
+  std::shared_ptr<GeomAlgoAPI_MakeShape> myMkShape;
+  std::shared_ptr<GeomAPI_Trsf> myTrsf; ///< transformation of the shape in case theSimpleTransform
 };
 
 #endif