0025715: Intersection between cylinders produces excess vertices
[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     Geom2dHatch, 
47     
48     BOPCol
49
50 is
51     class Context; 
52     class ShrunkRange; 
53     --
54     class Range;         
55     class CommonPrt; 
56     class Root; 
57     class Compare; 
58     class CompareRange;     
59
60     class  EdgeEdge;
61
62     class  EdgeFace;
63
64     class  FClass2d;
65
66     --class  LineConstructor;
67
68     -----
69     class MarkedRangeSet;
70
71     class BaseRangeSample;
72
73     class CurveRangeSample;
74
75     class SurfaceRangeSample;
76
77     class CurveRangeLocalizeData;
78
79     class SurfaceRangeLocalizeData;
80
81     class BeanFaceIntersector;
82
83
84     class  Curve;
85
86     class  PntOnFace;
87     class  PntOn2Faces; 
88       
89     class  TopolTool;
90
91     class  FaceFace;
92
93     class  Tools; 
94
95     generic class CArray1;   
96     ---
97     ---                 I  n  s  t  a  n  t  i  a  t  i  o  n  s  
98     ---   
99     class SequenceOfPntOn2Faces instantiates  
100      Sequence from TCollection(PntOn2Faces from IntTools); 
101     --
102     class SequenceOfCurves instantiates  
103      Sequence from TCollection(Curve from IntTools); 
104  
105     
106     class  SequenceOfRanges  instantiates  
107      Sequence from TCollection(Range from IntTools); 
108
109     class  CArray1OfInteger  instantiates  
110      CArray1(Integer from Standard); 
111   
112     class  CArray1OfReal  instantiates  
113      CArray1(Real from Standard); 
114   
115     class  SequenceOfRoots   instantiates  
116      Sequence from TCollection(Root  from IntTools); 
117   
118     class  Array1OfRoots     instantiates  
119      Array1    from TCollection  (Root from IntTools);  
120      
121     class  Array1OfRange     instantiates  
122      Array1    from TCollection  (Range from IntTools); 
123   
124     class  QuickSort         instantiates  
125      QuickSort from SortTools   (Root from IntTools, 
126                     Array1OfRoots from IntTools, 
127                     Compare from IntTools); 
128         
129     class  QuickSortRange    instantiates  
130      QuickSort from SortTools   (Range from IntTools, 
131                     Array1OfRange from IntTools, 
132                     CompareRange from IntTools); 
133     class  SequenceOfCommonPrts   instantiates  
134      Sequence from TCollection(CommonPrt from IntTools);        
135   
136     class  IndexedDataMapOfTransientAddress instantiates
137      IndexedDataMap from TCollection(Transient      from Standard,
138                      Address        from Standard,
139                                         MapTransientHasher from TColStd); 
140     
141
142     class  ListOfCurveRangeSample  instantiates  
143      List from TCollection(CurveRangeSample from IntTools);
144
145     class  ListOfSurfaceRangeSample  instantiates  
146      List from TCollection(SurfaceRangeSample from IntTools);
147
148     class  ListOfBox  instantiates  
149      List from TCollection(Box from Bnd);
150  
151     class CurveRangeSampleMapHasher;
152
153     class SurfaceRangeSampleMapHasher;
154     
155     class MapOfCurveSample instantiates 
156      Map from TCollection(CurveRangeSample from IntTools,
157                              CurveRangeSampleMapHasher from IntTools);
158         
159     class MapOfSurfaceSample instantiates 
160      Map from TCollection(SurfaceRangeSample from IntTools,
161                     SurfaceRangeSampleMapHasher from IntTools);
162     
163     class DataMapOfCurveSampleBox instantiates 
164      DataMap from TCollection(CurveRangeSample from IntTools,
165                  Box              from Bnd,
166      CurveRangeSampleMapHasher from IntTools);
167
168     class DataMapOfSurfaceSampleBox instantiates 
169      DataMap from TCollection(SurfaceRangeSample from IntTools,
170                  Box              from Bnd,
171      SurfaceRangeSampleMapHasher from IntTools);
172     -----------------------------------------------------
173     --  Block  of  static  functions  
174     -----------------------------------------------------  
175     Length  (E : Edge from TopoDS) 
176      returns  Real  from  Standard; 
177     ---Purpose:  returns the length of the edge;  
178
179     RemoveIdenticalRoots  (aSeq  :out SequenceOfRoots from IntTools; 
180                   anEpsT:    Real from Standard); 
181     ---Purpose: Remove from  the  sequence aSeq the Roots  that  have  
182     --          values ti and tj such as  |ti-tj]  <  anEpsT.     
183
184     SortRoots (aSeq  :out SequenceOfRoots from IntTools; 
185             anEpsT:    Real from Standard);  
186     ---Purpose: Sort the sequence aSeq of the Roots to arrange the 
187     --          Roons  in  increasing  order  
188     
189     FindRootStates  (aSeq  :out SequenceOfRoots from IntTools; 
190                      anEpsNull:    Real from Standard);
191     ---Purpose: Find the states (before  and  after) for  each  Root  
192     --          from  the sequence aSeq 
193      
194     Parameter (P          : Pnt   from gp; 
195                 Curve      : Curve from Geom; 
196                 aParm      : out Real  from  Standard) 
197         returns  Integer from Standard;          
198  
199     GetRadius(C:  Curve  from  BRepAdaptor; 
200            t1,t3:Real  from  Standard; 
201             R:out Real  from  Standard) 
202         returns  Integer from Standard;    
203   
204
205     PrepareArgs(C:  in out Curve  from  BRepAdaptor;  
206                 tMax,tMin:  Real  from  Standard; 
207                 Discret  :  Integer from Standard;    
208                 Deflect  :  Real  from  Standard;  
209                 anArgs   :  out  CArray1OfReal  from IntTools) 
210         returns  Integer from Standard; 
211
212 end IntTools; 
213
214
215