Inheritance diagram for DiGSDFunction:
Public Member Functions | |
DiGSDFunction (const char *filename, const E_DeviceType deviceType=EDT_Monitor, const signed int ord=-1) | |
constructor, read device characteristics file. | |
DiGSDFunction (const double *val_tab, const unsigned long count, const Uint16 max=255, const E_DeviceType deviceType=EDT_Monitor, const signed int ord=0) | |
constructor, use given array of luminance/OD values. | |
DiGSDFunction (const Uint16 *ddl_tab, const double *val_tab, const unsigned long count, const Uint16 max=255, const E_DeviceType deviceType=EDT_Monitor, const signed int ord=0) | |
constructor, use given array of DDL and luminance/OD values. | |
DiGSDFunction (const double val_min, const double val_max, const unsigned long count=256, const E_DeviceType deviceType=EDT_Monitor, const signed int ord=0) | |
constructor, compute luminance/OD values automatically within the specified range. | |
virtual | ~DiGSDFunction () |
destructor | |
int | writeCurveData (const char *filename, const OFBool mode=OFTrue) |
write curve data to a text file | |
int | setAmbientLightValue (const double value) |
set (reflected) ambient light value. | |
int | setIlluminationValue (const double value) |
set illumination value. | |
int | setMinDensityValue (const double value) |
set minimum optical density value "Dmin". | |
int | setMaxDensityValue (const double value) |
set maximum optical density value "Dmax". | |
Static Public Member Functions | |
static double | getJNDIndex (const double lum) |
calculate the JND index for a given luminance value | |
Protected Member Functions | |
DiDisplayLUT * | getDisplayLUT (unsigned long count) |
create GSDF LUT with specified number of entries | |
int | calculateGSDF () |
calculate GSDF (array of 1023 luminance/OD values) | |
int | calculateGSDFSpline () |
calculate helper function for GSDF interpolation | |
int | calculateJNDBoundaries () |
calculate 'JNDMin' and 'JNDMax' for the given luminance/OD range | |
Private Member Functions | |
DiGSDFunction (const DiGSDFunction &) | |
DiGSDFunction & | operator= (const DiGSDFunction &) |
Private Attributes | |
double | JNDMin |
minimum JND index value for the given display system | |
double | JNDMax |
maximum JND index value for the given display system | |
double * | GSDFValue |
array of luminance/OD values defining the GSDF | |
double * | GSDFSpline |
array of values used for the interpolation of the GSDF | |
Static Private Attributes | |
static const unsigned int | GSDFCount |
costant defining the number JND indexes for the maximum luminance/OD range (1023) |
Definition at line 47 of file digsdfn.h.
DiGSDFunction::DiGSDFunction | ( | const char * | filename, | |
const E_DeviceType | deviceType = EDT_Monitor , |
|||
const signed int | ord = -1 | |||
) |
constructor, read device characteristics file.
Keywords: "max" for maximum DDL (Device Driving Level, required at first position) "amb" for ambient light and "lum" for illumination (both optional) "ord" for the order of the polynomial curve fitting algorithm used to interpolate the given base points (0 or absent = use cubic spline interpolation)
filename | name of the characteristics file (luminance/OD for each DDL) | |
deviceType | type of the output device (default: monitor) | |
ord | order of the polynomial curve fitting algorithm used to interpolate the given base points (-1 = use file setting, 0 = cubic spline) |
DiGSDFunction::DiGSDFunction | ( | const double * | val_tab, | |
const unsigned long | count, | |||
const Uint16 | max = 255 , |
|||
const E_DeviceType | deviceType = EDT_Monitor , |
|||
const signed int | ord = 0 | |||
) |
constructor, use given array of luminance/OD values.
UNTESTED Values must be sorted and complete (i.e. there must be an entry for each DDL). The given arrays are copied internally.
val_tab | pointer to array with luminance/OD values | |
count | number of array elements (should be equal to 'max + 1') | |
max | maximum DDL (device driving level) | |
deviceType | type of the output device (default: monitor) | |
ord | order of the polynomial curve fitting algorithm used to interpolate the given base points (0 or negative = use cubic spline interpolation) |
DiGSDFunction::DiGSDFunction | ( | const Uint16 * | ddl_tab, | |
const double * | val_tab, | |||
const unsigned long | count, | |||
const Uint16 | max = 255 , |
|||
const E_DeviceType | deviceType = EDT_Monitor , |
|||
const signed int | ord = 0 | |||
) |
constructor, use given array of DDL and luminance/OD values.
UNTESTED Values will be automatically sorted and missing values will be interpolated. The given arrays are copied internally.
ddl_tab | pointer to array with DDL values (must be with the interval 0..max) | |
val_tab | pointer to array with luminance/OD values | |
count | number of array elements (2..65536) | |
max | maximum DDL (device driving level) | |
deviceType | type of the output device (default: monitor) | |
ord | order of the polynomial curve fitting algorithm used to interpolate the given base points (0 or negative = use cubic spline interpolation) |
DiGSDFunction::DiGSDFunction | ( | const double | val_min, | |
const double | val_max, | |||
const unsigned long | count = 256 , |
|||
const E_DeviceType | deviceType = EDT_Monitor , |
|||
const signed int | ord = 0 | |||
) |
constructor, compute luminance/OD values automatically within the specified range.
val_min | minimum luminance/OD value | |
val_max | maximum luminance/OD value | |
count | number of DDLs (device driving level, 1..65536)) | |
deviceType | type of the output device (default: monitor) | |
ord | order of the polynomial curve fitting algorithm used to interpolate the given base points (0 or negative = use cubic spline interpolation) |
int DiGSDFunction::writeCurveData | ( | const char * | filename, | |
const OFBool | mode = OFTrue | |||
) | [virtual] |
write curve data to a text file
filename | name of the text file to which the data should be written | |
mode | write CC and PSC to file if OFTrue |
Implements DiDisplayFunction.
int DiGSDFunction::setAmbientLightValue | ( | const double | value | ) | [virtual] |
set (reflected) ambient light value.
measured in cd/m^2. applicable to softcopy and hardcopy devices. typical values: 0.5-5 for softcopy devices, 10 for transmissive hardcopy printer and 0 for reflective hardcopy printers.
value | ambient light value to be set (>= 0) |
Reimplemented from DiDisplayFunction.
int DiGSDFunction::setIlluminationValue | ( | const double | value | ) | [virtual] |
set illumination value.
measured in cd/m^2. applicable to hardcopy devices only. typical values: 2000 for transmissive hardcopy printer and 150 for reflective hardcopy printers.
value | illumination value to be set (>= 0) |
Reimplemented from DiDisplayFunction.
int DiGSDFunction::setMinDensityValue | ( | const double | value | ) | [virtual] |
set minimum optical density value "Dmin".
measured in optical density (OD). applicable to printers only. typical value: 0.2
value | Dmin value to be set (or < 0 to unset) |
Reimplemented from DiDisplayFunction.
int DiGSDFunction::setMaxDensityValue | ( | const double | value | ) | [virtual] |
set maximum optical density value "Dmax".
measured in optical density (OD). applicable to printers only. typical value: 3.0
value | Dmax value to be set (or < 0 to unset) |
Reimplemented from DiDisplayFunction.
static double DiGSDFunction::getJNDIndex | ( | const double | lum | ) | [static] |
calculate the JND index for a given luminance value
lum | luminance value |
DiDisplayLUT* DiGSDFunction::getDisplayLUT | ( | unsigned long | count | ) | [protected, virtual] |
create GSDF LUT with specified number of entries
count | number of LUT entries |
Implements DiDisplayFunction.
int DiGSDFunction::calculateGSDF | ( | ) | [protected] |
calculate GSDF (array of 1023 luminance/OD values)
int DiGSDFunction::calculateGSDFSpline | ( | ) | [protected] |
calculate helper function for GSDF interpolation
int DiGSDFunction::calculateJNDBoundaries | ( | ) | [protected] |
calculate 'JNDMin' and 'JNDMax' for the given luminance/OD range