0024947: Redesign OCCT legacy type system -- automatic
[occt.git] / src / ChFiDS / ChFiDS_ElSpine.cdl
1 -- Created on: 1995-05-04
2 -- Created by: Laurent BOURESCHE
3 -- Copyright (c) 1995-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 ElSpine from ChFiDS inherits Curve from Adaptor3d
18
19         ---Purpose: Elementary  Spine for cheminements and approximations.
20
21 uses
22     Pnt          from gp,
23     Vec          from gp,  
24     Lin          from gp,   
25     Circ         from gp,  
26     Elips        from gp,  
27     Hypr         from gp,  
28     Parab        from gp,   
29     Ax1          from gp,
30     BezierCurve  from Geom,  
31     BSplineCurve from Geom, 
32     Array1OfReal from TColStd,
33     SequenceOfAx1 from TColgp,
34     SurfData     from ChFiDS,
35     Shape        from GeomAbs,
36     CurveType    from GeomAbs,
37     HCurve       from Adaptor3d,
38     Curve        from Geom,
39     Curve        from GeomAdaptor
40     
41 raises
42     OutOfRange          from Standard,
43     NoSuchObject        from Standard,
44     DomainError         from Standard
45 is
46
47     Create returns ElSpine from ChFiDS;
48     
49     FirstParameter(me) returns Real from Standard
50     is redefined;
51
52     LastParameter(me) returns Real from Standard
53     is redefined;
54     
55     GetSavedFirstParameter(me) returns Real from Standard;
56     
57     GetSavedLastParameter(me)  returns Real from Standard;
58     
59     Continuity(me) returns Shape from GeomAbs
60     is redefined static;
61
62     NbIntervals(me; S : Shape from GeomAbs) 
63     returns Integer is redefined static;
64
65     Intervals(me; 
66               T : in out Array1OfReal from TColStd; 
67               S : Shape from GeomAbs)
68     is redefined static;
69     
70     Trim(me; First, Last, Tol : Real) returns HCurve from Adaptor3d
71     ---Purpose: Returns    a  curve equivalent   of  <me>  between
72     --          parameters <First>  and <Last>. <Tol>  is used  to
73     --          test for 3d points confusion.
74     is redefined;
75     
76     Resolution(me; R3d : Real) returns Real
77     is redefined;
78     
79     GetType(me) returns CurveType from GeomAbs
80     is redefined;
81
82     IsPeriodic(me) returns Boolean
83     is redefined;
84
85     SetPeriodic(me : in out ; I : Boolean from Standard) is static;
86
87     Period(me) returns Real
88     is redefined;
89
90     Value(me ; AbsC : Real ) returns Pnt from gp 
91     is redefined;
92     
93     D0(me ; AbsC : Real ; P : out Pnt from gp) 
94     is redefined;
95
96     D1(me ; AbsC : Real ; P : out Pnt from gp; V1 : out Vec from gp) 
97     is redefined;
98     
99     D2(me ; AbsC : Real ; P : out Pnt from gp; 
100        V1,V2 : out Vec from gp)  
101     is redefined;
102
103     D3(me ; AbsC : Real ; P : out Pnt from gp; 
104        V1,V2, V3 : out Vec from gp)  
105     is redefined;
106      
107     FirstParameter(me : in out; P : Real from Standard);
108
109     LastParameter(me : in out; P : Real from Standard);
110
111     SaveFirstParameter(me : in out);
112
113     SaveLastParameter(me : in out);
114
115     SetOrigin(me : in out; O : Real from Standard);
116
117     FirstPointAndTgt(me; P : out Pnt from gp; T : out Vec from gp);
118
119     LastPointAndTgt(me; P : out Pnt from gp; T : out Vec from gp);
120
121     NbVertices(me) returns Integer from Standard;
122
123     VertexWithTangent(me; Index : Integer from Standard)
124     returns Ax1 from gp;
125     ---C++: return const &
126
127     SetFirstPointAndTgt(me : in out; P : Pnt from gp; T : Vec from gp);
128
129     SetLastPointAndTgt(me : in out; P : Pnt from gp; T : Vec from gp);
130     
131     AddVertexWithTangent(me : in out; anAx1 : Ax1 from gp);
132
133     SetCurve(me : in out; C : Curve from Geom);
134
135     Previous(me) returns SurfData from ChFiDS;
136     ---C++: return const &
137
138     ChangePrevious(me : in out) returns any SurfData from ChFiDS;
139     ---C++: return &
140
141     Next(me) returns SurfData from ChFiDS;
142     ---C++: return const &
143
144     ChangeNext(me : in out) returns any SurfData from ChFiDS;
145     ---C++: return &
146
147    Line(me) returns Lin from gp
148    raises 
149         NoSuchObject from Standard
150    is redefined static;
151    
152    Circle(me) returns Circ from gp
153    raises 
154         NoSuchObject from Standard
155    is redefined static;
156
157    Ellipse(me) returns Elips from gp
158    raises 
159         NoSuchObject from Standard
160    is redefined static;
161
162    Hyperbola(me) returns  Hypr from gp
163    raises 
164         NoSuchObject from Standard
165    is redefined static;
166
167    Parabola(me) returns Parab from gp
168    raises 
169         NoSuchObject from Standard
170    is redefined static;
171
172                    
173    Bezier(me) returns BezierCurve from Geom
174    raises 
175         NoSuchObject from Standard
176    is redefined static;
177    --Purpose:  Warning : This will NOT make a copy of the
178     --         Bezier Curve : If you want to modify
179     --         the Curve please make a copy yourself
180     --         Also it will NOT trim the surface to
181     --         myFirst/Last.
182     
183    BSpline(me) returns BSplineCurve from Geom
184    raises 
185         NoSuchObject from Standard
186    is redefined static;
187     --  Purpose : Warning : This will NOT make a copy of the
188     --         BSpline Curve : If you want to modify
189     --         the Curve please make a copy yourself
190     --         Also it will NOT trim the surface to
191     --         myFirst/Last.
192 fields
193  
194 curve     : Curve    from GeomAdaptor; 
195
196 ptfirst   : Pnt      from gp;
197 ptlast    : Pnt      from gp;
198 tgfirst   : Vec      from gp;
199 tglast    : Vec      from gp;
200 VerticesWithTangents : SequenceOfAx1 from TColgp;
201
202 previous  : SurfData from ChFiDS;
203 next      : SurfData from ChFiDS; 
204
205 pfirst    : Real     from Standard;
206 plast     : Real     from Standard;
207 period    : Real     from Standard;
208 periodic  : Boolean  from Standard; 
209
210 pfirstsav : Real     from Standard;
211 plastsav  : Real     from Standard;
212
213 end ElSpine;