0023631: Infinite memory consumption in BRepMesh
[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 EdgeChecker from BRepMesh;
93       imported FaceChecker from BRepMesh;
94
95       primitive PluginEntryType;
96
97       class ComparatorOfVertexOfDelaun;
98       class ComparatorOfIndexedVertexOfDelaun;
99       class SelectorOfDataStructureOfDelaun;
100       class DataStructureOfDelaun;
101       class CircleTool;
102       class VertexTool;
103     
104       class Array1OfVertexOfDelaun instantiates Array1 from TCollection
105         (Vertex from BRepMesh);
106
107       class HArray1OfVertexOfDelaun instantiates HArray1 from TCollection
108         (Vertex from BRepMesh, Array1OfVertexOfDelaun);
109
110       class HeapSortVertexOfDelaun instantiates  HeapSort from SortTools
111         (Vertex from BRepMesh, Array1OfVertexOfDelaun,
112         ComparatorOfVertexOfDelaun from BRepMesh);
113
114       class HeapSortIndexedVertexOfDelaun instantiates  HeapSort from SortTools
115         (Integer, Array1OfInteger from TColStd,
116         ComparatorOfIndexedVertexOfDelaun from BRepMesh);
117
118       class LinkHasherOfDataStructureOfDelaun instantiates MapHasher from TCollection
119         (Edge from BRepMesh);
120       class ElemHasherOfDataStructureOfDelaun instantiates MapHasher from TCollection
121         (Triangle from BRepMesh);
122
123       class DataMapOfIntegerListOfInteger     instantiates DataMap from TCollection
124         (Integer from Standard, ListOfInteger from BRepMesh, MapIntegerHasher from TColStd);
125
126       class IDMapOfLinkOfDataStructureOfDelaun  instantiates IndexedDataMap from TCollection
127         (Edge from BRepMesh,
128         PairOfIndex from BRepMesh,
129         LinkHasherOfDataStructureOfDelaun);
130
131       class IMapOfElementOfDataStructureOfDelaun instantiates IndexedMap from TCollection
132         (Triangle from BRepMesh,
133         ElemHasherOfDataStructureOfDelaun);
134
135       class DataMapOfVertexInteger instantiates DataMap from TCollection
136           (Vertex from TopoDS, Integer from Standard, ShapeMapHasher from TopTools);
137
138       class ListOfVertex instantiates List from TCollection 
139           (Vertex from  BRepMesh);
140           
141       class ListOfXY instantiates List from TCollection (XY from gp);
142
143       class DataMapOfIntegerListOfXY  instantiates DataMap from TCollection
144           (Integer from Standard, ListOfXY from BRepMesh, MapIntegerHasher from TColStd);
145
146
147       class  VertexHasher  instantiates   MapHasher  from  TCollection(Vertex  from  BRepMesh);
148
149       class IndexedMapOfVertex instantiates IndexedMap from TCollection 
150           (Vertex from  BRepMesh,  VertexHasher from  BRepMesh);
151
152
153       class BiPoint;
154   
155       class Array1OfBiPoint    instantiates Array1  from TCollection(BiPoint from BRepMesh);
156
157       private class FastDiscretFace;
158       
159       class FastDiscret;
160       
161       class FaceAttribute;
162   
163       class DataMapOfFaceAttribute instantiates DataMap from TCollection
164                                             (Face           from TopoDS,
165                                              FaceAttribute  from BRepMesh,
166                                              ShapeMapHasher from TopTools);
167               
168       private class Classifier;
169       imported ClassifierPtr; -- smart pointer on Classifier
170
171       imported IncrementalMesh from BRepMesh;
172
173
174          ---- classes moved from MeshShape
175       class GeomTool;
176
177       class DataMapOfIntegerPnt instantiates
178           DataMap from TCollection   (Integer          from Standard,
179                                       Pnt              from gp,
180                                       MapIntegerHasher from TColStd);
181
182       class PairOfPolygon;
183
184       class DataMapOfShapePairOfPolygon instantiates 
185       DataMap from TCollection(Shape          from TopoDS,
186                                PairOfPolygon  from BRepMesh,
187                                ShapeMapHasher from TopTools);
188
189       Mesh(S: Shape from TopoDS; d: Real from Standard);
190       ---Purpose: call to incremental mesh.
191
192   
193 end BRepMesh;