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
74
75
76
77
78
79
80
81
82
83
84
85
|
-- File: MakeHyperbola.cdl
-- Created: Mon Sep 28 11:49:29 1992
-- Author: Remi GILET
-- <reg@sdsun2>
---Copyright: Matra Datavision 1992
class MakeHyperbola from GC inherits Root from GC
---Purpose :This class implements construction algorithms for a hyperbola in
-- 3D space. The result is a Geom_Hyperbola hyperbola.
-- A MakeHyperbola object provides a framework for:
-- - defining the construction of the hyperbola,
-- - implementing the construction algorithm, and
-- - consulting the results. In particular, the Value
-- function returns the constructed hyperbola.
-- To define the main branch of an hyperbola.
-- The parameterization range is ]-infinite,+infinite[
-- It is possible to get the other branch and the two conjugate
-- branches of the main branch.
--
-- ^YAxis
-- |
-- FirstConjugateBranch
-- |
-- Other | Main
-- --------------------- C ------------------------------>XAxis
-- Branch | Branch
-- |
-- SecondConjugateBranch
-- |
--
-- The major radius is the distance between the Location point
-- of the hyperbola C and the apex of the Main Branch (or the
-- Other branch). The major axis is the XAxis.
-- The minor radius is the distance between the Location point
-- of the hyperbola C and the apex of the First (or Second)
-- Conjugate branch. The minor axis is the YAxis.
-- The major radius can be lower than the minor radius.
uses Pnt from gp,
Hypr from gp,
Ax2 from gp,
Hyperbola from Geom
raises NotDone from StdFail
is
Create (H : Hypr from gp) returns MakeHyperbola;
--- Purpose :
-- Creates an Hyperbola from a non persistent hyperbola from package gp by conversion.
Create (A2 : Ax2 from gp ;
MajorRadius, MinorRadius : Real from Standard) returns MakeHyperbola;
--- Purpose : Constructs a hyperbola centered on the origin of the coordinate system
-- A2, with major and minor radii MajorRadius and MinorRadius, where:
-- the plane of the hyperbola is defined by the "X Axis" and "Y Axis" of A2,
-- - its major axis is the "X Axis" of A2.
Create(S1,S2 : Pnt from gp;
Center : Pnt from gp) returns MakeHyperbola;
---Purpose: Constructs a hyperbola centered on the point Center, where
-- - the plane of the hyperbola is defined by Center, S1 and S2,
-- - its major axis is defined by Center and S1,
-- - its major radius is the distance between Center and S1, and
-- - its minor radius is the distance between S2 and the major axis;
Value(me) returns Hyperbola from Geom
raises NotDone
is static;
---Purpose: Returns the constructed hyperbola.
-- Exceptions StdFail_NotDone if no hyperbola is constructed.
---C++: return const&
Operator(me) returns Hyperbola from Geom
is static;
---C++: return const&
---C++: alias "Standard_EXPORT operator Handle_Geom_Hyperbola() const;"
fields
TheHyperbola : Hyperbola from Geom;
--The solution from Geom.
end MakeHyperbola;
|