X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FGeomAlgoAPI%2FGeomAlgoAPI_Placement.h;h=7fa31bcd55e2c40c5c0396f45f07b47b380c33a4;hb=f0cec241aae9ca16d86e166f45cb5c4987d2c792;hp=09c9e3448e31f16addf5595c386a6fa418721a6e;hpb=4c3c61e1535d9fbf5e189796e35d6c238cbac98c;p=modules%2Fshaper.git diff --git a/src/GeomAlgoAPI/GeomAlgoAPI_Placement.h b/src/GeomAlgoAPI/GeomAlgoAPI_Placement.h index 09c9e3448..7fa31bcd5 100644 --- a/src/GeomAlgoAPI/GeomAlgoAPI_Placement.h +++ b/src/GeomAlgoAPI/GeomAlgoAPI_Placement.h @@ -1,3 +1,5 @@ +// Copyright (C) 2014-20xx CEA/DEN, EDF R&D + // File: GeomAlgoAPI_Placement.h // Created: 2 Dec 2014 // Author: Artem ZHIDKOV @@ -6,63 +8,49 @@ #define GeomAlgoAPI_Placement_H_ #include -#include -#include -#include #include -#include -#include -/**\class GeomAlgoAPI_Placement - * \ingroup DataAlgo - * \brief Creates the copied object which face is placed on the given plane - */ -class GeomAlgoAPI_Placement : public GeomAPI_Interface +#include +#include + +/// \class GeomAlgoAPI_Placement +/// \ingroup DataAlgo +/// \brief Creates the copied object which sub-element is placed on the given element +class GeomAlgoAPI_Placement : public GeomAlgoAPI_MakeShape { public: - /** \brief Creates an object which is obtained from current object by transformation calculated - * as a movement of the source plane to be coincident with the destination plane - * \param[in] theAttractiveShape shape to be moved - * \param[in] theSourcePlane plane on the shape to be made coincident with destination plane - * \param[in] theDestPlane destination plane - */ - GEOMALGOAPI_EXPORT GeomAlgoAPI_Placement(std::shared_ptr theAttractiveShape, - std::shared_ptr theSourcePlane, - std::shared_ptr theDestPlane); - - /// Returns True if algorithm succeed - GEOMALGOAPI_EXPORT const bool isDone() const - { return myDone; } - - /// Returns True if resulting shape is valid - GEOMALGOAPI_EXPORT const bool isValid() const; - - /// Returns True if resulting shape has volume - GEOMALGOAPI_EXPORT const bool hasVolume() const; - - /// Returns result of the Placement algorithm which may be a Solid or a Face - GEOMALGOAPI_EXPORT const std::shared_ptr& shape () const; - - /// Returns map of sub-shapes of the result. To be used for History keeping - GEOMALGOAPI_EXPORT void mapOfShapes (GeomAPI_DataMapOfShapeShape& theMap) const; - - /// Return interface for for History processing - GEOMALGOAPI_EXPORT GeomAlgoAPI_MakeShape* makeShape () const; - - /// Destructor - GEOMALGOAPI_EXPORT virtual ~GeomAlgoAPI_Placement(); + /// \brief Creates an object which is obtained from current object by transformation calculated + /// as a movement of the source object to be coincident with the destination object + /// \param[in] theSourceSolid a shape to be moved + /// \param[in] theDestSolid invariant shape + /// \param[in] theSourceShape a shape on the solid to be made coincident with destination object + /// \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(const std::shared_ptr theSourceSolid, + const std::shared_ptr theDestSolid, + const std::shared_ptr theSourceShape, + const std::shared_ptr theDestShape, + const bool theIsReverse = false, + const bool theIsCentering = false, + const bool theSimpleTransform = false); + + /// Returns the simple transformation + GEOMALGOAPI_EXPORT std::shared_ptr transformation() const; private: /// builds resulting shape - void build(const std::shared_ptr& theAttractiveShape, - const std::shared_ptr& theSourcePlane, - const std::shared_ptr& theDestPlane); + void build(const std::shared_ptr& theSourceSolid, + const std::shared_ptr& theDestSolid, + const std::shared_ptr& theSourceShape, + const std::shared_ptr& theDestShape, + const bool theIsReverse, + const bool theIsCentering, + const bool theSimpleTransform); - /// fields - bool myDone; - std::shared_ptr myShape; - GeomAPI_DataMapOfShapeShape myMap; - GeomAlgoAPI_MakeShape * myMkShape; +private: + std::shared_ptr myTrsf; ///< transformation of the shape in case theSimpleTransform }; #endif