STIR 6.4.0
DiscretisedDensityOnCartesianGrid.h
Go to the documentation of this file.
1//
2//
3#ifndef __stir_DiscretisedDensityOnCartesianGrid_H__
4#define __stir_DiscretisedDensityOnCartesianGrid_H__
5/*
6 Copyright (C) 2000- 2007, Hammersmith Imanet Ltd
7 Copyright (C) 2000 PARAPET partners
8 Copyright (C) 2018, University College London
9 This file is part of STIR.
10
11 SPDX-License-Identifier: Apache-2.0 AND License-ref-PARAPET-license
12
13 See STIR/LICENSE.txt for details
14 */
29
30START_NAMESPACE_STIR
31
42
43template <int num_dimensions, typename elemT>
44class DiscretisedDensityOnCartesianGrid : public DiscretisedDensity<num_dimensions, elemT>
45{
46private:
48
49public:
52
55 const CartesianCoordinate3D<float>& origin,
56 const BasicCoordinate<num_dimensions, float>& grid_spacing);
57
59 inline DiscretisedDensityOnCartesianGrid(const shared_ptr<const ExamInfo>& exam_info_sptr,
60 const IndexRange<num_dimensions>& range,
61 const CartesianCoordinate3D<float>& origin,
62 const BasicCoordinate<num_dimensions, float>& grid_spacing);
63
66
68 inline void set_grid_spacing(const BasicCoordinate<num_dimensions, float>& grid_spacing_v);
69
70protected:
72 std::string& explanation) const override;
73
75
85
87
97
98private:
100};
101
102END_NAMESPACE_STIR
103
105#endif
inline implementations for stir::DiscretisedDensityOnCartesianGrid
defines the stir::DiscretisedDensity class
class BasicCoordinate<int num_dimensions, typename coordT> defines num_dimensions -dimensional coordi...
Definition BasicCoordinate.h:57
a templated class for 3-dimensional coordinates.
Definition CartesianCoordinate3D.h:53
bool actual_has_same_characteristics(DiscretisedDensity< num_dimensions, elemT > const &, std::string &explanation) const override
Implementation used by has_same_characteristics.
Definition DiscretisedDensityOnCartesianGrid.inl:73
DiscretisedDensityOnCartesianGrid(const shared_ptr< const ExamInfo > &exam_info_sptr, const IndexRange< num_dimensions > &range, const CartesianCoordinate3D< float > &origin, const BasicCoordinate< num_dimensions, float > &grid_spacing)
Constructor given exam_info, range, grid spacing and origin.
Definition DiscretisedDensityOnCartesianGrid.inl:47
const BasicCoordinate< num_dimensions, float > & get_grid_spacing() const
Return the grid_spacing.
Definition DiscretisedDensityOnCartesianGrid.inl:58
CartesianCoordinate3D< float > actual_get_relative_coordinates_for_indices(const BasicCoordinate< num_dimensions, float > &indices) const override
Return the relative coordinates of the centre of the basis-function corresponding to indices.
Definition DiscretisedDensityOnCartesianGrid.inl:104
DiscretisedDensityOnCartesianGrid()
Construct an empty DiscretisedDensityOnCartesianGrid.
Definition DiscretisedDensityOnCartesianGrid.inl:30
void set_grid_spacing(const BasicCoordinate< num_dimensions, float > &grid_spacing_v)
Set the grid_spacing.
Definition DiscretisedDensityOnCartesianGrid.inl:65
BasicCoordinate< num_dimensions, float > actual_get_index_coordinates_for_relative_coordinates(const CartesianCoordinate3D< float > &coords) const override
Return the indices of the basis-function closest to the given point.
Definition DiscretisedDensityOnCartesianGrid.inl:116
DiscretisedDensityOnCartesianGrid(const IndexRange< num_dimensions > &range, const CartesianCoordinate3D< float > &origin, const BasicCoordinate< num_dimensions, float > &grid_spacing)
Constructor given range, grid spacing and origin.
Definition DiscretisedDensityOnCartesianGrid.inl:38
DiscretisedDensity()
Construct an empty DiscretisedDensity.
Definition DiscretisedDensity.inl:36
This class defines ranges which can be 'irregular'.
Definition IndexRange.h:69