Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
3DConversions.h
Go to the documentation of this file.
1// @(#)root/mathcore:$Id$
2// Authors: W. Brown, M. Fischler, L. Moneta 2005
3
4/**********************************************************************
5 * *
6 * Copyright (c) 2005, LCG ROOT FNAL MathLib Team *
7 * *
8 * *
9 **********************************************************************/
10
11// Header file for class Rotation in 3 dimensions, represented by 3x3 matrix
12//
13// Created by: Mark Fischler and Walter Brown Thurs July 7, 2005
14//
15// Last update: Wed Thurs July 7, 2005
16//
17#ifndef ROOT_MathX_GenVectorX_3DConversions
18#define ROOT_MathX_GenVectorX_3DConversions 1
19
28
30
32
33namespace ROOT {
34namespace ROOT_MATH_ARCH {
35
36namespace gv_detail {
37
38// flag a link time error when a wrong conversion is instantiated
42template <class R1, class R2>
47
48// ----------------------------------------------------------------------
49// conversions from Rotation3D
50/**
51 conversion functions from 3D rotation.
52 */
53
54void convert(Rotation3D const &from, AxisAngle &to);
55void convert(Rotation3D const &from, EulerAngles &to);
56void convert(Rotation3D const &from, Quaternion &to);
57void convert(Rotation3D const &from, RotationZYX &to);
58
59// ----------------------------------------------------------------------
60// conversions from AxisAngle
61
62void convert(AxisAngle const &from, Rotation3D &to);
63void convert(AxisAngle const &from, EulerAngles &to);
64void convert(AxisAngle const &from, Quaternion &to);
65void convert(AxisAngle const &from, RotationZYX &to);
66
67// ----------------------------------------------------------------------
68// conversions from EulerAngles
69
70void convert(EulerAngles const &from, Rotation3D &to);
71void convert(EulerAngles const &from, AxisAngle &to);
72void convert(EulerAngles const &from, Quaternion &to);
73void convert(EulerAngles const &from, RotationZYX &to);
74
75// ----------------------------------------------------------------------
76// conversions from Quaternion
77
78void convert(Quaternion const &from, Rotation3D &to);
79void convert(Quaternion const &from, AxisAngle &to);
80void convert(Quaternion const &from, EulerAngles &to);
81void convert(Quaternion const &from, RotationZYX &to);
82
83// ----------------------------------------------------------------------
84// conversions from RotationZYX
85
86void convert(RotationZYX const &from, Rotation3D &to);
87void convert(RotationZYX const &from, AxisAngle &to);
88void convert(RotationZYX const &from, EulerAngles &to);
89void convert(RotationZYX const &from, Quaternion &to);
90
91// ----------------------------------------------------------------------
92// conversions from RotationX
93
94void convert(RotationX const &from, Rotation3D &to);
95void convert(RotationX const &from, RotationZYX &to);
96void convert(RotationX const &from, AxisAngle &to);
97void convert(RotationX const &from, EulerAngles &to);
98void convert(RotationX const &from, Quaternion &to);
99
100// ----------------------------------------------------------------------
101// conversions from RotationY
102
103void convert(RotationY const &from, Rotation3D &to);
104void convert(RotationY const &from, RotationZYX &to);
105void convert(RotationY const &from, AxisAngle &to);
106void convert(RotationY const &from, EulerAngles &to);
107void convert(RotationY const &from, Quaternion &to);
108
109// ----------------------------------------------------------------------
110// conversions from RotationZ
111
112void convert(RotationZ const &from, Rotation3D &to);
113void convert(RotationZ const &from, RotationZYX &to);
114void convert(RotationZ const &from, AxisAngle &to);
115void convert(RotationZ const &from, EulerAngles &to);
116void convert(RotationZ const &from, Quaternion &to);
117
118} // namespace gv_detail
119} // namespace ROOT_MATH_ARCH
120} // namespace ROOT
121
122#endif // ROOT_MathX_GenVectorX_3DConversions
AxisAngle class describing rotation represented with direction axis (3D Vector) and an angle of rotat...
Definition AxisAngle.h:46
EulerAngles class describing rotation as three angles (Euler Angles).
Definition EulerAngles.h:50
Rotation class with the (3D) rotation represented by a unit quaternion (u, i, j, k).
Definition Quaternion.h:52
Rotation class with the (3D) rotation represented by a 3x3 orthogonal matrix.
Definition Rotation3D.h:71
Rotation class representing a 3D rotation about the X axis by the angle of rotation.
Definition RotationX.h:45
Rotation class representing a 3D rotation about the Y axis by the angle of rotation.
Definition RotationY.h:45
Rotation class with the (3D) rotation represented by angles describing first a rotation of an angle p...
Definition RotationZYX.h:64
Rotation class representing a 3D rotation about the Z axis by the angle of rotation.
Definition RotationZ.h:45
void convert(R1 const &, R2 const)
#define R1(v, w, x, y, z, i)
Definition sha1.inl:134
#define R2(v, w, x, y, z, i)
Definition sha1.inl:137