23 #ifndef SIRF_GEOMETRICAL_INFO_TYPE 24 #define SIRF_GEOMETRICAL_INFO_TYPE 31 template <
int num_physical_dimensions,
int num_index_dimensions>
34 typedef std::array<float, num_physical_dimensions> Coordinate;
35 typedef std::array<unsigned int, num_index_dimensions> Index;
44 virtual std::string get_info()
const = 0;
48 template <
int num_dimensions>
56 typedef typename BaseType::Coordinate Coordinate;
57 typedef typename BaseType::Index Index;
81 typedef std::array<std::array<float, num_dimensions+1>, num_dimensions+1>
86 const Offset& _offset,
const Spacing& _spacing,
87 const Size& _size,
const DirectionMatrix& _direction);
93 const float eps = 0.01F;
94 const float delta = 0.1F;
96 near_(_offset, vgi.get_offset(), eps) &&
97 near_(_spacing, vgi.get_spacing(), eps) &&
98 _size == vgi.get_size() &&
99 near_(_direction, vgi.get_direction(), delta);
104 return !(*
this == vgi);
106 const Offset get_offset()
const;
107 const Spacing get_spacing()
const;
108 const Size get_size()
const;
109 const DirectionMatrix get_direction()
const;
111 const TransformMatrix calculate_index_to_physical_point_matrix()
const;
115 virtual std::string get_info()
const;
121 DirectionMatrix _direction;
122 static bool near_(
const Coordinate& x,
const Coordinate& y,
float eps)
125 for (
int i = 0; i < num_dimensions; i++) {
128 t = std::max(t, std::abs(xi - yi));
132 static bool near_(
const DirectionMatrix& x,
const DirectionMatrix& y,
float eps)
135 for (
int i = 0; i < num_dimensions; i++) {
136 for (
int j = 0; j < num_dimensions; j++) {
139 t = std::max(t, std::abs(xij - yij));
Definition: GeometricalInfo.h:49
Coordinate Offset
Definition: GeometricalInfo.h:63
virtual void print_info() const =0
Print info.
Abstract data container.
Definition: GeometricalInfo.cpp:141
Coordinate Spacing
Definition: GeometricalInfo.h:67
Definition: GeometricalInfo.h:32
std::array< std::array< float, num_dimensions+1 >, num_dimensions+1 > TransformMatrix
Definition: GeometricalInfo.h:82
Index Size
Definition: GeometricalInfo.h:71
std::array< Coordinate, num_dimensions > DirectionMatrix
Definition: GeometricalInfo.h:76