1 -- Created on: 1992-06-30
2 -- Created by: Laurent BUCHARD
3 -- Copyright (c) 1992-1999 Matra Datavision
4 -- Copyright (c) 1999-2012 OPEN CASCADE SAS
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.
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.
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.
23 class Curve from IntAna
25 ---Purpose: Definition of a parametric Curve which is the result
26 -- of the intersection between two quadrics.
33 SurfaceType from GeomAbs
35 raises DomainError from Standard
41 ---Purpose: Empty Constructor
43 returns Curve from IntAna;
46 SetCylinderQuadValues(me :in out;
47 Cylinder: Cylinder from gp;
48 Qxx,Qyy,Qzz,Qxy,Qxz,Qyz,Qx,Qy,Qz,Q1 : Real;
49 Tol,DomInf,DomSup : Real;
50 TwoZForATheta : Boolean from Standard;
51 ZIsPositive : Boolean from Standard)
53 ---Purpose: Sets the parameters used to compute Points and Derivative
58 SetConeQuadValues(me :in out;
60 Qxx,Qyy,Qzz,Qxy,Qxz,Qyz,Qx,Qy,Qz,Q1 : Real;
61 Tol,DomInf,DomSup : Real;
62 TwoZForATheta : Boolean from Standard;
63 ZIsPositive : Boolean from Standard)
65 ---Purpose: Sets the parameters used to compute Points and
66 -- Derivative on the curve.
73 ---Purpose: Returns TRUE if the curve is not infinite at the
74 -- last parameter or at the first parameter of the domain.
76 returns Boolean from Standard
81 Domain(me ; Theta1,Theta2 : out Real)
83 ---Purpose: Returns the paramatric domain of the curve.
85 raises DomainError from Standard
86 -- The exception DomainError is raised if IsRestricted
94 ---Purpose: Returns TRUE if the function is constant.
96 returns Boolean from Standard
103 ---Purpose: Returns TRUE if the domain is open at the beginning.
105 returns Boolean from Standard
112 ---Purpose: Returns TRUE if the domain is open at the end.
114 returns Boolean from Standard
120 Theta: Real from Standard)
122 ---Purpose: Returns the point at parameter Theta on the curve.
126 raises DomainError from Standard
127 -- The exception DomainError is raised if Theta is not in
133 D1u(me: in out ; Theta: Real from Standard;
134 P: out Pnt from gp; V: out Vec from gp)
136 ---Purpose: Returns the point and the first derivative at parameter
137 -- Theta on the curve.
139 returns Boolean from Standard
141 raises DomainError from Standard
142 -- The exception DomainError is raised if Theta is not in
148 FindParameter(me; P: Pnt from gp; Para: out Real from Standard)
150 ---Purpose: Tries to find the parameter of the point P on the curve.
151 -- If the method returns False, the "projection" is
152 -- impossible, and the value of Para is not significant.
153 -- If the method returns True, Para is the parameter of the
154 -- nearest intersection between the curve and the iso-theta
157 returns Boolean from Standard
162 ---------------------------------------------------------------
168 SetIsFirstOpen(me : in out; Flag: Boolean from Standard)
170 ---Purpose: If flag is True, the Curve is not defined at the
171 -- first parameter of its domain.
175 SetIsLastOpen(me : in out; Flag: Boolean from Standard)
177 ---Purpose: If flag is True, the Curve is not defined at the
178 -- first parameter of its domain.
182 InternalValue(me; Theta1,Theta2: Real from Standard)
184 ---Purpose: Protected function.
191 InternalUVValue(me; Param: Real from Standard;
192 U,V,A,B,C,Co,Si,Di: out Real from Standard)
194 ---Purpose: Protected function.
200 Theta1:Real from Standard;
201 Theta2:Real from Standard)
202 raises DomainError from Standard;
207 Z0Cte: Real from Standard;
208 Z0Sin: Real from Standard;
209 Z0Cos: Real from Standard;
210 Z0SinSin: Real from Standard;
211 Z0CosCos: Real from Standard;
212 Z0CosSin: Real from Standard;
214 Z1Cte: Real from Standard;
215 Z1Sin: Real from Standard;
216 Z1Cos: Real from Standard;
217 Z1SinSin: Real from Standard;
218 Z1CosCos: Real from Standard;
219 Z1CosSin: Real from Standard;
221 Z2Cte: Real from Standard;
222 Z2Sin: Real from Standard;
223 Z2Cos: Real from Standard;
224 Z2SinSin: Real from Standard;
225 Z2CosCos: Real from Standard;
226 Z2CosSin: Real from Standard;
228 TwoCurves : Boolean from Standard;
229 TakeZPositive : Boolean from Standard;
230 Tolerance : Real from Standard;
231 DomainInf : Real from Standard;
232 DomainSup : Real from Standard;
234 RestrictedInf : Boolean from Standard;
235 RestrictedSup : Boolean from Standard;
238 LastZ : Real from Standard;
239 LastDZ : Real from Standard;
241 firstbounded : Boolean from Standard;
242 lastbounded : Boolean from Standard;
245 typequadric : SurfaceType from GeomAbs;
247 RCyl : Real from Standard;
248 Angle : Real from Standard;