18#ifndef itkGridScheduleComputer_h
19#define itkGridScheduleComputer_h
22#include "itkImageBase.h"
23#include "itkTransform.h"
39template <
typename TTransformScalarType,
unsigned int VImageDimension>
63 using PointType =
typename ImageBaseType::PointType;
67 using SizeType =
typename ImageBaseType::SizeType;
77 using TransformType = Transform<TransformScalarType, Self::Dimension, Self::Dimension>;
106 itkSetClampMacro(BSplineOrder,
unsigned int, 0, 5);
109 itkGetConstMacro(BSplineOrder,
unsigned int);
161 PrintSelf(std::ostream & os, Indent indent)
const override;
164 itkGetConstMacro(NumberOfLevels,
unsigned int);
186#ifndef ITK_MANUAL_INSTANTIATION
187# include "itkGridScheduleComputer.hxx"
SmartPointer< const Self > ConstPointer
SpacingType GridSpacingFactorType
SpacingType m_ImageSpacing
void GetBSplineGrid(unsigned int level, RegionType &gridRegion, SpacingType &gridSpacing, OriginType &gridOrigin, DirectionType &gridDirection)
std::vector< RegionType > VectorRegionType
typename ImageBaseType::RegionType RegionType
void SetSchedule(const VectorGridSpacingFactorType &schedule)
Transform< TransformScalarType, Self::Dimension, Self::Dimension > TransformType
typename ImageBaseType::DirectionType DirectionType
TransformConstPointer m_InitialTransform
typename TransformType::Pointer TransformPointer
unsigned int m_BSplineOrder
std::vector< DirectionType > VectorDirectionType
unsigned int m_NumberOfLevels
typename ImageBaseType::SpacingType SpacingType
typename ImageBaseType::PointType PointType
std::vector< OriginType > VectorOriginType
DirectionType m_ImageDirection
void SetDefaultSchedule(unsigned int numberOfLevels)
VectorRegionType m_GridRegions
VectorGridSpacingFactorType GetSchedule() const
typename ImageBaseType::SizeType SizeType
SmartPointer< Self > Pointer
VectorSpacingType m_GridSpacings
~GridScheduleComputer() override=default
void ApplyInitialTransform(OriginType &imageOrigin, SpacingType &imageSpacing, DirectionType &imageDirection, SpacingType &finalGridSpacing) const
std::vector< GridSpacingFactorType > VectorGridSpacingFactorType
typename TransformType::ConstPointer TransformConstPointer
TTransformScalarType TransformScalarType
itkStaticConstMacro(Dimension, unsigned int, VImageDimension)
virtual void ComputeBSplineGrid()
ITK_DISALLOW_COPY_AND_MOVE(GridScheduleComputer)
ImageBase< Self::Dimension > ImageBaseType
VectorDirectionType m_GridDirections
VectorOriginType m_GridOrigins
void PrintSelf(std::ostream &os, Indent indent) const override
VectorGridSpacingFactorType m_GridSpacingFactors
typename ImageBaseType::PointType OriginType
GridScheduleComputer Self
SpacingType m_FinalGridSpacing
itkOverrideGetNameOfClassMacro(GridScheduleComputer)
std::vector< SpacingType > VectorSpacingType