f7dc5463123d6c8eab826d0f2d4170b5a86c0765
[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 under
8 -- the terms of the GNU Lesser General Public License 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     -----
91     class  Curve;
92         ---Purpose: class is a container of
93         ---         one 3d curve
94         ---         two 2d curves
95     -----
96
97     class  PntOnFace;
98     class  PntOn2Faces; 
99       
100     class  TopolTool;
101         ---Purpose: class redefines TopolTool from Adaptor3d
102
103     class  FaceFace;
104         ---Purpose: class provides the Face/Face algorithm
105     --- 
106
107     class  Tools; 
108         ---Purpose: class is a container of usefull geometrical and
109         ---         topological algorithms
110     
111     generic class CArray1;   
112     ---
113     ---                 I  n  s  t  a  n  t  i  a  t  i  o  n  s  
114     ---   
115     class SequenceOfPntOn2Faces instantiates  
116         Sequence from TCollection(PntOn2Faces from IntTools); 
117     --
118     class SequenceOfCurves instantiates  
119         Sequence from TCollection(Curve from IntTools); 
120         
121     
122     class  SequenceOfRanges  instantiates  
123         Sequence from TCollection(Range from IntTools); 
124
125     class  CArray1OfInteger  instantiates  
126         CArray1(Integer from Standard); 
127   
128     class  CArray1OfReal  instantiates  
129         CArray1(Real from Standard); 
130          
131     class  SequenceOfRoots   instantiates  
132         Sequence from TCollection(Root  from IntTools); 
133          
134     class  Array1OfRoots     instantiates  
135         Array1    from TCollection  (Root from IntTools);  
136      
137     class  Array1OfRange     instantiates  
138         Array1    from TCollection  (Range from IntTools); 
139          
140     class  QuickSort         instantiates  
141         QuickSort from SortTools   (Root from IntTools, 
142                                     Array1OfRoots from IntTools, 
143                                     Compare from IntTools); 
144                                     
145     class  QuickSortRange    instantiates  
146         QuickSort from SortTools   (Range from IntTools, 
147                                     Array1OfRange from IntTools, 
148                                     CompareRange from IntTools); 
149     class  SequenceOfCommonPrts   instantiates  
150         Sequence from TCollection(CommonPrt from IntTools);                         
151          
152     class  IndexedDataMapOfTransientAddress instantiates
153         IndexedDataMap from TCollection(Transient      from Standard,
154                                         Address        from Standard,
155                                         MapTransientHasher from TColStd);       
156     
157 --modified by NIZHNY-MKK  Wed Oct  5 18:06:39 2005
158     class  ListOfCurveRangeSample  instantiates  
159         List from TCollection(CurveRangeSample from IntTools);
160
161     class  ListOfSurfaceRangeSample  instantiates  
162         List from TCollection(SurfaceRangeSample from IntTools);
163
164     class  ListOfBox  instantiates  
165         List from TCollection(Box from Bnd);
166         
167     class CurveRangeSampleMapHasher;
168         ---Purpose: class for range index management of curve
169     
170     class SurfaceRangeSampleMapHasher;
171     
172     class MapOfCurveSample instantiates 
173         Map from TCollection(CurveRangeSample from IntTools,
174                              CurveRangeSampleMapHasher from IntTools);
175                              
176     class MapOfSurfaceSample instantiates 
177         Map from TCollection(SurfaceRangeSample from IntTools,
178                              SurfaceRangeSampleMapHasher from IntTools);
179     
180     class DataMapOfCurveSampleBox instantiates 
181         DataMap from TCollection(CurveRangeSample from IntTools,
182                                  Box              from Bnd,
183                                  CurveRangeSampleMapHasher from IntTools);
184
185     class DataMapOfSurfaceSampleBox instantiates 
186         DataMap from TCollection(SurfaceRangeSample from IntTools,
187                                  Box              from Bnd,
188                                  SurfaceRangeSampleMapHasher from IntTools);
189     -----------------------------------------------------
190     --  Block  of  static  functions  
191     -----------------------------------------------------  
192     Length  (E : Edge from TopoDS) 
193         returns  Real  from  Standard; 
194     ---Purpose:  returns the length of the edge;         
195
196     RemoveIdenticalRoots  (aSeq  :out SequenceOfRoots from IntTools; 
197                            anEpsT:    Real from Standard); 
198     ---Purpose: Remove from  the  sequence aSeq the Roots  that  have  
199     --          values ti and tj such as  |ti-tj]  <  anEpsT.     
200
201     SortRoots (aSeq  :out SequenceOfRoots from IntTools; 
202                anEpsT:    Real from Standard);   
203     ---Purpose: Sort the sequence aSeq of the Roots to arrange the 
204     --          Roons  in  increasing  order 
205     FindRootStates  (aSeq  :out SequenceOfRoots from IntTools; 
206                      anEpsNull:    Real from Standard);
207     ---Purpose: Find the states (before  and  after) for  each  Root  
208     --          from  the sequence aSeq 
209      
210     Parameter (P          : Pnt   from gp; 
211                Curve      : Curve from Geom; 
212                aParm      : out Real  from  Standard) 
213         returns  Integer from Standard;                 
214  
215     GetRadius(C:  Curve  from  BRepAdaptor; 
216               t1,t3:Real  from  Standard; 
217               R:out Real  from  Standard) 
218         returns  Integer from Standard;    
219          
220
221     PrepareArgs(C:  in out Curve  from  BRepAdaptor;  
222                 tMax,tMin:  Real  from  Standard; 
223                 Discret  :  Integer from Standard;    
224                 Deflect  :  Real  from  Standard;  
225                 anArgs   :  out  CArray1OfReal  from IntTools) 
226         returns  Integer from Standard; 
227
228 end IntTools; 
229
230
231