Geant4
9.6.p02
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
geant4_9_6_p02
source
externals
clhep
include
CLHEP
Vector
AxisAngle.h
Go to the documentation of this file.
1
// -*- C++ -*-
2
// ---------------------------------------------------------------------------
3
//
4
// This file is a part of the CLHEP - a Class Library for High Energy Physics.
5
//
6
// ----------------------------------------------------------------------
7
// ----------------------------------------------------------------------
8
//
9
// AxisAngle.h - provide HepAxisAngle class
10
//
11
// History:
12
// 23-Jan-1998 WEB Initial draft
13
// 15-Jun-1998 WEB Added namespace support
14
// 02-May-2000 WEB No global using
15
// 27-Jul-2000 MF CLHEP version
16
//
17
// ----------------------------------------------------------------------
18
19
#ifndef HEP_AXISANGLE_H
20
#define HEP_AXISANGLE_H
21
22
#include <iostream>
23
#include "
CLHEP/Vector/ThreeVector.h
"
24
25
namespace
CLHEP {
26
27
// Declarations of classes and global methods
28
class
HepAxisAngle;
29
std::ostream &
operator<<
( std::ostream & os,
const
HepAxisAngle & aa );
30
std::istream &
operator>>
( std::istream & is, HepAxisAngle & aa );
31
36
class
HepAxisAngle
{
37
38
public
:
39
typedef
double
Scalar
;
40
41
protected
:
42
typedef
HepAxisAngle
AA
;
// just an abbreviation
43
static
Scalar
tolerance
;
// to determine relative nearness
44
45
public
:
46
47
// ---------- Constructors:
48
inline
HepAxisAngle
();
49
inline
HepAxisAngle
(
const
Hep3Vector
axis
,
Scalar
delta
);
50
51
// ---------- Destructor, copy constructor, assignment:
52
// use C++ defaults
53
54
// ---------- Accessors:
55
56
public
:
57
inline
Hep3Vector
getAxis
()
const
;
58
inline
Hep3Vector
axis
()
const
;
59
inline
AA
&
setAxis
(
const
Hep3Vector
axis
);
60
61
inline
double
getDelta
()
const
;
62
inline
double
delta
()
const
;
63
inline
AA
&
setDelta
(
Scalar
delta
);
64
65
inline
AA
&
set
(
const
Hep3Vector
axis
,
Scalar
delta
);
66
67
// ---------- Operations:
68
69
// comparisons:
70
inline
int
compare
(
const
AA
& aa )
const
;
71
72
inline
bool
operator==
(
const
AA
& aa )
const
;
73
inline
bool
operator!=
(
const
AA
& aa )
const
;
74
inline
bool
operator<
(
const
AA
& aa )
const
;
75
inline
bool
operator<=
(
const
AA
& aa )
const
;
76
inline
bool
operator>
(
const
AA
& aa )
const
;
77
inline
bool
operator>=
(
const
AA
& aa )
const
;
78
79
// relative comparison:
80
inline
static
double
getTolerance
();
81
inline
static
double
setTolerance
(
Scalar
tol );
82
83
protected
:
84
double
distance
(
const
HepAxisAngle
& aa )
const
;
85
public
:
86
87
bool
isNear
(
const
AA
& aa,
Scalar
epsilon =
tolerance
)
const
;
88
double
howNear
(
const
AA
& aa )
const
;
89
90
// ---------- I/O:
91
92
friend
std::ostream &
operator<<
( std::ostream & os,
const
AA
& aa );
93
friend
std::istream &
operator>>
( std::istream & is,
AA
& aa );
94
95
private
:
96
Hep3Vector
axis_;
// Note: After construction, this is always of mag 1
97
double
delta_;
98
99
};
// HepAxisAngle
100
101
102
}
// namespace CLHEP
103
104
#include "CLHEP/Vector/AxisAngle.icc"
105
106
#endif // HEP_AXISANGLE_H
Generated on Sat May 25 2013 14:33:06 for Geant4 by
1.8.4