0025416: Wrong section curve
[occt.git] / src / IntPatch / IntPatch_WLine.cdl
1 -- Created on: 1991-05-27
2 -- Created by: Isabelle GRIGNON
3 -- Copyright (c) 1991-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 WLine from IntPatch
18
19 inherits PointLine from IntPatch 
20
21         ---Purpose: Definition of set of points as a result of the intersection
22         --          between 2 parametrised patches.
23
24 uses
25      HCurve2d        from Adaptor2d,
26      Point           from IntPatch,
27      SequenceOfPoint from IntPatch,
28      PntOn2S         from IntSurf,
29      LineOn2S        from IntSurf,
30      TypeTrans       from IntSurf,
31      Situation       from IntSurf,
32      Box2d           from Bnd,
33      Box             from Bnd,
34      Pnt2d           from gp,
35      Pnt             from gp
36
37 raises OutOfRange  from Standard,
38        DomainError from Standard
39 is
40     Create(Line: LineOn2S from IntSurf; Tang: Boolean from Standard;
41            Trans1, Trans2: TypeTrans from IntSurf)
42     
43         ---Purpose: Creates a WLine as an intersection when the 
44         --          transitions are In or Out.
45     
46         returns WLine from IntPatch;
47
48
49     Create(Line: LineOn2S from IntSurf; Tang: Boolean from Standard;
50            Situ1,Situ2: Situation from IntSurf)
51     
52         ---Purpose: Creates a WLine as an intersection when the 
53         --          transitions are Touch.
54     
55         returns WLine from IntPatch;
56
57
58     Create(Line: LineOn2S from IntSurf; Tang: Boolean from Standard)
59     
60         ---Purpose: Creates a WLine as an intersection when the 
61         --          transitions are Undecided.
62     
63         returns WLine from IntPatch;
64
65
66     AddVertex(me: mutable; Pnt: Point from IntPatch)
67     
68         ---Purpose: Adds a vertex in the list.
69
70         ---C++: inline
71
72         is static;
73
74     
75     SetPoint(me:mutable; Index: Integer from Standard; Pnt: Point from IntPatch)
76     
77         ---Purpose: Set the Point of index <Index> in the LineOn2S
78     
79         is static;
80     
81     
82     Replace(me: mutable; Index: Integer from Standard; Pnt: Point from IntPatch)
83     
84         ---Purpose: Replaces the element of range Index in the list
85         --          of points.
86         --          The exception OutOfRange is raised when
87         --          Index <= 0 or Index > NbVertex.
88
89         ---C++: inline
90
91         raises OutOfRange from Standard
92         
93         is static;
94
95
96     SetFirstPoint(me: mutable; IndFirst: Integer from Standard) is static;
97
98         ---C++: inline
99
100
101     SetLastPoint(me: mutable; IndLast: Integer from Standard) is static;
102
103         ---C++: inline
104
105
106     NbPnts(me)
107     
108         ---Purpose: Returns the number of intersection points.
109
110         returns Integer from Standard
111         ---C++: inline
112         
113         is static;
114
115
116     Point(me; Index: Integer from Standard)
117     
118         ---Purpose: Returns the intersection point of range Index.
119
120         returns PntOn2S from IntSurf
121         ---C++: inline
122         ---C++: return const&
123         
124         raises OutOfRange from Standard
125         --- The exception OutOfRange is raised if Index <= 0 or Index > NbPnts.
126         
127         is static;
128
129
130     HasFirstPoint(me)
131     
132         ---Purpose: Returns True if the line has a known First point.
133         --          This point is given by the method FirstPoint().
134     
135         returns Boolean from Standard
136         ---C++: inline
137         
138         is static;
139
140
141     HasLastPoint(me)
142     
143         ---Purpose: Returns True if the line has a known Last point.
144         --          This point is given by the method LastPoint().
145     
146         returns Boolean from Standard
147         ---C++: inline
148         
149         is static;
150
151
152     FirstPoint(me)
153     
154         ---Purpose: Returns the Point corresponding to the FirstPoint.
155     
156         returns Point from IntPatch
157         ---C++: inline
158         ---C++: return const&
159         
160         raises DomainError from Standard
161         --- The exception DomainError is raised when HasFirstPoint
162         --  returns False.
163         
164         is static;
165
166
167     LastPoint(me)
168     
169         ---Purpose: Returns the Point corresponding to the LastPoint.
170     
171         returns Point from IntPatch
172         ---C++: inline
173         ---C++: return const&
174         
175         raises DomainError from Standard
176         --- The exception DomainError is raised when HasFirstPoint
177         --  returns False.
178         
179         is static;
180
181
182     FirstPoint(me; Indfirst: out Integer from Standard)
183     
184         ---Purpose: Returns the Point corresponding to the FirstPoint.
185         --          Indfirst is the index of the first in the list
186         --          of vertices.
187     
188         returns Point from IntPatch
189         ---C++: inline
190         ---C++: return const&
191         
192         raises DomainError from Standard
193         --- The exception DomainError is raised when HasFirstPoint
194         --  returns False.
195         
196         is static;
197
198
199     LastPoint(me; Indlast: out Integer from Standard)
200     
201         ---Purpose: Returns the Point corresponding to the LastPoint.
202         --          Indlast is the index of the last in the list
203         --          of vertices.
204     
205         returns Point from IntPatch
206         ---C++: inline
207         ---C++: return const&
208         
209         raises DomainError from Standard
210         --- The exception DomainError is raised when HasFirstPoint
211         --  returns False.
212         
213         is static;
214
215
216     NbVertex(me)
217     
218         returns Integer from Standard
219         ---C++: inline
220         
221         is static;
222
223
224     Vertex(me; Index: Integer from Standard)
225     
226         ---Purpose: Returns the vertex of range Index on the line.
227     
228         returns Point from IntPatch
229         ---C++: inline
230         ---C++: return const&
231         
232         raises OutOfRange from Standard 
233         --- The exception OutOfRange is raised if Index <= 0 or
234         --  Index > NbVertex.
235
236         is static;
237
238
239     ComputeVertexParameters(me: mutable;
240                             Tol: Real from Standard;
241                             hasBeenAdded: Boolean from Standard = Standard_False)
242     
243         ---Purpose: Set the parameters of all the vertex on the line.
244         --          if a vertex is already in the line, 
245         --             its parameter is modified
246         --          else a new point in the line is inserted.
247         is static; 
248
249     Curve(me) 
250     
251        returns LineOn2S from IntSurf
252        is static;
253        
254
255     IsOutSurf1Box(me: mutable; P1: Pnt2d from gp )
256         returns Boolean from Standard
257         is static;
258
259     IsOutSurf2Box(me: mutable; P1: Pnt2d from gp )
260         returns Boolean from Standard
261         is static;
262         
263     IsOutBox(me: mutable; P: Pnt from gp)
264         returns Boolean from Standard
265         is static;
266
267
268     SetPeriod(me: mutable; pu1,pv1,pu2,pv2: Real from Standard)
269         is static;
270         
271
272     U1Period(me) 
273         returns Real from Standard
274         is static;
275
276     V1Period(me) 
277         returns Real from Standard
278         is static;
279
280     U2Period(me) 
281         returns Real from Standard
282         is static;
283
284     V2Period(me) 
285         returns Real from Standard
286         is static;
287         
288
289
290     SetArcOnS1(me: mutable ; A : HCurve2d from Adaptor2d)
291         is static;
292         
293     HasArcOnS1(me)
294         returns Boolean from Standard
295         is static;
296     
297     GetArcOnS1(me) 
298         ---C++: return const&
299         returns HCurve2d from Adaptor2d;
300
301     SetArcOnS2(me: mutable ; A : HCurve2d from Adaptor2d)
302         is static;
303         
304     HasArcOnS2(me)
305         returns Boolean from Standard
306         is static;
307     
308     GetArcOnS2(me) 
309         ---C++: return const&
310         returns HCurve2d from Adaptor2d;
311
312     ClearVertexes(me: mutable)
313       is static;
314     
315     RemoveVertex(me: mutable;
316                   theIndex : Integer from Standard)
317       is static;
318       
319     InsertVertexBefore(me: mutable;
320                         theIndex : Integer from Standard;
321                         thePnt   : Point from IntPatch)
322       is static;
323     
324           Dump(me)
325     
326       is static;
327
328  
329 fields
330
331     curv : LineOn2S        from IntSurf;
332     fipt : Boolean         from Standard;
333     lapt : Boolean         from Standard;
334     indf : Integer         from Standard;
335     indl : Integer         from Standard;
336     svtx : SequenceOfPoint from IntPatch;
337     
338     Buv1 : Box2d        from Bnd;
339     Buv2 : Box2d        from Bnd;
340     Bxyz : Box          from Bnd;
341
342     u1period : Real from Standard;
343     v1period : Real from Standard;
344     u2period : Real from Standard;
345     v2period : Real from Standard;
346     
347     hasArcOnS1   : Boolean from Standard;
348     theArcOnS1   : HCurve2d from Adaptor2d;
349     hasArcOnS2   : Boolean from Standard;
350     theArcOnS2   : HCurve2d from Adaptor2d;
351     
352 end WLine;