Commit | Line | Data |
---|---|---|
b311480e | 1 | -- Created on: 2008-10-28 |
973c2be1 | 2 | -- Copyright (c) 2008-2014 OPEN CASCADE SAS |
b311480e | 3 | -- |
973c2be1 | 4 | -- This file is part of Open CASCADE Technology software library. |
b311480e | 5 | -- |
d5f74e42 | 6 | -- This library is free software; you can redistribute it and/or modify it under |
7 | -- the terms of the GNU Lesser General Public License version 2.1 as published | |
973c2be1 | 8 | -- by the Free Software Foundation, with special exception defined in the file |
9 | -- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT | |
10 | -- distribution for complete text of the license and disclaimer of any warranty. | |
b311480e | 11 | -- |
973c2be1 | 12 | -- Alternatively, this file may be used under the terms of Open CASCADE |
13 | -- commercial license or contractual agreement. | |
7fd59977 | 14 | |
15 | private class FastDiscretFace from BRepMesh inherits TShared from MMgt | |
16 | ||
703a6abd O |
17 | ---Purpose: Algorithm to mesh a face with respect of the |
18 | -- frontier the deflection and by option the shared | |
19 | -- components. | |
7fd59977 | 20 | |
21 | ||
22 | uses Boolean from Standard, | |
703a6abd O |
23 | Integer from Standard, |
24 | Real from Standard, | |
25 | Face from TopoDS, | |
26 | Edge from TopoDS, | |
27 | Vertex from TopoDS, | |
28 | Pnt from gp, | |
29 | Pnt2d from gp, | |
7fd59977 | 30 | XY from gp, |
703a6abd O |
31 | HSurface from BRepAdaptor, |
32 | Delaun from BRepMesh, | |
33 | DataStructureOfDelaun from BRepMesh, | |
34 | DataMapOfVertexInteger from BRepMesh, | |
35 | DataMapOfIntegerListOfXY from BRepMesh, | |
36 | DataMapOfShapeReal from TopTools, | |
d00cba63 | 37 | MutexForShapeProvider from TopTools, |
703a6abd O |
38 | ListOfVertex from BRepMesh, |
39 | ClassifierPtr from BRepMesh, | |
40 | Triangle from BRepMesh, | |
41 | Edge from BRepMesh, | |
42 | Vertex from BRepMesh, | |
43 | FaceAttribute from BRepMesh, | |
44 | ListOfInteger from TColStd, | |
0d88155b | 45 | BaseAllocator from BRepMesh, |
703a6abd O |
46 | DataMapOfIntegerPnt from BRepMesh, |
47 | IndexedMapOfInteger from TColStd, | |
7fd59977 | 48 | IndexedMapOfReal from TColStd, |
703a6abd O |
49 | DataMapOfShapePairOfPolygon from BRepMesh, |
50 | Triangulation from Poly, | |
51 | Location from TopLoc | |
52 | ||
7fd59977 | 53 | is |
54 | ||
703a6abd O |
55 | Create (theAngle : Real from Standard; |
56 | theWithShare : Boolean from Standard=Standard_True) | |
57 | returns mutable FastDiscretFace from BRepMesh; | |
58 | ||
59 | ||
60 | ||
61 | ||
62 | Add (me : mutable; | |
63 | theFace : Face from TopoDS; | |
64 | theAttrib : FaceAttribute from BRepMesh; | |
d00cba63 | 65 | theMapDefle : DataMapOfShapeReal from TopTools; |
66 | theMutexProvider : MutexForShapeProvider from TopTools) | |
703a6abd O |
67 | is static; |
68 | ||
69 | ||
70 | Add (me : mutable; | |
71 | theVert : Vertex from TopoDS; | |
72 | theFace : Face from TopoDS; | |
73 | theSFace : HSurface from BRepAdaptor) is private; | |
74 | ||
75 | RestoreStructureFromTriangulation | |
76 | (me: mutable; | |
77 | theEdge : Edge from TopoDS; | |
78 | theFace : Face from TopoDS; | |
79 | theSurf : HSurface from BRepAdaptor; | |
80 | theTrigu : Triangulation from Poly; | |
81 | theDefEdge : Real from Standard; | |
f67d0512 | 82 | theLoc : Location from TopLoc; |
83 | theMutexProvider: MutexForShapeProvider from TopTools) | |
703a6abd O |
84 | returns Boolean from Standard is protected; |
85 | ||
7fd59977 | 86 | |
703a6abd O |
87 | InternalVertices (me : mutable; |
88 | theCaro : HSurface from BRepAdaptor; | |
89 | theInternalV : in out ListOfVertex from BRepMesh; | |
90 | theDefFace : Real from Standard; | |
91 | theClassifier : ClassifierPtr from BRepMesh) | |
92 | is static private; | |
93 | ||
94 | ||
95 | Control (me : mutable; | |
96 | theCaro : HSurface from BRepAdaptor; | |
97 | theDefFace : Real from Standard; | |
98 | theInternalV : in out ListOfVertex from BRepMesh; | |
99 | theBadTriangles : in out ListOfInteger from TColStd; | |
100 | theNulTriangles : in out ListOfInteger from TColStd; | |
101 | theTrigu : in out Delaun from BRepMesh; | |
102 | theIsFirst : Boolean from Standard) | |
103 | returns Real from Standard is static; | |
104 | ||
105 | FindUV (myclass; | |
106 | theV : Vertex from TopoDS; | |
107 | theXY : Pnt2d from gp; | |
108 | theIp : Integer from Standard; | |
109 | theSFace : HSurface from BRepAdaptor; | |
b62b93ac | 110 | theMinDist : Real from Standard; |
111 | theFaceAttribute: FaceAttribute from BRepMesh; | |
703a6abd O |
112 | theLocation2dMap: in out DataMapOfIntegerListOfXY from BRepMesh) |
113 | returns XY from gp; | |
114 | ||
115 | AddInShape (me: mutable; | |
116 | theFace : Face from TopoDS; | |
d00cba63 | 117 | theDefFace: Real from Standard; |
118 | theMutexProvider: MutexForShapeProvider from TopTools) | |
703a6abd | 119 | is static private; |
7fd59977 | 120 | |
121 | ||
122 | -- Output : | |
123 | ||
703a6abd O |
124 | Triangle (me; |
125 | theIndex : Integer from Standard) | |
126 | ---Purpose: Gives the triangle of <Index>. | |
127 | ---C++: return const & | |
128 | returns Triangle from BRepMesh | |
129 | is static; | |
130 | ||
131 | Edge (me; | |
132 | theIndex : Integer from Standard) | |
133 | ---Purpose: Gives the edge of index <Index>. | |
134 | ---C++: return const & | |
135 | returns Edge from BRepMesh | |
136 | is static; | |
137 | ||
138 | ||
139 | Vertex (me; | |
140 | theIndex : Integer from Standard) | |
141 | ---Purpose: Gives the vertex of <Index>. | |
142 | ---C++: return const & | |
143 | returns Vertex from BRepMesh | |
144 | is static; | |
145 | ||
146 | Pnt (me; | |
147 | theIndex : Integer from Standard) | |
148 | ---Purpose: Gives the location3d of the vertex of <Index>. | |
149 | ---C++: return const & | |
150 | returns Pnt from gp | |
151 | is static; | |
7fd59977 | 152 | |
153 | fields | |
703a6abd O |
154 | myAngle : Real from Standard; |
155 | myWithShare : Boolean from Standard; | |
156 | myVertices : DataMapOfVertexInteger from BRepMesh; | |
157 | myInternaledges : DataMapOfShapePairOfPolygon from BRepMesh; | |
158 | myNbLocat : Integer from Standard; | |
159 | myLocation3d : DataMapOfIntegerPnt from BRepMesh; | |
160 | myStructure : DataStructureOfDelaun from BRepMesh; | |
161 | myListver : ListOfVertex from BRepMesh; | |
162 | myVemap : IndexedMapOfInteger from TColStd; | |
163 | myLocation2d : DataMapOfIntegerListOfXY from BRepMesh; | |
164 | myAttrib : FaceAttribute from BRepMesh; | |
165 | myInternalVerticesMode : Boolean from Standard; --mode to accounting internal vertices | |
166 | myUParam : IndexedMapOfReal from TColStd; | |
167 | myVParam : IndexedMapOfReal from TColStd; | |
0d88155b | 168 | myAllocator : BaseAllocator from BRepMesh; |
7fd59977 | 169 | |
170 | end FastDiscretFace; |