0023535: Exception in BSplCLib::BuildCache()
[occt.git] / src / IntCurve / IntCurve_IntCurveCurveGen.cdl
CommitLineData
b311480e 1-- Created on: 1992-05-22
2-- Created by: Jacques GOUSSARD
3-- Copyright (c) 1992-1999 Matra Datavision
4-- Copyright (c) 1999-2012 OPEN CASCADE SAS
5--
6-- The content of this file is subject to the Open CASCADE Technology Public
7-- License Version 6.5 (the "License"). You may not use the content of this file
8-- except in compliance with the License. Please obtain a copy of the License
9-- at http://www.opencascade.org and read it completely before using this file.
10--
11-- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
12-- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
13--
14-- The Original Code and all software distributed under the License is
15-- distributed on an "AS IS" basis, without warranty of any kind, and the
16-- Initial Developer hereby disclaims all such warranties, including without
17-- limitation, any warranties of merchantability, fitness for a particular
18-- purpose or non-infringement. Please see the License for the specific terms
19-- and conditions governing the rights and limitations under the License.
20
7fd59977 21
22
23generic class IntCurveCurveGen from IntCurve (
24 TheCurve as any;
25 TheCurveTool as any) -- as CurveTool from IntCurve(TheCurve)
26
27 ---Purpose: Provides the algorithm to intersect two 2D-curves.
28 -- The curves may be parametric curves or Conic (see
29 -- the template class CurveTool).
30 --
31 -- Note: The exception ConstructionError is raised in
32 -- constructors or in Perform methods when a domain
33 -- (Domain from IntRes2d) is not correct, i-e when
34 -- the method TheType returns GeomAbs_Circle or
35 -- GeomAbs_Ellipsei and the corresponding domain is
36 -- not closed (use the SetEquivalentParameters for a
37 -- domain on a circle or an ellipse) or when the
38 -- method TheType returns GeomAbs_Other and the
39 -- domain of the curve is not bounded
40 -- (HasFirstPoint() && HasLastPoint() return True).
41 ---Level: Advanced
42
43inherits Intersection from IntRes2d
44
45uses Domain from IntRes2d,
46 IntConicConic from IntCurve,
47 IConicTool from IntCurve,
48 Array1OfReal from TColStd
49
50raises ConstructionError from Standard
51
52
53 class TheProjPCur instantiates ProjPCurGen from IntCurve(
54 TheCurve,
55 TheCurveTool);
56
57 class TheIntConicCurve instantiates IntConicCurveGen from IntCurve
58 (IConicTool from IntCurve,
59 TheCurve,
60 TheCurveTool,
61 TheProjPCur);
62
63 class IntConicCurve instantiates UserIntConicCurveGen from IntCurve
64 (IConicTool from IntCurve,
65 TheCurve,
66 TheCurveTool,
67 TheIntConicCurve);
68
69 class TheIntPCurvePCurve instantiates IntPolyPolyGen from IntCurve
70 (TheCurve,
71 TheCurveTool,
72 TheProjPCur);
73is
74
75 Create
76
77 ---Purpose: Empty constructor.
78 returns IntCurveCurveGen from IntCurve;
79 ---C++: inline
80
81
82 Create (C: TheCurve; TolConf,Tol: Real from Standard)
83
84 ---Purpose: Self Intersection of a curve
85 ---C++: inline
86 returns IntCurveCurveGen from IntCurve
87 raises ConstructionError from Standard;
88
89
90 Create (C: TheCurve; D: Domain from IntRes2d;
91 TolConf,Tol: Real from Standard)
92
93 ---Purpose: Self Intersection of a curve with a domain.
94 ---C++: inline
95 returns IntCurveCurveGen from IntCurve
96 raises ConstructionError from Standard;
97
98
99 Create (C1: TheCurve; C2: TheCurve;
100 TolConf,Tol: Real from Standard)
101
102 ---Purpose: Intersection between 2 curves.
103 ---C++: inline
104 returns IntCurveCurveGen from IntCurve
105 raises ConstructionError from Standard;
106
107
108 Create (C1: TheCurve; D1: Domain from IntRes2d;
109 C2: TheCurve;
110 TolConf,Tol: Real from Standard)
111
112 ---Purpose: Intersection between 2 curves.
113 ---C++: inline
114 returns IntCurveCurveGen from IntCurve
115 raises ConstructionError from Standard;
116
117
118 Create (C1: TheCurve;
119 C2: TheCurve; D2: Domain from IntRes2d;
120 TolConf,Tol: Real from Standard)
121
122 ---Purpose: Intersection between 2 curves.
123 ---C++: inline
124 returns IntCurveCurveGen from IntCurve
125 raises ConstructionError from Standard;
126
127
128
129 Create (C1: TheCurve; D1: Domain from IntRes2d;
130 C2: TheCurve; D2: Domain from IntRes2d;
131 TolConf,Tol: Real from Standard)
132
133 ---Purpose: Intersection between 2 curves.
134 ---C++: inline
135 returns IntCurveCurveGen from IntCurve
136 raises ConstructionError from Standard;
137
138
139
140 Perform (me: in out;
141 C1: TheCurve; D1: Domain from IntRes2d;
142 C2: TheCurve; D2: Domain from IntRes2d;
143 TolConf,Tol: Real from Standard)
144 ---Purpose: Intersection between 2 curves.
145
146 raises ConstructionError from Standard
147 is static;
148
149 Perform (me: in out;
150 C1: TheCurve;
151 C2: TheCurve;
152 TolConf,Tol: Real from Standard)
153
154 ---Purpose: Intersection between 2 curves.
155 ---C++: inline
156 raises ConstructionError from Standard
157 is static;
158
159 Perform (me: in out;
160 C1: TheCurve; D1: Domain from IntRes2d;
161 TolConf,Tol: Real from Standard)
162
163 ---Purpose: Intersection between 2 curves.
164 raises ConstructionError from Standard
165 is static;
166
167 Perform (me: in out;
168 C1: TheCurve;
169 TolConf,Tol: Real from Standard)
170
171 ---Purpose: Intersection between 2 curves.
172
173 raises ConstructionError from Standard
174 is static;
175
176 Perform (me: in out;
177 C1: TheCurve; D1: Domain from IntRes2d;
178 C2: TheCurve;
179 TolConf,Tol: Real from Standard)
180 ---C++: inline
181 ---Purpose: Intersection between 2 curves.
182
183 raises ConstructionError from Standard
184 is static;
185
186 Perform (me: in out;
187 C1: TheCurve;
188 C2: TheCurve; D2: Domain from IntRes2d;
189 TolConf,Tol: Real from Standard)
190 ---C++: inline
191 ---Purpose: Intersection between 2 curves.
192
193 raises ConstructionError from Standard
194 is static;
195
196
197 ComputeDomain(me; C1: TheCurve; TolDomain: Real from Standard)
198
199 ---Purpose: Create a domain from a curve
200 returns Domain from IntRes2d
201 is static;
202
203
204
205 InternalPerform(me: in out;
206 C1: TheCurve; D1: Domain from IntRes2d;
207 C2: TheCurve; D2: Domain from IntRes2d;
208 TolConf,Tol: Real from Standard;
209 Composite: Boolean from Standard)
210
211 ---Purpose: Intersection between 2 curves.
212
213 raises ConstructionError from Standard
214 is static private;
de8791ee 215
216
217
218 InternalCompositePerform_noRecurs(me: in out;
219 NbInterC1: Integer from Standard;
220 C1: TheCurve;
221 NumInterC1: Integer from Standard;
222 Tab1: Array1OfReal from TColStd;
223 D1: Domain from IntRes2d;
224 NbInterC2: Integer from Standard;
225 C2: TheCurve;
226 NumInterC2: Integer from Standard;
227 Tab2: Array1OfReal from TColStd;
228 D2: Domain from IntRes2d;
229 TolConf,Tol: Real from Standard)
230
231 ---Purpose: Part of InternalCompositePerform function
232
233 raises ConstructionError from Standard
234 is static private;
235
236
7fd59977 237
238 InternalCompositePerform(me: in out;
239 C1: TheCurve; D1: Domain from IntRes2d;
240 N1,NB1: Integer from Standard;
241 Tab1: Array1OfReal from TColStd;
242 C2: TheCurve; D2: Domain from IntRes2d;
243 N2,NB2: Integer from Standard;
244 Tab2: Array1OfReal from TColStd;
245 TolConf,Tol: Real from Standard;
246 Composite: Boolean from Standard)
247
248 ---Purpose: Intersection between 2 curves.
249
250 raises ConstructionError from Standard
251 is static private;
252
253
254fields
255
256 param1inf : Real from Standard;
257 param1sup : Real from Standard;
258 param2inf : Real from Standard;
259 param2sup : Real from Standard;
260 intconiconi : IntConicConic from IntCurve;
261 intconicurv : TheIntConicCurve;
262 intcurvcurv : TheIntPCurvePCurve;
263
264end IntCurveCurveGen;
265
266
267
268
269