7fd59977 |
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 | |
145 | myUi_1 : HArray1OfReal from TColStd; |
146 | mySi_1 : HArray1OfReal from TColStd; |
147 | myUi_2 : HArray1OfReal from TColStd; |
148 | mySi_2 : HArray1OfReal from TColStd; |
149 | end CurvlinFunc; |