ImageAccessorBase< ChannelType, nch > Class Template Reference


Detailed Description

template<class ChannelType, cu_int nch>
class mudbox::ImageAccessorBase< ChannelType, nch >

The ImageAccessorBase class gives you very fast access to pixels when the data type and channel count of an image are known at compile time (and this is very often the case.)

Definition at line 2490 of file image.h.

#include <image.h>

Inheritance diagram for ImageAccessorBase< ChannelType, nch >:
Inheritance graph
[legend]

List of all members.

Public Member Functions

  ImageAccessorBase (Image *parent)
u_int  Width () const
u_int  Height () const
u_int  ChannelCount () const
void  SetValueAt (u_int X, u_int Y, u_int Ch, float fVal)
  Set value for a specified texel.
float  ValueAt (u_int X, u_int Y, u_int Ch) const
  Get the value at a given coordinate.
void  SetColorAt (u_int X, u_int Y, const Color &cColor)
  Set value for a specified texel.
void *  AddrAt (u_int X, u_int Y, u_int Ch)
template<>
void *  AddrAt (u_int X, u_int Y, u_int Ch)
template<>
void *  AddrAt (u_int X, u_int Y, u_int Ch)
template<>
void *  AddrAt (u_int X, u_int Y, u_int Ch)
template<>
void *  AddrAt (u_int X, u_int Y, u_int Ch)
template<>
void *  AddrAt (u_int X, u_int Y, u_int Ch)
template<>
void *  AddrAt (u_int X, u_int Y, u_int Ch)
template<>
void *  AddrAt (u_int X, u_int Y, u_int Ch)
template<>
void *  AddrAt (u_int X, u_int Y, u_int Ch)
template<>
void *  AddrAt (u_int X, u_int Y, u_int Ch)
template<>
void *  AddrAt (u_int X, u_int Y, u_int Ch)
template<>
void *  AddrAt (u_int X, u_int Y, u_int Ch)
template<>
void *  AddrAt (u_int X, u_int Y, u_int Ch)
template<>
void *  AddrAt (u_int X, u_int Y, u_int Ch)
template<>
void *  AddrAt (u_int X, u_int Y, u_int Ch)
template<>
void *  AddrAt (u_int X, u_int Y, u_int Ch)
template<>
void *  AddrAt (u_int X, u_int Y, u_int Ch)
template<>
void  SetValueAt (u_int X, u_int Y, u_int Ch, float fVal)
template<>
void  SetValueAt (u_int X, u_int Y, u_int Ch, float fVal)
template<>
void  SetValueAt (u_int X, u_int Y, u_int Ch, float fVal)
template<>
void  SetValueAt (u_int X, u_int Y, u_int Ch, float fVal)
template<>
void  SetValueAt (u_int X, u_int Y, u_int Ch, float fVal)
template<>
void  SetValueAt (u_int X, u_int Y, u_int Ch, float fVal)
template<>
void  SetValueAt (u_int X, u_int Y, u_int Ch, float fVal)
template<>
void  SetValueAt (u_int X, u_int Y, u_int Ch, float fVal)
template<>
void  SetValueAt (u_int X, u_int Y, u_int Ch, float fVal)
template<>
void  SetValueAt (u_int X, u_int Y, u_int Ch, float fVal)
template<>
void  SetValueAt (u_int X, u_int Y, u_int Ch, float fVal)
template<>
void  SetValueAt (u_int X, u_int Y, u_int Ch, float fVal)
template<>
void  SetValueAt (u_int X, u_int Y, u_int Ch, float fVal)
template<>
void  SetValueAt (u_int X, u_int Y, u_int Ch, float fVal)
template<>
void  SetValueAt (u_int X, u_int Y, u_int Ch, float fVal)
template<>
void  SetValueAt (u_int X, u_int Y, u_int Ch, float fVal)
template<>
float  ValueAt (u_int X, u_int Y, u_int Ch) const
template<>
float  ValueAt (u_int X, u_int Y, u_int Ch) const
template<>
float  ValueAt (u_int X, u_int Y, u_int Ch) const
template<>
float  ValueAt (u_int X, u_int Y, u_int Ch) const
template<>
float  ValueAt (u_int X, u_int Y, u_int Ch) const
template<>
float  ValueAt (u_int X, u_int Y, u_int Ch) const
template<>
float  ValueAt (u_int X, u_int Y, u_int Ch) const
template<>
float  ValueAt (u_int X, u_int Y, u_int Ch) const
template<>
float  ValueAt (u_int X, u_int Y, u_int Ch) const
template<>
float  ValueAt (u_int X, u_int Y, u_int Ch) const
template<>
float  ValueAt (u_int X, u_int Y, u_int Ch) const
template<>
float  ValueAt (u_int X, u_int Y, u_int Ch) const
template<>
float  ValueAt (u_int X, u_int Y, u_int Ch) const
template<>
float  ValueAt (u_int X, u_int Y, u_int Ch) const
template<>
float  ValueAt (u_int X, u_int Y, u_int Ch) const
template<>
float  ValueAt (u_int X, u_int Y, u_int Ch) const
template<>
float  ValueAt (u_int X, u_int Y, u_int Ch) const
template<>
float  ValueAt (u_int X, u_int Y, u_int Ch) const
template<>
void  SetValueAt (u_int X, u_int Y, u_int Ch, float fVal)
template<>
void  SetValueAt (u_int X, u_int Y, u_int Ch, float fVal)
template<>
void  SetColorAt (u_int X, u_int Y, const Color &c)
template<>
void  SetColorAt (u_int X, u_int Y, const Color &c)
template<>
void  SetColorAt (u_int X, u_int Y, const Color &c)
template<>
void  SetColorAt (u_int X, u_int Y, const Color &c)
template<>
void  SetColorAt (u_int X, u_int Y, const Color &c)
template<>
void  SetColorAt (u_int X, u_int Y, const Color &c)
template<>
void  SetColorAt (u_int X, u_int Y, const Color &c)
template<>
void  SetColorAt (u_int X, u_int Y, const Color &c)

Constructor & Destructor Documentation

ImageAccessorBase ( Image parent ) [inline]

Definition at line 2500 of file image.h.

    {
        m_Stride = parent->Width();
        m_Height = parent->Height();
        m_chans  = parent->ChannelCount();
        m_Image  = parent;
        m_pData  = (ChannelType *)parent->Data();
    }

Member Function Documentation

u_int Width ( void  ) const [inline]

Definition at line 2509 of file image.h.

{ return m_Stride; }
u_int Height ( void  ) const [inline]

Definition at line 2510 of file image.h.

{ return m_Height; }
u_int ChannelCount ( void  ) const [inline]

Definition at line 2511 of file image.h.

{ return m_chans;  }
void SetValueAt ( u_int  X,
u_int  Y,
u_int  Ch,
float  fVal 
) [inline]

Set value for a specified texel.

For integer maps 1 should be mapped for the maximum value (255 for 8 bit images and 65535 for 16 bit images)

float ValueAt ( u_int  X,
u_int  Y,
u_int  Ch 
) const [inline]

Get the value at a given coordinate.

void SetColorAt ( u_int  X,
u_int  Y,
const Color cColor 
) [inline]

Set value for a specified texel.

For integer maps 1 should be mapped for the maximum value (255 for 8 bit images and 65535 for 16 bit images)

void* AddrAt ( u_int  X,
u_int  Y,
u_int  Ch 
) [inline]
void * AddrAt ( u_int  X,
u_int  Y,
u_int  Ch 
) [inline]

Definition at line 2600 of file image.h.

{ return (void *)&m_pData[Ch + ((X + m_Stride * Y)    )]; }
void * AddrAt ( u_int  X,
u_int  Y,
u_int  Ch 
) [inline]

Definition at line 2603 of file image.h.

{ return (void *)&m_pData[Ch + ((X + m_Stride * Y) * 2)]; }
void * AddrAt ( u_int  X,
u_int  Y,
u_int  Ch 
) [inline]

Definition at line 2606 of file image.h.

{ return (void *)&m_pData[Ch + ((X + m_Stride * Y) * 3)]; }
void * AddrAt ( u_int  X,
u_int  Y,
u_int  Ch 
) [inline]

Definition at line 2609 of file image.h.

{ return (void *)&m_pData[Ch + ((X + m_Stride * Y) * 4)]; }
void * AddrAt ( u_int  X,
u_int  Y,
u_int  Ch 
) [inline]

Definition at line 2613 of file image.h.

{ return (void *)&m_pData[Ch + ((X + m_Stride * Y)    )]; }
void * AddrAt ( u_int  X,
u_int  Y,
u_int  Ch 
) [inline]

Definition at line 2616 of file image.h.

{ return (void *)&m_pData[Ch + ((X + m_Stride * Y) * 2)]; }
void * AddrAt ( u_int  X,
u_int  Y,
u_int  Ch 
) [inline]

Definition at line 2619 of file image.h.

{ return (void *)&m_pData[Ch + ((X + m_Stride * Y) * 3)]; }
void * AddrAt ( u_int  X,
u_int  Y,
u_int  Ch 
) [inline]

Definition at line 2622 of file image.h.

{ return (void *)&m_pData[Ch + ((X + m_Stride * Y) * 4)]; }
void * AddrAt ( u_int  X,
u_int  Y,
u_int  Ch 
) [inline]

Definition at line 2627 of file image.h.

{ return (void *)&m_pData[Ch + ((X + m_Stride * Y)    )]; }
void * AddrAt ( u_int  X,
u_int  Y,
u_int  Ch 
) [inline]

Definition at line 2630 of file image.h.

{ return (void *)&m_pData[Ch + ((X + m_Stride * Y) * 2)]; }
void * AddrAt ( u_int  X,
u_int  Y,
u_int  Ch 
) [inline]

Definition at line 2633 of file image.h.

{ return (void *)&m_pData[Ch + ((X + m_Stride * Y) * 3)]; }
void * AddrAt ( u_int  X,
u_int  Y,
u_int  Ch 
) [inline]

Definition at line 2636 of file image.h.

{ return (void *)&m_pData[Ch + ((X + m_Stride * Y) * 4)]; }
void * AddrAt ( u_int  X,
u_int  Y,
u_int  Ch 
) [inline]

Definition at line 2640 of file image.h.

{ return (void *)&m_pData[Ch + ((X + m_Stride * Y)    )]; }
void * AddrAt ( u_int  X,
u_int  Y,
u_int  Ch 
) [inline]

Definition at line 2643 of file image.h.

{ return (void *)&m_pData[Ch + ((X + m_Stride * Y) * 2)]; }
void * AddrAt ( u_int  X,
u_int  Y,
u_int  Ch 
) [inline]

Definition at line 2646 of file image.h.

{ return (void *)&m_pData[Ch + ((X + m_Stride * Y) * 3)]; }
void * AddrAt ( u_int  X,
u_int  Y,
u_int  Ch 
) [inline]

Definition at line 2649 of file image.h.

{ return (void *)&m_pData[Ch + ((X + m_Stride * Y) * 4)]; }
void SetValueAt ( u_int  X,
u_int  Y,
u_int  Ch,
float  fVal 
) [inline]

Definition at line 2654 of file image.h.

{ m_pData[Ch + ((X + m_Stride * Y)    )] = (u_char)(255.0f * fVal); }
void SetValueAt ( u_int  X,
u_int  Y,
u_int  Ch,
float  fVal 
) [inline]

Definition at line 2657 of file image.h.

{ m_pData[Ch + ((X + m_Stride * Y) * 2)] = (u_char)(255.0f * fVal); }
void SetValueAt ( u_int  X,
u_int  Y,
u_int  Ch,
float  fVal 
) [inline]

Definition at line 2660 of file image.h.

{ m_pData[Ch + ((X + m_Stride * Y) * 3)] = (u_char)(255.0f * fVal); }
void SetValueAt ( u_int  X,
u_int  Y,
u_int  Ch,
float  fVal 
) [inline]

Definition at line 2663 of file image.h.

{ m_pData[Ch + ((X + m_Stride * Y) * 4)] = (u_char)(255.0f * fVal); }
void SetValueAt ( u_int  X,
u_int  Y,
u_int  Ch,
float  fVal 
) [inline]

Definition at line 2667 of file image.h.

{ m_pData[Ch + ((X + m_Stride * Y)    )] = (u_short)(65535.0f * fVal); }
void SetValueAt ( u_int  X,
u_int  Y,
u_int  Ch,
float  fVal 
) [inline]

Definition at line 2670 of file image.h.

{ m_pData[Ch + ((X + m_Stride * Y) * 2)] = (u_short)(65535.0f * fVal); }
void SetValueAt ( u_int  X,
u_int  Y,
u_int  Ch,
float  fVal 
) [inline]

Definition at line 2673 of file image.h.

{ m_pData[Ch + ((X + m_Stride * Y) * 3)] = (u_short)(65535.0f * fVal); }
void SetValueAt ( u_int  X,
u_int  Y,
u_int  Ch,
float  fVal 
) [inline]

Definition at line 2676 of file image.h.

{ m_pData[Ch + ((X + m_Stride * Y) * 4)] = (u_short)(65535.0f * fVal); }
void SetValueAt ( u_int  X,
u_int  Y,
u_int  Ch,
float  fVal 
) [inline]

Definition at line 2681 of file image.h.

{ m_pData[Ch + ((X + m_Stride * Y)    )] = (u_int)(0xffffffff * fVal); }
void SetValueAt ( u_int  X,
u_int  Y,
u_int  Ch,
float  fVal 
) [inline]

Definition at line 2684 of file image.h.

{ m_pData[Ch + ((X + m_Stride * Y) * 2)] = (u_int)(0xffffffff * fVal); }
void SetValueAt ( u_int  X,
u_int  Y,
u_int  Ch,
float  fVal 
) [inline]

Definition at line 2687 of file image.h.

{ m_pData[Ch + ((X + m_Stride * Y) * 3)] = (u_int)(0xffffffff * fVal); }
void SetValueAt ( u_int  X,
u_int  Y,
u_int  Ch,
float  fVal 
) [inline]

Definition at line 2690 of file image.h.

{ m_pData[Ch + ((X + m_Stride * Y) * 4)] = (u_int)(0xffffffff * fVal); }
void SetValueAt ( u_int  X,
u_int  Y,
u_int  Ch,
float  fVal 
) [inline]

Definition at line 2694 of file image.h.

{ m_pData[Ch + ((X + m_Stride * Y)    )] = fVal; }
void SetValueAt ( u_int  X,
u_int  Y,
u_int  Ch,
float  fVal 
) [inline]

Definition at line 2697 of file image.h.

{ m_pData[Ch + ((X + m_Stride * Y) * 2)] = fVal; }
void SetValueAt ( u_int  X,
u_int  Y,
u_int  Ch,
float  fVal 
) [inline]

Definition at line 2700 of file image.h.

{ m_pData[Ch + ((X + m_Stride * Y) * 3)] = fVal; }
void SetValueAt ( u_int  X,
u_int  Y,
u_int  Ch,
float  fVal 
) [inline]

Definition at line 2703 of file image.h.

{ m_pData[Ch + ((X + m_Stride * Y) * 4)] = fVal; }
float ValueAt ( u_int  X,
u_int  Y,
u_int  Ch 
) const [inline]

Definition at line 2707 of file image.h.

{ return m_pData[Ch + ((X + m_Stride * Y)    )] * (1.0f/255.0f); }
float ValueAt ( u_int  X,
u_int  Y,
u_int  Ch 
) const [inline]

Definition at line 2710 of file image.h.

{ return m_pData[Ch + ((X + m_Stride * Y) * 2)] * (1.0f/255.0f); }
float ValueAt ( u_int  X,
u_int  Y,
u_int  Ch 
) const [inline]

Definition at line 2713 of file image.h.

{ return m_pData[Ch + ((X + m_Stride * Y) * 3)] * (1.0f/255.0f); }
float ValueAt ( u_int  X,
u_int  Y,
u_int  Ch 
) const [inline]

Definition at line 2716 of file image.h.

{ return m_pData[Ch + ((X + m_Stride * Y) * 4)] * (1.0f/255.0f); }
float ValueAt ( u_int  X,
u_int  Y,
u_int  Ch 
) const [inline]

Definition at line 2720 of file image.h.

{ return m_pData[Ch + ((X + m_Stride * Y)    )] * (1.0f/65535.0f); }
float ValueAt ( u_int  X,
u_int  Y,
u_int  Ch 
) const [inline]

Definition at line 2723 of file image.h.

{ return m_pData[Ch + ((X + m_Stride * Y) * 2)] * (1.0f/65535.0f); }
float ValueAt ( u_int  X,
u_int  Y,
u_int  Ch 
) const [inline]

Definition at line 2726 of file image.h.

{ return m_pData[Ch + ((X + m_Stride * Y) * 3)] * (1.0f/65535.0f); }
float ValueAt ( u_int  X,
u_int  Y,
u_int  Ch 
) const [inline]

Definition at line 2729 of file image.h.

{ return m_pData[Ch + ((X + m_Stride * Y) * 4)] * (1.0f/65535.0f); }
float ValueAt ( u_int  X,
u_int  Y,
u_int  Ch 
) const [inline]

Definition at line 2733 of file image.h.

{ return m_pData[Ch + ((X + m_Stride * Y)    )] * (1.0f/float(0xffffffff)); }
float ValueAt ( u_int  X,
u_int  Y,
u_int  Ch 
) const [inline]

Definition at line 2736 of file image.h.

{ return m_pData[Ch + ((X + m_Stride * Y) * 2)] * (1.0f/float(0xffffffff)); }
float ValueAt ( u_int  X,
u_int  Y,
u_int  Ch 
) const [inline]

Definition at line 2739 of file image.h.

{ return m_pData[Ch + ((X + m_Stride * Y) * 3)] * (1.0f/float(0xffffffff)); }
float ValueAt ( u_int  X,
u_int  Y,
u_int  Ch 
) const [inline]

Definition at line 2742 of file image.h.

{ return m_pData[Ch + ((X + m_Stride * Y) * 4)] * (1.0f/float(0xffffffff)); }
float ValueAt ( u_int  X,
u_int  Y,
u_int  Ch 
) const [inline]

Definition at line 2746 of file image.h.

{ return m_pData[Ch + ((X + m_Stride * Y)    )]; }
float ValueAt ( u_int  X,
u_int  Y,
u_int  Ch 
) const [inline]

Definition at line 2749 of file image.h.

{ return m_pData[Ch + ((X + m_Stride * Y) * 2)]; }
float ValueAt ( u_int  X,
u_int  Y,
u_int  Ch 
) const [inline]

Definition at line 2752 of file image.h.

{ return m_pData[Ch + ((X + m_Stride * Y) * 3)]; }
float ValueAt ( u_int  X,
u_int  Y,
u_int  Ch 
) const [inline]

Definition at line 2755 of file image.h.

{ return m_pData[Ch + ((X + m_Stride * Y) * 4)]; }
float ValueAt ( u_int  X,
u_int  Y,
u_int  Ch 
) const [inline]

Definition at line 2804 of file image.h.

{ return float(m_pData[Ch + ((X + m_Stride * Y) * 3)]); }
float ValueAt ( u_int  X,
u_int  Y,
u_int  Ch 
) const [inline]

Definition at line 2809 of file image.h.

{ return float(m_pData[Ch + ((X + m_Stride * Y) * 4)]); }
void SetValueAt ( u_int  X,
u_int  Y,
u_int  Ch,
float  fVal 
) [inline]

Definition at line 2814 of file image.h.

{ m_pData[Ch + ((X + m_Stride * Y) * 3)] = fVal; }
void SetValueAt ( u_int  X,
u_int  Y,
u_int  Ch,
float  fVal 
) [inline]

Definition at line 2819 of file image.h.

{ m_pData[Ch + ((X + m_Stride * Y) * 4)] = fVal; }
void SetColorAt ( u_int  X,
u_int  Y,
const Color c 
) [inline]

Definition at line 2840 of file image.h.

{
    SetValueAt(X, Y, 0, c.r);
    SetValueAt(X, Y, 1, c.g);
    SetValueAt(X, Y, 2, c.b);
    SetValueAt(X, Y, 3, c.a);
};
void SetColorAt ( u_int  X,
u_int  Y,
const Color c 
) [inline]

Definition at line 2850 of file image.h.

{
    SetValueAt(X, Y, 0, c.r);
    SetValueAt(X, Y, 1, c.g);
    SetValueAt(X, Y, 2, c.b);
};
void SetColorAt ( u_int  X,
u_int  Y,
const Color c 
) [inline]

Definition at line 2859 of file image.h.

{
    SetValueAt(X, Y, 0, c.r);
    SetValueAt(X, Y, 1, c.g);
    SetValueAt(X, Y, 2, c.b);
    SetValueAt(X, Y, 3, c.a);
};
void SetColorAt ( u_int  X,
u_int  Y,
const Color c 
) [inline]

Definition at line 2869 of file image.h.

{
    SetValueAt(X, Y, 0, c.r);
    SetValueAt(X, Y, 1, c.g);
    SetValueAt(X, Y, 2, c.b);
};
void SetColorAt ( u_int  X,
u_int  Y,
const Color c 
) [inline]

Definition at line 2878 of file image.h.

{
    SetValueAt(X, Y, 0, c.r);
    SetValueAt(X, Y, 1, c.g);
    SetValueAt(X, Y, 2, c.b);
    SetValueAt(X, Y, 3, c.a);
};
void SetColorAt ( u_int  X,
u_int  Y,
const Color c 
) [inline]

Definition at line 2888 of file image.h.

{
    SetValueAt(X, Y, 0, c.r);
    SetValueAt(X, Y, 1, c.g);
    SetValueAt(X, Y, 2, c.b);
};
void SetColorAt ( u_int  X,
u_int  Y,
const Color c 
) [inline]

Definition at line 2897 of file image.h.

{
    SetValueAt(X, Y, 0, c.r);
    SetValueAt(X, Y, 1, c.g);
    SetValueAt(X, Y, 2, c.b);
    SetValueAt(X, Y, 3, c.a);
};
void SetColorAt ( u_int  X,
u_int  Y,
const Color c 
) [inline]

Definition at line 2907 of file image.h.

{
    SetValueAt(X, Y, 0, c.r);
    SetValueAt(X, Y, 1, c.g);
    SetValueAt(X, Y, 2, c.b);
};

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