1 -- Created on: 1992-08-26
2 -- Created by: Remi GILET
3 -- Copyright (c) 1992-1999 Matra Datavision
4 -- Copyright (c) 1999-2014 OPEN CASCADE SAS
6 -- This file is part of Open CASCADE Technology software library.
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
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.
14 -- Alternatively, this file may be used under the terms of Open CASCADE
15 -- commercial license or contractual agreement.
17 class MakeHypr2d from gce inherits Root from gce
19 ---Purpose :This class implements the following algorithms used to
20 -- create a 2d Hyperbola from gp.
21 -- * Create a 2d Hyperbola from its center and two points:
22 -- one on its axis of symmetry giving the major radius, the
23 -- other giving the value of the small radius.
24 -- * Create a 2d Hyperbola from its major axis and its major
25 -- radius and its minor radius.
30 -- FirstConjugateBranch
33 -- --------------------- C ------------------------------>XAxis
37 -- SecondConjugateBranch
40 -- An axis placement (one axis) is associated with the hyperbola.
41 -- This axis is the "XAxis" or major axis of the hyperbola. It is
42 -- the symmetry axis of the main branch of hyperbola.
43 -- The "YAxis" is normal to this axis and pass throught its location
44 -- point. It is the minor axis.
46 -- The major radius is the distance between the Location point
47 -- of the hyperbola C and the vertex of the Main Branch (or the
48 -- Other branch). The minor radius is the distance between the
49 -- Location point of the hyperbola C and the vertex of the First
50 -- (or Second) Conjugate branch.
51 -- The major radius can be lower than the minor radius.
59 raises NotDone from StdFail
63 Create(S1,S2 : Pnt2d from gp;
64 Center : Pnt2d from gp) returns MakeHypr2d;
65 ---Purpose: Constructs a hyperbola
66 -- centered on the point Center, where:
67 -- - the major axis of the hyperbola is defined by Center and point S1,
68 -- - the major radius is the distance between Center and S1, and
69 -- - the minor radius is the distance between point S2 and the major axis.
71 Create (MajorAxis : Ax2d from gp ;
72 MajorRadius : Real from Standard;
73 MinorRadius : Real from Standard;
74 Sense : Boolean from Standard) returns MakeHypr2d;
75 --- Purpose : Constructs a hyperbola with major and minor radii MajorRadius and
76 -- MinorRadius, where:
77 -- - the center of the hyperbola is the origin of the axis MajorAxis, and
78 -- - the major axis is defined by MajorAxis if Sense
79 -- is true, or the opposite axis to MajorAxis if Sense is false; or
80 -- - centered on the origin of the coordinate system
81 -- A, with major and minor radii MajorRadius and
82 -- MinorRadius, where its major axis is the "X Axis"
83 -- of A (A is the local coordinate system of the hyperbola).
85 Create (A : Ax22d from gp ;
86 MajorRadius : Real from Standard;
87 MinorRadius : Real from Standard) returns MakeHypr2d;
88 --- Purpose :Creates a Hypr2d centered on the origin of the coordinate system
89 -- A, with major and minor radii MajorRadius and
90 -- MinorRadius, where its major axis is the "X Axis"
91 -- of A (A is the local coordinate system of the hyperbola).
94 Value(me) returns Hypr2d from gp
98 ---Purpose: Returns the constructed hyperbola.
99 -- Exceptions StdFail_NotDone if no hyperbola is constructed.
101 Operator(me) returns Hypr2d from gp
103 ---C++: return const&
104 ---C++ : alias "Standard_EXPORT operator gp_Hypr2d() const;"
108 TheHypr2d : Hypr2d from gp;
109 --The solution from gp.