19 #ifndef rtkProjectionGeometry_h 20 #define rtkProjectionGeometry_h 22 #include <itkImageBase.h> 43 template <
unsigned int TDimension = 3>
58 using SizeType =
typename itk::ImageBase<TDimension>::SizeType;
59 using PointType =
typename itk::ImageBase<TDimension>::PointType;
60 using SpacingType =
typename itk::ImageBase<TDimension>::SpacingType;
62 using MatrixType =
typename itk::Matrix<double, TDimension, TDimension + 1>;
70 const std::vector<MatrixType> &
73 return this->m_Matrices;
80 if (i >= this->m_Matrices.size())
82 itkExceptionMacro(<<
"Requested matrix index " << i <<
" is out of bound.");
84 return this->m_Matrices[i];
97 PrintSelf(std::ostream & os, itk::Indent indent)
const override;
103 this->m_Matrices.push_back(m);
114 #include "rtkProjectionGeometry.hxx" 116 #endif // rtkProjectionGeometry_h itk::SmartPointer< Self > Pointer
typename itk::Matrix< double, TDimension, TDimension+1 > MatrixType
typename itk::ImageBase< TDimension >::PointType PointType
itk::DataObject Superclass
typename itk::ImageBase< TDimension >::SpacingType SpacingType
itk::SmartPointer< const Self > ConstPointer
const std::vector< MatrixType > & GetMatrices() const
A templated class holding a vector of M x (M+1) matrices.
std::vector< MatrixType > m_Matrices
typename itk::ImageBase< TDimension >::SizeType SizeType
MatrixType GetMatrix(const unsigned int i) const
virtual void AddMatrix(const MatrixType &m)