0023442: Provide the access to the functionality of Geom2dHatch_Hacher via IntTools_C...
[occt.git] / src / IntTools / IntTools.cdl
1 -- Created on: 2000-05-18
2 -- Created by: Peter KURNEV
3 -- Copyright (c) 2000-2012 OPEN CASCADE SAS
4 --
5 -- The content of this file is subject to the Open CASCADE Technology Public
6 -- License Version 6.5 (the "License"). You may not use the content of this file
7 -- except in compliance with the License. Please obtain a copy of the License
8 -- at http://www.opencascade.org and read it completely before using this file.
9 --
10 -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
11 -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
12 --
13 -- The Original Code and all software distributed under the License is
14 -- distributed on an "AS IS" basis, without warranty of any kind, and the
15 -- Initial Developer hereby disclaims all such warranties, including without
16 -- limitation, any warranties of merchantability, fitness for a particular
17 -- purpose or non-infringement. Please see the License for the specific terms
18 -- and conditions governing the rights and limitations under the License.
19
20
21 package IntTools
22
23         ---Purpose: Contains classes for intersection and classification
24         ---         purposes and accompanying classes
25 uses
26     
27     TCollection, 
28     TopoDS, 
29     TopAbs, 
30     TColStd, 
31     BRepAdaptor, 
32     BRepTopAdaptor,
33     SortTools, 
34     TopTools, 
35     math,
36     gp, 
37     Bnd,
38     Adaptor3d,
39     GeomAdaptor,
40     Geom,
41     Geom2d,
42     GeomInt,  
43     GeomAbs,
44     GeomAPI,
45     Extrema,
46     IntPatch, 
47     IntSurf, 
48     BRepClass3d, 
49     TColgp, 
50     MMgt, 
51     Geom2dHatch
52
53 is
54         
55     class  Range;               
56     class  CommonPrt; 
57     class  Root; 
58     class  Compare; 
59     class  CompareRange;     
60
61     class  EdgeEdge;
62         ---Purpose: class provides the Edge/Edge algorithm 
63
64     class  EdgeFace;
65         ---Purpose: class provides the Edge/Face algorithm 
66
67     class  FClass2d;
68         ---Purpose: class provides classification of a point in a face
69
70     class  LineConstructor;
71         ---Purpose: class provides post-processing of results of 
72         ---         surfaces intersection
73
74     -----
75     class MarkedRangeSet;
76         ---Purpose: auxiliary class for range management
77
78     class BaseRangeSample;
79         ---Purpose: base class for range index management
80     
81     class CurveRangeSample;
82         ---Purpose: class for range index management of curve
83     
84     class SurfaceRangeSample;
85         ---Purpose: class for range index management of surface
86
87     class CurveRangeLocalizeData;
88     
89     class SurfaceRangeLocalizeData;
90    
91     class BeanFaceIntersector;
92         ---Purpose: class provides computing ranges of parameters
93         ---         of edge/face intersection.
94
95     class BeanBeanIntersector;
96         ---Purpose: class provides computing ranges of parameters
97         ---         of edge/edge intersection.
98
99     -----
100     class  Curve;
101         ---Purpose: class is a container of
102         ---         one 3d curve
103         ---         two 2d curves
104     -----
105
106     class  PntOnFace;
107     class  PntOn2Faces; 
108       
109     class  TopolTool;
110         ---Purpose: class redefines TopolTool from Adaptor3d
111
112     class  FaceFace;
113         ---Purpose: class provides the Face/Face algorithm
114     --- 
115
116     class  ShrunkRange;
117         ---Purpose: class provides computing and storage of shrunk range
118         ---         for an edge bounded by two vertices
119     
120     class  Context;
121         ---Purpose: class is a container of a large number of reusable
122         ---         projection and classification algorithms
123         
124     class  Tools; 
125         ---Purpose: class is a container of usefull geometrical and
126         ---         topological algorithms
127     
128     generic class CArray1;   
129     ---
130     ---                          P  o  i  n  t  e  r  s                 
131     --- 
132     --pointer PContext to Context from IntTools;  
133     ---
134     ---                 I  n  s  t  a  n  t  i  a  t  i  o  n  s  
135     ---   
136     class SequenceOfPntOn2Faces instantiates  
137         Sequence from TCollection(PntOn2Faces from IntTools); 
138     --
139     class SequenceOfCurves instantiates  
140         Sequence from TCollection(Curve from IntTools); 
141         
142     
143     class  SequenceOfRanges  instantiates  
144         Sequence from TCollection(Range from IntTools); 
145
146     class  CArray1OfInteger  instantiates  
147         CArray1(Integer from Standard); 
148   
149     class  CArray1OfReal  instantiates  
150         CArray1(Real from Standard); 
151          
152     class  SequenceOfRoots   instantiates  
153         Sequence from TCollection(Root  from IntTools); 
154          
155     class  Array1OfRoots     instantiates  
156         Array1    from TCollection  (Root from IntTools);  
157      
158     class  Array1OfRange     instantiates  
159         Array1    from TCollection  (Range from IntTools); 
160          
161     class  QuickSort         instantiates  
162         QuickSort from SortTools   (Root from IntTools, 
163                                     Array1OfRoots from IntTools, 
164                                     Compare from IntTools); 
165                                     
166     class  QuickSortRange    instantiates  
167         QuickSort from SortTools   (Range from IntTools, 
168                                     Array1OfRange from IntTools, 
169                                     CompareRange from IntTools); 
170     class  SequenceOfCommonPrts   instantiates  
171         Sequence from TCollection(CommonPrt from IntTools);                         
172          
173     class  IndexedDataMapOfTransientAddress instantiates
174         IndexedDataMap from TCollection(Transient      from Standard,
175                                         Address        from Standard,
176                                         MapTransientHasher from TColStd);       
177     
178 --modified by NIZHNY-MKK  Wed Oct  5 18:06:39 2005
179     class  ListOfCurveRangeSample  instantiates  
180         List from TCollection(CurveRangeSample from IntTools);
181
182     class  ListOfSurfaceRangeSample  instantiates  
183         List from TCollection(SurfaceRangeSample from IntTools);
184
185     class  ListOfBox  instantiates  
186         List from TCollection(Box from Bnd);
187         
188     class CurveRangeSampleMapHasher;
189         ---Purpose: class for range index management of curve
190     
191     class SurfaceRangeSampleMapHasher;
192     
193     class MapOfCurveSample instantiates 
194         Map from TCollection(CurveRangeSample from IntTools,
195                              CurveRangeSampleMapHasher from IntTools);
196                              
197     class MapOfSurfaceSample instantiates 
198         Map from TCollection(SurfaceRangeSample from IntTools,
199                              SurfaceRangeSampleMapHasher from IntTools);
200     
201     class DataMapOfCurveSampleBox instantiates 
202         DataMap from TCollection(CurveRangeSample from IntTools,
203                                  Box              from Bnd,
204                                  CurveRangeSampleMapHasher from IntTools);
205
206     class DataMapOfSurfaceSampleBox instantiates 
207         DataMap from TCollection(SurfaceRangeSample from IntTools,
208                                  Box              from Bnd,
209                                  SurfaceRangeSampleMapHasher from IntTools);
210     -----------------------------------------------------
211     --  Block  of  static  functions  
212     -----------------------------------------------------  
213     Length  (E : Edge from TopoDS) 
214         returns  Real  from  Standard; 
215     ---Purpose:  returns the length of the edge;         
216
217     RemoveIdenticalRoots  (aSeq  :out SequenceOfRoots from IntTools; 
218                            anEpsT:    Real from Standard); 
219     ---Purpose: Remove from  the  sequence aSeq the Roots  that  have  
220     --          values ti and tj such as  |ti-tj]  <  anEpsT.     
221
222     SortRoots (aSeq  :out SequenceOfRoots from IntTools; 
223                anEpsT:    Real from Standard);   
224     ---Purpose: Sort the sequence aSeq of the Roots to arrange the 
225     --          Roons  in  increasing  order 
226     FindRootStates  (aSeq  :out SequenceOfRoots from IntTools; 
227                      anEpsNull:    Real from Standard);
228     ---Purpose: Find the states (before  and  after) for  each  Root  
229     --          from  the sequence aSeq 
230      
231     Parameter (P          : Pnt   from gp; 
232                Curve      : Curve from Geom; 
233                aParm      : out Real  from  Standard) 
234         returns  Integer from Standard;                 
235  
236     GetRadius(C:  Curve  from  BRepAdaptor; 
237               t1,t3:Real  from  Standard; 
238               R:out Real  from  Standard) 
239         returns  Integer from Standard;    
240          
241
242     PrepareArgs(C:  in out Curve  from  BRepAdaptor;  
243                 tMax,tMin:  Real  from  Standard; 
244                 Discret  :  Integer from Standard;    
245                 Deflect  :  Real  from  Standard;  
246                 anArgs   :  out  CArray1OfReal  from IntTools) 
247         returns  Integer from Standard; 
248
249 end IntTools; 
250
251
252