7fd59977 |
1 | -- File: Bisec.cdl |
2 | -- Created: Fri Oct 4 11:16:59 1991 |
3 | -- Author: Remi GILET |
4 | -- <reg@phobox> |
5 | ---Copyright: Matra Datavision 1991 |
6 | |
7 | deferred class |
8 | |
9 | Bisec from GccInt |
10 | |
11 | inherits TShared from MMgt |
12 | |
13 | ---Purpose: The deferred class GccInt_Bisec is the root class for |
14 | -- elementary bisecting loci between two simple geometric |
15 | -- objects (i.e. circles, lines or points). |
16 | -- Bisecting loci between two geometric objects are such |
17 | -- that each of their points is at the same distance from the |
18 | -- two geometric objects. It is typically a curve, such as a |
19 | -- line, circle or conic. |
20 | -- Generally there is more than one elementary object |
21 | -- which is the solution to a bisecting loci problem: each |
22 | -- solution is described with one elementary bisecting |
23 | -- locus. For example, the bisectors of two secant straight |
24 | -- lines are two perpendicular straight lines. |
25 | -- The GccInt package provides concrete implementations |
26 | -- of the following elementary derived bisecting loci: |
27 | -- - lines, circles, ellipses, hyperbolas and parabolas, and |
28 | -- - points (not used in this context). |
29 | -- The GccAna package provides numerous algorithms for |
30 | -- computing the bisecting loci between circles, lines or |
31 | -- points, whose solutions are these types of elementary bisecting locus. |
32 | |
33 | uses |
34 | |
35 | Circ2d from gp, |
36 | Lin2d from gp, |
37 | Pnt2d from gp, |
38 | Elips2d from gp, |
39 | Parab2d from gp, |
40 | Hypr2d from gp, |
41 | IType from GccInt |
42 | |
43 | raises |
44 | DomainError from Standard |
45 | is |
46 | |
47 | ArcType (me) returns IType from GccInt |
48 | is deferred; |
49 | ---Purpose: Returns the type of bisecting object (line, circle, |
50 | -- parabola, hyperbola, ellipse, point). |
51 | |
52 | Point (me) returns Pnt2d from gp |
53 | raises DomainError from Standard |
54 | ---Purpose: Returns the bisecting line when ArcType returns Pnt. |
55 | -- An exception DomainError is raised if ArcType is not a Pnt. |
56 | is virtual; |
57 | |
58 | Line (me) returns Lin2d from gp |
59 | ---Purpose: Returns the bisecting line when ArcType returns Lin. |
60 | raises DomainError from Standard |
61 | ---Purpose: An exception DomainError is raised if ArcType is not a Lin. |
62 | is virtual; |
63 | |
64 | Circle (me) returns Circ2d from gp |
65 | ---Purpose: Returns the bisecting line when ArcType returns Cir. |
66 | raises DomainError from Standard |
67 | ---Purpose: An exception DomainError is raised if ArcType is not a Cir. |
68 | is virtual; |
69 | |
70 | Hyperbola (me) returns Hypr2d from gp |
71 | ---Purpose: Returns the bisecting line when ArcType returns Hpr. |
72 | raises DomainError from Standard |
73 | ---Purpose: An exception DomainError is raised if ArcType is not a Hpr. |
74 | is virtual; |
75 | |
76 | Parabola (me) returns Parab2d from gp |
77 | ---Purpose: Returns the bisecting line when ArcType returns Par. |
78 | raises DomainError from Standard |
79 | ---Purpose: An exception DomainError is raised if ArcType is not a Par. |
80 | is virtual; |
81 | |
82 | Ellipse (me) returns Elips2d from gp |
83 | ---Purpose: Returns the bisecting line when ArcType returns Ell. |
84 | raises DomainError from Standard |
85 | ---Purpose: An exception DomainError is raised if ArcType is not an Ell. |
86 | is virtual; |
87 | |
88 | end Bisec; |