Commit | Line | Data |
---|---|---|
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; | |
41194117 K |
144 | myPrevS : Real from Standard; -- should be mutable |
145 | myPrevU : Real from Standard; -- should be mutable | |
146 | ||
7fd59977 | 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; |