38 enum ERotation3DMatrixIndex
39 { kXX = 0, kXY = 1, kXZ = 2
40 , kYX = 3, kYY = 4, kYZ = 5
41 , kZX = 6, kZY = 7, kZZ = 8
48 double dist( Rotation3D
const & from, Rotation3D
const & to)
50 return Quaternion(from).Distance(Quaternion(to));
53 double dist( Rotation3D
const & from, AxisAngle
const & to)
54 {
return Quaternion(from).Distance(Quaternion(to));}
56 double dist( Rotation3D
const & from, EulerAngles
const & to)
57 {
return Quaternion(from).Distance(Quaternion(to)); }
59 double dist( Rotation3D
const & from, Quaternion
const & to)
60 {
return Quaternion(from).Distance(to); }
62 double dist( Rotation3D
const & from, RotationZYX
const & to)
64 return Quaternion(from).Distance(Quaternion(to));
66 double dist( Rotation3D
const & from, RotationX
const & to)
68 return Quaternion(from).Distance(Quaternion(to));
71 double dist( Rotation3D
const & from, RotationY
const & to)
73 return Quaternion(from).Distance(Quaternion(to));
76 double dist( Rotation3D
const & from, RotationZ
const & to)
78 return Quaternion(from).Distance(Quaternion(to));
86 double dist( AxisAngle
const & from, Rotation3D
const & to)
87 {
return Quaternion(from).Distance(Quaternion(to)); }
89 double dist( AxisAngle
const & from, AxisAngle
const & to)
91 return Quaternion(from).Distance(Quaternion(to));
94 double dist( AxisAngle
const & from, EulerAngles
const & to)
95 {
return Quaternion(from).Distance(Quaternion(to)); }
97 double dist( AxisAngle
const & from, Quaternion
const & to)
98 {
return Quaternion(from).Distance(to); }
100 double dist( AxisAngle
const & from, RotationZYX
const & to)
102 return Quaternion(from).Distance(Quaternion(to));
105 double dist( AxisAngle
const & from, RotationX
const & to)
107 return Quaternion(from).Distance(Quaternion(to));
110 double dist( AxisAngle
const & from, RotationY
const & to)
112 return Quaternion(from).Distance(Quaternion(to));
115 double dist( AxisAngle
const & from, RotationZ
const & to)
117 return Quaternion(from).Distance(Quaternion(to));
125 double dist( EulerAngles
const & from, Rotation3D
const & to)
126 {
return Quaternion(from).Distance(Quaternion(to)); }
128 double dist( EulerAngles
const & from, AxisAngle
const & to)
129 {
return Quaternion(from).Distance(Quaternion(to)); }
131 double dist( EulerAngles
const & from, EulerAngles
const & to)
133 return Quaternion(from).Distance(Quaternion(to));
136 double dist( EulerAngles
const & from, Quaternion
const & to)
137 {
return Quaternion(from).Distance(to); }
139 double dist( EulerAngles
const & from, RotationZYX
const & to)
141 return Quaternion(from).Distance(Quaternion(to));
144 double dist( EulerAngles
const & from, RotationX
const & to)
146 return Quaternion(from).Distance(Quaternion(to));
149 double dist( EulerAngles
const & from, RotationY
const & to)
151 return Quaternion(from).Distance(Quaternion(to));
154 double dist( EulerAngles
const & from, RotationZ
const & to)
156 return Quaternion(from).Distance(Quaternion(to));
164 double dist( Quaternion
const & from, Rotation3D
const & to)
165 {
return from.Distance(Quaternion(to)); }
167 double dist( Quaternion
const & from, AxisAngle
const & to)
168 {
return from.Distance(Quaternion(to)); }
170 double dist( Quaternion
const & from, EulerAngles
const & to)
171 {
return from.Distance(Quaternion(to)); }
173 double dist( Quaternion
const & from, Quaternion
const & to)
174 {
return from.Distance(to); }
176 double dist( Quaternion
const & from, RotationZYX
const & to)
177 {
return from.Distance(Quaternion(to)); }
179 double dist( Quaternion
const & from, RotationX
const & to)
181 return from.Distance(Quaternion(to));
184 double dist( Quaternion
const & from, RotationY
const & to)
186 return from.Distance(Quaternion(to));
189 double dist( Quaternion
const & from, RotationZ
const & to)
191 return from.Distance(Quaternion(to));
197 double dist( RotationZYX
const & from, Rotation3D
const & to)
198 {
return Quaternion(from).Distance(Quaternion(to)); }
200 double dist( RotationZYX
const & from, AxisAngle
const & to)
201 {
return Quaternion(from).Distance(Quaternion(to)); }
203 double dist( RotationZYX
const & from, EulerAngles
const & to)
204 {
return Quaternion(from).Distance(Quaternion(to)); }
206 double dist( RotationZYX
const & from, Quaternion
const & to)
207 {
return Quaternion(from).Distance(to); }
209 double dist( RotationZYX
const & from, RotationZYX
const & to)
211 return Quaternion(from).Distance(Quaternion(to));
214 double dist( RotationZYX
const & from, RotationX
const & to)
216 return Quaternion(from).Distance(Quaternion(to));
219 double dist( RotationZYX
const & from, RotationY
const & to)
221 return Quaternion(from).Distance(Quaternion(to));
224 double dist( RotationZYX
const & from, RotationZ
const & to)
226 return Quaternion(from).Distance(Quaternion(to));
234 double dist( RotationX
const & from, Rotation3D
const & to)
235 {
return Quaternion(from).Distance(Quaternion(to)); }
237 double dist( RotationX
const & from, AxisAngle
const & to)
238 {
return Quaternion(from).Distance(Quaternion(to)); }
240 double dist( RotationX
const & from, EulerAngles
const & to)
241 {
return Quaternion(from).Distance(Quaternion(to)); }
243 double dist( RotationX
const & from, Quaternion
const & to)
244 {
return Quaternion(from).Distance(to); }
246 double dist( RotationX
const & from, RotationZYX
const & to)
248 return Quaternion(from).Distance(Quaternion(to));
251 double dist( RotationX
const & from, RotationX
const & to)
253 return Quaternion(from).Distance(Quaternion(to));
256 double dist( RotationX
const & from, RotationY
const & to)
258 return Quaternion(from).Distance(Quaternion(to));
261 double dist( RotationX
const & from, RotationZ
const & to)
263 return Quaternion(from).Distance(Quaternion(to));
271 double dist( RotationY
const & from, Rotation3D
const & to)
272 {
return Quaternion(from).Distance(Quaternion(to)); }
274 double dist( RotationY
const & from, AxisAngle
const & to)
275 {
return Quaternion(from).Distance(Quaternion(to)); }
277 double dist( RotationY
const & from, EulerAngles
const & to)
278 {
return Quaternion(from).Distance(Quaternion(to)); }
280 double dist( RotationY
const & from, Quaternion
const & to)
281 {
return Quaternion(from).Distance(to); }
283 double dist( RotationY
const & from, RotationZYX
const & to)
285 return Quaternion(from).Distance(Quaternion(to));
288 double dist( RotationY
const & from, RotationX
const & to)
290 return Quaternion(from).Distance(Quaternion(to));
293 double dist( RotationY
const & from, RotationY
const & to)
295 return Quaternion(from).Distance(Quaternion(to));
298 double dist( RotationY
const & from, RotationZ
const & to)
300 return Quaternion(from).Distance(Quaternion(to));
308 double dist( RotationZ
const & from, Rotation3D
const & to)
309 {
return Quaternion(from).Distance(Quaternion(to)); }
311 double dist( RotationZ
const & from, AxisAngle
const & to)
312 {
return Quaternion(from).Distance(Quaternion(to)); }
314 double dist( RotationZ
const & from, EulerAngles
const & to)
315 {
return Quaternion(from).Distance(Quaternion(to)); }
317 double dist( RotationZ
const & from, Quaternion
const & to)
318 {
return Quaternion(from).Distance(to); }
320 double dist( RotationZ
const & from, RotationZYX
const & to)
322 return Quaternion(from).Distance(Quaternion(to));
325 double dist( RotationZ
const & from, RotationX
const & to)
327 return Quaternion(from).Distance(Quaternion(to));
330 double dist( RotationZ
const & from, RotationY
const & to)
332 return Quaternion(from).Distance(Quaternion(to));
335 double dist( RotationZ
const & from, RotationZ
const & to)
337 return Quaternion(from).Distance(Quaternion(to));