18#ifndef itkPointSetToPointSetMetricWithIndexv4_h
19#define itkPointSetToPointSetMetricWithIndexv4_h
69template <
typename TFixedPointSet,
70 typename TMovingPointSet = TFixedPointSet,
71 class TInternalComputationValueType =
double>
74 TMovingPointSet::PointDimension,
75 Image<TInternalComputationValueType, TFixedPointSet::PointDimension>,
76 TInternalComputationValueType>
84 TMovingPointSet::PointDimension,
86 TInternalComputationValueType>;
155#ifndef ITK_FUTURE_LEGACY_REMOVE
156 using CoordRepType ITK_FUTURE_DEPRECATED(
157 "ITK 6 discourages using `CoordRepType`. Please use `CoordinateType` instead!") =
CoordinateType;
193 if (pointSet !=
nullptr)
199 itkExceptionMacro(
"Incorrect object type. Should be a point set.");
209 if (pointSet !=
nullptr)
215 itkExceptionMacro(
"Incorrect object type. Should be a point set.");
314 itkSetMacro(StoreDerivativeAsSparseFieldForLocalSupportTransforms,
bool);
315 itkGetConstMacro(StoreDerivativeAsSparseFieldForLocalSupportTransforms,
bool);
316 itkBooleanMacro(StoreDerivativeAsSparseFieldForLocalSupportTransforms);
322 itkSetMacro(CalculateValueAndDerivativeInTangentSpace,
bool);
323 itkGetConstMacro(CalculateValueAndDerivativeInTangentSpace,
bool);
324 itkBooleanMacro(CalculateValueAndDerivativeInTangentSpace);
424 return MetricCategoryType::POINT_SET_METRIC;
491#ifndef ITK_MANUAL_INSTANTIATION
492# include "itkPointSetToPointSetMetricWithIndexv4.hxx"
TInternalComputationValueType ValueType
OptimizerParameters< TInternalComputationValueType > ParametersType
TInternalComputationValueType ParametersValueType
Simulate a standard C array with copy semantics.
Templated n-dimensional image class.
Control indentation during Print() invocation.
Array< TInternalComputationValueType > DerivativeType
TInternalComputationValueType MeasureType
DisplacementFieldTransform< CoordinateRepresentationType, Self::MovingDimension > MovingDisplacementFieldTransformType
typename VirtualRegionType::SizeType VirtualSizeType
static constexpr DimensionType MovingDimension
typename MovingTransformType::OutputPointType MovingOutputPointType
typename VirtualImageType::DirectionType VirtualDirectionType
typename VirtualImageType::IndexType VirtualIndexType
static constexpr DimensionType FixedDimension
typename FixedTransformType::JacobianType JacobianType
typename MovingTransformType::ParametersType MovingTransformParametersType
typename Superclass::Object ObjectType
typename MovingTransformType::Pointer MovingTransformPointer
typename MovingTransformType::JacobianType MovingTransformJacobianType
SizeValueType DimensionType
typename FixedTransformType::OutputPointType FixedOutputPointType
typename VirtualImageType::PixelType VirtualPixelType
typename FixedTransformType::ParametersType FixedTransformParametersType
Transform< TInternalComputationValueType, Image< TInternalComputationValueType, TFixedPointSet::PointDimension >::ImageDimension, TMovingDimension > MovingTransformType
typename MovingTransformType::InputPointType MovingInputPointType
typename VirtualImageType::Pointer VirtualImagePointer
PointSet< VirtualPixelType, Self::VirtualDimension > VirtualPointSetType
typename VirtualPointSetType::Pointer VirtualPointSetPointer
typename FixedTransformType::InputPointType FixedInputPointType
typename VirtualImageType::PointType VirtualPointType
typename Superclass::MetricCategoryEnum MetricCategoryType
typename FixedTransformType::Pointer FixedTransformPointer
Transform< TInternalComputationValueType, Image< TInternalComputationValueType, TFixedPointSet::PointDimension >::ImageDimension, TFixedDimension > FixedTransformType
typename VirtualImageType::RegionType VirtualRegionType
typename VirtualImageType::SpacingType VirtualSpacingType
typename FixedTransformType::JacobianType FixedTransformJacobianType
Image< TInternalComputationValueType, TFixedPointSet::PointDimension > VirtualImageType
unsigned int NumberOfParametersType
bool m_StoreDerivativeAsSparseFieldForLocalSupportTransforms
const PointIdentifierRanges CreateRanges() const
typename PointsContainer::ElementIdentifier PointIdentifier
virtual void InitializeForIteration() const
bool m_FixedTransformPointLocatorsNeedInitialization
bool m_HaveWarnedAboutNumberOfValidPoints
virtual SizeValueType CalculateNumberOfValidFixedPoints() const
void TransformFixedAndCreateVirtualPointSet() const
bool m_CalculateValueAndDerivativeInTangentSpace
void GetDerivative(DerivativeType &) const override
PointSet< FixedPixelType, Self::PointDimension > FixedTransformedPointSetType
MovingTransformedPointSetType::Pointer m_MovingTransformedPointSet
~PointSetToPointSetMetricWithIndexv4() override=default
virtual bool RequiresMovingPointsLocator() const
const VirtualPointSetType * GetVirtualTransformedPointSet() const
typename TFixedPointSet::PixelType FixedPixelType
typename Superclass::VirtualSizeType VirtualRadiusType
ModifiedTimeType m_FixedTransformedPointSetTime
static constexpr DimensionType FixedPointDimension
typename Superclass::ObjectType ObjectType
SmartPointer< const Self > ConstPointer
FixedArray< DerivativeValueType, Self::PointDimension > LocalDerivativeType
typename TMovingPointSet::PointsContainer MovingPointsContainer
typename TFixedPointSet::PointType FixedPointType
static constexpr DimensionType MovingPointDimension
TMovingPointSet MovingPointSetType
std::vector< PointIdentifierPair > PointIdentifierRanges
static constexpr DimensionType PointDimension
virtual void GetLocalNeighborhoodValueAndDerivativeWithIndex(const PointIdentifier &, const PointType &, MeasureType &, LocalDerivativeType &, const PixelType &pixel) const =0
void CalculateValueAndDerivative(MeasureType &calculatedValue, DerivativeType &derivative, bool calculateValue) const
virtual LocalDerivativeType GetLocalNeighborhoodDerivativeWithIndex(const PointIdentifier &, const PointType &, const PixelType &pixel) const
FixedPointSetType::ConstPointer m_FixedPointSet
typename Superclass::VirtualImageType VirtualImageType
virtual bool RequiresFixedPointsLocator() const
typename TMovingPointSet::PixelType MovingPixelType
typename PointType::CoordinateType CoordinateType
PointsLocatorType::Pointer m_MovingTransformedPointsLocator
PointsLocatorType::Pointer m_FixedTransformedPointsLocator
MeasureType GetValue() const override
virtual void SetMovingPointSet(const MovingPointSetType *_arg)
typename TMovingPointSet::PointType MovingPointType
void Initialize() override
SmartPointer< Self > Pointer
PointSet< MovingPixelType, Self::PointDimension > MovingTransformedPointSetType
SizeValueType GetNumberOfComponents() const
TFixedPointSet FixedPointSetType
void TransformMovingPointSet() const
void StorePointDerivative(const VirtualPointType &, const DerivativeType &, DerivativeType &) const
PointsLocator< PointsContainer > PointsLocatorType
PointSetToPointSetMetricWithIndexv4 Self
typename Superclass::MovingDisplacementFieldTransformType DisplacementFieldTransformType
PointSetToPointSetMetricWithIndexv4()
virtual void SetFixedPointSet(const FixedPointSetType *_arg)
ModifiedTimeType m_MovingTransformedPointSetTime
std::pair< PointIdentifier, PointIdentifier > PointIdentifierPair
FixedTransformedPointSetType::Pointer m_FixedTransformedPointSet
bool SupportsArbitraryVirtualDomainSamples() const override
MovingPointSetType::ConstPointer m_MovingPointSet
void GetValueAndDerivative(MeasureType &, DerivativeType &) const override
virtual MeasureType GetLocalNeighborhoodValueWithIndex(const PointIdentifier &, const PointType &, const PixelType &pixel) const =0
void PrintSelf(std::ostream &os, Indent indent) const override
void InitializePointsLocators() const
typename DerivativeType::ValueType DerivativeValueType
VirtualPointSetPointer m_VirtualTransformedPointSet
ObjectToObjectMetric< TFixedPointSet::PointDimension, TMovingPointSet::PointDimension, Image< TInternalComputationValueType, TFixedPointSet::PointDimension >, TInternalComputationValueType > Superclass
void SetFixedObject(const ObjectType *object) override
bool m_MovingTransformPointLocatorsNeedInitialization
typename TFixedPointSet::PointsContainer FixedPointsContainer
void SetMovingObject(const ObjectType *object) override
MetricCategoryType GetMetricCategory() const override
typename PointsLocatorType::NeighborsIdentifierType NeighborsIdentifierType
virtual void InitializePointSets() const
typename Superclass::VirtualPointType VirtualOriginType
typename PointsContainer::ConstIterator PointsConstIterator
typename TFixedPointSet::PointsContainer FixedPointsContainer
typename PointType::CoordinateType CoordinateType
FixedPointsContainer PointsContainer
A superclass of the N-dimensional mesh structure; supports point (geometric coordinate and attribute)...
SmartPointer< Self > Pointer
Accelerate geometric searches for points.
SmartPointer< Self > Pointer
typename TreeType::InstanceIdentifierVectorType NeighborsIdentifierType
Array< TInternalComputationValueType > DerivativeType
TInternalComputationValueType MeasureType
Implements transparent reference counting.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
unsigned long SizeValueType
SizeValueType ModifiedTimeType