0024968: Impove BRepMesh_Classifier to cope with intersection of huge number of wires
[occt.git] / src / BRepMesh / BRepMesh.cdl
1 -- Created on: 1993-09-22
2 -- Created by: Didier PIFFAULT
3 -- Copyright (c) 1993-1999 Matra Datavision
4 -- Copyright (c) 1999-2014 OPEN CASCADE SAS
5 --
6 -- This file is part of Open CASCADE Technology software library.
7 --
8 -- This library is free software; you can redistribute it and/or modify it under
9 -- the terms of the GNU Lesser General Public License version 2.1 as published
10 -- by the Free Software Foundation, with special exception defined in the file
11 -- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12 -- distribution for complete text of the license and disclaimer of any warranty.
13 --
14 -- Alternatively, this file may be used under the terms of Open CASCADE
15 -- commercial license or contractual agreement.
16
17 package BRepMesh
18
19         ---Purpose: Instantiated   package for the   class of packages
20
21         ---Level : Advanced.  
22         --  All methods of all  classes will be advanced.
23
24
25 uses    Standard,
26         gp,
27         Bnd,
28         TColStd,
29         TColgp,
30         GCPnts,
31         BRepAdaptor,
32         BRepTopAdaptor,
33         TCollection,
34         MMgt,
35         TopoDS,
36         TopAbs,
37         TopExp,
38         TopTools,
39         Poly,
40         Geom2d,
41         GeomAbs,
42         GeomAdaptor,
43         TopLoc,
44         SortTools,
45         Plugin
46
47
48 is    enumeration DegreeOfFreedom is 
49         Free,
50         InVolume,
51         OnSurface,
52         OnCurve,
53         Fixed,
54         Frontier,
55         Deleted;
56
57       imported Status from BRepMesh;
58        
59       enumeration FactoryError is 
60         FE_NOERROR,  
61         FE_LIBRARYNOTFOUND,
62         FE_FUNCTIONNOTFOUND,
63         FE_CANNOTCREATEALGO
64       end FactoryError;   
65       
66       class Vertex;
67
68       class Edge;
69
70           imported Triangle from BRepMesh;
71           
72       class ShapeTool;
73
74       class Circ;
75
76       deferred class DiscretRoot; 
77       class DiscretFactory;
78       --
79       pointer PDiscretRoot to DiscretRoot from BRepMesh;
80       --
81       imported Delaun from BRepMesh;
82       imported MapOfIntegerInteger from BRepMesh;
83       imported MapOfInteger from BRepMesh;
84       imported ListOfInteger from BRepMesh;
85       imported BaseAllocator from BRepMesh;
86       imported PairOfIndex from BRepMesh;
87       imported CircleInspector from BRepMesh;
88       imported CellFilter from BRepMesh;
89       imported VertexInspector from BRepMesh;
90       imported VertexCellFilter from BRepMesh;
91       imported VectorOfVertex from BRepMesh;
92       imported WireInterferenceChecker from BRepMesh;
93       imported EdgeChecker from BRepMesh;
94       imported FaceChecker from BRepMesh;
95
96       primitive PluginEntryType;
97
98       class ComparatorOfVertexOfDelaun;
99       class ComparatorOfIndexedVertexOfDelaun;
100       class SelectorOfDataStructureOfDelaun;
101       class DataStructureOfDelaun;
102       class CircleTool;
103       class VertexTool;
104     
105       class Array1OfVertexOfDelaun instantiates Array1 from TCollection
106         (Vertex from BRepMesh);
107
108       class HArray1OfVertexOfDelaun instantiates HArray1 from TCollection
109         (Vertex from BRepMesh, Array1OfVertexOfDelaun);
110
111       class HeapSortVertexOfDelaun instantiates  HeapSort from SortTools
112         (Vertex from BRepMesh, Array1OfVertexOfDelaun,
113         ComparatorOfVertexOfDelaun from BRepMesh);
114
115       class HeapSortIndexedVertexOfDelaun instantiates  HeapSort from SortTools
116         (Integer, Array1OfInteger from TColStd,
117         ComparatorOfIndexedVertexOfDelaun from BRepMesh);
118
119       class LinkHasherOfDataStructureOfDelaun instantiates MapHasher from TCollection
120         (Edge from BRepMesh);
121       class ElemHasherOfDataStructureOfDelaun instantiates MapHasher from TCollection
122         (Triangle from BRepMesh);
123
124       class DataMapOfIntegerListOfInteger     instantiates DataMap from TCollection
125         (Integer from Standard, ListOfInteger from BRepMesh, MapIntegerHasher from TColStd);
126
127       class IDMapOfLinkOfDataStructureOfDelaun  instantiates IndexedDataMap from TCollection
128         (Edge from BRepMesh,
129         PairOfIndex from BRepMesh,
130         LinkHasherOfDataStructureOfDelaun);
131
132       class IMapOfElementOfDataStructureOfDelaun instantiates IndexedMap from TCollection
133         (Triangle from BRepMesh,
134         ElemHasherOfDataStructureOfDelaun);
135
136       class DataMapOfVertexInteger instantiates DataMap from TCollection
137           (Vertex from TopoDS, Integer from Standard, ShapeMapHasher from TopTools);
138
139       class ListOfVertex instantiates List from TCollection 
140           (Vertex from  BRepMesh);
141           
142       class ListOfXY instantiates List from TCollection (XY from gp);
143
144       class DataMapOfIntegerListOfXY  instantiates DataMap from TCollection
145           (Integer from Standard, ListOfXY from BRepMesh, MapIntegerHasher from TColStd);
146
147
148       class  VertexHasher  instantiates   MapHasher  from  TCollection(Vertex  from  BRepMesh);
149
150       class IndexedMapOfVertex instantiates IndexedMap from TCollection 
151           (Vertex from  BRepMesh,  VertexHasher from  BRepMesh);
152
153       private class FastDiscretFace;
154       
155       class FastDiscret;
156       
157       class FaceAttribute;
158   
159       class DataMapOfFaceAttribute instantiates DataMap from TCollection
160                                             (Face           from TopoDS,
161                                              FaceAttribute  from BRepMesh,
162                                              ShapeMapHasher from TopTools);
163               
164       imported Classifier from BRepMesh;
165       imported ClassifierPtr; -- smart pointer on Classifier
166       imported WireChecker from BRepMesh;
167
168       imported IncrementalMesh from BRepMesh;
169
170
171          ---- classes moved from MeshShape
172       class GeomTool;
173
174       class DataMapOfIntegerPnt instantiates
175           DataMap from TCollection   (Integer          from Standard,
176                                       Pnt              from gp,
177                                       MapIntegerHasher from TColStd);
178
179       class PairOfPolygon;
180
181       class DataMapOfShapePairOfPolygon instantiates 
182       DataMap from TCollection(Shape          from TopoDS,
183                                PairOfPolygon  from BRepMesh,
184                                ShapeMapHasher from TopTools);
185
186       Mesh(S: Shape from TopoDS; d: Real from Standard);
187       ---Purpose: call to incremental mesh.
188
189   
190 end BRepMesh;