ITK  6.0.0
Insight Toolkit
Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 > Class Template Referenceabstract

#include <itkImageToImageMetricv4GetValueAndDerivativeThreaderBase.h>

Detailed Description

template<typename TDomainPartitioner, typename TImageToImageMetricv4>
class itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >

Provides threading for ImageToImageMetricv4::GetValueAndDerivative.

Template Parameters
TDomainPartitionertype of the Domain, ThreadedImageRegionPartitioner or ThreadedIndexedContainerPartitioner
TImageToImageMetricv4type of the ImageToImageMetricv4

This class provides a BeforeThreadedExecution, and AfterThreadedExecution.

The ThreadedExecution in ImageToImageMetricv4GetValueAndDerivativeThreader calls ProcessVirtualPoint on every point in the virtual image domain. ProcessVirtualPoint calls ProcessPoint on each point.

Definition at line 46 of file itkImageToImageMetricv4GetValueAndDerivativeThreaderBase.h.

+ Inheritance diagram for itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >:
+ Collaboration diagram for itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >:

Classes

struct  GetValueAndDerivativePerThreadStruct
 

Public Types

using CompensatedDerivativeType = std::vector< CompensatedDerivativeValueType >
 
using CompensatedDerivativeValueType = CompensatedSummation< DerivativeValueType >
 
using ConstPointer = SmartPointer< const Self >
 
using DerivativeType = typename ImageToImageMetricv4Type::DerivativeType
 
using DerivativeValueType = typename ImageToImageMetricv4Type::DerivativeValueType
 
using FixedImageGradientType = typename ImageToImageMetricv4Type::FixedImageGradientType
 
using FixedImageIndexType = typename ImageToImageMetricv4Type::FixedImageIndexType
 
using FixedImagePixelType = typename ImageToImageMetricv4Type::FixedImagePixelType
 
using FixedImagePointType = typename ImageToImageMetricv4Type::FixedImagePointType
 
using FixedOutputPointType = typename FixedTransformType::OutputPointType
 
using FixedTransformType = typename ImageToImageMetricv4Type::FixedTransformType
 
using ImageDimensionType = typename ImageToImageMetricv4Type::ImageDimensionType
 
using ImageToImageMetricv4Type = TImageToImageMetricv4
 
using InternalComputationValueType = typename ImageToImageMetricv4Type::InternalComputationValueType
 
using JacobianType = typename ImageToImageMetricv4Type::JacobianType
 
using MeasureType = typename ImageToImageMetricv4Type::MeasureType
 
using MovingImageGradientType = typename ImageToImageMetricv4Type::MovingImageGradientType
 
using MovingImagePixelType = typename ImageToImageMetricv4Type::MovingImagePixelType
 
using MovingImagePointType = typename ImageToImageMetricv4Type::MovingImagePointType
 
using MovingOutputPointType = typename MovingTransformType::OutputPointType
 
using MovingTransformType = typename ImageToImageMetricv4Type::MovingTransformType
 
using NumberOfParametersType = typename ImageToImageMetricv4Type::NumberOfParametersType
 
using Pointer = SmartPointer< Self >
 
using Self = ImageToImageMetricv4GetValueAndDerivativeThreaderBase
 
using Superclass = DomainThreader< TDomainPartitioner, TImageToImageMetricv4 >
 
using VirtualImageType = typename ImageToImageMetricv4Type::VirtualImageType
 
using VirtualIndexType = typename ImageToImageMetricv4Type::VirtualIndexType
 
using VirtualPointType = typename ImageToImageMetricv4Type::VirtualPointType
 
- Public Types inherited from itk::DomainThreader< TDomainPartitioner, TImageToImageMetricv4 >
using AssociateType = TImageToImageMetricv4
 
using ConstPointer = SmartPointer< const Self >
 
using DomainPartitionerType = TDomainPartitioner
 
using DomainType = typename DomainPartitionerType::DomainType
 
using Pointer = SmartPointer< Self >
 
using Self = DomainThreader
 
using Superclass = Object
 
- Public Types inherited from itk::Object
using ConstPointer = SmartPointer< const Self >
 
using Pointer = SmartPointer< Self >
 
using Self = Object
 
using Superclass = LightObject
 
- Public Types inherited from itk::LightObject
using ConstPointer = SmartPointer< const Self >
 
using Pointer = SmartPointer< Self >
 
using Self = LightObject
 

Public Member Functions

virtual bool GetComputeDerivative () const
 
const char * GetNameOfClass () const override
 
- Public Member Functions inherited from itk::DomainThreader< TDomainPartitioner, TImageToImageMetricv4 >
void Execute (AssociateType *enclosingClass, const DomainType &completeDomain)
 
MultiThreaderBaseGetMultiThreader () const
 
const char * GetNameOfClass () const override
 
virtual ThreadIdType GetNumberOfWorkUnitsUsed () const
 
virtual void SetDomainPartitioner (DomainPartitionerType *_arg)
 
virtual DomainPartitionerTypeGetModifiableDomainPartitioner ()
 
virtual void SetNumberOfWorkUnits (ThreadIdType _arg)
 
virtual ThreadIdType GetNumberOfWorkUnits () const
 
ThreadIdType GetMaximumNumberOfThreads () const
 
void SetMaximumNumberOfThreads (const ThreadIdType threads)
 
- Public Member Functions inherited from itk::Object
unsigned long AddObserver (const EventObject &event, Command *cmd) const
 
unsigned long AddObserver (const EventObject &event, std::function< void(const EventObject &)> function) const
 
LightObject::Pointer CreateAnother () const override
 
virtual void DebugOff () const
 
virtual void DebugOn () const
 
CommandGetCommand (unsigned long tag)
 
bool GetDebug () const
 
MetaDataDictionaryGetMetaDataDictionary ()
 
const MetaDataDictionaryGetMetaDataDictionary () const
 
virtual ModifiedTimeType GetMTime () const
 
const char * GetNameOfClass () const override
 
virtual const TimeStampGetTimeStamp () const
 
bool HasObserver (const EventObject &event) const
 
void InvokeEvent (const EventObject &)
 
void InvokeEvent (const EventObject &) const
 
virtual void Modified () const
 
void Register () const override
 
void RemoveAllObservers ()
 
void RemoveObserver (unsigned long tag) const
 
void SetDebug (bool debugFlag) const
 
void SetReferenceCount (int) override
 
void UnRegister () const noexcept override
 
void SetMetaDataDictionary (const MetaDataDictionary &rhs)
 
void SetMetaDataDictionary (MetaDataDictionary &&rrhs)
 
virtual void SetObjectName (std::string _arg)
 
virtual const std::string & GetObjectName () const
 
- Public Member Functions inherited from itk::LightObject
Pointer Clone () const
 
virtual Pointer CreateAnother () const
 
virtual void Delete ()
 
virtual const char * GetNameOfClass () const
 
virtual int GetReferenceCount () const
 
void Print (std::ostream &os, Indent indent=0) const
 
virtual void Register () const
 
virtual void SetReferenceCount (int)
 
virtual void UnRegister () const noexcept
 

Protected Member Functions

void AfterThreadedExecution () override
 
void BeforeThreadedExecution () override
 
 ImageToImageMetricv4GetValueAndDerivativeThreaderBase ()
 
 itkAlignedTypedef (ITK_CACHE_LINE_ALIGNMENT, PaddedGetValueAndDerivativePerThreadStruct, AlignedGetValueAndDerivativePerThreadStruct)
 
 itkPadStruct (ITK_CACHE_LINE_ALIGNMENT, GetValueAndDerivativePerThreadStruct, PaddedGetValueAndDerivativePerThreadStruct)
 
virtual bool ProcessPoint (const VirtualIndexType &virtualIndex, const VirtualPointType &virtualPoint, const FixedImagePointType &mappedFixedPoint, const FixedImagePixelType &mappedFixedPixelValue, const FixedImageGradientType &mappedFixedImageGradient, const MovingImagePointType &mappedMovingPoint, const MovingImagePixelType &mappedMovingPixelValue, const MovingImageGradientType &mappedMovingImageGradient, MeasureType &metricValueReturn, DerivativeType &localDerivativeReturn, const ThreadIdType threadId) const =0
 
virtual bool ProcessVirtualPoint (const VirtualIndexType &virtualIndex, const VirtualPointType &virtualPoint, const ThreadIdType threadId)
 
virtual void StorePointDerivativeResult (const VirtualIndexType &virtualIndex, const ThreadIdType threadId)
 
 ~ImageToImageMetricv4GetValueAndDerivativeThreaderBase () override=default
 
- Protected Member Functions inherited from itk::DomainThreader< TDomainPartitioner, TImageToImageMetricv4 >
virtual void AfterThreadedExecution ()
 
virtual void BeforeThreadedExecution ()
 
virtual void DetermineNumberOfWorkUnitsUsed ()
 
 DomainThreader ()
 
virtual void SetMultiThreader (MultiThreaderBase *_arg)
 
virtual void ThreadedExecution (const DomainType &subdomain, const ThreadIdType threadId)=0
 
 ~DomainThreader () override=default
 
- Protected Member Functions inherited from itk::Object
 Object ()
 
bool PrintObservers (std::ostream &os, Indent indent) const
 
void PrintSelf (std::ostream &os, Indent indent) const override
 
virtual void SetTimeStamp (const TimeStamp &timeStamp)
 
 ~Object () override
 
- Protected Member Functions inherited from itk::LightObject
virtual LightObject::Pointer InternalClone () const
 
 LightObject ()
 
virtual void PrintHeader (std::ostream &os, Indent indent) const
 
virtual void PrintSelf (std::ostream &os, Indent indent) const
 
virtual void PrintTrailer (std::ostream &os, Indent indent) const
 
virtual ~LightObject ()
 

Protected Attributes

NumberOfParametersType m_CachedNumberOfLocalParameters {}
 
NumberOfParametersType m_CachedNumberOfParameters {}
 
std::unique_ptr< AlignedGetValueAndDerivativePerThreadStruct[]> m_GetValueAndDerivativePerThreadVariables
 
- Protected Attributes inherited from itk::DomainThreader< TDomainPartitioner, TImageToImageMetricv4 >
AssociateTypem_Associate
 
- Protected Attributes inherited from itk::LightObject
std::atomic< int > m_ReferenceCount {}
 

Additional Inherited Members

- Static Public Member Functions inherited from itk::Object
static bool GetGlobalWarningDisplay ()
 
static void GlobalWarningDisplayOff ()
 
static void GlobalWarningDisplayOn ()
 
static Pointer New ()
 
static void SetGlobalWarningDisplay (bool val)
 
- Static Public Member Functions inherited from itk::LightObject
static void BreakOnError ()
 
static Pointer New ()
 
- Static Protected Member Functions inherited from itk::DomainThreader< TDomainPartitioner, TImageToImageMetricv4 >
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION ThreaderCallback (void *arg)
 

Member Typedef Documentation

◆ CompensatedDerivativeType

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
using itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::CompensatedDerivativeType = std::vector<CompensatedDerivativeValueType>

◆ CompensatedDerivativeValueType

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
using itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::CompensatedDerivativeValueType = CompensatedSummation<DerivativeValueType>

◆ ConstPointer

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
using itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::ConstPointer = SmartPointer<const Self>

◆ DerivativeType

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
using itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::DerivativeType = typename ImageToImageMetricv4Type::DerivativeType

◆ DerivativeValueType

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
using itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::DerivativeValueType = typename ImageToImageMetricv4Type::DerivativeValueType

◆ FixedImageGradientType

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
using itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::FixedImageGradientType = typename ImageToImageMetricv4Type::FixedImageGradientType

◆ FixedImageIndexType

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
using itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::FixedImageIndexType = typename ImageToImageMetricv4Type::FixedImageIndexType

◆ FixedImagePixelType

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
using itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::FixedImagePixelType = typename ImageToImageMetricv4Type::FixedImagePixelType

◆ FixedImagePointType

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
using itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::FixedImagePointType = typename ImageToImageMetricv4Type::FixedImagePointType

◆ FixedOutputPointType

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
using itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::FixedOutputPointType = typename FixedTransformType::OutputPointType

◆ FixedTransformType

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
using itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::FixedTransformType = typename ImageToImageMetricv4Type::FixedTransformType

◆ ImageDimensionType

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
using itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::ImageDimensionType = typename ImageToImageMetricv4Type::ImageDimensionType

◆ ImageToImageMetricv4Type

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
using itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::ImageToImageMetricv4Type = TImageToImageMetricv4

Types of the target class.

Definition at line 65 of file itkImageToImageMetricv4GetValueAndDerivativeThreaderBase.h.

◆ InternalComputationValueType

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
using itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::InternalComputationValueType = typename ImageToImageMetricv4Type::InternalComputationValueType

◆ JacobianType

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
using itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::JacobianType = typename ImageToImageMetricv4Type::JacobianType

◆ MeasureType

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
using itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::MeasureType = typename ImageToImageMetricv4Type::MeasureType

◆ MovingImageGradientType

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
using itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::MovingImageGradientType = typename ImageToImageMetricv4Type::MovingImageGradientType

◆ MovingImagePixelType

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
using itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::MovingImagePixelType = typename ImageToImageMetricv4Type::MovingImagePixelType

◆ MovingImagePointType

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
using itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::MovingImagePointType = typename ImageToImageMetricv4Type::MovingImagePointType

◆ MovingOutputPointType

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
using itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::MovingOutputPointType = typename MovingTransformType::OutputPointType

◆ MovingTransformType

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
using itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::MovingTransformType = typename ImageToImageMetricv4Type::MovingTransformType

◆ NumberOfParametersType

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
using itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::NumberOfParametersType = typename ImageToImageMetricv4Type::NumberOfParametersType

◆ Pointer

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
using itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::Pointer = SmartPointer<Self>

◆ Self

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
using itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::Self = ImageToImageMetricv4GetValueAndDerivativeThreaderBase

Standard class type aliases.

Definition at line 53 of file itkImageToImageMetricv4GetValueAndDerivativeThreaderBase.h.

◆ Superclass

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
using itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::Superclass = DomainThreader<TDomainPartitioner, TImageToImageMetricv4>

◆ VirtualImageType

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
using itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::VirtualImageType = typename ImageToImageMetricv4Type::VirtualImageType

◆ VirtualIndexType

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
using itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::VirtualIndexType = typename ImageToImageMetricv4Type::VirtualIndexType

◆ VirtualPointType

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
using itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::VirtualPointType = typename ImageToImageMetricv4Type::VirtualPointType

Constructor & Destructor Documentation

◆ ImageToImageMetricv4GetValueAndDerivativeThreaderBase()

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::ImageToImageMetricv4GetValueAndDerivativeThreaderBase ( )
protected

◆ ~ImageToImageMetricv4GetValueAndDerivativeThreaderBase()

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::~ImageToImageMetricv4GetValueAndDerivativeThreaderBase ( )
overrideprotecteddefault

Member Function Documentation

◆ AfterThreadedExecution()

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
void itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::AfterThreadedExecution ( )
overrideprotectedvirtual

Collects the results from each thread and sums them. Results are stored in the enclosing class m_Value and m_DerivativeResult. Behavior depends on m_AverageValueAndDerivativeByNumberOfValuePoints, m_NumberOfValidPoints, to average the value sum, and to average derivative sums for global transforms only (i.e. transforms without local support).

Reimplemented from itk::DomainThreader< TDomainPartitioner, TImageToImageMetricv4 >.

◆ BeforeThreadedExecution()

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
void itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::BeforeThreadedExecution ( )
overrideprotectedvirtual

Resize and initialize per thread objects.

Reimplemented from itk::DomainThreader< TDomainPartitioner, TImageToImageMetricv4 >.

◆ GetComputeDerivative()

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
virtual bool itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::GetComputeDerivative ( ) const
virtual

Access the GetValueAndDerivative() accesor in image metric base.

◆ GetNameOfClass()

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
const char * itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::GetNameOfClass ( ) const
overridevirtual
See also
LightObject::GetNameOfClass()

Reimplemented from itk::Object.

◆ itkAlignedTypedef()

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::itkAlignedTypedef ( ITK_CACHE_LINE_ALIGNMENT  ,
PaddedGetValueAndDerivativePerThreadStruct  ,
AlignedGetValueAndDerivativePerThreadStruct   
)
protected

◆ itkPadStruct()

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::itkPadStruct ( ITK_CACHE_LINE_ALIGNMENT  ,
GetValueAndDerivativePerThreadStruct  ,
PaddedGetValueAndDerivativePerThreadStruct   
)
protected

◆ ProcessPoint()

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
virtual bool itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::ProcessPoint ( const VirtualIndexType virtualIndex,
const VirtualPointType virtualPoint,
const FixedImagePointType mappedFixedPoint,
const FixedImagePixelType mappedFixedPixelValue,
const FixedImageGradientType mappedFixedImageGradient,
const MovingImagePointType mappedMovingPoint,
const MovingImagePixelType mappedMovingPixelValue,
const MovingImageGradientType mappedMovingImageGradient,
MeasureType metricValueReturn,
DerivativeType localDerivativeReturn,
const ThreadIdType  threadId 
) const
protectedpure virtual

Method to calculate the metric value and derivative given a point, value and image derivative for both fixed and moving spaces. The provided values have been calculated from virtualPoint, which is provided in case it's needed.

Parameters
virtualIndex
virtualPointis the point within the virtual domain from which the passed parameters have been calculated.
mappedFixedPointis a valid point within the moving image space that has passed bounds checking, and lies within any mask that may be assigned.
mappedFixedPixelValueholds the pixel value at the mapped fixed point.
mappedFixedImageGradientholds the image gradient at the fixed point, but only when m_GradientSource is set to calculate fixed image gradients (either when it's set to calculate only fixed gradients, or both fixed and moving). Otherwise, the value is meaningless and should be ignored.
mappedMovingPoint
mappedMovingPixelValue
mappedMovingImageGradientThese three parameters hold the point, pixel value and image gradient for the moving image space, as described above for the fixed image space. Results must be returned by derived classes in:
metricValueReturn
localDerivativeReturn
threadIdmay be used as needed, for example to access any per-thread data cached during pre-processing by the derived class.
Warning
This is called from the threader, and thus must be thread-safe.

◆ ProcessVirtualPoint()

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
virtual bool itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::ProcessVirtualPoint ( const VirtualIndexType virtualIndex,
const VirtualPointType virtualPoint,
const ThreadIdType  threadId 
)
protectedvirtual

Method called by the threaders to process the given virtual point. This in turn calls TransformAndEvaluateFixedPoint, TransformAndEvaluateMovingPoint, and ProcessPoint. And adds entries to m_MeasurePerThread and m_LocalDerivativesPerThread, m_NumberOfValidPointsPerThread.

◆ StorePointDerivativeResult()

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
virtual void itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::StorePointDerivativeResult ( const VirtualIndexType virtualIndex,
const ThreadIdType  threadId 
)
protectedvirtual

Store derivative result from a single point calculation.

Warning
If this method is overridden or otherwise not used in a derived class, be sure to accumulate results.

Member Data Documentation

◆ m_CachedNumberOfLocalParameters

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
NumberOfParametersType itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::m_CachedNumberOfLocalParameters {}
mutableprotected

◆ m_CachedNumberOfParameters

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
NumberOfParametersType itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::m_CachedNumberOfParameters {}
mutableprotected

Cached values to avoid call overhead. These will only be set once threading has been started.

Definition at line 206 of file itkImageToImageMetricv4GetValueAndDerivativeThreaderBase.h.

◆ m_GetValueAndDerivativePerThreadVariables

template<typename TDomainPartitioner , typename TImageToImageMetricv4 >
std::unique_ptr<AlignedGetValueAndDerivativePerThreadStruct[]> itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< TDomainPartitioner, TImageToImageMetricv4 >::m_GetValueAndDerivativePerThreadVariables
protected

The documentation for this class was generated from the following file: