1 -- Created on: 2000-05-18
2 -- Created by: Peter KURNEV
3 -- Copyright (c) 2000-2012 OPEN CASCADE SAS
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.
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.
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.
23 ---Purpose: Contains classes for intersection and classification
24 --- purposes and accompanying classes
61 ---Purpose: class provides the Edge/Edge algorithm
64 ---Purpose: class provides the Edge/Face algorithm
67 ---Purpose: class provides classification of a point in a face
69 class LineConstructor;
70 ---Purpose: class provides post-processing of results of
71 --- surfaces intersection
75 ---Purpose: auxiliary class for range management
77 class BaseRangeSample;
78 ---Purpose: base class for range index management
80 class CurveRangeSample;
81 ---Purpose: class for range index management of curve
83 class SurfaceRangeSample;
84 ---Purpose: class for range index management of surface
86 class CurveRangeLocalizeData;
88 class SurfaceRangeLocalizeData;
90 class BeanFaceIntersector;
91 ---Purpose: class provides computing ranges of parameters
92 --- of edge/face intersection.
94 class BeanBeanIntersector;
95 ---Purpose: class provides computing ranges of parameters
96 --- of edge/edge intersection.
100 ---Purpose: class is a container of
109 ---Purpose: class redefines TopolTool from Adaptor3d
112 ---Purpose: class provides the Face/Face algorithm
116 ---Purpose: class provides computing and storage of shrunk range
117 --- for an edge bounded by two vertices
120 ---Purpose: class is a container of a large number of reusable
121 --- projection and classification algorithms
124 ---Purpose: class is a container of usefull geometrical and
125 --- topological algorithms
127 generic class CArray1;
131 --pointer PContext to Context from IntTools;
133 --- I n s t a n t i a t i o n s
135 class SequenceOfPntOn2Faces instantiates
136 Sequence from TCollection(PntOn2Faces from IntTools);
138 class SequenceOfCurves instantiates
139 Sequence from TCollection(Curve from IntTools);
142 class SequenceOfRanges instantiates
143 Sequence from TCollection(Range from IntTools);
145 class CArray1OfInteger instantiates
146 CArray1(Integer from Standard);
148 class CArray1OfReal instantiates
149 CArray1(Real from Standard);
151 class SequenceOfRoots instantiates
152 Sequence from TCollection(Root from IntTools);
154 class Array1OfRoots instantiates
155 Array1 from TCollection (Root from IntTools);
157 class Array1OfRange instantiates
158 Array1 from TCollection (Range from IntTools);
160 class QuickSort instantiates
161 QuickSort from SortTools (Root from IntTools,
162 Array1OfRoots from IntTools,
163 Compare from IntTools);
165 class QuickSortRange instantiates
166 QuickSort from SortTools (Range from IntTools,
167 Array1OfRange from IntTools,
168 CompareRange from IntTools);
169 class SequenceOfCommonPrts instantiates
170 Sequence from TCollection(CommonPrt from IntTools);
172 class IndexedDataMapOfTransientAddress instantiates
173 IndexedDataMap from TCollection(Transient from Standard,
174 Address from Standard,
175 MapTransientHasher from TColStd);
177 --modified by NIZHNY-MKK Wed Oct 5 18:06:39 2005
178 class ListOfCurveRangeSample instantiates
179 List from TCollection(CurveRangeSample from IntTools);
181 class ListOfSurfaceRangeSample instantiates
182 List from TCollection(SurfaceRangeSample from IntTools);
184 class ListOfBox instantiates
185 List from TCollection(Box from Bnd);
187 class CurveRangeSampleMapHasher;
188 ---Purpose: class for range index management of curve
190 class SurfaceRangeSampleMapHasher;
192 class MapOfCurveSample instantiates
193 Map from TCollection(CurveRangeSample from IntTools,
194 CurveRangeSampleMapHasher from IntTools);
196 class MapOfSurfaceSample instantiates
197 Map from TCollection(SurfaceRangeSample from IntTools,
198 SurfaceRangeSampleMapHasher from IntTools);
200 class DataMapOfCurveSampleBox instantiates
201 DataMap from TCollection(CurveRangeSample from IntTools,
203 CurveRangeSampleMapHasher from IntTools);
205 class DataMapOfSurfaceSampleBox instantiates
206 DataMap from TCollection(SurfaceRangeSample from IntTools,
208 SurfaceRangeSampleMapHasher from IntTools);
209 -----------------------------------------------------
210 -- Block of static functions
211 -----------------------------------------------------
212 Length (E : Edge from TopoDS)
213 returns Real from Standard;
214 ---Purpose: returns the length of the edge;
216 RemoveIdenticalRoots (aSeq :out SequenceOfRoots from IntTools;
217 anEpsT: Real from Standard);
218 ---Purpose: Remove from the sequence aSeq the Roots that have
219 -- values ti and tj such as |ti-tj] < anEpsT.
221 SortRoots (aSeq :out SequenceOfRoots from IntTools;
222 anEpsT: Real from Standard);
223 ---Purpose: Sort the sequence aSeq of the Roots to arrange the
224 -- Roons in increasing order
225 FindRootStates (aSeq :out SequenceOfRoots from IntTools;
226 anEpsNull: Real from Standard);
227 ---Purpose: Find the states (before and after) for each Root
228 -- from the sequence aSeq
230 Parameter (P : Pnt from gp;
231 Curve : Curve from Geom;
232 aParm : out Real from Standard)
233 returns Integer from Standard;
235 GetRadius(C: Curve from BRepAdaptor;
236 t1,t3:Real from Standard;
237 R:out Real from Standard)
238 returns Integer from Standard;
241 PrepareArgs(C: in out Curve from BRepAdaptor;
242 tMax,tMin: Real from Standard;
243 Discret : Integer from Standard;
244 Deflect : Real from Standard;
245 anArgs : out CArray1OfReal from IntTools)
246 returns Integer from Standard;