0024023: Revamp the OCCT Handle -- ambiguity
[occt.git] / src / Approx / Approx_CurvlinFunc.cdl
1 -- Created on: 1998-05-12
2 -- Created by: Roman BORISOV
3 -- Copyright (c) 1998-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 CurvlinFunc from Approx  inherits TShared from MMgt
18
19         ---Purpose: defines an abstract curve with 
20         --          curvilinear parametrization
21         --          
22         --          
23         --          
24         --          
25
26 uses
27     HCurve from Adaptor3d,  
28     Curve  from Adaptor3d,
29     HCurve2d from Adaptor2d, 
30     HSurface from Adaptor3d, 
31     Shape from GeomAbs, 
32     Array1OfReal  from  TColStd,  
33     HArray1OfReal  from  TColStd,
34     Pnt  from  gp, 
35     Vec  from  gp
36
37 raises
38     OutOfRange from Standard, 
39     DomainError from Standard,
40     ConstructionError  from  Standard 
41
42 is 
43     Create(C:  HCurve from Adaptor3d; Tol: Real) 
44     returns  CurvlinFunc;
45     
46     Create(C2D:  HCurve2d from Adaptor2d;  S:  HSurface from Adaptor3d; Tol: Real) 
47     returns  CurvlinFunc;
48      
49     Create(C2D1,  C2D2:  HCurve2d from Adaptor2d;  S1,  S2:  HSurface from Adaptor3d; Tol: Real)
50     returns  CurvlinFunc; 
51      
52     SetTol(me:  mutable;  Tol: Real) 
53     ---Purpose Update the tolerance to used            
54     is  static;
55
56     Init(me:  mutable) 
57     is  private;
58  
59     Init(me; C: in out Curve from Adaptor3d;   
60              Si: out HArray1OfReal from  TColStd;   
61              Ui: out HArray1OfReal from  TColStd) 
62     is  private;
63
64     FirstParameter(me) returns Real;
65
66     LastParameter(me) returns Real;
67
68     NbIntervals(me; S : Shape from GeomAbs) returns Integer;
69         ---Purpose: Returns  the number  of  intervals for  continuity
70         --          <S>. May be one if Continuity(me) >= <S>
71     
72     Intervals(me; T : in out Array1OfReal from TColStd; 
73                   S : Shape from GeomAbs);
74         ---Purpose: Stores in <T> the  parameters bounding the intervals
75         --          of continuity <S>.
76         --          
77         --          The array must provide  enough room to  accomodate
78         --          for the parameters. i.e. T.Length() > NbIntervals()
79
80     Trim(me:  mutable;  First,  Last,  Tol:  Real  from  Standard) 
81     raises  OutOfRange  from  Standard; 
82         --- Purpose : if First < 0 or Last > 1
83
84     Length(me:  mutable)       
85          --- Purpose : Computes length of the curve.
86     is  static;
87
88     Length(me; C:  in out Curve  from  Adaptor3d;  
89                           FirstU,  LasrU:  Real) returns  Real      
90          --- Purpose : Computes length of the curve segment.
91   
92     is  static;
93     GetLength(me)  returns  Real; 
94
95     GetUParameter(me;  C: in out Curve  from  Adaptor3d;  S:  Real;  NumberOfCurve:  Integer)  returns  Real;        
96          --- Purpose : returns  original parameter correponding S.  if
97          --  Case == 1 computation is performed on myC2D1 and mySurf1,
98          --  otherwise it is done on myC2D2 and mySurf2.
99
100     GetSParameter(me;  U:  Real)  returns  Real;             
101          --- Purpose : returns original parameter correponding S.
102
103     GetSParameter(me;  C:  in out Curve  from  Adaptor3d;  U,  Length:  Real)  returns  Real         
104          --- Purpose : returns curvilinear parameter correponding U.
105     is  private;
106
107     EvalCase1(me; S:  Real; Order: Integer; 
108               Result: out Array1OfReal  from  TColStd) --  dim(Result) = 3 
109     returns  Boolean  from  Standard 
110
111     raises 
112         ConstructionError  from  Standard; 
113         --- Purpose : if myCase != 1
114     
115     EvalCase2(me; S:  Real; Order: Integer;
116               Result: out Array1OfReal  from  TColStd) --  dim(Result) = 5 
117     returns  Boolean  from  Standard
118     raises 
119         ConstructionError  from  Standard; 
120         --- Purpose : if myCase != 2
121
122     EvalCase3(me:  mutable; S:  Real; Order: Integer;
123               Result: out Array1OfReal  from  TColStd)  --  dim(Result) = 7 
124     returns  Boolean  from  Standard
125     raises 
126         ConstructionError  from  Standard; 
127         --- Purpose : if myCase != 3
128
129     EvalCurOnSur(me; S: Real; Order: Integer;
130                 Result: out Array1OfReal  from  TColStd; 
131                 NumberOfCurve: Integer) 
132     returns  Boolean  from  Standard            
133     is private;
134                  
135 fields
136  
137     myC3D    :  HCurve    from  Adaptor3d; 
138     myC2D1   :  HCurve2d  from  Adaptor2d;
139     myC2D2   :  HCurve2d  from  Adaptor2d; 
140     mySurf1  :  HSurface  from  Adaptor3d; 
141     mySurf2  :  HSurface  from  Adaptor3d; 
142     myCase   :  Integer   from  Standard;  --  [1..3]
143     myFirstS :  Real      from  Standard;
144     myLastS  :  Real      from  Standard; 
145     myFirstU1:  Real      from  Standard;
146     myLastU1 :  Real      from  Standard; 
147     myFirstU2:  Real      from  Standard;
148     myLastU2 :  Real      from  Standard; 
149     myLength :  Real      from  Standard; 
150     myLength1:  Real      from  Standard;
151     myLength2:  Real      from  Standard;
152     myTolLen :  Real      from  Standard;
153     myPrevS  :  Real      from  Standard; -- should be mutable
154     myPrevU  :  Real      from  Standard; -- should be mutable
155
156     myUi_1   :  HArray1OfReal  from  TColStd;
157     mySi_1   :  HArray1OfReal  from  TColStd;
158     myUi_2   :  HArray1OfReal  from  TColStd;
159     mySi_2   :  HArray1OfReal  from  TColStd;
160 end CurvlinFunc;