00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
#ifndef __itkNthElementPixelAccessor_h
00018
#define __itkNthElementPixelAccessor_h
00019
00020
#include "itkMacro.h"
00021
00022
namespace itk
00023 {
00024
00047
template <
class T,
class TContainer >
00048 class ITK_EXPORT NthElementPixelAccessor
00049 {
00050
public:
00052 typedef NthElementPixelAccessor
Self;
00053
00055 typedef T
ExternalType;
00056
00059 typedef TContainer
InternalType;
00060
00062 inline void Set(
InternalType & output,
const ExternalType & input )
const
00063
{ output[m_ElementNumber] = input; }
00064
00066 inline ExternalType Get(
const InternalType & input )
const
00067
{
return static_cast<ExternalType>( input[m_ElementNumber] ); }
00068
00070 unsigned int GetElementNumber(
void)
const
00071
{
return m_ElementNumber; }
00072
00074 void SetElementNumber(
unsigned int nth )
00075 { m_ElementNumber = nth; }
00076
00079 bool operator!=(
const Self& accessor)
const
00080
{
00081
return (m_ElementNumber != accessor.
m_ElementNumber);
00082 }
00083
00085 NthElementPixelAccessor & operator=(
const NthElementPixelAccessor & accessor )
00086 {
00087 m_ElementNumber = accessor.
m_ElementNumber;
00088
return *
this;
00089 }
00090
00092 NthElementPixelAccessor()
00093 {
00094 m_ElementNumber = 0;
00095 }
00096
00097
private:
00098
00099
unsigned int m_ElementNumber;
00100
00101 };
00102
00103
00104 }
00105
00106
#endif
00107