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
62 ---Purpose: class provides the Edge/Edge algorithm
65 ---Purpose: class provides the Edge/Face algorithm
68 ---Purpose: class provides classification of a point in a face
70 class LineConstructor;
71 ---Purpose: class provides post-processing of results of
72 --- surfaces intersection
76 ---Purpose: auxiliary class for range management
78 class BaseRangeSample;
79 ---Purpose: base class for range index management
81 class CurveRangeSample;
82 ---Purpose: class for range index management of curve
84 class SurfaceRangeSample;
85 ---Purpose: class for range index management of surface
87 class CurveRangeLocalizeData;
89 class SurfaceRangeLocalizeData;
91 class BeanFaceIntersector;
92 ---Purpose: class provides computing ranges of parameters
93 --- of edge/face intersection.
95 class BeanBeanIntersector;
96 ---Purpose: class provides computing ranges of parameters
97 --- of edge/edge intersection.
101 ---Purpose: class is a container of
110 ---Purpose: class redefines TopolTool from Adaptor3d
113 ---Purpose: class provides the Face/Face algorithm
117 ---Purpose: class is a container of usefull geometrical and
118 --- topological algorithms
120 generic class CArray1;
122 --- I n s t a n t i a t i o n s
124 class SequenceOfPntOn2Faces instantiates
125 Sequence from TCollection(PntOn2Faces from IntTools);
127 class SequenceOfCurves instantiates
128 Sequence from TCollection(Curve from IntTools);
131 class SequenceOfRanges instantiates
132 Sequence from TCollection(Range from IntTools);
134 class CArray1OfInteger instantiates
135 CArray1(Integer from Standard);
137 class CArray1OfReal instantiates
138 CArray1(Real from Standard);
140 class SequenceOfRoots instantiates
141 Sequence from TCollection(Root from IntTools);
143 class Array1OfRoots instantiates
144 Array1 from TCollection (Root from IntTools);
146 class Array1OfRange instantiates
147 Array1 from TCollection (Range from IntTools);
149 class QuickSort instantiates
150 QuickSort from SortTools (Root from IntTools,
151 Array1OfRoots from IntTools,
152 Compare from IntTools);
154 class QuickSortRange instantiates
155 QuickSort from SortTools (Range from IntTools,
156 Array1OfRange from IntTools,
157 CompareRange from IntTools);
158 class SequenceOfCommonPrts instantiates
159 Sequence from TCollection(CommonPrt from IntTools);
161 class IndexedDataMapOfTransientAddress instantiates
162 IndexedDataMap from TCollection(Transient from Standard,
163 Address from Standard,
164 MapTransientHasher from TColStd);
166 --modified by NIZHNY-MKK Wed Oct 5 18:06:39 2005
167 class ListOfCurveRangeSample instantiates
168 List from TCollection(CurveRangeSample from IntTools);
170 class ListOfSurfaceRangeSample instantiates
171 List from TCollection(SurfaceRangeSample from IntTools);
173 class ListOfBox instantiates
174 List from TCollection(Box from Bnd);
176 class CurveRangeSampleMapHasher;
177 ---Purpose: class for range index management of curve
179 class SurfaceRangeSampleMapHasher;
181 class MapOfCurveSample instantiates
182 Map from TCollection(CurveRangeSample from IntTools,
183 CurveRangeSampleMapHasher from IntTools);
185 class MapOfSurfaceSample instantiates
186 Map from TCollection(SurfaceRangeSample from IntTools,
187 SurfaceRangeSampleMapHasher from IntTools);
189 class DataMapOfCurveSampleBox instantiates
190 DataMap from TCollection(CurveRangeSample from IntTools,
192 CurveRangeSampleMapHasher from IntTools);
194 class DataMapOfSurfaceSampleBox instantiates
195 DataMap from TCollection(SurfaceRangeSample from IntTools,
197 SurfaceRangeSampleMapHasher from IntTools);
198 -----------------------------------------------------
199 -- Block of static functions
200 -----------------------------------------------------
201 Length (E : Edge from TopoDS)
202 returns Real from Standard;
203 ---Purpose: returns the length of the edge;
205 RemoveIdenticalRoots (aSeq :out SequenceOfRoots from IntTools;
206 anEpsT: Real from Standard);
207 ---Purpose: Remove from the sequence aSeq the Roots that have
208 -- values ti and tj such as |ti-tj] < anEpsT.
210 SortRoots (aSeq :out SequenceOfRoots from IntTools;
211 anEpsT: Real from Standard);
212 ---Purpose: Sort the sequence aSeq of the Roots to arrange the
213 -- Roons in increasing order
214 FindRootStates (aSeq :out SequenceOfRoots from IntTools;
215 anEpsNull: Real from Standard);
216 ---Purpose: Find the states (before and after) for each Root
217 -- from the sequence aSeq
219 Parameter (P : Pnt from gp;
220 Curve : Curve from Geom;
221 aParm : out Real from Standard)
222 returns Integer from Standard;
224 GetRadius(C: Curve from BRepAdaptor;
225 t1,t3:Real from Standard;
226 R:out Real from Standard)
227 returns Integer from Standard;
230 PrepareArgs(C: in out Curve from BRepAdaptor;
231 tMax,tMin: Real from Standard;
232 Discret : Integer from Standard;
233 Deflect : Real from Standard;
234 anArgs : out CArray1OfReal from IntTools)
235 returns Integer from Standard;