Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Static Protected Attributes | Friends
CLHEP::HepAxisAngle Class Reference

#include <AxisAngle.h>

Public Types

typedef double Scalar
 

Public Member Functions

 HepAxisAngle ()
 
 HepAxisAngle (const Hep3Vector axis, Scalar delta)
 
Hep3Vector getAxis () const
 
Hep3Vector axis () const
 
AAsetAxis (const Hep3Vector axis)
 
double getDelta () const
 
double delta () const
 
AAsetDelta (Scalar delta)
 
AAset (const Hep3Vector axis, Scalar delta)
 
int compare (const AA &aa) const
 
bool operator== (const AA &aa) const
 
bool operator!= (const AA &aa) const
 
bool operator< (const AA &aa) const
 
bool operator<= (const AA &aa) const
 
bool operator> (const AA &aa) const
 
bool operator>= (const AA &aa) const
 
bool isNear (const AA &aa, Scalar epsilon=tolerance) const
 
double howNear (const AA &aa) const
 

Static Public Member Functions

static double getTolerance ()
 
static double setTolerance (Scalar tol)
 

Protected Types

typedef HepAxisAngle AA
 

Protected Member Functions

double distance (const HepAxisAngle &aa) const
 

Static Protected Attributes

static Scalar tolerance = Hep3Vector::ToleranceTicks * 1.0e-08
 

Friends

std::ostream & operator<< (std::ostream &os, const AA &aa)
 
std::istream & operator>> (std::istream &is, AA &aa)
 

Detailed Description

Author

Definition at line 36 of file AxisAngle.h.

Member Typedef Documentation

Definition at line 42 of file AxisAngle.h.

Definition at line 39 of file AxisAngle.h.

Constructor & Destructor Documentation

CLHEP::HepAxisAngle::HepAxisAngle ( )
inline
CLHEP::HepAxisAngle::HepAxisAngle ( const Hep3Vector  axis,
Scalar  delta 
)
inline

Member Function Documentation

Hep3Vector CLHEP::HepAxisAngle::axis ( ) const
inline
int CLHEP::HepAxisAngle::compare ( const AA aa) const
inline
double CLHEP::HepAxisAngle::delta ( ) const
inline
double CLHEP::HepAxisAngle::distance ( const HepAxisAngle aa) const
protected

Definition at line 45 of file AxisAngle.cc.

Referenced by howNear(), and isNear().

45  {
46 
47  double thisRep[9];
48  double aaRep[9];
49 
50  ZMpvAxisAngleRep( *this, thisRep );
51  ZMpvAxisAngleRep( aa, aaRep );
52 
53  double sum = 0.0;
54  for ( int i = 0; i < 9; i++ ) {
55  sum += thisRep[i] * aaRep[i];
56  }
57 
58  double d = 3.0 - sum; // NaN-proofing:
59  return (d >= 0) ? d : 0; // std::sqrt(distance) is used in howNear()
60 
61 } // HepAxisAngle::distance()
Hep3Vector CLHEP::HepAxisAngle::getAxis ( ) const
inline
double CLHEP::HepAxisAngle::getDelta ( ) const
inline
static double CLHEP::HepAxisAngle::getTolerance ( )
inlinestatic
double CLHEP::HepAxisAngle::howNear ( const AA aa) const

Definition at line 71 of file AxisAngle.cc.

References distance().

71  {
72 
73  return std::sqrt( distance( aa ) );
74 
75 } // HepAxisAngle::howNear()
double distance(const HepAxisAngle &aa) const
Definition: AxisAngle.cc:45
bool CLHEP::HepAxisAngle::isNear ( const AA aa,
Scalar  epsilon = tolerance 
) const

Definition at line 64 of file AxisAngle.cc.

References distance().

64  {
65 
66  return distance( aa ) <= epsilon * epsilon;
67 
68 } // HepAxisAngle::isNear()
double distance(const HepAxisAngle &aa) const
Definition: AxisAngle.cc:45
bool CLHEP::HepAxisAngle::operator!= ( const AA aa) const
inline
bool CLHEP::HepAxisAngle::operator< ( const AA aa) const
inline
bool CLHEP::HepAxisAngle::operator<= ( const AA aa) const
inline
bool CLHEP::HepAxisAngle::operator== ( const AA aa) const
inline
bool CLHEP::HepAxisAngle::operator> ( const AA aa) const
inline
bool CLHEP::HepAxisAngle::operator>= ( const AA aa) const
inline
AA& CLHEP::HepAxisAngle::set ( const Hep3Vector  axis,
Scalar  delta 
)
inline

Referenced by CLHEP::operator>>().

AA& CLHEP::HepAxisAngle::setAxis ( const Hep3Vector  axis)
inline
AA& CLHEP::HepAxisAngle::setDelta ( Scalar  delta)
inline
static double CLHEP::HepAxisAngle::setTolerance ( Scalar  tol)
inlinestatic

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  os,
const AA aa 
)
friend

Definition at line 85 of file AxisAngle.cc.

85  {
86  os << '(' << aa.axis() << ", " << aa.delta() << ')';
87  return os;
88 } // operator<<()
std::istream& operator>> ( std::istream &  is,
AA aa 
)
friend

Definition at line 95 of file AxisAngle.cc.

95  {
96  Hep3Vector axis;
97  double delta;
98  double x,y,z;
99  ZMinputAxisAngle ( is, x, y, z, delta );
100  axis.set(x,y,z);
101  aa.set ( axis, delta );
102  return is;
103 } // operator>>()
void ZMinputAxisAngle(std::istream &is, double &x, double &y, double &z, double &delta)
Definition: ZMinput.cc:156
G4double z
Definition: TRTMaterials.hh:39
Hep3Vector axis() const
double delta() const

Field Documentation

double CLHEP::HepAxisAngle::tolerance = Hep3Vector::ToleranceTicks * 1.0e-08
staticprotected

Definition at line 43 of file AxisAngle.h.


The documentation for this class was generated from the following files: