1 -- Created on: 1994-02-14
3 -- Copyright (c) 1994-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 deferred class HSurface from Adaptor3d
25 inherits TShared from MMgt
27 ---Purpose: Root class for surfaces manipulated by handles, on
28 -- which geometric algorithms work.
29 -- An adapted surface is an interface between the
30 -- services provided by a surface and those required of
31 -- the surface by algorithms which use it.
32 -- A derived concrete class is provided:
33 -- GeomAdaptor_HSurface for a surface from the Geom package.
36 Array1OfReal from TColStd,
38 SurfaceType from GeomAbs,
48 BezierSurface from Geom,
49 BSplineSurface from Geom,
50 Surface from Adaptor3d,
55 OutOfRange from Standard,
56 NoSuchObject from Standard,
57 DomainError from Standard,
58 NotImplemented from Standard
65 -- Access to the surface
68 Surface(me) returns Surface from Adaptor3d
69 ---Purpose: Returns a reference to the Surface inside the HSurface.
71 ---C++: return const &
76 -- Surface methods, they are provided for convenience. Each
77 -- method M() is defined inline as :
79 -- Adaptor3d_HSurface::M() { Surface()->M(); }
81 -- See the class Surface for comments on the methods.
85 FirstUParameter(me) returns Real ;
89 LastUParameter(me) returns Real ;
92 FirstVParameter(me) returns Real ;
95 LastVParameter(me) returns Real ;
98 UContinuity(me) returns Shape from GeomAbs ;
101 VContinuity(me) returns Shape from GeomAbs ;
104 NbUIntervals(me ; S : Shape from GeomAbs) returns Integer ;
107 NbVIntervals(me ; S : Shape from GeomAbs) returns Integer ;
110 UIntervals(me ;T : in out Array1OfReal from TColStd;
111 S : Shape from GeomAbs ) ;
114 VIntervals(me ; T : in out Array1OfReal from TColStd;
115 S : Shape from GeomAbs ) ;
118 UTrim(me; First, Last, Tol : Real) returns HSurface from Adaptor3d ;
121 VTrim(me; First, Last, Tol : Real) returns HSurface from Adaptor3d ;
124 IsUClosed(me) returns Boolean ;
127 IsVClosed(me) returns Boolean ;
130 IsUPeriodic(me) returns Boolean ;
133 UPeriod(me) returns Real ;
136 IsVPeriodic(me) returns Boolean ;
139 VPeriod(me) returns Real ;
142 Value (me; U, V : Real) returns Pnt from gp;
145 D0 (me; U, V : Real; P : out Pnt from gp) ;
148 D1 (me; U, V : Real; P : out Pnt from gp;
149 D1U, D1V : out Vec from gp) ;
152 D2 (me; U, V : Real; P : out Pnt from gp;
153 D1U, D1V, D2U, D2V, D2UV : out Vec from gp) ;
157 D3 (me; U, V : Real; P : out Pnt from gp;
158 D1U, D1V, D2U, D2V, D2UV,
159 D3U, D3V, D3UUV, D3UVV : out Vec from gp) ;
162 DN (me; U, V : Real; Nu, Nv : Integer) returns Vec from gp ;
165 UResolution(me; R3d : Real ) returns Real ;
168 VResolution(me; R3d : Real ) returns Real ;
171 GetType(me) returns SurfaceType from GeomAbs ;
174 Plane(me) returns Pln from gp ;
177 Cylinder(me) returns Cylinder from gp ;
180 Cone(me) returns Cone from gp ;
183 Sphere(me) returns Sphere from gp ;
186 Torus(me) returns Torus from gp ;
189 UDegree(me) returns Integer ;
193 NbUPoles(me) returns Integer ;
196 VDegree(me) returns Integer ;
200 NbVPoles(me) returns Integer ;
205 NbUKnots(me) returns Integer ;
209 NbVKnots(me) returns Integer ;
213 IsURational(me) returns Boolean ;
217 IsVRational(me) returns Boolean ;
221 Bezier(me) returns BezierSurface from Geom ;
224 BSpline(me) returns BSplineSurface from Geom ;
227 AxeOfRevolution(me) returns Ax1 from gp ;
230 Direction(me) returns Dir from gp ;
233 BasisCurve(me) returns HCurve from Adaptor3d ;
236 BasisSurface(me) returns HSurface from Adaptor3d;
239 OffsetValue(me) returns Real from Standard;