0023948: Wrong intersection between a surface of revolution and a plane.
[occt.git] / src / BRepGProp / BRepGProp_Face.cdl
1 -- Created on: 1993-04-14
2 -- Created by: Isabelle GRIGNON
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 Face  from BRepGProp  
18
19 uses Pnt2d         from gp,
20      Vec2d         from gp,
21      Pnt           from gp,
22      Vec           from gp,
23      Edge          from TopoDS,
24      Face          from TopoDS,
25      Surface       from BRepAdaptor,
26      Curve         from Geom2dAdaptor,
27      Array1OfReal  from TColStd, 
28      HArray1OfReal from TColStd, 
29      IsoType       from GeomAbs
30      
31 is 
32
33   Create (IsUseSpan: Boolean from Standard = Standard_False) 
34         ---Purpose: Constructor. Initializes the object with a flag IsUseSpan 
35         --          that says if it is necessary to define spans on a face. 
36         --          This option has an effect only for BSpline faces. Spans 
37         --          are returned by the methods GetUKnots and GetTKnots.
38         ---C++: inline
39   returns Face from BRepGProp;
40
41   Create(F        : Face    from TopoDS; 
42          IsUseSpan: Boolean from Standard = Standard_False) 
43         ---Purpose: Constructor. Initializes the object with the face and the 
44         --          flag IsUseSpan that says if it is necessary to define 
45         --          spans on a face. This option has an effect only for 
46         --          BSpline faces. Spans are returned by the methods GetUKnots 
47         --          and GetTKnots.
48         ---C++: inline
49   returns Face from BRepGProp;
50
51   Load(me : in out; F : Face from TopoDS) 
52   is static;
53
54   VIntegrationOrder (me) returns Integer
55   is static;
56  
57   NaturalRestriction(me) returns Boolean
58         ---Purpose: Returns Standard_True if the face is not trimmed.
59         ---C++: inline
60   is static;
61
62   Value2d (me; U :Real) returns Pnt2d from gp 
63         ---Purpose: Returns the value of the boundary curve of the face.
64         ---C++: inline
65   is static;
66   
67   SIntOrder (me; Eps :Real) returns Integer
68   is static;
69   SVIntSubs (me) returns Integer
70   is static;
71   SUIntSubs (me) returns Integer
72   is static;
73   UKnots(me; Knots : out Array1OfReal from TColStd)
74   is static;
75   VKnots(me; Knots : out Array1OfReal from TColStd)
76   is static;
77   LIntOrder (me; Eps :Real) returns Integer
78   is static;
79   LIntSubs (me) returns Integer
80   is static;
81   LKnots(me; Knots : out Array1OfReal from TColStd)
82   is static;
83  
84   --
85   --   Methods required by GProp
86   --   
87     
88   UIntegrationOrder (me) returns Integer
89         ---Purpose: Returns the number of points required to do the 
90         --          integration in the U parametric direction with 
91         --          a good accuracy.
92   is static;
93
94   Bounds(me; U1,U2,V1,V2 : out Real)
95         ---Purpose: Returns the parametric bounds of the Face.
96   is static;
97   
98   Normal (me;  U, V : Real; P : out Pnt; VNor: out Vec)
99         ---Purpose: Computes the point of parameter U, V on the Face <S> and 
100         --          the normal to the face at this point.
101   is static;
102  
103   Load(me : in out; E : Edge from TopoDS) 
104         ---Purpose: Loading the boundary arc.
105   is static;
106
107   FirstParameter (me) returns Real 
108         ---Purpose: Returns the parametric value of the start point of
109         --          the current arc of curve. 
110         ---C++: inline
111   is static;
112
113   LastParameter (me) returns Real 
114         ---Purpose: Returns the parametric value of the end point of
115         --          the current arc of curve. 
116         ---C++: inline
117   is static;
118
119   IntegrationOrder (me) returns Integer
120         ---Purpose: Returns the number of points required to do the 
121         --          integration along the parameter of curve.
122   is static;
123
124   D12d (me; U : Real ;P  : out Pnt2d from gp ;
125                       V1 : out Vec2d from gp)
126         ---Purpose: Returns the point of parameter U and the first derivative 
127         --          at this point of a boundary curve.
128         ---C++: inline
129   is static;
130
131 -- Modified by skv - Fri Dec  9 16:44:00 2005 Begin 
132   Load(me : in out; IsFirstParam: Boolean from Standard; 
133                     theIsoType  : IsoType from GeomAbs);
134         ---Purpose: Loading the boundary arc. This arc is either a top, bottom, 
135         --          left or right bound of a UV rectangle in which the 
136         --          parameters of surface are defined. 
137         --          If IsFirstParam is equal to Standard_True, the face is 
138         --          initialized by either left of bottom bound. Otherwise it is 
139         --          initialized by the top or right one. 
140         --          If theIsoType is equal to GeomAbs_IsoU, the face is 
141         --          initialized with either left or right bound. Otherwise - 
142         --          with either top or bottom one.
143
144   GetUKnots(me; theUMin  :        Real          from Standard; 
145                 theUMax  :        Real          from Standard; 
146                 theUKnots: in out HArray1OfReal from TColStd);
147         ---Purpose: Returns an array of U knots of the face. The first and last 
148         --          elements of the array will be theUMin and theUMax. The 
149         --          middle elements will be the U Knots of the face greater 
150         --          then theUMin and lower then theUMax in increasing order. 
151         --          If the face is not a BSpline, the array initialized with 
152         --          theUMin and theUMax only.
153
154   GetTKnots(me; theTMin  :        Real          from Standard; 
155                 theTMax  :        Real          from Standard; 
156                 theTKnots: in out HArray1OfReal from TColStd);
157         ---Purpose: Returns an array of combination of T knots of the arc and 
158         --          V knots of the face. The first and last elements of the 
159         --          array will be theTMin and theTMax. The middle elements will 
160         --          be the Knots of the arc and the values of parameters of 
161         --          arc on which the value points have V coordinates close to V 
162         --          knots of face. All the parameter will be greater then 
163         --          theTMin and lower then theTMax in increasing order.
164         --          If the face is not a BSpline, the array initialized with 
165         --          theTMin and theTMax only.
166
167 -- Modified by skv - Fri Dec  9 16:44:00 2005 End
168
169 fields
170
171     mySurface  : Surface from BRepAdaptor;
172     myCurve    : Curve   from Geom2dAdaptor;
173     mySReverse : Boolean from Standard;
174     myIsUseSpan: Boolean from Standard;
175
176 end Face;