ITK  6.0.0
Insight Toolkit
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
itk::CorrelationImageToImageMetricv4HelperThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric > Class Template Reference

#include <itkCorrelationImageToImageMetricv4HelperThreader.h>

Detailed Description

template<typename TDomainPartitioner, typename TImageToImageMetric, typename TCorrelationMetric>
class itk::CorrelationImageToImageMetricv4HelperThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >

Definition at line 38 of file itkCorrelationImageToImageMetricv4HelperThreader.h.

+ Inheritance diagram for itk::CorrelationImageToImageMetricv4HelperThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >:
+ Collaboration diagram for itk::CorrelationImageToImageMetricv4HelperThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >:

Classes

struct  CorrelationMetricPerThreadStruct
 

Public Types

using ConstPointer = SmartPointer< const Self >
 
using ImageToImageMetricv4Type = typename Superclass::ImageToImageMetricv4Type
 
using Pointer = SmartPointer< Self >
 
using Self = CorrelationImageToImageMetricv4HelperThreader
 
using Superclass = ImageToImageMetricv4GetValueAndDerivativeThreader< TDomainPartitioner, TImageToImageMetric >
 

Public Member Functions

const char * GetNameOfClass () const override
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

void AfterThreadedExecution () override
 
void BeforeThreadedExecution () override
 
 CorrelationImageToImageMetricv4HelperThreader ()
 
bool ProcessPoint (const VirtualIndexType &, const VirtualPointType &, const FixedImagePointType &, const FixedImagePixelType &, const FixedImageGradientType &, const MovingImagePointType &, const MovingImagePixelType &, const MovingImageGradientType &, MeasureType &, DerivativeType &, const ThreadIdType) const override
 
bool ProcessVirtualPoint (const VirtualIndexType &virtualIndex, const VirtualPointType &virtualPoint, const ThreadIdType threadId) override
 
 ~CorrelationImageToImageMetricv4HelperThreader () override=default
 

Private Member Functions

 itkAlignedTypedef (ITK_CACHE_LINE_ALIGNMENT, PaddedCorrelationMetricPerThreadStruct, AlignedCorrelationMetricPerThreadStruct)
 
 itkPadStruct (ITK_CACHE_LINE_ALIGNMENT, CorrelationMetricPerThreadStruct, PaddedCorrelationMetricPerThreadStruct)
 

Private Attributes

TCorrelationMetric * m_CorrelationAssociate {}
 
std::unique_ptr< AlignedCorrelationMetricPerThreadStruct[]> m_CorrelationMetricPerThreadVariables
 

Member Typedef Documentation

◆ ConstPointer

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
using itk::CorrelationImageToImageMetricv4HelperThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::ConstPointer = SmartPointer<const Self>

◆ ImageToImageMetricv4Type

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
using itk::CorrelationImageToImageMetricv4HelperThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::ImageToImageMetricv4Type = typename Superclass::ImageToImageMetricv4Type

◆ Pointer

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
using itk::CorrelationImageToImageMetricv4HelperThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::Pointer = SmartPointer<Self>

◆ Self

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
using itk::CorrelationImageToImageMetricv4HelperThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::Self = CorrelationImageToImageMetricv4HelperThreader

Standard class type aliases.

Definition at line 45 of file itkCorrelationImageToImageMetricv4HelperThreader.h.

◆ Superclass

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
using itk::CorrelationImageToImageMetricv4HelperThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::Superclass = ImageToImageMetricv4GetValueAndDerivativeThreader<TDomainPartitioner, TImageToImageMetric>

Constructor & Destructor Documentation

◆ CorrelationImageToImageMetricv4HelperThreader()

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
itk::CorrelationImageToImageMetricv4HelperThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::CorrelationImageToImageMetricv4HelperThreader ( )
protected

◆ ~CorrelationImageToImageMetricv4HelperThreader()

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
itk::CorrelationImageToImageMetricv4HelperThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::~CorrelationImageToImageMetricv4HelperThreader ( )
overrideprotecteddefault

Member Function Documentation

◆ AfterThreadedExecution()

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
void itk::CorrelationImageToImageMetricv4HelperThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::AfterThreadedExecution ( )
overrideprotected

Overload: 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).

◆ BeforeThreadedExecution()

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
void itk::CorrelationImageToImageMetricv4HelperThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::BeforeThreadedExecution ( )
overrideprotected

Overload: Resize and initialize per thread objects.

◆ GetNameOfClass()

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
const char* itk::CorrelationImageToImageMetricv4HelperThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::GetNameOfClass ( ) const
override

◆ itkAlignedTypedef()

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
itk::CorrelationImageToImageMetricv4HelperThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::itkAlignedTypedef ( ITK_CACHE_LINE_ALIGNMENT  ,
PaddedCorrelationMetricPerThreadStruct  ,
AlignedCorrelationMetricPerThreadStruct   
)
private

◆ itkPadStruct()

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
itk::CorrelationImageToImageMetricv4HelperThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::itkPadStruct ( ITK_CACHE_LINE_ALIGNMENT  ,
CorrelationMetricPerThreadStruct  ,
PaddedCorrelationMetricPerThreadStruct   
)
private

◆ New()

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
static Pointer itk::CorrelationImageToImageMetricv4HelperThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::New ( )
static

◆ ProcessPoint()

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
bool itk::CorrelationImageToImageMetricv4HelperThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::ProcessPoint ( const VirtualIndexType &  ,
const VirtualPointType &  ,
const FixedImagePointType &  ,
const FixedImagePixelType &  ,
const FixedImageGradientType &  ,
const MovingImagePointType &  ,
const MovingImagePixelType &  ,
const MovingImageGradientType &  ,
MeasureType &  ,
DerivativeType &  ,
const  ThreadIdType 
) const
inlineoverrideprotected

Not using. All processing is done in ProcessVirtualPoint.

Definition at line 111 of file itkCorrelationImageToImageMetricv4HelperThreader.h.

◆ ProcessVirtualPoint()

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
bool itk::CorrelationImageToImageMetricv4HelperThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::ProcessVirtualPoint ( const VirtualIndexType &  virtualIndex,
const VirtualPointType &  virtualPoint,
const ThreadIdType  threadId 
)
overrideprotected

Member Data Documentation

◆ m_CorrelationAssociate

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
TCorrelationMetric* itk::CorrelationImageToImageMetricv4HelperThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::m_CorrelationAssociate {}
private

Internal pointer to the metric object in use by this threader. This will avoid costly dynamic casting in tight loops.

Definition at line 141 of file itkCorrelationImageToImageMetricv4HelperThreader.h.

◆ m_CorrelationMetricPerThreadVariables

template<typename TDomainPartitioner , typename TImageToImageMetric , typename TCorrelationMetric >
std::unique_ptr<AlignedCorrelationMetricPerThreadStruct[]> itk::CorrelationImageToImageMetricv4HelperThreader< TDomainPartitioner, TImageToImageMetric, TCorrelationMetric >::m_CorrelationMetricPerThreadVariables
private

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