1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D
3 // File: GeomAlgoAPI_Pipe.h
4 // Created: 16 March 2016
5 // Author: Dmitry Bobylev
7 #ifndef GeomAlgoAPI_Pipe_H_
8 #define GeomAlgoAPI_Pipe_H_
10 #include "GeomAlgoAPI.h"
12 #include "GeomAlgoAPI_MakeSweep.h"
14 #include <GeomAPI_Shape.h>
16 /// \class GeomAlgoAPI_Pipe
18 /// \brief Allows to create extrusion of objects along a path. It produces the following results from objects:\n
23 class GeomAlgoAPI_Pipe : public GeomAlgoAPI_MakeSweep
26 /// \brief Creates extrusion for the given shape along a path.
27 /// \param[in] theBaseShape base shape(vertex, edge, wire of face).
28 /// \param[in] thePathShape path shape(edge or wire).
29 GEOMALGOAPI_EXPORT GeomAlgoAPI_Pipe(const GeomShapePtr theBaseShape,
30 const GeomShapePtr thePathShape);
32 /// \brief Creates extrusion for the given shape along a path.
33 /// \param[in] theBaseShape base shape(vertex, edge, wire of face).
34 /// \param[in] thePathShape path shape(edge or wire).
35 /// \param[in] theBiNormal edge or wire to preserve the constant angle between the normal vector
36 /// to the base object and the BiNormal vector.
37 GEOMALGOAPI_EXPORT GeomAlgoAPI_Pipe(const GeomShapePtr theBaseShape,
38 const GeomShapePtr thePathShape,
39 const GeomShapePtr theBiNormal);
41 /// \brief Creates extrusion for the given shape along a path.
42 /// \param[in] theBaseShapes base shape(vertex, edge, wire of face).
43 /// \param[in] theLocations vertexes on the path. Should be empty or same size as theBaseShapes.
44 /// \param[in] thePathShape path shape(edge or wire).
45 /// to the base object and the BiNormal vector.
46 GEOMALGOAPI_EXPORT GeomAlgoAPI_Pipe(const ListOfShape& theBaseShapes,
47 const ListOfShape& theLocations,
48 const GeomShapePtr thePathShape);
50 /// \return the list of shapes generated from theShape.
51 /// \param[in] theShape base shape.
52 /// \param[out] theHistory generated shapes.
53 GEOMALGOAPI_EXPORT void generated(const GeomShapePtr theShape,
54 ListOfShape& theHistory);
57 void build(const GeomShapePtr theBaseShape,
58 const GeomShapePtr thePathShape);
60 void build(const GeomShapePtr theBaseShape,
61 const GeomShapePtr thePathShape,
62 const GeomShapePtr theBiNormal);
64 void build(const ListOfShape& theBaseShapes,
65 const ListOfShape& theLocations,
66 const GeomShapePtr thePathShape);