Commit | Line | Data |
---|---|---|
b311480e | 1 | -- Created on: 1998-05-12 |
2 | -- Created by: Roman BORISOV | |
3 | -- Copyright (c) 1998-1999 Matra Datavision | |
4 | -- Copyright (c) 1999-2012 OPEN CASCADE SAS | |
5 | -- | |
6 | -- The content of this file is subject to the Open CASCADE Technology Public | |
7 | -- License Version 6.5 (the "License"). You may not use the content of this file | |
8 | -- except in compliance with the License. Please obtain a copy of the License | |
9 | -- at http://www.opencascade.org and read it completely before using this file. | |
10 | -- | |
11 | -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its | |
12 | -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France. | |
13 | -- | |
14 | -- The Original Code and all software distributed under the License is | |
15 | -- distributed on an "AS IS" basis, without warranty of any kind, and the | |
16 | -- Initial Developer hereby disclaims all such warranties, including without | |
17 | -- limitation, any warranties of merchantability, fitness for a particular | |
18 | -- purpose or non-infringement. Please see the License for the specific terms | |
19 | -- and conditions governing the rights and limitations under the License. | |
20 | ||
7fd59977 | 21 | |
22 | ||
23 | class CurvlinFunc from Approx inherits TShared from MMgt | |
24 | ||
25 | ---Purpose: defines an abstract curve with | |
26 | -- curvilinear parametrization | |
27 | -- | |
28 | -- | |
29 | -- | |
30 | -- | |
31 | ||
32 | uses | |
33 | HCurve from Adaptor3d, | |
34 | Curve from Adaptor3d, | |
35 | HCurve2d from Adaptor2d, | |
36 | HSurface from Adaptor3d, | |
37 | Shape from GeomAbs, | |
38 | Array1OfReal from TColStd, | |
39 | HArray1OfReal from TColStd, | |
40 | Pnt from gp, | |
41 | Vec from gp | |
42 | ||
43 | raises | |
44 | OutOfRange from Standard, | |
45 | DomainError from Standard, | |
46 | ConstructionError from Standard | |
47 | ||
48 | is | |
49 | Create(C: HCurve from Adaptor3d; Tol: Real) | |
50 | returns mutable CurvlinFunc; | |
51 | ||
52 | Create(C2D: HCurve2d from Adaptor2d; S: HSurface from Adaptor3d; Tol: Real) | |
53 | returns mutable CurvlinFunc; | |
54 | ||
55 | Create(C2D1, C2D2: HCurve2d from Adaptor2d; S1, S2: HSurface from Adaptor3d; Tol: Real) | |
56 | returns mutable CurvlinFunc; | |
57 | ||
58 | SetTol(me: mutable; Tol: Real) | |
59 | ---Purpose Update the tolerance to used | |
60 | is static; | |
61 | ||
62 | Init(me: mutable) | |
63 | is private; | |
64 | ||
65 | Init(me; C: in out Curve from Adaptor3d; | |
66 | Si: out HArray1OfReal from TColStd; | |
67 | Ui: out HArray1OfReal from TColStd) | |
68 | is private; | |
69 | ||
70 | FirstParameter(me) returns Real; | |
71 | ||
72 | LastParameter(me) returns Real; | |
73 | ||
74 | NbIntervals(me; S : Shape from GeomAbs) returns Integer; | |
75 | ---Purpose: Returns the number of intervals for continuity | |
76 | -- <S>. May be one if Continuity(me) >= <S> | |
77 | ||
78 | Intervals(me; T : in out Array1OfReal from TColStd; | |
79 | S : Shape from GeomAbs); | |
80 | ---Purpose: Stores in <T> the parameters bounding the intervals | |
81 | -- of continuity <S>. | |
82 | -- | |
83 | -- The array must provide enough room to accomodate | |
84 | -- for the parameters. i.e. T.Length() > NbIntervals() | |
85 | ||
86 | Trim(me: mutable; First, Last, Tol: Real from Standard) | |
87 | raises OutOfRange from Standard; | |
88 | --- Purpose : if First < 0 or Last > 1 | |
89 | ||
90 | Length(me: mutable) | |
91 | --- Purpose : Computes length of the curve. | |
92 | is static; | |
93 | ||
94 | Length(me; C: in out Curve from Adaptor3d; | |
95 | FirstU, LasrU: Real) returns Real | |
96 | --- Purpose : Computes length of the curve segment. | |
97 | ||
98 | is static; | |
99 | GetLength(me) returns Real; | |
100 | ||
101 | GetUParameter(me; C: in out Curve from Adaptor3d; S: Real; NumberOfCurve: Integer) returns Real; | |
102 | --- Purpose : returns original parameter correponding S. if | |
103 | -- Case == 1 computation is performed on myC2D1 and mySurf1, | |
104 | -- otherwise it is done on myC2D2 and mySurf2. | |
105 | ||
106 | GetSParameter(me; U: Real) returns Real; | |
107 | --- Purpose : returns original parameter correponding S. | |
108 | ||
109 | GetSParameter(me; C: in out Curve from Adaptor3d; U, Length: Real) returns Real | |
110 | --- Purpose : returns curvilinear parameter correponding U. | |
111 | is private; | |
112 | ||
113 | EvalCase1(me; S: Real; Order: Integer; | |
114 | Result: out Array1OfReal from TColStd) -- dim(Result) = 3 | |
115 | returns Boolean from Standard | |
116 | ||
117 | raises | |
118 | ConstructionError from Standard; | |
119 | --- Purpose : if myCase != 1 | |
120 | ||
121 | EvalCase2(me; S: Real; Order: Integer; | |
122 | Result: out Array1OfReal from TColStd) -- dim(Result) = 5 | |
123 | returns Boolean from Standard | |
124 | raises | |
125 | ConstructionError from Standard; | |
126 | --- Purpose : if myCase != 2 | |
127 | ||
128 | EvalCase3(me: mutable; S: Real; Order: Integer; | |
129 | Result: out Array1OfReal from TColStd) -- dim(Result) = 7 | |
130 | returns Boolean from Standard | |
131 | raises | |
132 | ConstructionError from Standard; | |
133 | --- Purpose : if myCase != 3 | |
134 | ||
135 | EvalCurOnSur(me; S: Real; Order: Integer; | |
136 | Result: out Array1OfReal from TColStd; | |
137 | NumberOfCurve: Integer) | |
138 | returns Boolean from Standard | |
139 | is private; | |
140 | ||
141 | fields | |
142 | ||
143 | myC3D : HCurve from Adaptor3d; | |
144 | myC2D1 : HCurve2d from Adaptor2d; | |
145 | myC2D2 : HCurve2d from Adaptor2d; | |
146 | mySurf1 : HSurface from Adaptor3d; | |
147 | mySurf2 : HSurface from Adaptor3d; | |
148 | myCase : Integer from Standard; -- [1..3] | |
149 | myFirstS : Real from Standard; | |
150 | myLastS : Real from Standard; | |
151 | myFirstU1: Real from Standard; | |
152 | myLastU1 : Real from Standard; | |
153 | myFirstU2: Real from Standard; | |
154 | myLastU2 : Real from Standard; | |
155 | myLength : Real from Standard; | |
156 | myLength1: Real from Standard; | |
157 | myLength2: Real from Standard; | |
158 | myTolLen : Real from Standard; | |
41194117 K |
159 | myPrevS : Real from Standard; -- should be mutable |
160 | myPrevU : Real from Standard; -- should be mutable | |
161 | ||
7fd59977 | 162 | myUi_1 : HArray1OfReal from TColStd; |
163 | mySi_1 : HArray1OfReal from TColStd; | |
164 | myUi_2 : HArray1OfReal from TColStd; | |
165 | mySi_2 : HArray1OfReal from TColStd; | |
166 | end CurvlinFunc; |