16#ifndef __stir_motion_RigidObject3DTransformation_H__
17#define __stir_motion_RigidObject3DTransformation_H__
64class RigidObject3DTransformation
65 :
public RegisteredParsingObject<RigidObject3DTransformation, ObjectTransformation<3, float>, ObjectTransformation<3, float>>
68 static const char*
const registered_name;
87 template <
class Iter1T,
class Iter2T>
89 Iter1T start_orig_points,
90 Iter1T end_orig_points,
91 Iter2T start_transformed_points,
92 const Quaternion<float>& initial_rotation = Quaternion<float>(1.F, 0.F, 0.F, 0.F));
97 template <
class Iter1T,
class Iter2T>
98 static double RMSE(
const RigidObject3DTransformation& transformation,
99 Iter1T start_orig_points,
100 Iter1T end_orig_points,
101 Iter2T start_transformed_points);
103 RigidObject3DTransformation();
110 RigidObject3DTransformation
inverse()
const;
149 static void quaternion_2_euler(
Coordinate3D<float>& Euler_angles,
const Quaternion<float>& quat);
151 static void quaternion_2_m3(
Array<2,float>& mat,
const Quaternion<float>& quat);
154 static void euler_2_quaternion(Quaternion<float>& quat,
const Coordinate3D<float>& Euler_angles);
159 Quaternion<float> quat;
169std::ostream& operator<<(std::ostream& out,
const RigidObject3DTransformation& rigid_object_transformation);
174std::istream& operator>>(std::istream&, RigidObject3DTransformation& rigid_object_transformation);
190RigidObject3DTransformation compose(
const RigidObject3DTransformation& apply_last,
191 const RigidObject3DTransformation& apply_first);
defines the stir::Array class for multi-dimensional (numeric) arrays
Declaration of class stir::Bin.
defines the stir::CartesianCoordinate3D<coordT> class
Declaration of class stir::ProjDataInfo.
Declaration of class stir::Quaternion.
Declaration of class stir::RegisteredParsingObject.
Declaration of class stir::Succeeded.
This class defines multi-dimensional (numeric) arrays.
Definition Array.h:78
class BasicCoordinate<int num_dimensions, typename coordT> defines num_dimensions -dimensional coordi...
Definition BasicCoordinate.h:57
A class for storing coordinates and value of a single projection bin.
Definition Bin.h:49
a templated class for 3-dimensional coordinates.
Definition CartesianCoordinate3D.h:53
a templated class for 3-dimensional coordinates.
Definition Coordinate3D.h:43
An (abstract base) class that contains information on the projection data.
Definition ProjDataInfo.h:70
Parent class for all leaves in a RegisteredObject hierarchy that do parsing of parameter files.
Definition RegisteredParsingObject.h:78
a class containing an enumeration type that can be used by functions to signal successful operation o...
Definition Succeeded.h:44
RigidObject3DTransformation compose(const RigidObject3DTransformation &apply_last, const RigidObject3DTransformation &apply_first)
Composition of 2 transformations.
Definition RigidObject3DTransformation.cxx:442