Public Types | Public Member Functions | Public Attributes | Static Public Attributes | Private Member Functions | Private Attributes
vgui_range_map< Type > Class Template Reference

#include <vgui_range_map.h>

Inheritance diagram for vgui_range_map< Type >:
Inheritance graph
[legend]

List of all members.

Public Types

enum  {
  RGBA_m, RGB_m, XRG_m, RXB_m,
  RGX_m, END_m
}

Public Member Functions

 vgui_range_map (vgui_range_map_params const &rmp)
 ~vgui_range_map ()
bool mapable () const
 Is the pixel type mapable at all.
bool table_mapable () const
 Is the pixel type mapable by a lookup table.
unsigned map_size () const
 Get the number of elements in the mapping tables.
vbl_array_1d< vxl_byte > Lmap ()
 Luminance map.
vbl_array_1d< vxl_byte > Rmap ()
 Red Channel map.
vbl_array_1d< vxl_byte > Gmap ()
 Green Channel map.
vbl_array_1d< vxl_byte > Bmap ()
 Blue Channel map.
vbl_array_1d< vxl_byte > Xmap ()
 Alpha or Infrared Channel map.
vbl_array_1d< float > fLmap ()
 Luminance hardware map.
vbl_array_1d< float > fRmap ()
 Red channel hardware map.
vbl_array_1d< float > fGmap ()
 Green channel hardware map.
vbl_array_1d< float > fBmap ()
 Blue channel hardware map.
vbl_array_1d< float > fXmap ()
 Alpha or Infrared channel hardware map.
vxl_byte map_L_pixel (const Type pix)
 Luminance computed map.
vxl_byte map_R_pixel (const Type pix)
 Red channel computed map.
vxl_byte map_G_pixel (const Type pix)
 Green channel computed map.
vxl_byte map_B_pixel (const Type pix)
 Blue channel computed map.
vxl_byte map_X_pixel (const Type pix)
 Alpha or Infrared channel computed map.
int offset ()
 offset for potentially signed table index. Zero for unsigned, -maxval for signed.
bool operator== (vgui_range_map_params const &p) const
 equality tests.
bool operator!= (vgui_range_map_params const &p) const
void print (vcl_ostream &os) const
void ref ()
void unref ()
int get_references () const
bool is_referenced () const

Public Attributes

unsigned n_components_
 number of components for pixel data
long double min_L_
 map domain minimum for luminance data
long double max_L_
 map domain maximum for luminance data
float gamma_L_
 photometric non-linear gamma correction
bool invert_
 invert the mapping to a negative image
long double min_R_
 map domain minimum for red channel data
long double max_R_
 map domain maximum for red channel data
float gamma_R_
 photometric non-linear gamma correction for red
long double min_G_
 map domain minimum for green channel data
long double max_G_
 map domain maximum for green channel data
float gamma_G_
 photometric non-linear gamma correction for green
long double min_B_
 map domain minimum for blue channel data
long double max_B_
 map domain maximum for blue channel data
float gamma_B_
 photometric non-linear gamma correction for blue
long double min_X_
 map domain minimum for alpha or infrared channel data
long double max_X_
 map domain maximum for alpha or infrared channel data
float gamma_X_
 photometric non-linear gamma correction for alpha or infrared
int band_map_
bool use_glPixelMap_
 use OpenGL to map pixels to screen
bool cache_mapped_pix_
 cache mapped pixels

Static Public Attributes

static vcl_vector< vcl_string > bmap = minit()

Private Member Functions

 vgui_range_map ()
void init ()
void init_map_domain (const Type min, const Type max, long double &ratio)
 Initialize the domain - sanity check and compute ratio_.
vxl_byte map_pixel_byte (const Type pix, const Type min, const Type max, const float gamma, const long double ratio)
 Map a pixel from Type to vxl_byte.
float map_pixel_float (const Type pix, const Type min, const Type max, const float gamma, const long double ratio)
 Map the pixel to the range [0f 1f];.
vbl_array_1d< vxl_byte > compute_byte_table (const Type min, const Type max, const float gamma, const long double ratio)
 Initialize the byte mapping table.
vbl_array_1d< float > compute_float_table (const Type min, const Type max, const float gamma, const long double ratio)
 Initialize the float mapping table.

Private Attributes

bool mapable_
 input pixel type can be mapped
bool table_mapable_
 input pixel type can be mapped by a table.
unsigned size_
 number of elements in the map
long double ratio_L_
 scale for computed Luminance mapping
long double ratio_R_
 scale for computed red channel mapping
long double ratio_G_
 scale for computed green channel mapping
long double ratio_B_
 scale for computed blue channel mapping
long double ratio_X_
 scale for computed alpha or IR channel mapping

Detailed Description

template<class Type>
class vgui_range_map< Type >

Definition at line 76 of file vgui_range_map.h.


Member Enumeration Documentation

anonymous enum [inherited]
Enumerator:
RGBA_m 
RGB_m 
XRG_m 
RXB_m 
RGX_m 
END_m 

Definition at line 35 of file vgui_range_map_params.h.


Constructor & Destructor Documentation

template<class Type >
vgui_range_map< Type >::vgui_range_map ( vgui_range_map_params const &  rmp)

Definition at line 137 of file vgui_range_map.txx.

template<class Type >
vgui_range_map< Type >::~vgui_range_map ( )

Definition at line 159 of file vgui_range_map.txx.

template<class Type>
vgui_range_map< Type >::vgui_range_map ( ) [private]

Member Function Documentation

template<class Type>
vbl_array_1d<vxl_byte> vgui_range_map< Type >::Bmap ( ) [inline]

Blue Channel map.

Definition at line 100 of file vgui_range_map.h.

template<class Type >
vbl_array_1d< vxl_byte > vgui_range_map< Type >::compute_byte_table ( const Type  min,
const Type  max,
const float  gamma,
const long double  ratio 
) [private]

Initialize the byte mapping table.

Definition at line 99 of file vgui_range_map.txx.

template<class Type >
vbl_array_1d< float > vgui_range_map< Type >::compute_float_table ( const Type  min,
const Type  max,
const float  gamma,
const long double  ratio 
) [private]

Initialize the float mapping table.

Definition at line 123 of file vgui_range_map.txx.

template<class Type>
vbl_array_1d<float> vgui_range_map< Type >::fBmap ( ) [inline]

Blue channel hardware map.

Definition at line 113 of file vgui_range_map.h.

template<class Type>
vbl_array_1d<float> vgui_range_map< Type >::fGmap ( ) [inline]

Green channel hardware map.

Definition at line 111 of file vgui_range_map.h.

template<class Type>
vbl_array_1d<float> vgui_range_map< Type >::fLmap ( ) [inline]

Luminance hardware map.

Definition at line 107 of file vgui_range_map.h.

template<class Type>
vbl_array_1d<float> vgui_range_map< Type >::fRmap ( ) [inline]

Red channel hardware map.

Definition at line 109 of file vgui_range_map.h.

template<class Type>
vbl_array_1d<float> vgui_range_map< Type >::fXmap ( ) [inline]

Alpha or Infrared channel hardware map.

Definition at line 115 of file vgui_range_map.h.

template<class Type>
vbl_array_1d<vxl_byte> vgui_range_map< Type >::Gmap ( ) [inline]

Green Channel map.

Definition at line 98 of file vgui_range_map.h.

template<class Type >
void vgui_range_map< Type >::init ( ) [private]

Definition at line 25 of file vgui_range_map.txx.

template<class Type >
void vgui_range_map< Type >::init_map_domain ( const Type  min,
const Type  max,
long double &  ratio 
) [private]

Initialize the domain - sanity check and compute ratio_.

Definition at line 11 of file vgui_range_map.txx.

template<class Type>
vbl_array_1d<vxl_byte> vgui_range_map< Type >::Lmap ( ) [inline]

Luminance map.

Definition at line 94 of file vgui_range_map.h.

template<class Type>
vxl_byte vgui_range_map< Type >::map_B_pixel ( const Type  pix) [inline]

Blue channel computed map.

Definition at line 124 of file vgui_range_map.h.

template<class Type>
vxl_byte vgui_range_map< Type >::map_G_pixel ( const Type  pix) [inline]

Green channel computed map.

Definition at line 122 of file vgui_range_map.h.

template<class Type>
vxl_byte vgui_range_map< Type >::map_L_pixel ( const Type  pix) [inline]

Luminance computed map.

Definition at line 118 of file vgui_range_map.h.

template<class Type >
vxl_byte vgui_range_map< Type >::map_pixel_byte ( const Type  pix,
const Type  min,
const Type  max,
const float  gamma,
const long double  ratio 
) [private]

Map a pixel from Type to vxl_byte.

Definition at line 42 of file vgui_range_map.txx.

template<class Type >
float vgui_range_map< Type >::map_pixel_float ( const Type  pix,
const Type  min,
const Type  max,
const float  gamma,
const long double  ratio 
) [private]

Map the pixel to the range [0f 1f];.

Definition at line 71 of file vgui_range_map.txx.

template<class Type>
vxl_byte vgui_range_map< Type >::map_R_pixel ( const Type  pix) [inline]

Red channel computed map.

Definition at line 120 of file vgui_range_map.h.

template<class Type>
unsigned vgui_range_map< Type >::map_size ( ) const [inline]

Get the number of elements in the mapping tables.

Definition at line 89 of file vgui_range_map.h.

template<class Type>
vxl_byte vgui_range_map< Type >::map_X_pixel ( const Type  pix) [inline]

Alpha or Infrared channel computed map.

Definition at line 126 of file vgui_range_map.h.

template<class Type>
bool vgui_range_map< Type >::mapable ( ) const [inline]

Is the pixel type mapable at all.

Definition at line 83 of file vgui_range_map.h.

template<class Type >
int vgui_range_map< Type >::offset ( )

offset for potentially signed table index. Zero for unsigned, -maxval for signed.

Definition at line 166 of file vgui_range_map.txx.

bool vgui_range_map_params::operator!= ( vgui_range_map_params const &  p) const [inline, inherited]

Definition at line 163 of file vgui_range_map_params.h.

bool vgui_range_map_params::operator== ( vgui_range_map_params const &  p) const [inline, inherited]

equality tests.

Definition at line 139 of file vgui_range_map_params.h.

void vgui_range_map_params::print ( vcl_ostream &  os) const [inline, inherited]

Definition at line 166 of file vgui_range_map_params.h.

template<class Type>
vbl_array_1d<vxl_byte> vgui_range_map< Type >::Rmap ( ) [inline]

Red Channel map.

Definition at line 96 of file vgui_range_map.h.

template<class Type>
bool vgui_range_map< Type >::table_mapable ( ) const [inline]

Is the pixel type mapable by a lookup table.

Definition at line 86 of file vgui_range_map.h.

template<class Type>
vbl_array_1d<vxl_byte> vgui_range_map< Type >::Xmap ( ) [inline]

Alpha or Infrared Channel map.

Definition at line 102 of file vgui_range_map.h.


Member Data Documentation

Definition at line 56 of file vgui_range_map_params.h.

vcl_vector< vcl_string > vgui_range_map_params::bmap = minit() [static, inherited]

Definition at line 37 of file vgui_range_map_params.h.

cache mapped pixels

Definition at line 60 of file vgui_range_map_params.h.

photometric non-linear gamma correction for blue

Definition at line 52 of file vgui_range_map_params.h.

photometric non-linear gamma correction for green

Definition at line 49 of file vgui_range_map_params.h.

photometric non-linear gamma correction

Definition at line 42 of file vgui_range_map_params.h.

photometric non-linear gamma correction for red

Definition at line 46 of file vgui_range_map_params.h.

photometric non-linear gamma correction for alpha or infrared

Definition at line 55 of file vgui_range_map_params.h.

invert the mapping to a negative image

Definition at line 43 of file vgui_range_map_params.h.

template<class Type>
bool vgui_range_map< Type >::mapable_ [private]

input pixel type can be mapped

Definition at line 157 of file vgui_range_map.h.

long double vgui_range_map_params::max_B_ [inherited]

map domain maximum for blue channel data

Definition at line 51 of file vgui_range_map_params.h.

long double vgui_range_map_params::max_G_ [inherited]

map domain maximum for green channel data

Definition at line 48 of file vgui_range_map_params.h.

long double vgui_range_map_params::max_L_ [inherited]

map domain maximum for luminance data

Definition at line 41 of file vgui_range_map_params.h.

long double vgui_range_map_params::max_R_ [inherited]

map domain maximum for red channel data

Definition at line 45 of file vgui_range_map_params.h.

long double vgui_range_map_params::max_X_ [inherited]

map domain maximum for alpha or infrared channel data

Definition at line 54 of file vgui_range_map_params.h.

long double vgui_range_map_params::min_B_ [inherited]

map domain minimum for blue channel data

Definition at line 50 of file vgui_range_map_params.h.

long double vgui_range_map_params::min_G_ [inherited]

map domain minimum for green channel data

Definition at line 47 of file vgui_range_map_params.h.

long double vgui_range_map_params::min_L_ [inherited]

map domain minimum for luminance data

Definition at line 40 of file vgui_range_map_params.h.

long double vgui_range_map_params::min_R_ [inherited]

map domain minimum for red channel data

Definition at line 44 of file vgui_range_map_params.h.

long double vgui_range_map_params::min_X_ [inherited]

map domain minimum for alpha or infrared channel data

Definition at line 53 of file vgui_range_map_params.h.

number of components for pixel data

Definition at line 39 of file vgui_range_map_params.h.

template<class Type>
long double vgui_range_map< Type >::ratio_B_ [private]

scale for computed blue channel mapping

Definition at line 163 of file vgui_range_map.h.

template<class Type>
long double vgui_range_map< Type >::ratio_G_ [private]

scale for computed green channel mapping

Definition at line 162 of file vgui_range_map.h.

template<class Type>
long double vgui_range_map< Type >::ratio_L_ [private]

scale for computed Luminance mapping

Definition at line 160 of file vgui_range_map.h.

template<class Type>
long double vgui_range_map< Type >::ratio_R_ [private]

scale for computed red channel mapping

Definition at line 161 of file vgui_range_map.h.

template<class Type>
long double vgui_range_map< Type >::ratio_X_ [private]

scale for computed alpha or IR channel mapping

Definition at line 164 of file vgui_range_map.h.

template<class Type>
unsigned vgui_range_map< Type >::size_ [private]

number of elements in the map

Definition at line 159 of file vgui_range_map.h.

template<class Type>
bool vgui_range_map< Type >::table_mapable_ [private]

input pixel type can be mapped by a table.

Definition at line 158 of file vgui_range_map.h.

use OpenGL to map pixels to screen

Definition at line 59 of file vgui_range_map_params.h.


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