/usr/include/CLHEP/Vector/AxisAngle.h is in libclhep-dev 2.1.4.1-1.1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 | #ifndef HEP_AXISANGLE_H
#define HEP_AXISANGLE_H
// ----------------------------------------------------------------------
//
// AxisAngle.h - provide HepAxisAngle class
//
// History:
// 23-Jan-1998 WEB Initial draft
// 15-Jun-1998 WEB Added namespace support
// 02-May-2000 WEB No global using
// 27-Jul-2000 MF CLHEP version
//
// ----------------------------------------------------------------------
#ifndef HEP_THREEVECTOR_H
#include "CLHEP/Vector/ThreeVector.h"
#endif
#include <iostream>
#include "CLHEP/Vector/defs.h"
namespace CLHEP {
// Declarations of classes and global methods
class HepAxisAngle;
std::ostream & operator<<( std::ostream & os, const HepAxisAngle & aa );
std::istream & operator>>( std::istream & is, HepAxisAngle & aa );
/**
* @author
* @ingroup vector
*/
class HepAxisAngle {
public:
typedef double Scalar;
protected:
typedef HepAxisAngle AA; // just an abbreviation
static Scalar tolerance; // to determine relative nearness
public:
// ---------- Constructors:
inline HepAxisAngle();
inline HepAxisAngle( const Hep3Vector axis, Scalar delta );
// ---------- Destructor, copy constructor, assignment:
// use C++ defaults
// ---------- Accessors:
public:
inline Hep3Vector getAxis() const;
inline Hep3Vector axis() const;
inline AA & setAxis( const Hep3Vector axis );
inline double getDelta() const;
inline double delta() const ;
inline AA & setDelta( Scalar delta );
inline AA & set( const Hep3Vector axis, Scalar delta );
// ---------- Operations:
// comparisons:
inline int compare ( const AA & aa ) const;
inline bool operator==( const AA & aa ) const;
inline bool operator!=( const AA & aa ) const;
inline bool operator< ( const AA & aa ) const;
inline bool operator<=( const AA & aa ) const;
inline bool operator> ( const AA & aa ) const;
inline bool operator>=( const AA & aa ) const;
// relative comparison:
inline static double getTolerance();
inline static double setTolerance( Scalar tol );
protected:
double distance( const HepAxisAngle & aa ) const;
public:
bool isNear ( const AA & aa, Scalar epsilon = tolerance ) const;
double howNear( const AA & aa ) const;
// ---------- I/O:
friend std::ostream & operator<<( std::ostream & os, const AA & aa );
friend std::istream & operator>>( std::istream & is, AA & aa );
private:
Hep3Vector axis_; // Note: After construction, this is always of mag 1
double delta_;
}; // HepAxisAngle
} // namespace CLHEP
namespace zmpv {
typedef CLHEP::HepAxisAngle AxisAngle;
} // namespace zmpv
#define AXISANGLE_ICC
#include "CLHEP/Vector/AxisAngle.icc"
#undef AXISANGLE_ICC
#ifdef ENABLE_BACKWARDS_COMPATIBILITY
// backwards compatibility will be enabled ONLY in CLHEP 1.9
using namespace CLHEP;
#endif
#endif // HEP_AXISANGLE_H
|