0024428: Implementation of LGPL license
[occt.git] / src / GccInt / GccInt_Bisec.cdl
1 -- Created on: 1991-10-04
2 -- Created by: Remi GILET
3 -- Copyright (c) 1991-1999 Matra Datavision
4 -- Copyright (c) 1999-2014 OPEN CASCADE SAS
5 --
6 -- This file is part of Open CASCADE Technology software library.
7 --
8 -- This library is free software; you can redistribute it and / or modify it
9 -- under the terms of the GNU Lesser General Public version 2.1 as published
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.
13 --
14 -- Alternatively, this file may be used under the terms of Open CASCADE
15 -- commercial license or contractual agreement.
16
17 deferred class 
18
19      Bisec from GccInt
20
21 inherits TShared from MMgt
22
23         ---Purpose: The deferred class GccInt_Bisec is the root class for
24         -- elementary bisecting loci between two simple geometric
25         -- objects (i.e. circles, lines or points).
26         -- Bisecting loci between two geometric objects are such
27         -- that each of their points is at the same distance from the
28         -- two geometric objects. It is typically a curve, such as a
29         -- line, circle or conic.
30         -- Generally there is more than one elementary object
31         -- which is the solution to a bisecting loci problem: each
32         -- solution is described with one elementary bisecting
33         -- locus. For example, the bisectors of two secant straight
34         -- lines are two perpendicular straight lines.
35         -- The GccInt package provides concrete implementations
36         -- of the following elementary derived bisecting loci:
37         -- -   lines, circles, ellipses, hyperbolas and parabolas, and
38         -- -   points (not used in this context).
39         -- The GccAna package provides numerous algorithms for
40         -- computing the bisecting loci between circles, lines or
41         -- points, whose solutions are these types of elementary bisecting locus.
42         
43 uses 
44
45      Circ2d  from gp,
46      Lin2d   from gp,
47      Pnt2d   from gp,
48      Elips2d from gp,
49      Parab2d from gp,
50      Hypr2d  from gp,
51      IType   from GccInt
52
53 raises
54      DomainError from Standard
55 is
56
57 ArcType (me) returns IType from GccInt
58     is deferred;
59         ---Purpose: Returns the type of bisecting object (line, circle,
60         -- parabola, hyperbola, ellipse, point).
61
62 Point (me) returns Pnt2d from gp
63 raises DomainError from Standard
64         ---Purpose: Returns the bisecting line when ArcType returns Pnt.
65         --          An exception DomainError is raised if ArcType is not a Pnt. 
66 is virtual;
67
68 Line (me) returns Lin2d from gp
69         ---Purpose: Returns the bisecting line when ArcType returns Lin.
70 raises DomainError from Standard
71         ---Purpose: An exception DomainError is raised if ArcType is not a Lin. 
72 is virtual;
73     
74 Circle (me) returns Circ2d from gp
75         ---Purpose: Returns the bisecting line when ArcType returns Cir.
76 raises DomainError from Standard
77         ---Purpose: An exception DomainError is raised if ArcType is not a Cir. 
78 is virtual;
79     
80 Hyperbola (me) returns Hypr2d from gp
81         ---Purpose: Returns the bisecting line when ArcType returns Hpr.
82 raises DomainError from Standard
83         ---Purpose: An exception DomainError is raised if ArcType is not a Hpr. 
84 is virtual;
85     
86 Parabola (me) returns Parab2d from gp
87         ---Purpose: Returns the bisecting line when ArcType returns Par.
88 raises DomainError from Standard
89         ---Purpose: An exception DomainError is raised if ArcType is not a Par. 
90 is virtual;
91     
92 Ellipse (me) returns Elips2d from gp
93         ---Purpose: Returns the bisecting line when ArcType returns Ell.
94 raises DomainError from Standard
95         ---Purpose: An exception DomainError is raised if ArcType is not an Ell. 
96 is virtual;
97     
98 end Bisec;