18 #ifndef __itkTimeVaryingBSplineVelocityFieldTransformParametersAdaptor_h
19 #define __itkTimeVaryingBSplineVelocityFieldTransformParametersAdaptor_h
65 template<
class TTransform>
93 typedef typename TimeVaryingVelocityFieldControlPointLatticeType::RegionType
RegionType;
94 typedef typename TimeVaryingVelocityFieldControlPointLatticeType::IndexType
IndexType;
95 typedef typename TimeVaryingVelocityFieldControlPointLatticeType::PixelType
VectorType;
96 typedef typename TimeVaryingVelocityFieldControlPointLatticeType::PointType
OriginType;
97 typedef typename TimeVaryingVelocityFieldControlPointLatticeType::SpacingType
SpacingType;
98 typedef typename TimeVaryingVelocityFieldControlPointLatticeType::SizeType
SizeType;
100 typedef typename TimeVaryingVelocityFieldControlPointLatticeType::SizeType
MeshSizeType;
101 typedef typename TimeVaryingVelocityFieldControlPointLatticeType::DirectionType
DirectionType;
104 itkStaticConstMacro( TotalDimension,
unsigned int, TransformType::Dimension + 1 );
113 void SetRequiredTransformDomainMeshSize(
const MeshSizeType & );
116 itkGetConstReferenceMacro( RequiredTransformDomainMeshSize,
MeshSizeType );
119 void SetRequiredTransformDomainSize(
const SizeType & );
122 itkGetConstReferenceMacro( RequiredTransformDomainSize,
SizeType );
125 void SetRequiredTransformDomainSpacing(
const SpacingType & );
128 itkGetConstReferenceMacro( RequiredTransformDomainSpacing,
SpacingType );
131 void SetRequiredTransformDomainOrigin(
const OriginType & );
134 itkGetConstReferenceMacro( RequiredTransformDomainOrigin,
OriginType );
137 void SetRequiredTransformDomainDirection(
const DirectionType & );
140 itkGetConstReferenceMacro( RequiredTransformDomainDirection,
DirectionType );
143 const OriginType GetRequiredControlPointLatticeOrigin()
const
148 requiredLatticeOrigin[i] = this->m_RequiredFixedParameters[TotalDimension + i];
150 return requiredLatticeOrigin;
160 RealType domainPhysicalDimensions =
static_cast<RealType>( this->m_RequiredTransformDomainSize[i] - 1.0 ) *
161 this->m_RequiredTransformDomainSpacing[i];
162 requiredLatticeSpacing[i] = domainPhysicalDimensions /
static_cast<RealType>( this->m_RequiredTransformDomainMeshSize[i] );
164 return requiredLatticeSpacing;
169 const SizeType GetRequiredControlPointLatticeSize()
const
174 requiredLatticeSize[i] =
static_cast<SizeValueType>( this->m_RequiredFixedParameters[i] );
176 return requiredLatticeSize;
183 return this->m_RequiredTransformDomainDirection;
187 virtual void AdaptTransformParameters();
189 virtual void SetRequiredFixedParameters(
const ParametersType );
195 void PrintSelf( std::ostream& os,
Indent indent )
const;
199 void operator=(
const Self & );
202 void UpdateRequiredFixedParameters();
215 #ifndef ITK_MANUAL_INSTANTIATION
216 #include "itkTimeVaryingBSplineVelocityFieldTransformParametersAdaptor.hxx"