Salome HOME
Fix the Linux compilation problem
[modules/shaper.git] / src / GeomAlgoAPI / GeomAlgoAPI_Placement.h
index 1e1e88e49c1e045a0fb968ce331dec0ec2b4ef95..866791a020561cb7b5166462b0ffa168b3e2229f 100644 (file)
@@ -11,6 +11,7 @@
 #include <GeomAPI_Shape.h>
 #include <GeomAPI_Dir.h>
 #include <GeomAPI_Face.h>
+#include <GeomAPI_Trsf.h>
 #include <GeomAlgoAPI_MakeShape.h>
 #include <GeomAPI_DataMapOfShapeShape.h>
 #include <memory>
@@ -30,13 +31,15 @@ public:
    *  \param[in] theDestShape    destination object
    *  \param[in] theIsReverse    indicates that the solid materials should be on the same side against the destination plane
    *  \param[in] theIsCentering  indicates the planes should be centered
+   *  \param[in] theSimpleTransform makes just transformation of shape without changing of topology or geometry
    */
   GEOMALGOAPI_EXPORT GeomAlgoAPI_Placement(std::shared_ptr<GeomAPI_Shape> theSourceSolid,
                                            std::shared_ptr<GeomAPI_Shape> theDestSolid,
                                            std::shared_ptr<GeomAPI_Shape> theSourceShape,
                                            std::shared_ptr<GeomAPI_Shape> theDestShape,
                                            bool theIsReverse = false,
-                                           bool theIsCentering = false);
+                                           bool theIsCentering = false,
+                                           bool theSimpleTransform = false);
 
   /// Returns True if algorithm succeed
   GEOMALGOAPI_EXPORT const bool isDone() const
@@ -57,6 +60,9 @@ public:
   /// Return interface for for History processing
   GEOMALGOAPI_EXPORT GeomAlgoAPI_MakeShape* makeShape () const;
 
+  /// Returns the simple transformation
+  GEOMALGOAPI_EXPORT std::shared_ptr<GeomAPI_Trsf> transformation() const;
+
   /// Destructor
   GEOMALGOAPI_EXPORT virtual ~GeomAlgoAPI_Placement();
 
@@ -67,13 +73,15 @@ private:
              const std::shared_ptr<GeomAPI_Shape>& theSourceShape,
              const std::shared_ptr<GeomAPI_Shape>& theDestShape,
              bool theIsReverse,
-             bool theIsCentering);
+             bool theIsCentering,
+             bool theSimpleTransform);
 
   /// fields
   bool myDone;
   std::shared_ptr<GeomAPI_Shape> myShape;
   GeomAPI_DataMapOfShapeShape myMap;
   GeomAlgoAPI_MakeShape * myMkShape;
+  std::shared_ptr<GeomAPI_Trsf> myTrsf; ///< transformation of the shape in case theSimpleTransform
 };
 
 #endif