summaryrefslogtreecommitdiff
path: root/inc/BRepMesh_FastDiscretFace.hxx
blob: 8192d636b787bdc6a78075e40ab3d403b3828dd1 (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
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
// 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 _BRepMesh_FastDiscretFace_HeaderFile
#define _BRepMesh_FastDiscretFace_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_DefineHandle_HeaderFile
#include <Standard_DefineHandle.hxx>
#endif
#ifndef _Handle_BRepMesh_FastDiscretFace_HeaderFile
#include <Handle_BRepMesh_FastDiscretFace.hxx>
#endif

#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _BRepMesh_DataMapOfVertexInteger_HeaderFile
#include <BRepMesh_DataMapOfVertexInteger.hxx>
#endif
#ifndef _BRepMesh_DataMapOfShapePairOfPolygon_HeaderFile
#include <BRepMesh_DataMapOfShapePairOfPolygon.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _BRepMesh_DataMapOfIntegerPnt_HeaderFile
#include <BRepMesh_DataMapOfIntegerPnt.hxx>
#endif
#ifndef _Handle_BRepMesh_DataStructureOfDelaun_HeaderFile
#include <Handle_BRepMesh_DataStructureOfDelaun.hxx>
#endif
#ifndef _BRepMesh_ListOfVertex_HeaderFile
#include <BRepMesh_ListOfVertex.hxx>
#endif
#ifndef _TColStd_IndexedMapOfInteger_HeaderFile
#include <TColStd_IndexedMapOfInteger.hxx>
#endif
#ifndef _BRepMesh_DataMapOfIntegerListOfXY_HeaderFile
#include <BRepMesh_DataMapOfIntegerListOfXY.hxx>
#endif
#ifndef _Handle_BRepMesh_FaceAttribute_HeaderFile
#include <Handle_BRepMesh_FaceAttribute.hxx>
#endif
#ifndef _TColStd_IndexedMapOfReal_HeaderFile
#include <TColStd_IndexedMapOfReal.hxx>
#endif
#ifndef _BRepMesh_BaseAllocator_HeaderFile
#include <BRepMesh_BaseAllocator.hxx>
#endif
#ifndef _MMgt_TShared_HeaderFile
#include <MMgt_TShared.hxx>
#endif
#ifndef _Handle_BRepAdaptor_HSurface_HeaderFile
#include <Handle_BRepAdaptor_HSurface.hxx>
#endif
#ifndef _Handle_Poly_Triangulation_HeaderFile
#include <Handle_Poly_Triangulation.hxx>
#endif
#ifndef _BRepMesh_ClassifierPtr_HeaderFile
#include <BRepMesh_ClassifierPtr.hxx>
#endif
class BRepMesh_DataStructureOfDelaun;
class BRepMesh_FaceAttribute;
class TopoDS_Face;
class TopTools_DataMapOfShapeReal;
class TopoDS_Vertex;
class BRepAdaptor_HSurface;
class TopoDS_Edge;
class Poly_Triangulation;
class TopLoc_Location;
class BRepMesh_ListOfVertex;
class TColStd_ListOfInteger;
class BRepMesh_Delaun;
class gp_XY;
class gp_Pnt2d;
class BRepMesh_DataMapOfIntegerListOfXY;
class BRepMesh_Triangle;
class BRepMesh_Edge;
class BRepMesh_Vertex;
class gp_Pnt;


//! Algorithm  to mesh  a face  with  respect of  the <br>
//!          frontier the deflection  and by option the  shared <br>
//!          components. <br>
class BRepMesh_FastDiscretFace : public MMgt_TShared {

public:

  
  Standard_EXPORT   BRepMesh_FastDiscretFace(const Standard_Real theAngle,const Standard_Boolean theWithShare = Standard_True);
  
  Standard_EXPORT     void Add(const TopoDS_Face& theFace,const Handle(BRepMesh_FaceAttribute)& theAttrib,const TopTools_DataMapOfShapeReal& theMapDefle) ;
  
  Standard_EXPORT     Standard_Real Control(const Handle(BRepAdaptor_HSurface)& theCaro,const Standard_Real theDefFace,BRepMesh_ListOfVertex& theInternalV,TColStd_ListOfInteger& theBadTriangles,TColStd_ListOfInteger& theNulTriangles,BRepMesh_Delaun& theTrigu,const Standard_Boolean theIsFirst) ;
  
  Standard_EXPORT   static  gp_XY FindUV(const TopoDS_Vertex& theV,const gp_Pnt2d& theXY,const Standard_Integer theIp,const Handle(BRepAdaptor_HSurface)& theSFace,const Standard_Real theMinDist,BRepMesh_DataMapOfIntegerListOfXY& theLocation2dMap) ;
  //! Gives the triangle of <Index>. <br>
  Standard_EXPORT    const BRepMesh_Triangle& Triangle(const Standard_Integer theIndex) const;
  //! Gives the edge of index <Index>. <br>
  Standard_EXPORT    const BRepMesh_Edge& Edge(const Standard_Integer theIndex) const;
  //! Gives the vertex of <Index>. <br>
  Standard_EXPORT    const BRepMesh_Vertex& Vertex(const Standard_Integer theIndex) const;
  //! Gives the location3d of the vertex of <Index>. <br>
  Standard_EXPORT    const gp_Pnt& Pnt(const Standard_Integer theIndex) const;




  DEFINE_STANDARD_RTTI(BRepMesh_FastDiscretFace)

protected:

  
  Standard_EXPORT     Standard_Boolean RestoreStructureFromTriangulation(const TopoDS_Edge& theEdge,const TopoDS_Face& theFace,const Handle(BRepAdaptor_HSurface)& theSurf,const Handle(Poly_Triangulation)& theTrigu,const Standard_Real theDefEdge,const TopLoc_Location& theLoc) ;



private: 

  
  Standard_EXPORT     void Add(const TopoDS_Vertex& theVert,const TopoDS_Face& theFace,const Handle(BRepAdaptor_HSurface)& theSFace) ;
  
  Standard_EXPORT     void InternalVertices(const Handle(BRepAdaptor_HSurface)& theCaro,BRepMesh_ListOfVertex& theInternalV,const Standard_Real theDefFace,const BRepMesh_ClassifierPtr& theClassifier) ;
  
  Standard_EXPORT     void AddInShape(const TopoDS_Face& theFace,const Standard_Real theDefFace) ;

Standard_Real myAngle;
Standard_Boolean myWithShare;
BRepMesh_DataMapOfVertexInteger myVertices;
BRepMesh_DataMapOfShapePairOfPolygon myInternaledges;
Standard_Integer myNbLocat;
BRepMesh_DataMapOfIntegerPnt myLocation3d;
Handle_BRepMesh_DataStructureOfDelaun myStructure;
BRepMesh_ListOfVertex myListver;
TColStd_IndexedMapOfInteger myVemap;
BRepMesh_DataMapOfIntegerListOfXY myLocation2d;
Handle_BRepMesh_FaceAttribute myAttrib;
Standard_Boolean myInternalVerticesMode;
TColStd_IndexedMapOfReal myUParam;
TColStd_IndexedMapOfReal myVParam;
BRepMesh_BaseAllocator myAllocator;


};





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


#endif