87abdbdbc5c6f3b3526776648d53a27581ba2564
[occt.git] / src / Blend / Blend_Line.cdl
1 -- Created on: 1993-12-02
2 -- Created by: Jacques GOUSSARD
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 generic class Line from Blend
18     (TheVertex        as any;
19      TheArc           as any;
20      ThePointOnRst    as any; -- as PointOnRst from Blend(TheArc)
21      TheSequenceOfPointOnRst as any;
22      TheExtremity     as any) -- as Extremity from Blend (TheVertex,TheArc,
23                               --     ThePointOnRst,TheSequenceOfPointOnRst)
24
25
26
27 inherits TShared from MMgt
28
29
30 uses Point           from Blend,
31      SequenceOfPoint from Blend,
32      TypeTrans       from IntSurf
33
34
35 raises OutOfRange from Standard
36
37
38 is
39
40     Create
41     
42         returns mutable Line from Blend;
43
44
45
46     Clear(me: mutable)
47     
48         ---Purpose: Clears the content of the line.
49
50         is static;
51
52
53
54     Append(me: mutable; P: Point from Blend)
55     
56         ---Purpose: Adds a point in the line.
57
58         ---C++: inline
59         is static;
60
61
62     Prepend(me: mutable; P: Point from Blend)
63     
64         ---Purpose: Adds a point in the line at the first place.
65
66         ---C++: inline
67         is static;
68
69     InsertBefore(me : mutable;  
70                  Index : Integer from Standard; 
71                  P : Point from Blend)  
72                  
73         ---Purpose: Adds a point in the line at the first place.
74
75         ---C++: inline
76         is static;
77
78
79     Remove(me: mutable; FromIndex,ToIndex: Integer from Standard)
80     
81         ---Purpose: Removes  from  <me>    all  the  items  of
82         -- positions between <FromIndex> and <ToIndex>.
83         -- Raises an exception if the indices are out of bounds.
84         ---C++: inline
85         raises OutOfRange from Standard
86         is static;
87
88
89     Set(me: mutable; TranS1,TranS2: TypeTrans from IntSurf)
90     
91         ---Purpose: Sets the value of the transition of the line on S1 and
92         --          the line on S2.
93     
94         is static;
95
96
97     Set(me: mutable; Trans: TypeTrans from IntSurf)
98     
99         ---Purpose: Sets the value of the transition of the line on a surface
100     
101         is static;
102
103
104     SetStartPoints(me: mutable; StartPt1,StartPt2: TheExtremity)
105     
106         ---Purpose: Sets the values of the start points for the line.
107         ---C++: inline
108
109         is static;
110
111
112     SetEndPoints(me: mutable; EndPt1,EndPt2: TheExtremity)
113     
114         ---Purpose: Sets tne values of the end points for the line.
115     
116         ---C++: inline
117
118         is static;
119
120
121     NbPoints(me)
122     
123         ---Purpose: Returns the number of points in the line.
124     
125         returns Integer from Standard
126         ---C++: inline
127         
128         is static;
129
130
131     Point(me; Index: Integer from Standard)
132     
133         ---Purpose: Returns the point of range Index.
134     
135         returns Point from Blend
136         ---C++: inline
137         ---C++: return const&
138
139         raises OutOfRange from Standard
140         --- The exception OutOfRange is raised when Index <=0 or 
141         --  Index > NbPoints
142
143         is static;
144
145
146     TransitionOnS1(me)
147     
148         ---Purpose: Returns the type of the transition of the line defined
149         --          on the first surface. The transition is "constant"
150         --          along the line.
151         --          The transition is IN if the line is oriented in such
152         --          a way that the system of vectors (N,DRac,T) is
153         --          right-handed, where
154         --                N is the normal to the first surface at a point P,
155         --                DRac is a vector tangent to the blending patch,
156         --                oriented towards the valid part of this patch,
157         --                T  is the tangent to the line on S1 at P.
158         --          The transitioon is OUT when the system of vectors is 
159         --          left-handed.
160
161         returns TypeTrans from IntSurf
162         ---C++: inline
163
164         is static;
165
166
167     TransitionOnS2(me)
168     
169         ---Purpose: Returns the type of the transition of the line defined
170         --          on the second surface. The transition is "constant"
171         --          along the line.
172
173         returns TypeTrans from IntSurf
174         ---C++: inline
175
176         is static;
177
178
179     StartPointOnFirst(me)
180     
181         ---Purpose: Returns the start point on S1.
182     
183         returns TheExtremity
184         ---C++: inline
185         ---C++: return const&
186
187         is static;
188         
189
190     StartPointOnSecond(me)
191     
192         ---Purpose: Returns the start point on S2
193     
194         returns TheExtremity
195         ---C++: inline
196         ---C++: return const&
197
198         is static;
199
200
201     EndPointOnFirst(me)
202     
203         ---Purpose: Returns the end point on S1.
204     
205         returns TheExtremity
206         ---C++: inline
207         ---C++: return const&
208         
209         is static;
210
211
212     EndPointOnSecond(me)
213     
214         ---Purpose: Returns the point on S2.
215     
216         returns TheExtremity
217         ---C++: inline
218         ---C++: return const&
219
220         is static;
221
222
223     TransitionOnS(me)
224     
225         ---Purpose: Returns the type of the transition of the line defined
226         --          on the surface.
227
228         returns TypeTrans from IntSurf
229         ---C++: inline
230
231         is static;
232
233
234 fields
235     seqpt  : SequenceOfPoint from Blend;
236     tras1  : TypeTrans       from IntSurf;
237     tras2  : TypeTrans       from IntSurf;
238     stp1   : TheExtremity;
239     stp2   : TheExtremity;
240     endp1  : TheExtremity;
241     endp2  : TheExtremity;
242     hass1  : Boolean         from Standard;
243     hass2  : Boolean         from Standard;
244 end;