Commit | Line | Data |
---|---|---|
b311480e | 1 | -- Created on: 1998-05-12 |
2 | -- Created by: Roman BORISOV | |
3 | -- Copyright (c) 1998-1999 Matra Datavision | |
973c2be1 | 4 | -- Copyright (c) 1999-2014 OPEN CASCADE SAS |
b311480e | 5 | -- |
973c2be1 | 6 | -- This file is part of Open CASCADE Technology software library. |
b311480e | 7 | -- |
d5f74e42 | 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 | |
973c2be1 | 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. | |
b311480e | 13 | -- |
973c2be1 | 14 | -- Alternatively, this file may be used under the terms of Open CASCADE |
15 | -- commercial license or contractual agreement. | |
7fd59977 | 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) | |
6e33d3ce | 44 | returns CurvlinFunc; |
7fd59977 | 45 | |
46 | Create(C2D: HCurve2d from Adaptor2d; S: HSurface from Adaptor3d; Tol: Real) | |
6e33d3ce | 47 | returns CurvlinFunc; |
7fd59977 | 48 | |
49 | Create(C2D1, C2D2: HCurve2d from Adaptor2d; S1, S2: HSurface from Adaptor3d; Tol: Real) | |
6e33d3ce | 50 | returns CurvlinFunc; |
7fd59977 | 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; | |
41194117 K |
153 | myPrevS : Real from Standard; -- should be mutable |
154 | myPrevU : Real from Standard; -- should be mutable | |
155 | ||
7fd59977 | 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; |