CLHEP/Vector/EulerAngles.h
#ifndef HEP_EULERANGLES_H
#define HEP_EULERANGLES_H
// ----------------------------------------------------------------------
//
// EulerAngles.h EulerAngles class --
// Support class for PhysicsVectors classes
//
// History:
// 09-Jan-1998 WEB FixedTypes is now found in ZMutility
// 12-Jan-1998 WEB PI is now found in ZMutility
// 15-Jun-1998 WEB Added namespace support
// 02-May-2000 WEB No global using
// 26-Jul-2000 MF CLHEP version
//
// ----------------------------------------------------------------------
#include "CLHEP/config/CLHEP.h"
#include "CLHEP/config/iostream.h"
// Declarations of classes and global methods
class HepEulerAngles;
HepStd::ostream & operator<<(HepStd::ostream & os, const HepEulerAngles & aa);
HepStd::istream & operator>>(HepStd::istream & is, HepEulerAngles & aa);
class HepEulerAngles {
protected:
typedef HepEulerAngles EA; // just an abbreviation
static HepDouble tolerance; // to determine relative nearness
public:
// ---------- Constructors:
inline HepEulerAngles();
inline HepEulerAngles( HepDouble phi, HepDouble theta, HepDouble psi );
// ---------- Destructor, copy constructor, assignment:
// use C++ defaults
// ---------- Accessors:
public:
inline HepDouble getPhi() const;
inline HepDouble phi() const;
inline EA & setPhi( HepDouble phi );
inline HepDouble getTheta() const;
inline HepDouble theta() const;
inline EA & setTheta( HepDouble theta );
inline HepDouble getPsi() const;
inline HepDouble psi() const;
inline EA & setPsi( HepDouble psi );
inline EA & set( HepDouble phi, HepDouble theta, HepDouble psi );
// ---------- Operations:
// comparisons:
inline int compare ( const EA & ea ) const;
inline HepBoolean operator==( const EA & ea ) const;
inline HepBoolean operator!=( const EA & ea ) const;
inline HepBoolean operator< ( const EA & ea ) const;
inline HepBoolean operator<=( const EA & ea ) const;
inline HepBoolean operator> ( const EA & ea ) const;
inline HepBoolean operator>=( const EA & ea ) const;
// relative comparison:
inline static HepDouble getTolerance();
inline static HepDouble setTolerance( HepDouble tol );
HepBoolean isNear ( const EA & ea, HepDouble epsilon = tolerance ) const;
HepDouble howNear( const EA & ea ) const;
// ---------- I/O:
friend HepStd::ostream & operator<<( HepStd::ostream & os, const EA & ea );
friend HepStd::istream & operator>>( HepStd::istream & is, EA & ea );
// ---------- Helper methods:
protected:
HepDouble distance( const HepEulerAngles & ex ) const;
// ---------- Data members:
protected:
HepDouble phi_;
HepDouble theta_;
HepDouble psi_;
}; // HepEulerAngles
HEP_BEGIN_NAMESPACE( zmpv ) /* namespace zmpv { */
typedef HepEulerAngles EulerAngles;
HEP_END_NAMESPACE( zmpv ) /* } // namespace zmpv */
#define EULERANGLES_ICC
#include "CLHEP/Vector/EulerAngles.icc"
#undef EULERANGLES_ICC
#endif // EULERANGLES_H
Generated by GNU enscript 1.6.1.