Salome HOME
Issue #1369: Added "SubShapes" feature.
[modules/shaper.git] / src / GeomAlgoAPI / GeomAlgoAPI_SketchBuilder.h
1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D
2
3 // File:        GeomAlgoAPI_SketchBuilder.h
4 // Created:     02 Jun 2014
5 // Author:      Artem ZHIDKOV
6
7 #ifndef GeomAlgoAPI_SketchBuilder_H_
8 #define GeomAlgoAPI_SketchBuilder_H_
9
10 #include <GeomAlgoAPI.h>
11
12 #include <memory>
13 #include <list>
14
15 #include <GeomAPI_Dir.h>
16 #include <GeomAPI_Pnt.h>
17 #include <GeomAPI_Shape.h>
18
19 /** \class GeomAlgoAPI_SketchBuilder
20  *  \ingroup DataAlgo
21  *  \brief Creates planar faces based on the list of Sketch features
22  */
23 class GEOMALGOAPI_EXPORT GeomAlgoAPI_SketchBuilder
24 {
25  public:
26   /** \brief Creates list of faces based on the features of the sketch
27    *  \param[in]  theOrigin      origin point of the sketch
28    *  \param[in]  theDirX        x-direction of the sketch
29    *  \param[in]  theNorm        normal of the sketch
30    *  \param[in]  theFeatures    initial features of the sketch
31    *  \param[out] theResultFaces faces based on closed wires
32    *
33    *  The algorithm searches all loops of edges surrounding lesser areas.
34    */
35   static void createFaces(const std::shared_ptr<GeomAPI_Pnt>& theOrigin,
36                           const std::shared_ptr<GeomAPI_Dir>& theDirX,
37                           const std::shared_ptr<GeomAPI_Dir>& theNorm,
38                           const std::list<std::shared_ptr<GeomAPI_Shape> >& theFeatures,
39                           std::list<std::shared_ptr<GeomAPI_Shape> >& theResultFaces);
40
41   /** \brief Creates list of faces and unclosed wires on basis of the features of the sketch
42    *  \param[in]  theOrigin      origin point of the sketch
43    *  \param[in]  theDirX        x-direction of the sketch
44    *  \param[in]  theNorm        normal of the sketch
45    *  \param[in]  theWire        a wire which contains all edges
46    *  \param[out] theResultFaces faces based on closed wires
47    *
48    *  The algorithm searches all loops of edges surrounding lesser areas.
49    */
50   static void createFaces(const std::shared_ptr<GeomAPI_Pnt>& theOrigin,
51                           const std::shared_ptr<GeomAPI_Dir>& theDirX,
52                           const std::shared_ptr<GeomAPI_Dir>& theNorm,
53                           const std::shared_ptr<GeomAPI_Shape>& theWire,
54                           std::list<std::shared_ptr<GeomAPI_Shape> >& theResultFaces);
55 };
56
57 #endif