1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D
3 // File: GeomAlgoAPI_Placement.h
5 // Author: Artem ZHIDKOV
7 #ifndef GeomAlgoAPI_Placement_H_
8 #define GeomAlgoAPI_Placement_H_
10 #include <GeomAlgoAPI.h>
11 #include <GeomAPI_Shape.h>
12 #include <GeomAPI_Dir.h>
13 #include <GeomAPI_Face.h>
14 #include <GeomAlgoAPI_MakeShape.h>
15 #include <GeomAPI_DataMapOfShapeShape.h>
18 /**\class GeomAlgoAPI_Placement
20 * \brief Creates the copied object which sub-element is placed on the given element
22 class GeomAlgoAPI_Placement : public GeomAPI_Interface
25 /** \brief Creates an object which is obtained from current object by transformation calculated
26 * as a movement of the source object to be coincident with the destination object
27 * \param[in] theSourceSolid a shape to be moved
28 * \param[in] theDestSolid invariant shape
29 * \param[in] theSourceShape a shape on the solid to be made coincident with destination object
30 * \param[in] theDestShape destination object
31 * \param[in] theIsReverse indicates that the solid materials should be on the same side against the destination plane
32 * \param[in] theIsCentering indicates the planes should be centered
34 GEOMALGOAPI_EXPORT GeomAlgoAPI_Placement(std::shared_ptr<GeomAPI_Shape> theSourceSolid,
35 std::shared_ptr<GeomAPI_Shape> theDestSolid,
36 std::shared_ptr<GeomAPI_Shape> theSourceShape,
37 std::shared_ptr<GeomAPI_Shape> theDestShape,
38 bool theIsReverse = false,
39 bool theIsCentering = false);
41 /// Returns True if algorithm succeed
42 GEOMALGOAPI_EXPORT const bool isDone() const
45 /// Returns True if resulting shape is valid
46 GEOMALGOAPI_EXPORT const bool isValid() const;
48 /// Returns True if resulting shape has volume
49 GEOMALGOAPI_EXPORT const bool hasVolume() const;
51 /// Returns result of the Placement algorithm which may be a Solid or a Face
52 GEOMALGOAPI_EXPORT const std::shared_ptr<GeomAPI_Shape>& shape () const;
54 /// Returns map of sub-shapes of the result. To be used for History keeping
55 GEOMALGOAPI_EXPORT void mapOfShapes (GeomAPI_DataMapOfShapeShape& theMap) const;
57 /// Return interface for for History processing
58 GEOMALGOAPI_EXPORT GeomAlgoAPI_MakeShape* makeShape () const;
61 GEOMALGOAPI_EXPORT virtual ~GeomAlgoAPI_Placement();
64 /// builds resulting shape
65 void build(const std::shared_ptr<GeomAPI_Shape>& theSourceSolid,
66 const std::shared_ptr<GeomAPI_Shape>& theDestSolid,
67 const std::shared_ptr<GeomAPI_Shape>& theSourceShape,
68 const std::shared_ptr<GeomAPI_Shape>& theDestShape,
74 std::shared_ptr<GeomAPI_Shape> myShape;
75 GeomAPI_DataMapOfShapeShape myMap;
76 GeomAlgoAPI_MakeShape * myMkShape;