0024761: Convertation of the generic classes to the non-generic. Part 5
[occt.git] / src / Extrema / Extrema_ExtCC.cdl
CommitLineData
b311480e 1-- Created on: 1994-07-06
2-- Created by: Laurent PAINNOT
3-- Copyright (c) 1994-1999 Matra Datavision
973c2be1 4-- Copyright (c) 1999-2014 OPEN CASCADE SAS
b311480e 5--
973c2be1 6-- This file is part of Open CASCADE Technology software library.
b311480e 7--
d5f74e42 8-- This library is free software; you can redistribute it and/or modify it under
9-- the terms of the GNU Lesser General Public License version 2.1 as published
973c2be1 10-- by the Free Software Foundation, with special exception defined in the file
11-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12-- distribution for complete text of the license and disclaimer of any warranty.
b311480e 13--
973c2be1 14-- Alternatively, this file may be used under the terms of Open CASCADE
15-- commercial license or contractual agreement.
7fd59977 16
0b85f9a6 17class ExtCC from Extrema
7fd59977 18
0b85f9a6 19 ---Purpose: It calculates all the distance between two curves.
20 -- These distances can be maximum or minimum.
7fd59977 21
22uses POnCurv from Extrema,
23 SequenceOfPOnCurv from Extrema,
24 ExtElC from Extrema,
25 Pnt from gp,
26 HArray1OfPnt from TColgp,
27 SequenceOfReal from TColStd,
0b85f9a6 28 ListOfTransient from TColStd,
29 Curve from Adaptor3d,
30 CurveTool from Extrema,
31 ECC from Extrema
7fd59977 32
33
34raises InfiniteSolutions from StdFail,
0b85f9a6 35 NotDone from StdFail,
36 OutOfRange from Standard
7fd59977 37
38
39is
40
0b85f9a6 41 Create (TolC1: Real = 1.0e-10; TolC2: Real = 1.0e-10) returns ExtCC;
7fd59977 42
43
0b85f9a6 44 Create (C1: Curve from Adaptor3d; C2: Curve from Adaptor3d;
45 TolC1: Real = 1.0e-10; TolC2: Real = 1.0e-10) returns ExtCC;
7fd59977 46 ---Purpose: It calculates all the distances.
47
48
0b85f9a6 49 Create (C1: Curve from Adaptor3d;
50 C2: Curve from Adaptor3d;
7fd59977 51 U1: Real from Standard;
52 U2: Real from Standard;
53 V1: Real from Standard;
54 V2: Real from Standard;
55 TolC1: Real = 1.0e-10;
0b85f9a6 56 TolC2: Real = 1.0e-10) returns ExtCC;
7fd59977 57 ---Purpose: It calculates all the distances.
58
59
0b85f9a6 60 SetCurve (me: in out; theRank: Integer; C: Curve from Adaptor3d);
7fd59977 61 ---Purpose:
62
0b85f9a6 63 SetCurve (me: in out; theRank: Integer; C: Curve from Adaptor3d; Uinf, Usup: Real);
7fd59977 64 ---Purpose:
65
66 SetRange (me: in out; theRank: Integer; Uinf, Usup: Real);
67 ---Purpose:
68
69 SetTolerance (me: in out; theRank: Integer; Tol: Real);
70 ---Purpose:
71
72 Perform(me: in out);
73
74
75 IsDone (me) returns Boolean
76 ---Purpose: Returns True if the distances are found.
77 is static;
78
79 NbExt (me) returns Integer
80 ---Purpose: Returns the number of extremum distances.
81 raises NotDone from StdFail,
82 -- if IsDone(me)=False.
83 InfiniteSolutions from StdFail
84 -- if IsParallel(me)= True.
85 is static;
86
87
88 IsParallel (me) returns Boolean
89 ---Purpose: Returns True if the two curves are parallel.
90 raises NotDone from StdFail
91 -- if IsDone(me)=False.
92 is static;
93
94
95 SquareDistance (me; N: Integer =1) returns Real
96 ---Purpose: Returns the value of the Nth extremum square distance.
97 raises NotDone from StdFail,
98 -- if IsDone(me)=False.
99 InfiniteSolutions from StdFail,
100 -- if IsParallel(me)= True and N > 1.
101 OutOfRange
102 -- if N < 1 or N > NbExt(me)
103 is static;
104
105 Points (me; N: Integer; P1,P2: out POnCurv)
106 ---Purpose: Returns the points of the Nth extremum distance.
107 -- P1 is on the first curve, P2 on the second one.
108 raises NotDone from StdFail,
109 -- if IsDone(me)=False.
110 InfiniteSolutions from StdFail,
111 -- if IsParallel(me)= True.
112 OutOfRange
113 -- if N < 1 or N > NbExt(me)
114 is static;
115
116 TrimmedSquareDistances(me; dist11, distP12, distP21, distP22: out Real;
117 P11, P12, P21, P22: out Pnt)
118 ---Purpose: if the curve is a trimmed curve,
119 -- dist11 is a square distance between the point on C1
120 -- of parameter FirstParameter and the point of
121 -- parameter FirstParameter on C2.
122
123 is static;
124
125 Results(me: in out; AlgExt: ExtElC from Extrema;
126 Ut11, Ut12, Ut21, Ut22: Real)
127
128 is static protected;
129
0b85f9a6 130 Results(me: in out;AlgExt: ECC from Extrema;
7fd59977 131 Ut11, Ut12, Ut21, Ut22: Real)
132
133 is static protected;
134
135
136
137
138fields
139 myECC: ECC from Extrema;
140 myDone: Boolean;
141 myIsPar: Boolean;
142 mypoints: SequenceOfPOnCurv from Extrema;
143 mySqDist: SequenceOfReal from TColStd;
144 mynbext: Integer;
145 inverse: Boolean;
146 myC: Address from Standard [2];
147 myInf: Real [2];
148 mySup: Real [2];
149 myTol: Real [2];
150 myCacheLists: ListOfTransient from TColStd [2]; -- lists of Handle(Extrema_CCache)
151 P1f: Pnt;
152 P1l: Pnt;
153 P2f: Pnt;
154 P2l: Pnt;
155 mydist11: Real;
156 mydist12: Real;
157 mydist21: Real;
158 mydist22: Real;
159
160
161
0b85f9a6 162end ExtCC;