blob: 9c7997886f0a45b2298e9b1f6a77c64e1159d5ce (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
-- File: CircLin2dBisec.cdl
-- Created: Wed Apr 3 11:29:37 1991
-- Author: Remi GILET
-- <reg@topsn2>
---Copyright: Matra Datavision 1991
class CircLin2dBisec
from GccAna
---Purpose: Describes functions for building bisecting curves between a 2D line and a 2D circle.
-- A bisecting curve between a circle and a line is a curve
-- such that each of its points is at the same distance from
-- the circle and the line. It can be a parabola or a line,
-- depending of the relative position of the line and the
-- circle. The algorithm computes all the elementary curves which are solutions.
-- A CircLin2dBisec object provides a framework for:
-- - defining the construction of the bisecting curves,
-- - implementing the construction algorithm, and
-- - consulting the result.
uses Lin2d from gp,
Circ2d from gp,
Bisec from GccInt
raises OutOfRange from Standard,
NotDone from StdFail
is
Create(Circle : Circ2d from gp;
Line : Lin2d from gp) returns CircLin2dBisec;
---Purpose: Constructs bisecting curves between the circle Circle and the line Line.
IsDone(me) returns Boolean from Standard
is static;
--- Purpose: Returns true (this construction algorithm never fails).
NbSolutions(me) returns Integer from Standard
raises NotDone
is static;
---Purpose:
-- Returns the number of curves, representing solutions computed by this algorithm.
ThisSolution(me ;
Index : Integer from Standard) returns Bisec from GccInt
raises OutOfRange, NotDone
is static;
---Purpose : Returns the solution number Index and raises OutOfRange
-- exception if Index is greater than the number of solutions
-- Exceptions
-- Standard_OutOfRange if Index is less than zero or
-- greater than the number of solutions computed by this algorithm.
fields
WellDone : Boolean from Standard;
---Purpose: True if the algorithm succeeded.
NbrSol : Integer from Standard;
---Purpose: The number of possible solutions. We have to decide about the
-- status of the multiple solutions...
circle : Circ2d from gp;
---Purpose: The first argument used for ThisSolution.
line : Lin2d from gp;
---Purpose: The second argument used for ThisSolution.
end CircLin2dBisec;
|