b311480e |
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 | |
7fd59977 |
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, |
4f189102 |
49 | TColgp, |
3f524765 |
50 | MMgt, |
4e57c75e |
51 | BOPInt |
7fd59977 |
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 | |
7fd59977 |
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; |
7fd59977 |
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 | |
7fd59977 |
116 | class Tools; |
117 | ---Purpose: class is a container of usefull geometrical and |
118 | --- topological algorithms |
119 | |
120 | generic class CArray1; |
121 | --- |
7fd59977 |
122 | --- I n s t a n t i a t i o n s |
123 | --- |
124 | class SequenceOfPntOn2Faces instantiates |
125 | Sequence from TCollection(PntOn2Faces from IntTools); |
126 | -- |
127 | class SequenceOfCurves instantiates |
128 | Sequence from TCollection(Curve from IntTools); |
129 | |
130 | |
131 | class SequenceOfRanges instantiates |
132 | Sequence from TCollection(Range from IntTools); |
133 | |
134 | class CArray1OfInteger instantiates |
135 | CArray1(Integer from Standard); |
136 | |
137 | class CArray1OfReal instantiates |
138 | CArray1(Real from Standard); |
139 | |
140 | class SequenceOfRoots instantiates |
141 | Sequence from TCollection(Root from IntTools); |
142 | |
143 | class Array1OfRoots instantiates |
144 | Array1 from TCollection (Root from IntTools); |
145 | |
146 | class Array1OfRange instantiates |
147 | Array1 from TCollection (Range from IntTools); |
148 | |
149 | class QuickSort instantiates |
150 | QuickSort from SortTools (Root from IntTools, |
151 | Array1OfRoots from IntTools, |
152 | Compare from IntTools); |
153 | |
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); |
160 | |
161 | class IndexedDataMapOfTransientAddress instantiates |
162 | IndexedDataMap from TCollection(Transient from Standard, |
163 | Address from Standard, |
164 | MapTransientHasher from TColStd); |
165 | |
166 | --modified by NIZHNY-MKK Wed Oct 5 18:06:39 2005 |
167 | class ListOfCurveRangeSample instantiates |
168 | List from TCollection(CurveRangeSample from IntTools); |
169 | |
170 | class ListOfSurfaceRangeSample instantiates |
171 | List from TCollection(SurfaceRangeSample from IntTools); |
172 | |
173 | class ListOfBox instantiates |
174 | List from TCollection(Box from Bnd); |
175 | |
176 | class CurveRangeSampleMapHasher; |
177 | ---Purpose: class for range index management of curve |
178 | |
179 | class SurfaceRangeSampleMapHasher; |
180 | |
181 | class MapOfCurveSample instantiates |
182 | Map from TCollection(CurveRangeSample from IntTools, |
183 | CurveRangeSampleMapHasher from IntTools); |
184 | |
185 | class MapOfSurfaceSample instantiates |
186 | Map from TCollection(SurfaceRangeSample from IntTools, |
187 | SurfaceRangeSampleMapHasher from IntTools); |
188 | |
189 | class DataMapOfCurveSampleBox instantiates |
190 | DataMap from TCollection(CurveRangeSample from IntTools, |
191 | Box from Bnd, |
192 | CurveRangeSampleMapHasher from IntTools); |
193 | |
194 | class DataMapOfSurfaceSampleBox instantiates |
195 | DataMap from TCollection(SurfaceRangeSample from IntTools, |
196 | Box from Bnd, |
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; |
204 | |
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. |
209 | |
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 |
218 | |
219 | Parameter (P : Pnt from gp; |
220 | Curve : Curve from Geom; |
221 | aParm : out Real from Standard) |
222 | returns Integer from Standard; |
223 | |
224 | GetRadius(C: Curve from BRepAdaptor; |
225 | t1,t3:Real from Standard; |
226 | R:out Real from Standard) |
227 | returns Integer from Standard; |
228 | |
229 | |
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; |
236 | |
237 | end IntTools; |
238 | |
239 | |
240 | |