0023948: Wrong intersection between a surface of revolution and a plane.
[occt.git] / src / BRep / BRep_CurveRepresentation.cdl
1 -- Created on: 1993-07-05
2 -- Created by: Remi LEQUETTE
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 deferred class CurveRepresentation from BRep inherits TShared from MMgt
18
19         ---Purpose: Root class for the curve representations. Contains
20         --          a location.
21
22 uses
23     Pnt      from gp,
24     Pnt2d    from gp,
25     Shape    from GeomAbs,
26     Curve    from Geom2d,
27     Surface  from Geom,
28     Curve    from Geom,
29     Location from TopLoc,
30     
31     Polygon3D              from Poly,
32     Polygon2D              from Poly,
33     Triangulation          from Poly,
34     PolygonOnTriangulation from Poly
35     
36 raises
37     DomainError from Standard
38
39 is
40
41     Initialize(L : Location from TopLoc);
42     
43     -------------------------------------------------
44     -- What kind of representation
45     -------------------------------------------------
46
47     IsCurve3D(me)                                     returns Boolean
48          ---Purpose: A 3D curve representation.
49     is virtual;
50
51     IsCurveOnSurface(me)                              returns Boolean
52         ---Purpose: A curve in the parametric space of a surface.
53     is virtual;
54
55     IsRegularity(me)                                  returns Boolean
56         ---Purpose: A continuity between two surfaces.
57     is virtual;
58     
59     IsCurveOnClosedSurface(me)                        returns Boolean
60         ---Purpose: A curve with two parametric   curves  on the  same
61         --          surface. 
62     is virtual;
63     
64     IsCurveOnSurface(me; S : Surface from Geom; 
65                          L : Location from TopLoc)    returns Boolean
66         ---Purpose: Is it a curve in the parametric space  of <S> with
67         --          location <L>.
68     is virtual;
69     
70     IsRegularity(me; S1,S2 : Surface from Geom; 
71                      L1,L2 : Location from TopLoc)    returns Boolean
72         ---Purpose: Is it  a  regularity between  <S1> and   <S2> with
73         --          location <L1> and <L2>.
74     is virtual;
75
76     IsPolygon3D(me)                   returns Boolean
77         ---Purpose: A 3D polygon representation.
78     is virtual;
79
80
81     IsPolygonOnTriangulation(me)    returns Boolean
82         ---Purpose: A representation by an array of nodes on a 
83         --          triangulation.
84     is virtual;
85
86
87     IsPolygonOnTriangulation(me; T : Triangulation from Poly;
88                                  L : Location from TopLoc)    returns Boolean
89         ---Purpose: Is it a polygon in the definition of <T> with
90         --          location <L>.
91     is virtual;
92
93
94     IsPolygonOnClosedTriangulation(me)    returns Boolean
95         ---Purpose: A representation by two arrays of nodes on a 
96         --          triangulation.
97     is virtual;
98
99
100     IsPolygonOnSurface(me)          returns Boolean
101         ---Purpose: A polygon in the parametric space of a surface.
102     is virtual;
103
104     IsPolygonOnSurface(me;S : Surface  from Geom; 
105                           L : Location from TopLoc)   returns Boolean
106         ---Purpose: Is it a polygon in the parametric space  of <S> with
107         --          location <L>.
108     is virtual;
109
110
111     IsPolygonOnClosedSurface(me)          returns Boolean
112         ---Purpose: Two   2D polygon  representations  in the  parametric
113         --          space of a surface.
114     is virtual;
115
116     -------------------------------------------------
117     -- Location
118     -------------------------------------------------
119
120     Location(me) returns Location from TopLoc
121         ---C++: return const &
122         ---C++: inline
123     is static;
124                 
125     Location(me : mutable; L : Location from TopLoc)
126         ---C++: inline
127     is static;
128                 
129     -------------------------------------------------
130     -- 3d curve
131     -------------------------------------------------
132
133     Curve3D(me) returns any Curve from Geom
134         ---C++: return const &
135     raises
136         DomainError from Standard -- if !IsCurve3D
137     is virtual;
138         
139     Curve3D(me : mutable; C : Curve from Geom)
140     raises
141         DomainError from Standard -- if !IsCurve3D
142     is virtual;
143         
144     -------------------------------------------------
145     -- curve on surface
146     -------------------------------------------------
147         
148     Surface(me) returns any Surface from Geom
149         ---C++: return const &
150     raises
151         DomainError from Standard
152     is virtual;
153
154     PCurve(me) returns any Curve from Geom2d
155         ---C++: return const &
156     raises
157         DomainError from Standard
158     is virtual;
159     
160     PCurve(me : mutable; C : Curve from Geom2d)
161     raises
162         DomainError from Standard
163     is virtual;
164     
165     -------------------------------------------------
166     -- curve on closed surface
167     -------------------------------------------------
168         
169     PCurve2(me) returns any Curve from Geom2d
170         ---C++: return const &
171     raises
172         DomainError from Standard
173     is virtual;
174     
175     PCurve2(me : mutable; C : Curve from Geom2d)
176     raises
177         DomainError from Standard
178     is virtual;
179     
180     
181     -------------------------------------------------
182     -- polygon3d    
183     -------------------------------------------------
184
185     Polygon3D(me) returns any Polygon3D from Poly
186         ---C++: return const&
187     is virtual;
188
189     Polygon3D(me: mutable;P: Polygon3D from Poly)
190     raises
191         DomainError from Standard
192     is virtual;
193
194     -------------------------------------------------
195     -- polygon on surface
196     -------------------------------------------------
197
198     Polygon(me) returns any Polygon2D from Poly
199         ---C++: return const&
200     is virtual;
201
202
203     Polygon(me: mutable;P: Polygon2D from Poly)
204     raises
205         DomainError from Standard
206     is virtual;
207
208     -------------------------------------------------
209     -- polygon on closed surface
210     -------------------------------------------------
211
212     Polygon2(me) returns any Polygon2D from Poly
213         ---C++: return const&
214     is virtual;
215
216
217     Polygon2(me: mutable;P: Polygon2D from Poly)
218     raises
219         DomainError from Standard
220     is virtual;
221
222     -------------------------------------------------
223     -- polygon on triangulation
224     -------------------------------------------------
225     
226     Triangulation(me) returns any Triangulation from Poly
227         ---C++: return const&
228     is virtual;
229     
230
231     PolygonOnTriangulation(me) returns any PolygonOnTriangulation from Poly
232         ---C++: return const&
233     raises
234         DomainError from Standard
235     is virtual;
236
237
238     PolygonOnTriangulation(me: mutable; P: PolygonOnTriangulation from Poly)
239     raises
240         DomainError from Standard
241     is virtual;
242
243     -------------------------------------------------
244     -- polygon on closed triangulation
245     -------------------------------------------------
246
247     PolygonOnTriangulation2(me) returns any PolygonOnTriangulation from  Poly
248         ---C++: return const&
249     raises
250         DomainError from Standard
251     is virtual;
252     
253     
254     PolygonOnTriangulation2(me: mutable; P2: PolygonOnTriangulation from  Poly)
255     raises
256         DomainError from Standard
257     is virtual;
258
259     -------------------------------------------------
260     -- continuity
261     -------------------------------------------------
262         
263     Surface2(me) returns any Surface from Geom
264         ---C++: return const &
265     raises
266         DomainError from Standard
267     is virtual;
268
269     Location2(me) returns Location from TopLoc
270         ---C++: return const &
271     raises
272         DomainError from Standard
273     is virtual;
274
275     Continuity(me) returns Shape from GeomAbs
276         ---C++: return const &
277     raises
278         DomainError from Standard
279     is virtual;
280
281     Continuity(me : mutable; C : Shape from GeomAbs)
282     raises
283         DomainError from Standard
284     is virtual;
285
286
287     Copy(me) returns CurveRepresentation from BRep
288         ---Purpose: Return a copy of this representation.
289     is deferred;
290     
291 fields
292     
293     myLocation : Location from TopLoc is protected;
294
295 end CurveRepresentation;