b311480e |
1 | -- Created on: 1994-01-10 |
2 | -- Created by: Yves FRICAUD |
3 | -- Copyright (c) 1994-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 BisecCC from Bisector |
18 | |
19 | inherits |
20 | |
21 | Curve from Bisector |
22 | |
23 | ---Purpose: Construct the bisector between two curves. |
24 | -- The curves can intersect only in their extremities. |
25 | |
26 | uses |
27 | PolyBis from Bisector, |
28 | Shape from GeomAbs, |
29 | CurveType from GeomAbs, |
30 | Curve from Geom2d, |
31 | Geometry from Geom2d, |
32 | Pnt2d from gp, |
33 | Vec2d from gp, |
34 | SequenceOfReal from TColStd, |
35 | Trsf2d from gp |
36 | |
37 | raises DomainError from Standard, |
38 | RangeError from Standard |
39 | is |
40 | |
6e33d3ce |
41 | Create returns BisecCC; |
7fd59977 |
42 | |
43 | Create (Cu1 : Curve from Geom2d; |
44 | Cu2 : Curve from Geom2d; |
45 | Side1 : Real ; |
46 | Side2 : Real ; |
47 | Origin : Pnt2d from gp ; |
48 | DistMax : Real = 500 ) |
49 | ---Purpose: Constructs the bisector between the curves <Cu1> |
50 | -- and <Cu2>. |
51 | -- |
52 | -- <Side1> (resp <Side2>) = 1 if the |
53 | -- bisector curve is on the left of <Cu1> (resp <Cu2>) |
54 | -- else <Side1> (resp <Side2>) = -1. |
55 | -- |
56 | -- the Bisector is trimmed by the Point <Origin>. |
57 | -- <DistMax> is used to trim the bisector.The distance |
58 | -- between the points of the bisector and <Cu> is smaller |
59 | -- than <DistMax>. |
60 | -- |
6e33d3ce |
61 | returns BisecCC from Bisector; |
7fd59977 |
62 | |
63 | Perform (me : mutable ; |
64 | Cu1 : Curve from Geom2d; |
65 | Cu2 : Curve from Geom2d; |
66 | Side1 : Real ; |
67 | Side2 : Real ; |
68 | Origin : Pnt2d from gp ; |
69 | DistMax : Real = 500 ) |
70 | ---Purpose: Computes the bisector between the curves <Cu1> |
71 | -- and <Cu2>. |
72 | -- |
73 | -- <Side1> (resp <Side2>) = 1 if the |
74 | -- bisector curve is on the left of <Cu1> (resp <Cu2>) |
75 | -- else <Side1> (resp <Side2>) = -1. |
76 | -- |
77 | -- the Bisector is trimmed by the Point <Origin>. |
78 | -- |
79 | -- <DistMax> is used to trim the bisector.The distance |
80 | -- between the points of the bisector and <Cu> is smaller |
81 | -- than <DistMax>. |
82 | -- |
83 | |
84 | is static; |
85 | |
86 | IsExtendAtStart (me) returns Boolean from Standard |
87 | is static; |
88 | |
89 | IsExtendAtEnd (me) returns Boolean from Standard |
90 | is static; |
91 | -- |
92 | Reverse (me : mutable) |
93 | is static; |
94 | |
95 | ReversedParameter(me; U : Real) returns Real |
96 | is static; |
97 | |
98 | IsCN (me; N : Integer) returns Boolean |
99 | --- Purpose : Returns the order of continuity of the curve. |
100 | raises RangeError |
101 | --- Purpose : Raised if N < 0. |
102 | is static; |
103 | |
6e33d3ce |
104 | ChangeGuide (me) returns like me |
7fd59977 |
105 | ---Purpose: The parameter on <me> is linked to the parameter |
106 | -- on the first curve. This method creates the same bisector |
107 | -- where the curves are inversed. |
108 | is static; |
109 | |
6e33d3ce |
110 | Copy (me) returns like me |
7fd59977 |
111 | is static; |
112 | |
113 | Transform (me : mutable; T : Trsf2d) |
114 | --- Purpose : |
115 | -- Transformation of a geometric object. This tansformation |
116 | -- can be a translation, a rotation, a symmetry, a scaling |
117 | -- or a complex transformation obtained by combination of |
118 | -- the previous elementaries transformations. |
119 | is static; |
120 | |
121 | |
122 | -- |
123 | FirstParameter(me) returns Real |
124 | is static; |
125 | |
126 | LastParameter(me) returns Real |
127 | is static; |
128 | |
129 | Continuity(me) returns Shape from GeomAbs |
130 | is static; |
131 | |
132 | NbIntervals (me) returns Integer |
133 | ---Purpose: If necessary, breaks the curve in intervals of |
134 | -- continuity <C1>. And returns the number of |
135 | -- intervals. |
136 | is static; |
137 | |
138 | IntervalFirst(me ; Index : Integer from Standard) returns Real |
139 | ---Purpose: Returns the first parameter of the current |
140 | -- interval. |
141 | is static; |
142 | |
143 | IntervalLast(me ; Index : Integer from Standard) returns Real |
144 | ---Purpose: Returns the last parameter of the current |
145 | -- interval. |
146 | is static; |
147 | |
148 | IntervalContinuity(me) returns Shape from GeomAbs |
149 | is static; |
150 | |
151 | IsClosed(me) returns Boolean |
152 | is static; |
153 | |
154 | IsPeriodic(me) returns Boolean |
155 | is static; |
156 | |
157 | ValueAndDist (me; U : Real; U1, U2, Distance : in out Real) |
158 | ---Purpose: Returns the point of parameter U. |
159 | -- Computes the distance between the current point and |
160 | -- the two curves I separate. |
161 | -- Computes the parameters on each curve corresponding |
162 | -- of the projection of the current point. |
163 | returns Pnt2d from gp |
164 | is static; |
165 | |
166 | |
167 | ValueByInt (me; U : Real; U1, U2, Distance : in out Real) |
168 | returns Pnt2d from gp |
169 | ---Purpose: Returns the point of parameter U. |
170 | -- Computes the distance between the current point and |
171 | -- the two curves I separate. |
172 | -- Computes the parameters on each curve corresponding |
173 | -- of the projection of the current point. |
174 | is static; |
175 | |
176 | |
177 | D0 (me; U : Real; P : out Pnt2d) |
178 | is static; |
179 | |
180 | D1 (me; U : Real; P : out Pnt2d from gp ; V : out Vec2d from gp) |
181 | is static ; |
182 | |
183 | D2 (me; U : Real; P : out Pnt2d from gp; V1, V2 : out Vec2d from gp) |
184 | is static; |
185 | |
186 | D3 (me; U : Real; P : out Pnt2d from gp; V1, V2, V3 : out Vec2d from gp) |
187 | is static; |
188 | |
189 | DN (me; U : Real; N : Integer) |
190 | returns Vec2d from gp |
191 | is static; |
192 | |
193 | Values (me ; |
194 | U : Real ; |
195 | N : Integer ; |
196 | P : in out Pnt2d ; |
197 | V1 : in out Vec2d ; |
198 | V2 : in out Vec2d ; |
199 | V3 : in out Vec2d ) |
200 | is static private; |
201 | |
202 | |
203 | IsEmpty (me) returns Boolean from Standard |
204 | is static; |
205 | |
206 | LinkBisCurve (me ; U : Real) returns Real from Standard |
207 | ---Purpose: Returns the parameter on the curve1 of the projection |
208 | -- of the point of parameter U on <me>. |
209 | is static; |
210 | |
211 | LinkCurveBis (me ; U : Real) returns Real from Standard |
212 | ---Purpose: Returns the reciproque of LinkBisCurve. |
213 | is static; |
214 | |
215 | Parameter ( me ; P : Pnt2d from gp) returns Real |
216 | is static; |
217 | |
218 | Curve (me ; IndCurve : Integer) returns Curve from Geom2d |
219 | is static; |
220 | |
221 | Polygon (me) returns PolyBis from Bisector |
222 | ---C++: return const& |
223 | is static; |
224 | |
225 | Dump (me; Deep : Integer = 0; Offset : Integer = 0) is static; |
226 | |
227 | SupLastParameter (me : mutable) |
228 | is static private; |
229 | |
230 | Extension(me ; |
231 | U : Real ; |
232 | U1, U2, Dist : in out Real ; |
233 | T1 : in out Vec2d from gp ) |
234 | returns Pnt2d from gp |
235 | is static private; |
236 | |
237 | SearchBound (me ; U1,U2 : Real from Standard) |
238 | returns Real from Standard |
239 | is static private; |
240 | |
241 | ComputePointEnd (me : mutable) |
242 | is static private; |
243 | |
244 | Curve (me : mutable; Index : Integer; C : Curve from Geom2d) |
245 | is static private; |
246 | |
247 | Sign (me : mutable; Index : Integer; Sign : Real from Standard) |
248 | is static private; |
249 | |
250 | Polygon (me : mutable; Poly : PolyBis from Bisector) |
251 | is static private; |
252 | |
253 | DistMax (me : mutable; DistMax : Real from Standard) |
254 | is static private; |
255 | |
256 | IsConvex (me : mutable; Index : Integer; IsConvex : Boolean from Standard) |
257 | is static private; |
258 | |
259 | IsEmpty (me : mutable; IsEmpty : Boolean from Standard) |
260 | is static private; |
261 | |
262 | ExtensionStart (me : mutable; ExtensionStart : Boolean from Standard) |
263 | is static private; |
264 | |
265 | ExtensionEnd (me : mutable; ExtensionEnd : Boolean from Standard) |
266 | is static private; |
267 | |
268 | PointStart (me : mutable; Point : Pnt2d from gp) |
269 | is static private; |
270 | |
271 | PointEnd (me : mutable; Point : Pnt2d from gp) |
272 | is static private; |
273 | |
274 | StartIntervals (me : mutable; StartIntervals : SequenceOfReal from TColStd) |
275 | is static private; |
276 | |
277 | EndIntervals (me : mutable; EndIntervals : SequenceOfReal from TColStd) |
278 | is static private; |
279 | |
280 | FirstParameter (me : mutable; U1 : Real from Standard) |
281 | is static private; |
282 | |
283 | LastParameter (me : mutable; U1 : Real from Standard) |
284 | is static private; |
285 | |
286 | |
287 | |
288 | fields |
289 | |
290 | curve1 : Curve from Geom2d; |
291 | curve2 : Curve from Geom2d; |
292 | sign1 : Real from Standard; |
293 | sign2 : Real from Standard; |
294 | startIntervals : SequenceOfReal from TColStd; |
295 | endIntervals : SequenceOfReal from TColStd; |
296 | currentInterval: Integer from Standard; |
297 | myPolygon : PolyBis from Bisector; |
298 | shiftParameter : Real from Standard; |
299 | distMax : Real from Standard; |
300 | isEmpty : Boolean from Standard; |
301 | isConvex1 : Boolean from Standard; |
302 | isConvex2 : Boolean from Standard; |
303 | extensionStart : Boolean from Standard; |
304 | extensionEnd : Boolean from Standard; |
305 | pointStart : Pnt2d from gp; |
306 | pointEnd : Pnt2d from gp; |
307 | |
308 | end BisecCC; |