File: BRepFill_Pipe.hxx

package info (click to toggle)
oce 0.18.3-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 301,548 kB
  • sloc: cpp: 1,190,609; ansic: 67,225; sh: 11,630; tcl: 7,954; cs: 5,221; python: 2,867; java: 1,522; makefile: 342; xml: 292; perl: 37
file content (150 lines) | stat: -rw-r--r-- 4,934 bytes parent folder | download | duplicates (5)
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
147
148
149
150
// 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

#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Macro.hxx>

#include <TopoDS_Wire.hxx>
#include <TopoDS_Shape.hxx>
#include <gp_Trsf.hxx>
#include <Handle_BRepFill_LocationLaw.hxx>
#include <Handle_TopTools_HArray2OfShape.hxx>
#include <TopTools_MapOfShape.hxx>
#include <BRepFill_DataMapOfShapeHArray2OfShape.hxx>
#include <Standard_Integer.hxx>
#include <GeomAbs_Shape.hxx>
#include <GeomFill_Trihedron.hxx>
#include <Standard_Boolean.hxx>
#include <Standard_Real.hxx>
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)
//! along a wire (the spine).
//!
//! For each edge  or vertex from the spine  the  user
//! may ask for the shape generated from each subshape
//! of the profile.
class BRepFill_Pipe 
{
public:

  DEFINE_STANDARD_ALLOC

  
  Standard_EXPORT BRepFill_Pipe();
  
  Standard_EXPORT BRepFill_Pipe(const TopoDS_Wire& Spine, const TopoDS_Shape& Profile, const GeomFill_Trihedron aMode = GeomFill_IsCorrectedFrenet, const Standard_Boolean ForceApproxC1 = Standard_False, 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   Standard_Real ErrorOnSurface()  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
  //! and an edge of the profile.
  //! if the edges are not in the spine or the profile
  Standard_EXPORT   TopoDS_Face Face (const TopoDS_Edge& ESpine, const TopoDS_Edge& EProfile) ;
  
  //! Returns the edge created from an edge of the spine
  //! and a vertex of the profile.
  //! if the edge or the vertex are not in  the spine or
  //! the profile.
  Standard_EXPORT   TopoDS_Edge Edge (const TopoDS_Edge& ESpine, const TopoDS_Vertex& VProfile) ;
  
  //! Returns  the shape created from the profile at the
  //! position of the vertex VSpine.
  //! if the vertex is not in the Spine
  Standard_EXPORT   TopoDS_Shape Section (const TopoDS_Vertex& VSpine)  const;
  
  //! Create a Wire by sweeping the Point along the <spine>
  //! if the <Spine> is undefined
  Standard_EXPORT   TopoDS_Wire PipeLine (const gp_Pnt& Point) ;




protected:





private:

  
  //! Auxiliary  recursive  method  used  to  build  the
  //! result.
  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
  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() ;
  
  Standard_EXPORT   void RebuildTopOrBottomFace (const TopoDS_Shape& aFace, const Standard_Boolean IsTop)  const;
  
  //! Performs sharing coincident faces in theShape. Also modifies
  //! myFaces, mySections and myEdges to contain shared shapes.
  //! Returns the shared shape. If theShape is not modified this
  //! method returns it.
  Standard_EXPORT   TopoDS_Shape ShareFaces (const TopoDS_Shape& theShape, const Standard_Integer theInitialFacesLen, const Standard_Integer theInitialEdgesLen, const Standard_Integer theInitialSectionsLen) ;


  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;
  TopTools_MapOfShape myReversedEdges;
  BRepFill_DataMapOfShapeHArray2OfShape myTapes;
  BRepFill_DataMapOfShapeHArray2OfShape myRails;
  Standard_Integer myCurIndexOfSectionEdge;
  TopoDS_Shape myFirst;
  TopoDS_Shape myLast;
  Standard_Integer myDegmax;
  Standard_Integer mySegmax;
  GeomAbs_Shape myContinuity;
  GeomFill_Trihedron myMode;
  Standard_Boolean myForceApproxC1;
  Standard_Real myErrorOnSurf;


};







#endif // _BRepFill_Pipe_HeaderFile