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 face is placed on the given plane
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 plane to be coincident with the destination plane
27 * \param[in] theSourceShape shape to be moved
28 * \param[in] theDestShape invariabt shape
29 * \param[in] theSourcePlane plane on the shape to be made coincident with destination plane
30 * \param[in] theDestPlane destination plane
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> theSourceShape,
35 std::shared_ptr<GeomAPI_Shape> theDestShape,
36 std::shared_ptr<GeomAPI_Face> theSourcePlane,
37 std::shared_ptr<GeomAPI_Face> theDestPlane,
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>& theSourceShape,
66 const std::shared_ptr<GeomAPI_Shape>& theDestShape,
67 const std::shared_ptr<GeomAPI_Face>& theSourcePlane,
68 const std::shared_ptr<GeomAPI_Face>& theDestPlane,
74 std::shared_ptr<GeomAPI_Shape> myShape;
75 GeomAPI_DataMapOfShapeShape myMap;
76 GeomAlgoAPI_MakeShape * myMkShape;