Orfeo Toolbox  4.0
Classes | Public Types | Public Member Functions | Static Public Attributes | Private Member Functions | List of all members
itk::Functor::JoinFunctor< TPixel1, TPixel2 > Class Template Reference

Join the components of two pixel types into a single pixel type. More...

#include <itkJoinImageFilter.h>

Classes

struct  CopierDispatch
 
struct  CopierDispatchBase
 

Public Types

typedef Vector< JoinValueType,
itkGetStaticConstMacro(JoinDimension) > 
JoinType
 
typedef JoinTraits< ValueType1,
ValueType2 >::ValueType 
JoinValueType
 
typedef JoinFunctor Self
 
typedef PixelTraits< TPixel1 >
::ValueType 
ValueType1
 
typedef PixelTraits< TPixel2 >
::ValueType 
ValueType2
 

Public Member Functions

 JoinFunctor ()
 
 ~JoinFunctor ()
 
bool operator!= (const JoinFunctor &) const
 
JoinType operator() (const TPixel1 &A, const TPixel2 &B) const
 
bool operator== (const JoinFunctor &other) const
 

Static Public Attributes

static const unsigned int Dimension1 = PixelTraits< TPixel1 >::Dimension
 
static const unsigned int Dimension2 = PixelTraits< TPixel2 >::Dimension
 
static const unsigned int JoinDimension = Dimension1 + Dimension2
 

Private Member Functions

void FirstCopier (JoinType &out, unsigned int idx, const TPixel1 &A) const
 
void FirstCopier (CopierDispatchBase, JoinType &out, unsigned int idx, const TPixel1 &A) const
 
void FirstCopier (CopierDispatch< 1 >, JoinType &out, unsigned int idx, const TPixel1 &A) const
 
void SecondCopier (JoinType &out, unsigned int idx, const TPixel2 &B) const
 
void SecondCopier (CopierDispatchBase, JoinType &out, unsigned int idx, const TPixel2 &B) const
 
void SecondCopier (CopierDispatch< 1 >, JoinType &out, unsigned int idx, const TPixel2 &B) const
 

Detailed Description

template<typename TPixel1, typename TPixel2>
class itk::Functor::JoinFunctor< TPixel1, TPixel2 >

Join the components of two pixel types into a single pixel type.

JoinFunctor combines the components of two pixel types into a single pixel type. The components of one pixel are appended to the components of the other pixel. The output pixel type is an itk::Vector. The ValueType of the vector is the smallest scalar type that can represent the dynamic range of the both the input pixel value types. Hence, joining a char and unsigned char results in a short since that is the smallest datatype with a large enough dynamic range. To define a consistent behavior across different architectures, the join of an int and an unsigned int is float. On a 64 bit architecture, this join could be represented in a long. But on 32 bit architectures, the only safe join value type is a float. For this and similar ambiguous cases, the join value type is promoted to a float.

Definition at line 48 of file itkJoinImageFilter.h.

Member Typedef Documentation

template<typename TPixel1 , typename TPixel2 >
typedef Vector< JoinValueType, itkGetStaticConstMacro(JoinDimension) > itk::Functor::JoinFunctor< TPixel1, TPixel2 >::JoinType

A vector of the join dimension.

Definition at line 71 of file itkJoinImageFilter.h.

template<typename TPixel1 , typename TPixel2 >
typedef JoinTraits< ValueType1, ValueType2 >::ValueType itk::Functor::JoinFunctor< TPixel1, TPixel2 >::JoinValueType

Definition at line 60 of file itkJoinImageFilter.h.

template<typename TPixel1 , typename TPixel2 >
typedef JoinFunctor itk::Functor::JoinFunctor< TPixel1, TPixel2 >::Self

Standard typedefs

Definition at line 55 of file itkJoinImageFilter.h.

template<typename TPixel1 , typename TPixel2 >
typedef PixelTraits< TPixel1 >::ValueType itk::Functor::JoinFunctor< TPixel1, TPixel2 >::ValueType1

Typedefs for the output join type.

Definition at line 58 of file itkJoinImageFilter.h.

template<typename TPixel1 , typename TPixel2 >
typedef PixelTraits< TPixel2 >::ValueType itk::Functor::JoinFunctor< TPixel1, TPixel2 >::ValueType2

Definition at line 59 of file itkJoinImageFilter.h.

Constructor & Destructor Documentation

template<typename TPixel1 , typename TPixel2 >
itk::Functor::JoinFunctor< TPixel1, TPixel2 >::JoinFunctor ( )
inline

Definition at line 51 of file itkJoinImageFilter.h.

template<typename TPixel1 , typename TPixel2 >
itk::Functor::JoinFunctor< TPixel1, TPixel2 >::~JoinFunctor ( )
inline

Definition at line 52 of file itkJoinImageFilter.h.

Member Function Documentation

template<typename TPixel1 , typename TPixel2 >
void itk::Functor::JoinFunctor< TPixel1, TPixel2 >::FirstCopier ( JoinType out,
unsigned int  idx,
const TPixel1 &  A 
) const
inlineprivate

Copier function to copy the first pixel to the output pixel casting as necessary. The contents of the source pixel are placed in the output pixel at position idx. This method simply delegates to one of two overloaded implementations based on the dimension (or number of components) of the first pixel. FirstCopier() and SecondCopier() are defined as distinct functions (as opposed to being a single Copier() function overloaded on the last parameter type or pixel type) to avoid "already declared/defined" errors for the case where TPixel1 and TPixel2 are the same types.

Definition at line 118 of file itkJoinImageFilter.h.

Referenced by itk::Functor::JoinFunctor< TPixel1, TPixel2 >::operator()().

template<typename TPixel1 , typename TPixel2 >
void itk::Functor::JoinFunctor< TPixel1, TPixel2 >::FirstCopier ( CopierDispatchBase  ,
JoinType out,
unsigned int  idx,
const TPixel1 &  A 
) const
inlineprivate

Copier function specific to a vector type first pixel.

Definition at line 124 of file itkJoinImageFilter.h.

References itk::Functor::JoinFunctor< TPixel1, TPixel2 >::Dimension1.

template<typename TPixel1 , typename TPixel2 >
void itk::Functor::JoinFunctor< TPixel1, TPixel2 >::FirstCopier ( CopierDispatch< 1 >  ,
JoinType out,
unsigned int  idx,
const TPixel1 &  A 
) const
inlineprivate

Copier function specific to a scalar first pixel.

Definition at line 134 of file itkJoinImageFilter.h.

template<typename TPixel1 , typename TPixel2 >
bool itk::Functor::JoinFunctor< TPixel1, TPixel2 >::operator!= ( const JoinFunctor< TPixel1, TPixel2 > &  ) const
inline

Definition at line 73 of file itkJoinImageFilter.h.

template<typename TPixel1 , typename TPixel2 >
JoinType itk::Functor::JoinFunctor< TPixel1, TPixel2 >::operator() ( const TPixel1 &  A,
const TPixel2 &  B 
) const
inline
template<typename TPixel1 , typename TPixel2 >
bool itk::Functor::JoinFunctor< TPixel1, TPixel2 >::operator== ( const JoinFunctor< TPixel1, TPixel2 > &  other) const
inline

Definition at line 78 of file itkJoinImageFilter.h.

template<typename TPixel1 , typename TPixel2 >
void itk::Functor::JoinFunctor< TPixel1, TPixel2 >::SecondCopier ( JoinType out,
unsigned int  idx,
const TPixel2 &  B 
) const
inlineprivate

Copier function to copy the second pixel to the output pixel casting as necessary. The contents of the source pixel are placed in the output pixel at position idx. This method simply delegates to one of two overloaded implementations based on the dimension (or number of components) of the second pixel.

Definition at line 143 of file itkJoinImageFilter.h.

Referenced by itk::Functor::JoinFunctor< TPixel1, TPixel2 >::operator()().

template<typename TPixel1 , typename TPixel2 >
void itk::Functor::JoinFunctor< TPixel1, TPixel2 >::SecondCopier ( CopierDispatchBase  ,
JoinType out,
unsigned int  idx,
const TPixel2 &  B 
) const
inlineprivate

Copier function specific to a vector type second pixel.

Definition at line 149 of file itkJoinImageFilter.h.

References itk::Functor::JoinFunctor< TPixel1, TPixel2 >::Dimension2.

template<typename TPixel1 , typename TPixel2 >
void itk::Functor::JoinFunctor< TPixel1, TPixel2 >::SecondCopier ( CopierDispatch< 1 >  ,
JoinType out,
unsigned int  idx,
const TPixel2 &  B 
) const
inlineprivate

Copier function specific to a scalar second pixel.

Definition at line 159 of file itkJoinImageFilter.h.

Member Data Documentation

template<typename TPixel1 , typename TPixel2 >
const unsigned int itk::Functor::JoinFunctor< TPixel1, TPixel2 >::Dimension1 = PixelTraits< TPixel1 >::Dimension
static
template<typename TPixel1 , typename TPixel2 >
const unsigned int itk::Functor::JoinFunctor< TPixel1, TPixel2 >::Dimension2 = PixelTraits< TPixel2 >::Dimension
static
template<typename TPixel1 , typename TPixel2 >
const unsigned int itk::Functor::JoinFunctor< TPixel1, TPixel2 >::JoinDimension = Dimension1 + Dimension2
static

Definition at line 68 of file itkJoinImageFilter.h.


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

Generated at Sat Mar 8 2014 18:02:25 for Orfeo Toolbox with doxygen 1.8.3.1