0023948: Wrong intersection between a surface of revolution and a plane.
[occt.git] / src / HLRBRep / HLRBRep_LineTool.cdl
1 -- Created on: 1993-08-18
2 -- Created by: Christophe MARION
3 -- Copyright (c) 1993-1999 Matra Datavision
4 -- Copyright (c) 1999-2014 OPEN CASCADE SAS
5 --
6 -- This file is part of Open CASCADE Technology software library.
7 --
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
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.
13 --
14 -- Alternatively, this file may be used under the terms of Open CASCADE
15 -- commercial license or contractual agreement.
16
17 class LineTool from HLRBRep
18
19         ---Purpose: The  LineTool  class  provides  class  methods to
20         --          access the methodes of the Line.
21
22 uses
23      Shape           from GeomAbs,
24      CurveType       from GeomAbs,
25      Vec             from gp,
26      Pnt             from gp,
27      Circ            from gp,
28      Elips           from gp,
29      Hypr            from gp,
30      Parab           from gp,
31      Lin             from gp, 
32      BezierCurve     from Geom,
33      BSplineCurve    from Geom,
34      Array1OfPnt     from TColgp,
35      Array1OfReal    from TColStd,
36      HArray1OfReal   from TColStd,
37      Array1OfInteger from TColStd
38      
39 raises
40     
41     OutOfRange          from Standard,
42     NoSuchObject        from Standard,
43     DomainError         from Standard
44  
45 is
46
47     --
48     --     Global methods - Apply to the whole Line.
49     --     
50     
51     FirstParameter(myclass; C : Lin from gp) returns Real
52         ---C++: inline
53     ;
54
55     LastParameter(myclass; C : Lin from gp) returns Real
56         ---C++: inline
57     ;
58     
59     Continuity(myclass; C : Lin from gp) returns Shape from GeomAbs
60         ---C++: inline
61     ;
62     
63     NbIntervals(myclass; C : Lin from gp; S : Shape from GeomAbs) returns Integer
64         ---Purpose: If necessary,   breaks the line  in  intervals of
65         --          continuity <S>.     And   returns  the  number  of
66         --          intervals.
67         ---C++: inline
68     ;
69     
70     Intervals(myclass; C :Lin from gp; T: out Array1OfReal from TColStd; Sh  :  Shape  from  GeomAbs)
71         ---Purpose: Sets the current working interval.
72     raises
73         OutOfRange from Standard -- if Index < 1 or Index > NbIntervals
74         ---C++: inline
75     ;
76     
77     --
78     --     Local methods - Apply to the current interval.
79     --     By default the current interval is the first.
80     --     
81     
82     IntervalFirst(myclass; C : Lin from gp) returns Real
83         ---Purpose: Returns  the  first  parameter    of  the  current
84         --          interval. 
85         ---C++: inline
86     ;
87     
88     IntervalLast(myclass; C : Lin from gp) returns Real
89         ---Purpose: Returns  the  last  parameter    of  the  current
90         --          interval. 
91         ---C++: inline
92     ;
93     
94     IntervalContinuity(myclass; C : Lin from gp) returns Shape from GeomAbs
95         ---C++: inline
96     ;
97     
98     IsClosed(myclass; C : Lin from gp) returns Boolean
99         ---C++: inline
100     ;
101      
102     IsPeriodic(myclass; C : Lin from gp) returns Boolean
103         ---C++: inline
104     ;
105     
106     Period(myclass; C : Lin from gp) returns Real
107     raises
108         DomainError from Standard -- if the line is not periodic
109         ---C++: inline
110     ;
111      
112     Value(myclass; C : Lin from gp; U : Real) returns Pnt from gp
113          --- Purpose : Computes the point of parameter U on the line.
114         ---C++: inline
115     ;
116     
117     D0 (myclass; C : Lin from gp; U : Real; P : out Pnt from gp)
118          --- Purpose : Computes the point of parameter U on the line.
119         ---C++: inline
120     ;
121     
122     D1 (myclass; C : Lin from gp; U : Real; P : out Pnt from gp ; V : out Vec from gp)
123          --- Purpose : Computes the point of parameter U on the line with its
124          --  first derivative.
125      raises 
126         DomainError from Standard
127         --- Purpose : Raised if the continuity of the current interval
128         --  is not C1.
129         ---C++: inline
130     ;
131     
132     D2 (myclass; C : Lin from gp; U : Real; P : out Pnt from gp; V1, V2 : out Vec from gp)
133         --- Purpose :
134         --  Returns the point P of parameter U, the first and second
135         --  derivatives V1 and V2.
136      raises 
137         DomainError from Standard
138         --- Purpose : Raised if the continuity of the current interval
139         --  is not C2.
140         ---C++: inline
141     ;
142
143     D3 (myclass; C : Lin from gp; U : Real; P : out Pnt from gp; V1, V2, V3 : out Vec from gp)
144         --- Purpose :
145         --  Returns the point P of parameter U, the first, the second 
146         --  and the third derivative.
147      raises 
148         DomainError from Standard
149         --- Purpose : Raised if the continuity of the current interval
150         --  is not C3.
151         ---C++: inline
152     ;
153         
154     DN (myclass; C : Lin from gp; U : Real; N : Integer)   returns Vec from gp
155         --- Purpose :
156         --  The returned vector gives the value of the derivative for the 
157         --  order of derivation N.
158      raises  
159         DomainError from Standard,
160         --- Purpose : Raised if the continuity of the current interval
161         --  is not CN.
162         OutOfRange from Standard
163         --- Purpose : Raised if N < 1.            
164         ---C++: inline
165     ;
166
167     Resolution(myclass; C : Lin from gp; R3d : Real) returns Real
168          ---Purpose :  Returns the parametric  resolution corresponding
169          --         to the real space resolution <R3d>.
170         ---C++: inline
171     ;   
172         
173     GetType(myclass; C : Lin from gp) returns CurveType from GeomAbs
174         ---Purpose: Returns  the  type of the   line  in the  current
175         --          interval :   Line,   Circle,   Ellipse, Hyperbola,
176         --          Parabola, BezierCurve, BSplineCurve, OtherCurve.
177         ---C++: inline
178     ;
179
180     --
181     --     The following methods must  be called when GetType returned
182     --     the corresponding type.
183     --     
184
185      Line(myclass; C : Lin from gp) returns Lin from gp
186      raises 
187         NoSuchObject from Standard
188         ---C++: inline
189     ;
190      
191      Circle(myclass; C : Lin from gp) returns Circ from gp
192      raises 
193         NoSuchObject from Standard
194         ---C++: inline
195     ;
196      
197      Ellipse(myclass; C : Lin from gp) returns Elips from gp
198      raises 
199         NoSuchObject from Standard
200         ---C++: inline
201     ;
202      
203      Hyperbola(myclass; C : Lin from gp) returns  Hypr from gp
204      raises 
205         NoSuchObject from Standard
206         ---C++: inline
207     ;
208      
209      Parabola(myclass; C : Lin from gp) returns Parab from gp
210      raises 
211         NoSuchObject from Standard
212         ---C++: inline
213     ;
214      
215      Bezier(myclass; C : Lin from gp) returns BezierCurve from Geom
216      raises 
217         NoSuchObject from Standard
218         ---C++: inline
219     ;
220      
221      BSpline(myclass; C : Lin from gp) returns BSplineCurve from Geom
222      raises 
223         NoSuchObject from Standard
224         ---C++: inline
225     ;
226      
227      Degree(myclass; C : Lin from gp) returns Integer
228      raises 
229         NoSuchObject from Standard
230         ---C++: inline
231     ;
232      
233      NbPoles(myclass; C : Lin from gp) returns Integer
234      raises 
235         NoSuchObject from Standard
236         ---C++: inline
237     ;
238      
239      Poles(myclass; C : Lin from gp; TP : in out Array1OfPnt from TColgp)
240      raises 
241         NoSuchObject from Standard,
242         OutOfRange   from Standard -- if TP has not length NbPoles
243         ---C++: inline
244      ;
245      
246      IsRational(myclass; C : Lin from gp) returns Boolean
247      raises
248         NoSuchObject from Standard
249         ---C++: inline
250      ;
251     
252      PolesAndWeights(myclass; C : Lin from gp; TP : in out Array1OfPnt from  TColgp; 
253                                             TW : in out Array1OfReal from TColStd)
254      raises 
255         NoSuchObject from Standard,
256         OutOfRange   from Standard -- if TW has not length NbPoles
257         ---C++: inline
258      ;
259     
260      NbKnots(myclass; C : Lin from gp) returns Integer
261      raises 
262         NoSuchObject from Standard
263         ---C++: inline
264     ;
265      
266      KnotsAndMultiplicities(myclass; C : Lin from gp;TK : in out Array1OfReal  from  TColStd; 
267                                                   TM : in out Array1OfInteger from TColStd)
268      raises 
269         NoSuchObject from Standard,
270         OutOfRange   from Standard --  if TK has not length NbKnots
271         ---C++: inline
272      ;
273
274
275     NbSamples(myclass; C: Lin from gp; U0,U1: Real from Standard) 
276     ---C++:inline
277     returns Integer from Standard;
278
279 --modified by NIZHNY-MKK  Tue Nov  1 18:49:37 2005
280     SamplePars(myclass;  C: Lin from gp; U0,U1: Real from Standard;  
281                          Defl: Real from Standard; NbMin: Integer  from  Standard; 
282                          Pars: in  out HArray1OfReal from TColStd);
283
284 end LineTool;