X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FFeaturesPlugin%2FFeaturesPlugin_Symmetry.h;fp=src%2FFeaturesPlugin%2FFeaturesPlugin_Symmetry.h;h=2917835da7b3fd9602bb902bfeb5c464ac3b7ac9;hb=4c1678d0da83ae87144effaf9c99545bd30197cd;hp=f91f29a2ae850cd5267e61e4234be13f5f7f2946;hpb=4a1fccd1dfa5e62ebc7c47945d6c2060e50ff91d;p=modules%2Fshaper.git diff --git a/src/FeaturesPlugin/FeaturesPlugin_Symmetry.h b/src/FeaturesPlugin/FeaturesPlugin_Symmetry.h index f91f29a2a..2917835da 100644 --- a/src/FeaturesPlugin/FeaturesPlugin_Symmetry.h +++ b/src/FeaturesPlugin/FeaturesPlugin_Symmetry.h @@ -24,10 +24,8 @@ #include -#include -#include - class GeomAPI_Trsf; +class GeomAlgoAPI_MakeShapeList; /** \class FeaturesPlugin_Symmetry * \ingroup Plugins @@ -123,23 +121,23 @@ class FeaturesPlugin_Symmetry : public ModelAPI_Feature FeaturesPlugin_Symmetry(); private: - /// Obtain list of source objects of the mirror - bool collectSourceObjects(ListOfShape& theSourceShapes, - std::list>& theSourceResults); + /// Calculate symmetry with respect to a point. + std::shared_ptr symmetryByPoint(); - /// Perform symmetry with respect to a point. - void performSymmetryByPoint(); + /// Calculate symmetry with respect to an axis. + std::shared_ptr symmetryByAxis(); - /// Perform symmetry with respect to an axis. - void performSymmetryByAxis(); + /// Calculate symmetry with respect to a plane. + std::shared_ptr symmetryByPlane(); - /// Perform symmetry with respect to a plane. - void performSymmetryByPlane(); + /// Perform the transformation + void performSymmetry(std::shared_ptr theTrsf); /// Create new result on given shapes and the index of result - void buildResult(std::shared_ptr& theSymmetryAlgo, - std::shared_ptr theBaseShape, - int theResultIndex); + void buildResult(const std::shared_ptr& theAlgo, + const std::list >& theOriginalShapes, + std::shared_ptr theTargetShape, + int& theResultIndex); /// Create new result for the given part and transformation void buildResult(std::shared_ptr theOriginal,