summaryrefslogtreecommitdiff
path: root/inc/BRepFill_Pipe.hxx
blob: d9fd4e28c1378ded6ccd4542cb9b030fb47209ec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _BRepFill_Pipe_HeaderFile
#define _BRepFill_Pipe_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_Macro_HeaderFile
#include <Standard_Macro.hxx>
#endif

#ifndef _TopoDS_Wire_HeaderFile
#include <TopoDS_Wire.hxx>
#endif
#ifndef _TopoDS_Shape_HeaderFile
#include <TopoDS_Shape.hxx>
#endif
#ifndef _gp_Trsf_HeaderFile
#include <gp_Trsf.hxx>
#endif
#ifndef _Handle_BRepFill_LocationLaw_HeaderFile
#include <Handle_BRepFill_LocationLaw.hxx>
#endif
#ifndef _Handle_TopTools_HArray2OfShape_HeaderFile
#include <Handle_TopTools_HArray2OfShape.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
class BRepFill_LocationLaw;
class TopTools_HArray2OfShape;
class Standard_DomainError;
class StdFail_NotDone;
class TopoDS_Wire;
class TopoDS_Shape;
class TopoDS_Face;
class TopoDS_Edge;
class TopoDS_Vertex;
class gp_Pnt;


//! Create a  shape by sweeping a shape  (the profile) <br>
//!          along a wire (the spine). <br>
//! <br>
//!          For each edge  or vertex from the spine  the  user <br>
//!          may ask for the shape generated from each subshape <br>
//!          of the profile. <br>
class BRepFill_Pipe  {
public:

  void* operator new(size_t,void* anAddress) 
  {
    return anAddress;
  }
  void* operator new(size_t size) 
  {
    return Standard::Allocate(size); 
  }
  void  operator delete(void *anAddress) 
  {
    if (anAddress) Standard::Free((Standard_Address&)anAddress); 
  }

  
  Standard_EXPORT   BRepFill_Pipe();
  
  Standard_EXPORT   BRepFill_Pipe(const TopoDS_Wire& Spine,const TopoDS_Shape& Profile,const Standard_Boolean GeneratePartCase = Standard_False);
  
  Standard_EXPORT     void Perform(const TopoDS_Wire& Spine,const TopoDS_Shape& Profile,const Standard_Boolean GeneratePartCase = Standard_False) ;
  
  Standard_EXPORT    const TopoDS_Shape& Spine() const;
  
  Standard_EXPORT    const TopoDS_Shape& Profile() const;
  
  Standard_EXPORT    const TopoDS_Shape& Shape() const;
  
  Standard_EXPORT    const TopoDS_Shape& FirstShape() const;
  
  Standard_EXPORT    const TopoDS_Shape& LastShape() const;
  //! Returns the face created from an edge of the spine <br>
//!          and an edge of the profile. <br>//! if the edges are not in the spine or the profile <br>
  Standard_EXPORT     TopoDS_Face Face(const TopoDS_Edge& ESpine,const TopoDS_Edge& EProfile) ;
  //! Returns the edge created from an edge of the spine <br>
//!          and a vertex of the profile. <br>//! if the edge or the vertex are not in  the spine or <br>
//!          the profile. <br>
  Standard_EXPORT     TopoDS_Edge Edge(const TopoDS_Edge& ESpine,const TopoDS_Vertex& VProfile) ;
  //! Returns  the shape created from the profile at the <br>
//!          position of the vertex VSpine. <br>//! if the vertex is not in the Spine <br>
  Standard_EXPORT     TopoDS_Shape Section(const TopoDS_Vertex& VSpine) const;
  //! Create a Wire by sweeping the Point along the <spine> <br>//! if the <Spine> is undefined <br>
  Standard_EXPORT     TopoDS_Wire PipeLine(const gp_Pnt& Point) const;





protected:





private:

  //! Auxiliary  recursive  method  used  to  build  the <br>
//!          result. <br>
  Standard_EXPORT     TopoDS_Shape MakeShape(const TopoDS_Shape& S,const TopoDS_Shape& FirstShape,const TopoDS_Shape& LastShape) ;
  //! Auxiliary recursive method used to find the edge's index <br>
  Standard_EXPORT     Standard_Integer FindEdge(const TopoDS_Shape& S,const TopoDS_Edge& E,Standard_Integer& Init) const;
  
  Standard_EXPORT     Standard_Integer FindVertex(const TopoDS_Shape& S,const TopoDS_Vertex& V,Standard_Integer& Init) const;
  
  Standard_EXPORT     void DefineRealSegmax() ;


TopoDS_Wire mySpine;
TopoDS_Shape myProfile;
TopoDS_Shape myShape;
gp_Trsf myTrsf;
Handle_BRepFill_LocationLaw myLoc;
Handle_TopTools_HArray2OfShape mySections;
Handle_TopTools_HArray2OfShape myFaces;
Handle_TopTools_HArray2OfShape myEdges;
TopoDS_Shape myFirst;
TopoDS_Shape myLast;
Standard_Integer myDegmax;
Standard_Integer mySegmax;


};





// other Inline functions and methods (like "C++: function call" methods)


#endif