eb0be3f02c12fcc916c2e40a845fc10b92f4181b
[occt.git] / src / IntTools / IntTools.cdl
1 -- Created on: 2000-05-18
2 -- Created by: Peter KURNEV
3 -- Copyright (c) 2000-2014 OPEN CASCADE SAS
4 --
5 -- This file is part of Open CASCADE Technology software library.
6 --
7 -- This library is free software; you can redistribute it and / or modify it
8 -- under the terms of the GNU Lesser General Public version 2.1 as published
9 -- by the Free Software Foundation, with special exception defined in the file
10 -- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
11 -- distribution for complete text of the license and disclaimer of any warranty.
12 --
13 -- Alternatively, this file may be used under the terms of Open CASCADE
14 -- commercial license or contractual agreement.
15
16 package IntTools
17
18         ---Purpose: Contains classes for intersection and classification
19         ---         purposes and accompanying classes
20 uses
21     
22     TCollection, 
23     TopoDS, 
24     TopAbs, 
25     TColStd, 
26     BRepAdaptor, 
27     BRepTopAdaptor,
28     SortTools, 
29     TopTools, 
30     math,
31     gp, 
32     Bnd,
33     Adaptor3d,
34     GeomAdaptor,
35     Geom,
36     Geom2d,
37     GeomInt,  
38     GeomAbs,
39     GeomAPI,
40     Extrema,
41     IntPatch, 
42     IntSurf, 
43     BRepClass3d, 
44     TColgp, 
45     MMgt, 
46     BOPInt
47
48 is
49         
50     class  Range;               
51     class  CommonPrt; 
52     class  Root; 
53     class  Compare; 
54     class  CompareRange;     
55
56     class  EdgeEdge;
57         ---Purpose: class provides the Edge/Edge algorithm 
58
59     class  EdgeFace;
60         ---Purpose: class provides the Edge/Face algorithm 
61
62     class  FClass2d;
63         ---Purpose: class provides classification of a point in a face
64
65     class  LineConstructor;
66         ---Purpose: class provides post-processing of results of 
67         ---         surfaces intersection
68
69     -----
70     class MarkedRangeSet;
71         ---Purpose: auxiliary class for range management
72
73     class BaseRangeSample;
74         ---Purpose: base class for range index management
75     
76     class CurveRangeSample;
77         ---Purpose: class for range index management of curve
78     
79     class SurfaceRangeSample;
80         ---Purpose: class for range index management of surface
81
82     class CurveRangeLocalizeData;
83     
84     class SurfaceRangeLocalizeData;
85    
86     class BeanFaceIntersector;
87         ---Purpose: class provides computing ranges of parameters
88         ---         of edge/face intersection.
89
90     class BeanBeanIntersector;
91         ---Purpose: class provides computing ranges of parameters
92         ---         of edge/edge intersection.
93
94     -----
95     class  Curve;
96         ---Purpose: class is a container of
97         ---         one 3d curve
98         ---         two 2d curves
99     -----
100
101     class  PntOnFace;
102     class  PntOn2Faces; 
103       
104     class  TopolTool;
105         ---Purpose: class redefines TopolTool from Adaptor3d
106
107     class  FaceFace;
108         ---Purpose: class provides the Face/Face algorithm
109     --- 
110
111     class  Tools; 
112         ---Purpose: class is a container of usefull geometrical and
113         ---         topological algorithms
114     
115     generic class CArray1;   
116     ---
117     ---                 I  n  s  t  a  n  t  i  a  t  i  o  n  s  
118     ---   
119     class SequenceOfPntOn2Faces instantiates  
120         Sequence from TCollection(PntOn2Faces from IntTools); 
121     --
122     class SequenceOfCurves instantiates  
123         Sequence from TCollection(Curve from IntTools); 
124         
125     
126     class  SequenceOfRanges  instantiates  
127         Sequence from TCollection(Range from IntTools); 
128
129     class  CArray1OfInteger  instantiates  
130         CArray1(Integer from Standard); 
131   
132     class  CArray1OfReal  instantiates  
133         CArray1(Real from Standard); 
134          
135     class  SequenceOfRoots   instantiates  
136         Sequence from TCollection(Root  from IntTools); 
137          
138     class  Array1OfRoots     instantiates  
139         Array1    from TCollection  (Root from IntTools);  
140      
141     class  Array1OfRange     instantiates  
142         Array1    from TCollection  (Range from IntTools); 
143          
144     class  QuickSort         instantiates  
145         QuickSort from SortTools   (Root from IntTools, 
146                                     Array1OfRoots from IntTools, 
147                                     Compare from IntTools); 
148                                     
149     class  QuickSortRange    instantiates  
150         QuickSort from SortTools   (Range from IntTools, 
151                                     Array1OfRange from IntTools, 
152                                     CompareRange from IntTools); 
153     class  SequenceOfCommonPrts   instantiates  
154         Sequence from TCollection(CommonPrt from IntTools);                         
155          
156     class  IndexedDataMapOfTransientAddress instantiates
157         IndexedDataMap from TCollection(Transient      from Standard,
158                                         Address        from Standard,
159                                         MapTransientHasher from TColStd);       
160     
161 --modified by NIZHNY-MKK  Wed Oct  5 18:06:39 2005
162     class  ListOfCurveRangeSample  instantiates  
163         List from TCollection(CurveRangeSample from IntTools);
164
165     class  ListOfSurfaceRangeSample  instantiates  
166         List from TCollection(SurfaceRangeSample from IntTools);
167
168     class  ListOfBox  instantiates  
169         List from TCollection(Box from Bnd);
170         
171     class CurveRangeSampleMapHasher;
172         ---Purpose: class for range index management of curve
173     
174     class SurfaceRangeSampleMapHasher;
175     
176     class MapOfCurveSample instantiates 
177         Map from TCollection(CurveRangeSample from IntTools,
178                              CurveRangeSampleMapHasher from IntTools);
179                              
180     class MapOfSurfaceSample instantiates 
181         Map from TCollection(SurfaceRangeSample from IntTools,
182                              SurfaceRangeSampleMapHasher from IntTools);
183     
184     class DataMapOfCurveSampleBox instantiates 
185         DataMap from TCollection(CurveRangeSample from IntTools,
186                                  Box              from Bnd,
187                                  CurveRangeSampleMapHasher from IntTools);
188
189     class DataMapOfSurfaceSampleBox instantiates 
190         DataMap from TCollection(SurfaceRangeSample from IntTools,
191                                  Box              from Bnd,
192                                  SurfaceRangeSampleMapHasher from IntTools);
193     -----------------------------------------------------
194     --  Block  of  static  functions  
195     -----------------------------------------------------  
196     Length  (E : Edge from TopoDS) 
197         returns  Real  from  Standard; 
198     ---Purpose:  returns the length of the edge;         
199
200     RemoveIdenticalRoots  (aSeq  :out SequenceOfRoots from IntTools; 
201                            anEpsT:    Real from Standard); 
202     ---Purpose: Remove from  the  sequence aSeq the Roots  that  have  
203     --          values ti and tj such as  |ti-tj]  <  anEpsT.     
204
205     SortRoots (aSeq  :out SequenceOfRoots from IntTools; 
206                anEpsT:    Real from Standard);   
207     ---Purpose: Sort the sequence aSeq of the Roots to arrange the 
208     --          Roons  in  increasing  order 
209     FindRootStates  (aSeq  :out SequenceOfRoots from IntTools; 
210                      anEpsNull:    Real from Standard);
211     ---Purpose: Find the states (before  and  after) for  each  Root  
212     --          from  the sequence aSeq 
213      
214     Parameter (P          : Pnt   from gp; 
215                Curve      : Curve from Geom; 
216                aParm      : out Real  from  Standard) 
217         returns  Integer from Standard;                 
218  
219     GetRadius(C:  Curve  from  BRepAdaptor; 
220               t1,t3:Real  from  Standard; 
221               R:out Real  from  Standard) 
222         returns  Integer from Standard;    
223          
224
225     PrepareArgs(C:  in out Curve  from  BRepAdaptor;  
226                 tMax,tMin:  Real  from  Standard; 
227                 Discret  :  Integer from Standard;    
228                 Deflect  :  Real  from  Standard;  
229                 anArgs   :  out  CArray1OfReal  from IntTools) 
230         returns  Integer from Standard; 
231
232 end IntTools; 
233
234
235