48   catch(
const exception &error) {
 
   49     FATAL(error.what() << endl);
 
   52   gRandom->SetSeed(seed);
 
   55     const JCompass 
c1(0.5*
PI, 0.0, 0.0);
 
   59     for (
int i = 0; i != 4; ++i) {
 
   61       JPosition3D 
u = pointer[i];
 
   65       u.rotate(
c1.getRotation());
 
   69       ASSERT(u.equals(pointer[i+1], precision), 
"compass definitions");
 
   77     const JCompass 
c1(gRandom->Uniform(-1.0*
PI,+1.0*
PI),
 
   78                       gRandom->Uniform(-0.5*
PI,+0.5*
PI),
 
   79                       gRandom->Uniform(-0.5*
PI,+0.5*
PI));
 
   81     const JRotation3D    
R1 = 
c1.getRotation();
 
   82     const JQuaternion3D  Q1(R1);
 
   83     const JQuaternion3D  Q2 = 
c1.getQuaternion();
 
   84     const JCompass       c2(Q1);
 
   86     DEBUG(
"compass    [1] " << setprecision(3) << 
c1 << endl);
 
   87     DEBUG(
"compass    [2] " << setprecision(3) << c2 << endl);
 
   88     DEBUG(
"quaternion [1] " << setprecision(5) << Q1 << endl);
 
   89     DEBUG(
"quaternion [2] " << setprecision(5) << Q2 << endl);
 
   93     ASSERT(Q1.equals(+Q2, precision) || 
 
   94            Q1.equals(-Q2, precision), 
"compass to rotation to quaternion versus compass to quaternion");
 
   96     ASSERT(
c1.equals(c2, precision), 
"compass to quaternion to compass");
 
   98     const JPosition3D pos[] = {
 
  104     for (
int i = 0; i != 
sizeof(pos)/
sizeof(pos[0]); ++i) {
 
  106       JPosition3D p0 = pos[i];
 
  115       DEBUG(showpos << 
FIXED(8,3) << p0 << 
" -> " << flush);
 
  116       DEBUG(showpos << 
FIXED(8,3) << p1 << 
" -> " << flush);
 
  119       ASSERT(p0.equals(p2, precision));
 
Utility class to parse command line options. 
 
static const JUTMPosition JNorth_t(0,+1, 0)
North. 
 
Auxiliary data structure for floating point format specification. 
 
static const JUTMPosition JSouth_t(0,-1, 0)
South. 
 
static const JVector3D JVector3X_t(1, 0, 0)
unit x-vector 
 
static const JUTMPosition JWest_t(-1, 0, 0)
West. 
 
#define ASSERT(A,...)
Assert macro. 
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object 
 
static const double PI
Mathematical constants. 
 
TCanvas * c1
Global variables to handle mouse events. 
 
static const JVector3D JVector3Z_t(0, 0, 1)
unit z-vector 
 
static const JVector3D JVector3Y_t(0, 1, 0)
unit y-vector 
 
static const JUTMPosition JEast_t(+1, 0, 0)
East. 
 
#define DEBUG(A)
Message macros.