0024428: Implementation of LGPL license
[occt.git] / src / BRepMesh / BRepMesh_FastDiscretFace.cdl
CommitLineData
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--
973c2be1 6-- This library is free software; you can redistribute it and / or modify it
7-- under the terms of the GNU Lesser General Public version 2.1 as published
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
15private 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
22uses 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 53is
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
153fields
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
170end FastDiscretFace;