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