Revision 4bee12876976bec72820e6464bf8665e58e624d0 authored by Gerardo Ganis on 24 July 2009, 07:33:50 UTC, committed by Gerardo Ganis on 24 July 2009, 07:33:50 UTC
git-svn-id: http://root.cern.ch/svn/root/branches/v5-24-00-patches@29570 27541ba8-7e3a-0410-8455-c3a389f83636
1 parent 3517aba
3DDistances.cxx
// @(#)root/mathcore:$Id$
// Authors: W. Brown, M. Fischler, L. Moneta 2005
/**********************************************************************
* *
* Copyright (c) 2005, LCG ROOT FNAL MathLib Team *
* *
* *
**********************************************************************/
// Source file for something else
//
// Created by: Mark Fischler Thurs July 7, 2005
//
// Last update: Wed Thurs July 7, 2005
//
#include "Math/GenVector/3DDistances.h"
#include "Math/GenVector/Rotation3D.h"
#include "Math/GenVector/AxisAngle.h"
#include "Math/GenVector/EulerAngles.h"
#include "Math/GenVector/Quaternion.h"
#include "Math/GenVector/RotationZYX.h"
#include "Math/GenVector/RotationX.h"
#include "Math/GenVector/RotationY.h"
#include "Math/GenVector/RotationZ.h"
#include <cmath>
namespace ROOT {
namespace Math {
namespace gv_detail {
enum ERotation3DMatrixIndex
{ kXX = 0, kXY = 1, kXZ = 2
, kYX = 3, kYY = 4, kYZ = 5
, kZX = 6, kZY = 7, kZZ = 8
};
// ----------------------------------------------------------------------
// distance from Rotation3D
double dist( Rotation3D const & from, Rotation3D const & to)
{ /*TODO better */
return Quaternion(from).Distance(Quaternion(to));
}
double dist( Rotation3D const & from, AxisAngle const & to)
{ return Quaternion(from).Distance(Quaternion(to));}
double dist( Rotation3D const & from, EulerAngles const & to)
{ return Quaternion(from).Distance(Quaternion(to)); }
double dist( Rotation3D const & from, Quaternion const & to)
{ return Quaternion(from).Distance(to); }
double dist( Rotation3D const & from, RotationZYX const & to)
{ /*TODO better */
return Quaternion(from).Distance(Quaternion(to));
}
double dist( Rotation3D const & from, RotationX const & to)
{ /*TODO better */
return Quaternion(from).Distance(Quaternion(to));
}
double dist( Rotation3D const & from, RotationY const & to)
{ /*TODO*/
return Quaternion(from).Distance(Quaternion(to));
}
double dist( Rotation3D const & from, RotationZ const & to)
{ /*TODO*/
return Quaternion(from).Distance(Quaternion(to));
}
// ----------------------------------------------------------------------
// distance from AxisAngle
double dist( AxisAngle const & from, Rotation3D const & to)
{ return Quaternion(from).Distance(Quaternion(to)); }
double dist( AxisAngle const & from, AxisAngle const & to)
{ /*TODO*/
return Quaternion(from).Distance(Quaternion(to));
}
double dist( AxisAngle const & from, EulerAngles const & to)
{ return Quaternion(from).Distance(Quaternion(to)); }
double dist( AxisAngle const & from, Quaternion const & to)
{ return Quaternion(from).Distance(to); }
double dist( AxisAngle const & from, RotationZYX const & to)
{ /*TODO better */
return Quaternion(from).Distance(Quaternion(to));
}
double dist( AxisAngle const & from, RotationX const & to)
{ /*TODO*/
return Quaternion(from).Distance(Quaternion(to));
}
double dist( AxisAngle const & from, RotationY const & to)
{ /*TODO*/
return Quaternion(from).Distance(Quaternion(to));
}
double dist( AxisAngle const & from, RotationZ const & to)
{ /*TODO*/
return Quaternion(from).Distance(Quaternion(to));
}
// ----------------------------------------------------------------------
// distance from EulerAngles
double dist( EulerAngles const & from, Rotation3D const & to)
{ return Quaternion(from).Distance(Quaternion(to)); }
double dist( EulerAngles const & from, AxisAngle const & to)
{ return Quaternion(from).Distance(Quaternion(to)); }
double dist( EulerAngles const & from, EulerAngles const & to)
{ /*TODO*/
return Quaternion(from).Distance(Quaternion(to));
}
double dist( EulerAngles const & from, Quaternion const & to)
{ return Quaternion(from).Distance(to); }
double dist( EulerAngles const & from, RotationZYX const & to)
{ /*TODO better */
return Quaternion(from).Distance(Quaternion(to));
}
double dist( EulerAngles const & from, RotationX const & to)
{ /*TODO*/
return Quaternion(from).Distance(Quaternion(to));
}
double dist( EulerAngles const & from, RotationY const & to)
{ /*TODO*/
return Quaternion(from).Distance(Quaternion(to));
}
double dist( EulerAngles const & from, RotationZ const & to)
{ /*TODO*/
return Quaternion(from).Distance(Quaternion(to));
}
// ----------------------------------------------------------------------
// distance from Quaternion
double dist( Quaternion const & from, Rotation3D const & to)
{ return from.Distance(Quaternion(to)); }
double dist( Quaternion const & from, AxisAngle const & to)
{ return from.Distance(Quaternion(to)); }
double dist( Quaternion const & from, EulerAngles const & to)
{ return from.Distance(Quaternion(to)); }
double dist( Quaternion const & from, Quaternion const & to)
{ return from.Distance(to); }
double dist( Quaternion const & from, RotationZYX const & to)
{ return from.Distance(Quaternion(to)); }
double dist( Quaternion const & from, RotationX const & to)
{ /*TODO*/
return from.Distance(Quaternion(to));
}
double dist( Quaternion const & from, RotationY const & to)
{ /*TODO*/
return from.Distance(Quaternion(to));
}
double dist( Quaternion const & from, RotationZ const & to)
{ /*TODO*/
return from.Distance(Quaternion(to));
}
// ----------------------------------------------------------------------
// distance from RotationZYX
double dist( RotationZYX const & from, Rotation3D const & to)
{ return Quaternion(from).Distance(Quaternion(to)); }
double dist( RotationZYX const & from, AxisAngle const & to)
{ return Quaternion(from).Distance(Quaternion(to)); }
double dist( RotationZYX const & from, EulerAngles const & to)
{ return Quaternion(from).Distance(Quaternion(to)); }
double dist( RotationZYX const & from, Quaternion const & to)
{ return Quaternion(from).Distance(to); }
double dist( RotationZYX const & from, RotationZYX const & to)
{ /*TODO better */
return Quaternion(from).Distance(Quaternion(to));
}
double dist( RotationZYX const & from, RotationX const & to)
{ /*TODO*/
return Quaternion(from).Distance(Quaternion(to));
}
double dist( RotationZYX const & from, RotationY const & to)
{ /*TODO*/
return Quaternion(from).Distance(Quaternion(to));
}
double dist( RotationZYX const & from, RotationZ const & to)
{ /*TODO*/
return Quaternion(from).Distance(Quaternion(to));
}
// ----------------------------------------------------------------------
// distance from RotationX
double dist( RotationX const & from, Rotation3D const & to)
{ return Quaternion(from).Distance(Quaternion(to)); }
double dist( RotationX const & from, AxisAngle const & to)
{ return Quaternion(from).Distance(Quaternion(to)); }
double dist( RotationX const & from, EulerAngles const & to)
{ return Quaternion(from).Distance(Quaternion(to)); }
double dist( RotationX const & from, Quaternion const & to)
{ return Quaternion(from).Distance(to); }
double dist( RotationX const & from, RotationZYX const & to)
{ /*TODO better */
return Quaternion(from).Distance(Quaternion(to));
}
double dist( RotationX const & from, RotationX const & to)
{ /*TODO*/
return Quaternion(from).Distance(Quaternion(to));
}
double dist( RotationX const & from, RotationY const & to)
{ /*TODO*/
return Quaternion(from).Distance(Quaternion(to));
}
double dist( RotationX const & from, RotationZ const & to)
{ /*TODO*/
return Quaternion(from).Distance(Quaternion(to));
}
// ----------------------------------------------------------------------
// distance from RotationY
double dist( RotationY const & from, Rotation3D const & to)
{ return Quaternion(from).Distance(Quaternion(to)); }
double dist( RotationY const & from, AxisAngle const & to)
{ return Quaternion(from).Distance(Quaternion(to)); }
double dist( RotationY const & from, EulerAngles const & to)
{ return Quaternion(from).Distance(Quaternion(to)); }
double dist( RotationY const & from, Quaternion const & to)
{ return Quaternion(from).Distance(to); }
double dist( RotationY const & from, RotationZYX const & to)
{ /*TODO better */
return Quaternion(from).Distance(Quaternion(to));
}
double dist( RotationY const & from, RotationX const & to)
{ /*TODO*/
return Quaternion(from).Distance(Quaternion(to));
}
double dist( RotationY const & from, RotationY const & to)
{ /*TODO*/
return Quaternion(from).Distance(Quaternion(to));
}
double dist( RotationY const & from, RotationZ const & to)
{ /*TODO*/
return Quaternion(from).Distance(Quaternion(to));
}
// ----------------------------------------------------------------------
// distance from RotationZ
double dist( RotationZ const & from, Rotation3D const & to)
{ return Quaternion(from).Distance(Quaternion(to)); }
double dist( RotationZ const & from, AxisAngle const & to)
{ return Quaternion(from).Distance(Quaternion(to)); }
double dist( RotationZ const & from, EulerAngles const & to)
{ return Quaternion(from).Distance(Quaternion(to)); }
double dist( RotationZ const & from, Quaternion const & to)
{ return Quaternion(from).Distance(to); }
double dist( RotationZ const & from, RotationZYX const & to)
{ /*TODO better */
return Quaternion(from).Distance(Quaternion(to));
}
double dist( RotationZ const & from, RotationX const & to)
{ /*TODO*/
return Quaternion(from).Distance(Quaternion(to));
}
double dist( RotationZ const & from, RotationY const & to)
{ /*TODO*/
return Quaternion(from).Distance(Quaternion(to));
}
double dist( RotationZ const & from, RotationZ const & to)
{ /*TODO*/
return Quaternion(from).Distance(Quaternion(to));
}
} //namespace gv_detail
} //namespace Math
} //namespace ROOT
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...