IccMAX 2.1.27
Color Profile Tools
Loading...
Searching...
No Matches
CIccMpeReflectanceCLUT Class Reference

#include <IccMpeSpectral.h>

+ Inheritance diagram for CIccMpeReflectanceCLUT:
+ Collaboration diagram for CIccMpeReflectanceCLUT:

Public Member Functions

 CIccMpeReflectanceCLUT ()
 
 CIccMpeReflectanceCLUT (const CIccMpeReflectanceCLUT &ITPC)
 
virtual ~CIccMpeReflectanceCLUT ()
 
virtual void Apply (CIccApplyMpe *pApply, icFloatNumber *dstPixel, const icFloatNumber *srcPixel) const
 
virtual bool Begin (icElemInterp nInterp, CIccTagMultiProcessElement *pMPE)
 
virtual void Describe (std::string &sDescription, int nVerboseness)
 
CIccCLUTGetApplyCLUT ()
 
virtual icAcsSignature GetBAcsSig ()
 
virtual const icCharGetClassName () const
 
CIccCLUTGetCLUT ()
 
virtual icAcsSignature GetEAcsSig ()
 
virtual IIccExtensionMpeGetExtension ()
 
virtual CIccApplyMpeGetNewApply (CIccApplyTagMpe *pApplyTag)
 
virtual icElemTypeSignature GetType () const
 
icFloatNumberGetWhite ()
 
virtual bool IsAcs ()
 
virtual bool IsLateBinding () const
 
virtual bool IsLateBindingReflectance () const
 
virtual bool IsSupported ()
 
virtual CIccMpeReflectanceCLUTNewCopy () const
 
virtual icUInt16Number NumInputChannels () const
 
virtual icUInt16Number NumOutputChannels () const
 
CIccMpeReflectanceCLUToperator= (const CIccMpeReflectanceCLUT &ITPC)
 
virtual bool Read (icUInt32Number size, CIccIO *pIO)
 
void SetData (CIccCLUT *pCLUT, icUInt16Number nStorageType, const icSpectralRange &range, icFloatNumber *pWhite, icUInt16Number nOutputChannels=3)
 
virtual icValidateStatus Validate (std::string sigPath, std::string &sReport, const CIccTagMultiProcessElement *pMPE=NULL, const CIccProfile *pProfile=NULL) const
 
virtual bool Write (CIccIO *pIO)
 

Static Public Member Functions

static CIccMultiProcessElementCreate (icElemTypeSignature sig)
 

Data Fields

icUInt32Number m_nReserved
 

Protected Member Functions

void copyData (const CIccMpeSpectralCLUT &ITPC)
 
virtual const char * GetDescribeName () const
 

Protected Attributes

icUInt32Number m_flags
 
icCLUTElemType m_interpType
 
icUInt16Number m_nInputChannels
 
icUInt16Number m_nOutputChannels
 
icUInt16Number m_nStorageType
 
CIccCLUTm_pApplyCLUT
 
CIccCLUTm_pCLUT
 
icFloatNumberm_pWhite
 
icSpectralRange m_Range
 

Detailed Description

Class: CIccMpeReflectanceCLUT

Purpose: The Reflectance CLUT Element

Constructor & Destructor Documentation

◆ CIccMpeReflectanceCLUT() [1/2]

CIccMpeReflectanceCLUT::CIccMpeReflectanceCLUT ( )
inline
CIccMpeSpectralCLUT()
Definition IccMpeSpectral.cpp:795

References CIccMpeSpectralCLUT::CIccMpeSpectralCLUT().

Referenced by CIccBasicMpeFactory::CreateElement().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ CIccMpeReflectanceCLUT() [2/2]

CIccMpeReflectanceCLUT::CIccMpeReflectanceCLUT ( const CIccMpeReflectanceCLUT ITPC)
inline
307: CIccMpeSpectralCLUT(ITPC) {}

References CIccMpeSpectralCLUT::CIccMpeSpectralCLUT().

Referenced by NewCopy().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ~CIccMpeReflectanceCLUT()

virtual CIccMpeReflectanceCLUT::~CIccMpeReflectanceCLUT ( )
inlinevirtual
310{}

Member Function Documentation

◆ Apply()

void CIccMpeSpectralCLUT::Apply ( CIccApplyMpe pApply,
icFloatNumber dstPixel,
const icFloatNumber srcPixel 
) const
virtualinherited

Name: CIccMpeEmissionCLUT::Apply

Purpose:

Args:

Return:

Implements CIccMultiProcessElement.

1279{
1280 const CIccCLUT *pCLUT = m_pApplyCLUT;
1281
1282 switch(m_interpType) {
1283 case ic1dInterp:
1284 pCLUT->Interp1d(dstPixel, srcPixel);
1285 break;
1286 case ic2dInterp:
1287 pCLUT->Interp2d(dstPixel, srcPixel);
1288 break;
1289 case ic3dInterpTetra:
1290 pCLUT->Interp3dTetra(dstPixel, srcPixel);
1291 break;
1292 case ic3dInterp:
1293 pCLUT->Interp3d(dstPixel, srcPixel);
1294 break;
1295 case ic4dInterp:
1296 pCLUT->Interp4d(dstPixel, srcPixel);
1297 break;
1298 case ic5dInterp:
1299 pCLUT->Interp5d(dstPixel, srcPixel);
1300 break;
1301 case ic6dInterp:
1302 pCLUT->Interp6d(dstPixel, srcPixel);
1303 break;
1304 case icNdInterp:
1306 pCLUT->InterpND(dstPixel, srcPixel, pClutApply->m_pApply);
1307 break;
1308 }
1309}
@ ic1dInterp
Definition IccMpeBasic.h:637
@ ic3dInterpTetra
Definition IccMpeBasic.h:639
@ ic6dInterp
Definition IccMpeBasic.h:643
@ icNdInterp
Definition IccMpeBasic.h:644
@ ic2dInterp
Definition IccMpeBasic.h:638
@ ic4dInterp
Definition IccMpeBasic.h:641
@ ic5dInterp
Definition IccMpeBasic.h:642
@ ic3dInterp
Definition IccMpeBasic.h:640
Definition IccTagLut.h:326
void Interp4d(icFloatNumber *destPixel, const icFloatNumber *srcPixel) const
Definition IccTagLut.cpp:2683
void Interp2d(icFloatNumber *destPixel, const icFloatNumber *srcPixel) const
Definition IccTagLut.cpp:2472
void Interp6d(icFloatNumber *destPixel, const icFloatNumber *srcPixel) const
Definition IccTagLut.cpp:2881
void Interp3d(icFloatNumber *destPixel, const icFloatNumber *srcPixel) const
Definition IccTagLut.cpp:2613
void Interp5d(icFloatNumber *destPixel, const icFloatNumber *srcPixel) const
Definition IccTagLut.cpp:2769
void Interp3dTetra(icFloatNumber *destPixel, const icFloatNumber *srcPixel) const
Definition IccTagLut.cpp:2527
void Interp1d(icFloatNumber *destPixel, const icFloatNumber *srcPixel) const
Definition IccTagLut.cpp:2428
void InterpND(icFloatNumber *destPixel, const icFloatNumber *srcPixel, CIccApplyCLUT *pApply) const
Definition IccTagLut.cpp:3033
CIccCLUT * m_pApplyCLUT
Definition IccMpeSpectral.h:243
icCLUTElemType m_interpType
Definition IccMpeSpectral.h:241
Definition IccMpeSpectral.h:254
CIccApplyCLUT * m_pApply
Definition IccMpeSpectral.h:265

References ic1dInterp, ic2dInterp, ic3dInterp, ic3dInterpTetra, ic4dInterp, ic5dInterp, ic6dInterp, icNdInterp, CIccCLUT::Interp1d(), CIccCLUT::Interp2d(), CIccCLUT::Interp3d(), CIccCLUT::Interp3dTetra(), CIccCLUT::Interp4d(), CIccCLUT::Interp5d(), CIccCLUT::Interp6d(), CIccCLUT::InterpND(), CIccMpeSpectralCLUT::m_interpType, CIccApplyMpeSpectralCLUT::m_pApply, and CIccMpeSpectralCLUT::m_pApplyCLUT.

+ Here is the call graph for this function:

◆ Begin()

bool CIccMpeReflectanceCLUT::Begin ( icElemInterp  nInterp,
CIccTagMultiProcessElement pMPE 
)
virtual

Name: CIccMpeReflectanceCLUT::Begin

Purpose:

Args:

Return:

Implements CIccMultiProcessElement.

1519{
1521 return false;
1522
1523 switch (m_nInputChannels) {
1524 case 1:
1526 break;
1527 case 2:
1529 break;
1530 case 3:
1531 if (nInterp==icElemInterpTetra)
1533 else
1535 break;
1536 case 4:
1538 break;
1539 case 5:
1541 break;
1542 case 6:
1544 break;
1545 default:
1547 break;
1548 }
1549
1550 IIccProfileConnectionConditions *pAppliedPCC = pMPE->GetAppliedPCC();
1551 if (!pAppliedPCC)
1552 return false;
1553
1554 const CIccTagSpectralViewingConditions *pSVC = pAppliedPCC->getPccViewingConditions();
1555 if (!pSVC)
1556 return false;
1557
1558 CIccMatrixMath observer(3, m_Range.steps);
1559 icSpectralRange illumRange;
1560 const icFloatNumber *illum = pSVC->getIlluminant(illumRange);
1561
1562 if (!pAppliedPCC->getEmissiveObserver(illumRange, illum, observer.entry(0)))
1563 return false;
1564
1565 //
1566 icFloatNumber xyzi[3];
1567
1568 //apply illuminant to observer and calculate XYZ of illuminant
1569 icFloatNumber *pObs = observer.entry(0);
1570 int i, j;
1571 for (i=0; i<3; i++) {
1572 xyzi[i] = 0.0;
1573 for (j=0; j<illumRange.steps; j++) {
1574 *pObs *= illum[j];
1575 xyzi[i] += *pObs;
1576 pObs++;
1577 }
1578 }
1579
1580 //concatenate reflectance range mapping to observer+illuminant
1581 CIccMatrixMath *rangeRef = CIccMatrixMath::rangeMap(m_Range, illumRange);
1582 CIccMatrixMath *pApplyMtx;
1583 if (!rangeRef)
1584 pApplyMtx = &observer;
1585 else
1586 pApplyMtx = rangeRef->Mult(&observer);
1587
1588 if (m_pApplyCLUT)
1589 delete m_pApplyCLUT;
1590
1592
1593 if (!m_pApplyCLUT) {
1594 if (pApplyMtx!=&observer)
1595 delete pApplyMtx;
1596 return false;
1597 }
1598
1601
1602 icFloatNumber *pSrc = m_pCLUT->GetData(0);
1604
1605 icFloatNumber xyzW[3];
1606
1607 pApplyMtx->VectorMult(xyzW, m_pWhite);
1608
1609 bool bUseAbsolute = (m_flags & icRelativeSpectralData)!=0;
1610 bool bLab = (m_flags & icLabSpectralData) != 0;
1611
1612 icFloatNumber xyzscale[3];
1613 if (!bUseAbsolute) {
1614 xyzscale[0] = xyzi[0] / xyzW[0];
1615 xyzscale[1] = xyzi[1] / xyzW[1];
1616 xyzscale[2] = xyzi[2] / xyzW[2];
1617 }
1618
1619 for (i=0; i<(int)m_pCLUT->NumPoints(); i++) {
1620 pApplyMtx->VectorMult(pDst, pSrc);
1621
1622 if (!bUseAbsolute) {
1623 pDst[0] *= xyzscale[0];
1624 pDst[1] *= xyzscale[1];
1625 pDst[2] *= xyzscale[2];
1626 }
1627
1628 if (bLab) {
1629 icXYZtoLab(pDst, pDst, xyzi);
1630 // icLabToPcs(pDst);
1631 }
1632 else {
1633 // icXyzToPcs(pDst);
1634 }
1635 pSrc += m_Range.steps;
1636 pDst += m_nOutputChannels;
1637 }
1638
1639 if (pApplyMtx!=&observer)
1640 delete pApplyMtx;
1641
1643
1644 return true;
1645}
unsigned char icUInt8Number
Definition icProfileHeader.h:250
unsigned short icUInt16Number
Definition icProfileHeader.h:256
#define icRelativeSpectralData
Definition icProfileHeader.h:1105
icUInt16Number steps
Definition icProfileHeader.h:1469
#define icLabSpectralData
Definition icProfileHeader.h:1108
Definition icProfileHeader.h:1466
static icFloatNumber NoClip(icFloatNumber v)
Definition IccMpeBasic.cpp:5377
float icFloatNumber
Definition IccDefs.h:101
ICCPROFLIB_API void icXYZtoLab(icFloatNumber *Lab, const icFloatNumber *XYZ=NULL, const icFloatNumber *WhiteXYZ=NULL)
Definition IccUtil.cpp:846
@ icElemInterpTetra
Definition IccTagMPE.h:95
Definition IccPcc.h:94
icFloatNumber * getEmissiveObserver(const icSpectralRange &range, const icFloatNumber *pWhite, icFloatNumber *obsMatrix=NULL)
Definition IccPcc.cpp:231
virtual const CIccTagSpectralViewingConditions * getPccViewingConditions()=0
Definition IccMatrixMath.h:94
CIccMatrixMath * Mult(const CIccMatrixMath *matrix) const
Definition IccMatrixMath.cpp:202
static CIccMatrixMath * rangeMap(const icSpectralRange &from, const icSpectralRange &to)
Definition IccMatrixMath.cpp:409
virtual void VectorMult(icFloatNumber *pDst, const icFloatNumber *pSrc) const
Definition IccMatrixMath.cpp:154
Definition IccTagBasic.h:1692
const icFloatNumber * getIlluminant(icSpectralRange &illumRange) const
Definition IccTagBasic.cpp:11405
icUInt16Number GetOutputChannels() const
Definition IccTagLut.h:357
void SetClipFunc(icCLUTCLIPFUNC ClipFunc)
Definition IccTagLut.h:379
void Begin()
Definition IccTagLut.cpp:2221
icUInt32Number NumPoints() const
Definition IccTagLut.h:348
icFloatNumber * GetData(int index)
Definition IccTagLut.h:347
const icUInt8Number * GridPointArray() const
Definition IccTagLut.h:351
bool Init(icUInt8Number nGridPoints, icUInt32Number nMaxSize=0, icUInt8Number nBytesPerPoint=4)
Definition IccTagLut.cpp:1806
icUInt16Number m_nOutputChannels
Definition IccTagMPE.h:192
icUInt16Number m_nInputChannels
Definition IccTagMPE.h:191
IIccProfileConnectionConditions * GetAppliedPCC()
Definition IccTagMPE.h:403
icUInt32Number m_flags
Definition IccMpeSpectral.h:236
CIccCLUT * m_pCLUT
Definition IccMpeSpectral.h:240
icSpectralRange m_Range
Definition IccMpeSpectral.h:234
icFloatNumber * m_pWhite
Definition IccMpeSpectral.h:238

References CIccCLUT::CIccCLUT(), CIccMatrixMath::CIccMatrixMath(), CIccCLUT::Begin(), CIccMatrixMath::entry(), CIccTagMultiProcessElement::GetAppliedPCC(), CIccCLUT::GetData(), IIccProfileConnectionConditions::getEmissiveObserver(), CIccTagSpectralViewingConditions::getIlluminant(), CIccCLUT::GetOutputChannels(), IIccProfileConnectionConditions::getPccViewingConditions(), CIccCLUT::GridPointArray(), ic1dInterp, ic2dInterp, ic3dInterp, ic3dInterpTetra, ic4dInterp, ic5dInterp, ic6dInterp, icElemInterpTetra, icNdInterp, icXYZtoLab(), CIccCLUT::Init(), CIccMpeSpectralCLUT::m_flags, CIccMpeSpectralCLUT::m_interpType, CIccMultiProcessElement::m_nInputChannels, CIccMultiProcessElement::m_nOutputChannels, CIccMpeSpectralCLUT::m_pApplyCLUT, CIccMpeSpectralCLUT::m_pCLUT, CIccMpeSpectralCLUT::m_pWhite, CIccMpeSpectralCLUT::m_Range, CIccMatrixMath::Mult(), NoClip(), CIccCLUT::NumPoints(), CIccMatrixMath::rangeMap(), CIccCLUT::SetClipFunc(), icSpectralRange::steps, and CIccMatrixMath::VectorMult().

+ Here is the call graph for this function:

◆ copyData()

void CIccMpeSpectralCLUT::copyData ( const CIccMpeSpectralCLUT clut)
protectedinherited

Name: &CIccMpeSpectralCLUT::operator=

Purpose:

Args:

Return:

863{
864 if (m_pCLUT)
865 delete m_pCLUT;
866
867 if (m_pApplyCLUT)
868 delete m_pApplyCLUT;
869
870 if (m_pWhite)
871 free(m_pWhite);
872
873 if (clut.m_pCLUT)
874 m_pCLUT = new CIccCLUT(*clut.m_pCLUT);
875 else
876 m_pCLUT = NULL;
877
878 if (clut.m_pApplyCLUT)
880 else
881 m_pApplyCLUT = NULL;
882
883 if (clut.m_pWhite) {
884 m_pWhite = (icFloatNumber *)malloc((int)clut.m_Range.steps*sizeof(icFloatNumber));
885 memcpy(m_pWhite, clut.m_pWhite, clut.m_Range.steps*sizeof(icFloatNumber));
886 }
887 else
888 m_pWhite = NULL;
889
893
894 m_Range = clut.m_Range;
896 m_flags = clut.m_flags;
897}
icUInt32Number m_nReserved
Definition IccTagMPE.h:188
icUInt16Number m_nStorageType
Definition IccMpeSpectral.h:235

References CIccCLUT::CIccCLUT(), CIccMpeSpectralCLUT::m_flags, CIccMultiProcessElement::m_nInputChannels, CIccMultiProcessElement::m_nOutputChannels, CIccMultiProcessElement::m_nReserved, CIccMpeSpectralCLUT::m_nStorageType, CIccMpeSpectralCLUT::m_pApplyCLUT, CIccMpeSpectralCLUT::m_pCLUT, CIccMpeSpectralCLUT::m_pWhite, CIccMpeSpectralCLUT::m_Range, and icSpectralRange::steps.

Referenced by CIccMpeEmissionCLUT::operator=(), and operator=().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Create()

CIccMultiProcessElement * CIccMultiProcessElement::Create ( icElemTypeSignature  sig)
staticinherited

Name: CIccMultiProcessElement::Create

Purpose:

Args:

Return:

132{
134}
static CIccMultiProcessElement * CreateElement(icElemTypeSignature elemTypeSig)
Definition IccMpeFactory.h:213

References CIccMpeCreator::CreateElement().

Referenced by CIccDefaultEncProfileConverter::ConvertFromParams(), CIccSampledCalculatorCurve::Read(), CIccMpeCalculator::Read(), and CIccTagMultiProcessElement::Read().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Describe()

void CIccMpeSpectralCLUT::Describe ( std::string &  sDescription,
int  nVerboseness 
)
virtualinherited

Name: CIccMpeSpectralCLUT::Describe

Purpose:

Args:

Return:

Implements CIccMultiProcessElement.

972{
973 if (m_pCLUT) {
974 m_pCLUT->DumpLut(sDescription, GetDescribeName(), icSigUnknownData, icSigUnknownData, nVerboseness);
975 }
976}
#define icSigUnknownData
Definition icProfileHeader.h:903
void DumpLut(std::string &sDescription, const icChar *szName, icColorSpaceSignature csInput, icColorSpaceSignature csOutput, int nVerboseness, bool bUseLegacy=false)
Definition IccTagLut.cpp:2157
virtual const char * GetDescribeName() const =0

References CIccCLUT::DumpLut(), CIccMpeSpectralCLUT::GetDescribeName(), and CIccMpeSpectralCLUT::m_pCLUT.

+ Here is the call graph for this function:

◆ GetApplyCLUT()

CIccCLUT * CIccMpeSpectralCLUT::GetApplyCLUT ( )
inlineinherited
225{ return m_pApplyCLUT; }

References CIccMpeSpectralCLUT::m_pApplyCLUT.

◆ GetBAcsSig()

virtual icAcsSignature CIccMultiProcessElement::GetBAcsSig ( )
inlinevirtualinherited

Reimplemented in CIccMpeBAcs.

178{ return icSigAcsZero; }
#define icSigAcsZero
Definition icProfileHeader.h:1100

Referenced by CIccMpeAcs::Describe().

+ Here is the caller graph for this function:

◆ GetClassName()

virtual const icChar * CIccMpeReflectanceCLUT::GetClassName ( ) const
inlinevirtual

Implements CIccMultiProcessElement.

Reimplemented in CIccMpeXmlReflectanceCLUT.

313{ return "CIccMpeReflectanceCLUT"; }

◆ GetCLUT()

CIccCLUT * CIccMpeSpectralCLUT::GetCLUT ( )
inlineinherited
224{ return m_pCLUT; }

References CIccMpeSpectralCLUT::m_pCLUT.

◆ GetDescribeName()

virtual const char * CIccMpeReflectanceCLUT::GetDescribeName ( ) const
inlineprotectedvirtual

Implements CIccMpeSpectralCLUT.

320{ return "ELEM_REFLECTANCE_CLUT"; }

◆ GetEAcsSig()

virtual icAcsSignature CIccMultiProcessElement::GetEAcsSig ( )
inlinevirtualinherited

Reimplemented in CIccMpeEAcs.

179{ return icSigAcsZero; }

◆ GetExtension()

◆ GetNewApply()

CIccApplyMpe * CIccMpeSpectralCLUT::GetNewApply ( CIccApplyTagMpe pApplyTag)
virtualinherited

Name: CIccMpeSpectralCLUT::GetNewApply

Purpose:

Args:

Return:

Reimplemented from CIccMultiProcessElement.

1252{
1253 if (!m_pCLUT) {
1254 return NULL;
1255 }
1256
1257 CIccApplyCLUT* pApply = m_pCLUT->GetNewApply();
1258 if (!pApply)
1259 return NULL;
1260
1261 CIccApplyMpeSpectralCLUT* rv = new CIccApplyMpeSpectralCLUT(this, pApply);
1262 if (!rv)
1263 delete pApply;
1264
1265 return rv;
1266}
Definition IccTagLut.h:302
CIccApplyCLUT * GetNewApply()
Definition IccTagLut.cpp:2403

References CIccApplyMpeSpectralCLUT::CIccApplyMpeSpectralCLUT(), CIccCLUT::GetNewApply(), and CIccMpeSpectralCLUT::m_pCLUT.

+ Here is the call graph for this function:

◆ GetType()

virtual icElemTypeSignature CIccMpeReflectanceCLUT::GetType ( ) const
inlinevirtual

Implements CIccMultiProcessElement.

@ icSigReflectanceCLUTElemType
Definition icProfileHeader.h:663

References icSigReflectanceCLUTElemType.

◆ GetWhite()

icFloatNumber * CIccMpeSpectralCLUT::GetWhite ( )
inlineinherited
226{ return m_pWhite; }

References CIccMpeSpectralCLUT::m_pWhite.

◆ IsAcs()

virtual bool CIccMultiProcessElement::IsAcs ( )
inlinevirtualinherited

Reimplemented in CIccMpeAcs.

177{ return false; }

Referenced by CIccTagMultiProcessElement::Apply().

+ Here is the caller graph for this function:

◆ IsLateBinding()

virtual bool CIccMpeSpectralCLUT::IsLateBinding ( ) const
inlinevirtualinherited

Reimplemented from CIccMultiProcessElement.

228{ return true; }

◆ IsLateBindingReflectance()

virtual bool CIccMpeReflectanceCLUT::IsLateBindingReflectance ( ) const
inlinevirtual

Reimplemented from CIccMultiProcessElement.

317{ return true; }

◆ IsSupported()

virtual bool CIccMultiProcessElement::IsSupported ( )
inlinevirtualinherited

Reimplemented in CIccMpeUnknown.

162{ return true; }

Referenced by CIccTagMultiProcessElement::IsSupported().

+ Here is the caller graph for this function:

◆ NewCopy()

virtual CIccMpeReflectanceCLUT * CIccMpeReflectanceCLUT::NewCopy ( ) const
inlinevirtual

Implements CIccMultiProcessElement.

309{ return new CIccMpeReflectanceCLUT(*this);}
CIccMpeReflectanceCLUT()
Definition IccMpeSpectral.h:306

References CIccMpeReflectanceCLUT().

+ Here is the call graph for this function:

◆ NumInputChannels()

◆ NumOutputChannels()

◆ operator=()

CIccMpeReflectanceCLUT & CIccMpeReflectanceCLUT::operator= ( const CIccMpeReflectanceCLUT ITPC)
inline
308{ copyData(ITPC); return *this; }
void copyData(const CIccMpeSpectralCLUT &ITPC)
Definition IccMpeSpectral.cpp:862

References CIccMpeSpectralCLUT::copyData().

+ Here is the call graph for this function:

◆ Read()

bool CIccMpeSpectralCLUT::Read ( icUInt32Number  size,
CIccIO pIO 
)
virtualinherited

Name: CIccMpeSpectralCLUT::Read

Purpose:

Args:

Return:

Implements CIccMultiProcessElement.

990{
992
993 icUInt32Number headerSize = sizeof(icTagTypeSignature) +
994 sizeof(icUInt32Number) +
995 sizeof(icUInt32Number) +
996 sizeof(icUInt16Number) +
997 sizeof(icUInt16Number) +
998 sizeof(icUInt16Number) +
999 sizeof(icUInt16Number) +
1000 sizeof(icUInt16Number) +
1001 sizeof(icUInt16Number) +
1002 16 * sizeof(icUInt8Number);
1003
1004 if (headerSize > size)
1005 return false;
1006
1007 if (!pIO) {
1008 return false;
1009 }
1010
1011 if (!pIO->Read32(&sig))
1012 return false;
1013
1014 if (!pIO->Read32(&m_nReserved))
1015 return false;
1016
1017 if (!pIO->Read16(&m_nInputChannels))
1018 return false;
1019
1020 if (!pIO->Read16(&m_nOutputChannels))
1021 return false;
1022
1023 if (!pIO->Read32(&m_flags))
1024 return false;
1025
1026 if (!pIO->Read16(&m_Range.start))
1027 return false;
1028
1029 if (!pIO->Read16(&m_Range.end))
1030 return false;
1031
1032 if (!pIO->Read16(&m_Range.steps))
1033 return false;
1034
1035 if (!pIO->Read16(&m_nStorageType))
1036 return false;
1037
1038 icUInt8Number gridPoints[16];
1039
1040 if (pIO->Read8(gridPoints, 16)!=16) {
1041 return false;
1042 }
1043
1045
1046 if (!m_pCLUT)
1047 return false;
1048
1051
1052 if (!nBytesPerPoint)
1053 return false;
1054
1055 m_pCLUT->Init(gridPoints, size - headerSize, (icUInt8Number)nBytesPerPoint);
1056
1057 icFloatNumber *pData = m_pCLUT->GetData(0);
1058
1059 if (!pData)
1060 return false;
1061
1062 icInt32Number nPoints = m_pCLUT->NumPoints()*(int)m_Range.steps;
1063
1064 switch(m_nStorageType) {
1065 case icValueTypeUInt8:
1066 if (pIO->ReadUInt8Float(pData,nPoints)!= nPoints)
1067 return false;
1068 break;
1069
1070 case icValueTypeUInt16:
1071 if (pIO->ReadUInt16Float(pData,nPoints)!= nPoints)
1072 return false;
1073 break;
1074
1075 case icValueTypeFloat16:
1076 if (pIO->ReadFloat16Float(pData,nPoints)!= nPoints)
1077 return false;
1078 break;
1079
1080 case icValueTypeFloat32:
1081 if (pIO->ReadFloat32Float(pData,nPoints)!= nPoints)
1082 return false;
1083 break;
1084
1085 default:
1086 return false;
1087 }
1088
1089 if (m_Range.steps *nBytesPerPoint > size - headerSize - nPoints*nBytesPerPoint)
1090 return false;
1091
1092 m_pWhite = (icFloatNumber *)malloc((int)m_Range.steps*sizeof(icFloatNumber));
1093 if (!m_pWhite)
1094 return false;
1095
1096 switch(m_nStorageType) {
1097 case icValueTypeUInt8:
1099 return false;
1100 break;
1101
1102 case icValueTypeUInt16:
1104 return false;
1105 break;
1106
1107 case icValueTypeFloat16:
1109 return false;
1110 break;
1111
1112 case icValueTypeFloat32:
1114 return false;
1115 break;
1116
1117 default:
1118 return false;
1119 }
1120
1121
1122 return true;
1123}
long icInt32Number
Definition icProfileHeader.h:291
unsigned long icUInt32Number
Definition icProfileHeader.h:262
icFloat16Number start
Definition icProfileHeader.h:1467
icTagTypeSignature
Definition icProfileHeader.h:526
icFloat16Number end
Definition icProfileHeader.h:1468
@ icValueTypeFloat16
Definition icProfileHeader.h:1087
@ icValueTypeUInt8
Definition icProfileHeader.h:1089
@ icValueTypeUInt16
Definition icProfileHeader.h:1088
@ icValueTypeFloat32
Definition icProfileHeader.h:1086
ICCPROFLIB_API icUInt8Number icGetStorageTypeBytes(icUInt16Number nStorageType)
Definition IccUtil.cpp:1375
icInt32Number ReadFloat16Float(void *pBufFloat, icInt32Number nNum=1)
Definition IccIO.cpp:269
icInt32Number ReadFloat32Float(void *pBufFloat, icInt32Number nNum=1)
Definition IccIO.cpp:302
virtual icInt32Number Read8(void *pBuf8, icInt32Number nNum=1)
Definition IccIO.h:104
icInt32Number Read16(void *pBuf16, icInt32Number nNum=1)
Definition IccIO.cpp:114
icInt32Number ReadUInt8Float(void *pBufFloat, icInt32Number nNum=1)
Definition IccIO.cpp:203
icInt32Number ReadUInt16Float(void *pBufFloat, icInt32Number nNum=1)
Definition IccIO.cpp:236
icInt32Number Read32(void *pBuf32, icInt32Number nNum=1)
Definition IccIO.cpp:143

References CIccCLUT::CIccCLUT(), icSpectralRange::end, CIccCLUT::GetData(), icGetStorageTypeBytes(), icValueTypeFloat16, icValueTypeFloat32, icValueTypeUInt16, icValueTypeUInt8, CIccCLUT::Init(), CIccMpeSpectralCLUT::m_flags, CIccMultiProcessElement::m_nInputChannels, CIccMultiProcessElement::m_nOutputChannels, CIccMultiProcessElement::m_nReserved, CIccMpeSpectralCLUT::m_nStorageType, CIccMpeSpectralCLUT::m_pCLUT, CIccMpeSpectralCLUT::m_pWhite, CIccMpeSpectralCLUT::m_Range, NoClip(), CIccCLUT::NumPoints(), CIccIO::Read16(), CIccIO::Read32(), CIccIO::Read8(), CIccIO::ReadFloat16Float(), CIccIO::ReadFloat32Float(), CIccIO::ReadUInt16Float(), CIccIO::ReadUInt8Float(), CIccCLUT::SetClipFunc(), icSpectralRange::start, and icSpectralRange::steps.

+ Here is the call graph for this function:

◆ SetData()

void CIccMpeSpectralCLUT::SetData ( CIccCLUT pCLUT,
icUInt16Number  nStorageType,
const icSpectralRange range,
icFloatNumber pWhite,
icUInt16Number  nOutputChannels = 3 
)
inherited

Name: CIccMpeSpectralCLUT::SetCLUT

Purpose:

Args:

Return:

935{
936 if (m_pCLUT)
937 delete m_pCLUT;
938
939 m_pCLUT = pCLUT;
940 if (pCLUT) {
941 pCLUT->SetClipFunc(NoClip);
942 m_nInputChannels = pCLUT->GetInputDim();
943 m_nOutputChannels = nOutputChannels;
944 }
945
946 m_nStorageType = nStorageType;
947
948 if (m_pApplyCLUT) {
949 delete m_pApplyCLUT;
950 m_pApplyCLUT = NULL;
951 }
952
953 m_Range = range;
954
955 if (m_pWhite)
956 free(m_pWhite);
957
958 m_pWhite = pWhite;
959}
icUInt8Number GetInputDim() const
Definition IccTagLut.h:356

References CIccCLUT::GetInputDim(), CIccMultiProcessElement::m_nInputChannels, CIccMultiProcessElement::m_nOutputChannels, CIccMpeSpectralCLUT::m_nStorageType, CIccMpeSpectralCLUT::m_pApplyCLUT, CIccMpeSpectralCLUT::m_pCLUT, CIccMpeSpectralCLUT::m_pWhite, CIccMpeSpectralCLUT::m_Range, NoClip(), and CIccCLUT::SetClipFunc().

+ Here is the call graph for this function:

◆ Validate()

icValidateStatus CIccMpeSpectralCLUT::Validate ( std::string  sigPath,
std::string &  sReport,
const CIccTagMultiProcessElement pMPE = NULL,
const CIccProfile pProfile = NULL 
) const
virtualinherited

Name: CIccMpeSpectralCLUT::Validate

Purpose:

Args:

Return:

Implements CIccMultiProcessElement.

1323{
1324 std::string mpeSigPath = sigPath + icGetSigPath(GetType());
1325 icValidateStatus rv = CIccMultiProcessElement::Validate(sigPath, sReport, pMPE, pProfile);
1326
1328 CIccInfo Info;
1329 std::string sSigPathName = Info.GetSigPathName(mpeSigPath);
1330
1331 sReport += icMsgValidateCriticalError;
1332 sReport += sSigPathName;
1333 sReport += " - Invalid storageType value!\n";
1335 }
1336
1337 if (!m_pCLUT) {
1338 CIccInfo Info;
1339 std::string sSigPathName = Info.GetSigPathName(mpeSigPath);
1340
1341 sReport += icMsgValidateCriticalError;
1342 sReport += sSigPathName;
1343 sReport += " - Has No CLUT!\n";
1345 }
1346
1347 if (!m_pWhite) {
1348 CIccInfo Info;
1349 std::string sSigPathName = Info.GetSigPathName(mpeSigPath);
1350
1351 sReport += icMsgValidateCriticalError;
1352 sReport += sSigPathName;
1353 sReport += " - Has Empty White data!\n";
1355 }
1356
1357 if (!m_Range.steps) {
1358 CIccInfo Info;
1359 std::string sSigPathName = Info.GetSigPathName(mpeSigPath);
1360
1361 sReport += icMsgValidateCriticalError;
1362 sReport += sSigPathName;
1363 sReport += " - Cannot have zero spectral range steps!\n";
1365 }
1366
1367 if (m_Range.start>= m_Range.end || !m_Range.steps) {
1368 CIccInfo Info;
1369 std::string sSigPathName = Info.GetSigPathName(mpeSigPath);
1370
1371 sReport += icMsgValidateCriticalError;
1372 sReport += sSigPathName;
1373 sReport += " - Has an invalid spectral range!\n";
1375 }
1376
1377 return rv;
1378}
#define icMaxValueType
Definition icProfileHeader.h:1092
icValidateStatus
Definition IccDefs.h:119
@ icValidateCriticalError
Definition IccDefs.h:123
ICCPROFLIB_API std::string icGetSigPath(icUInt32Number sig)
Definition IccUtil.cpp:1191
ICCPROFLIB_API const char * icMsgValidateCriticalError
Definition IccUtil.cpp:92
ICCPROFLIB_API icValidateStatus icMaxStatus(icValidateStatus s1, icValidateStatus s2)
Definition IccUtil.cpp:244
Definition IccUtil.h:303
std::string GetSigPathName(std::string sigPath)
Definition IccUtil.cpp:1614
virtual icElemTypeSignature GetType() const =0
virtual icValidateStatus Validate(std::string sigPath, std::string &sReport, const CIccTagMultiProcessElement *pMPE=NULL, const CIccProfile *pProfile=NULL) const =0
Definition IccTagMPE.cpp:454

References icSpectralRange::end, CIccInfo::GetSigPathName(), CIccMultiProcessElement::GetType(), icGetSigPath(), icMaxStatus(), icMsgValidateCriticalError, icValidateCriticalError, CIccMpeSpectralCLUT::m_nStorageType, CIccMpeSpectralCLUT::m_pCLUT, CIccMpeSpectralCLUT::m_pWhite, CIccMpeSpectralCLUT::m_Range, icSpectralRange::start, icSpectralRange::steps, and CIccMultiProcessElement::Validate().

+ Here is the call graph for this function:

◆ Write()

bool CIccMpeSpectralCLUT::Write ( CIccIO pIO)
virtualinherited

Name: CIccMpeSpectralCLUT::Write

Purpose:

Args:

Return:

Implements CIccMultiProcessElement.

1136{
1138
1139 if (!pIO)
1140 return false;
1141
1142 if (!pIO->Write32(&sig))
1143 return false;
1144
1145 if (!pIO->Write32(&m_nReserved))
1146 return false;
1147
1148 if (!pIO->Write16(&m_nInputChannels))
1149 return false;
1150
1151 if (!pIO->Write16(&m_nOutputChannels))
1152 return false;
1153
1154 if (!pIO->Write32(&m_flags))
1155 return false;
1156
1157 if (!pIO->Write16(&m_Range.start))
1158 return false;
1159
1160 if (!pIO->Write16(&m_Range.end))
1161 return false;
1162
1163 if (!pIO->Write16(&m_Range.steps))
1164 return false;
1165
1166 if (!pIO->Write16(&m_nStorageType))
1167 return false;
1168
1169 if (m_pCLUT) {
1170 icUInt8Number gridPoints[16];
1171 int i;
1172
1173 for (i=0; i<16; i++)
1174 gridPoints[i] = m_pCLUT->GridPoint(i);
1175
1176 if (pIO->Write8(gridPoints, 16)!=16)
1177 return false;
1178
1179 icFloatNumber *pData = m_pCLUT->GetData(0);
1180 icInt32Number nPoints = m_pCLUT->NumPoints()*(int)m_Range.steps;
1181
1182 switch(m_nStorageType) {
1183 case icValueTypeUInt8:
1184 if (pIO->WriteUInt8Float(pData,nPoints)!= nPoints)
1185 return false;
1186 break;
1187
1188 case icValueTypeUInt16:
1189 if (pIO->WriteUInt16Float(pData,nPoints)!= nPoints)
1190 return false;
1191 break;
1192
1193 case icValueTypeFloat16:
1194 if (pIO->WriteFloat16Float(pData,nPoints)!= nPoints)
1195 return false;
1196 break;
1197
1198 case icValueTypeFloat32:
1199 if (pIO->WriteFloat32Float(pData,nPoints)!= nPoints)
1200 return false;
1201 break;
1202
1203 default:
1204 return false;
1205 }
1206 }
1207
1208 if (m_pWhite) {
1209 switch(m_nStorageType) {
1210 case icValueTypeUInt8:
1212 return false;
1213 break;
1214
1215 case icValueTypeUInt16:
1217 return false;
1218 break;
1219
1220 case icValueTypeFloat16:
1222 return false;
1223 break;
1224
1225 case icValueTypeFloat32:
1227 return false;
1228 break;
1229
1230 default:
1231 return false;
1232 }
1233 }
1234 else if (m_Range.steps) {
1235 return false;
1236 }
1237
1238 return true;
1239}
icElemTypeSignature
Definition icProfileHeader.h:641
virtual icInt32Number Write8(void *pBuf8, icInt32Number nNum=1)
Definition IccIO.h:105
icInt32Number Write16(void *pBuf16, icInt32Number nNum=1)
Definition IccIO.cpp:122
icInt32Number WriteFloat16Float(void *pBuf16, icInt32Number nNum=1)
Definition IccIO.cpp:285
icInt32Number Write32(void *pBuf32, icInt32Number nNum=1)
Definition IccIO.cpp:152
icInt32Number WriteFloat32Float(void *pBufFloat, icInt32Number nNum=1)
Definition IccIO.cpp:321
icInt32Number WriteUInt8Float(void *pBuf16, icInt32Number nNum=1)
Definition IccIO.cpp:219
icInt32Number WriteUInt16Float(void *pBuf16, icInt32Number nNum=1)
Definition IccIO.cpp:252
icUInt8Number GridPoint(int index) const
Definition IccTagLut.h:350

References icSpectralRange::end, CIccCLUT::GetData(), CIccMultiProcessElement::GetType(), CIccCLUT::GridPoint(), icValueTypeFloat16, icValueTypeFloat32, icValueTypeUInt16, icValueTypeUInt8, CIccMpeSpectralCLUT::m_flags, CIccMultiProcessElement::m_nInputChannels, CIccMultiProcessElement::m_nOutputChannels, CIccMultiProcessElement::m_nReserved, CIccMpeSpectralCLUT::m_nStorageType, CIccMpeSpectralCLUT::m_pCLUT, CIccMpeSpectralCLUT::m_pWhite, CIccMpeSpectralCLUT::m_Range, CIccCLUT::NumPoints(), icSpectralRange::start, icSpectralRange::steps, CIccIO::Write16(), CIccIO::Write32(), CIccIO::Write8(), CIccIO::WriteFloat16Float(), CIccIO::WriteFloat32Float(), CIccIO::WriteUInt16Float(), and CIccIO::WriteUInt8Float().

+ Here is the call graph for this function:

Field Documentation

◆ m_flags

◆ m_interpType

icCLUTElemType CIccMpeSpectralCLUT::m_interpType
protectedinherited

◆ m_nInputChannels

icUInt16Number CIccMultiProcessElement::m_nInputChannels
protectedinherited

Referenced by CIccMpeBAcs::CIccMpeBAcs(), CIccMpeBAcs::CIccMpeBAcs(), CIccMpeCalculator::CIccMpeCalculator(), CIccMpeCalculator::CIccMpeCalculator(), CIccMpeCAM::CIccMpeCAM(), CIccMpeCLUT::CIccMpeCLUT(), CIccMpeCLUT::CIccMpeCLUT(), CIccMpeCurveSet::CIccMpeCurveSet(), CIccMpeCurveSet::CIccMpeCurveSet(), CIccMpeEAcs::CIccMpeEAcs(), CIccMpeEAcs::CIccMpeEAcs(), CIccMpeExtCLUT::CIccMpeExtCLUT(), CIccMpeMatrix::CIccMpeMatrix(), CIccMpeMatrix::CIccMpeMatrix(), CIccMpeSpectralCLUT::CIccMpeSpectralCLUT(), CIccMpeSpectralCLUT::CIccMpeSpectralCLUT(), CIccMpeSpectralMatrix::CIccMpeSpectralMatrix(), CIccMpeSpectralMatrix::CIccMpeSpectralMatrix(), CIccMpeSpectralObserver::CIccMpeSpectralObserver(), CIccMpeSpectralObserver::CIccMpeSpectralObserver(), CIccMpeTintArray::CIccMpeTintArray(), CIccMpeTintArray::CIccMpeTintArray(), CIccMpeToneMap::CIccMpeToneMap(), CIccMpeToneMap::CIccMpeToneMap(), CIccMultiProcessElement::CIccMultiProcessElement(), CIccMpeAcs::Apply(), CIccMpeCurveSet::Apply(), CIccMpeMatrix::Apply(), CIccMpeAcs::Begin(), CIccMpeCurveSet::Begin(), CIccMpeMatrix::Begin(), CIccMpeCLUT::Begin(), CIccMpeEmissionMatrix::Begin(), CIccMpeInvEmissionMatrix::Begin(), CIccMpeEmissionCLUT::Begin(), Begin(), CIccMpeEmissionObserver::Begin(), CIccMpeReflectanceObserver::Begin(), CIccMpeSpectralCLUT::copyData(), CIccMpeSpectralMatrix::copyData(), CIccMpeSpectralObserver::copyData(), CIccMpeCurveSet::Describe(), CIccMpeMatrix::Describe(), CIccMpeCalculator::Describe(), CIccMpeSpectralMatrix::Describe(), CIccMpeSpectralObserver::Describe(), CIccMpeXmlCalculator::Flatten(), CIccMultiProcessElement::NumInputChannels(), CIccMpeEmissionMatrix::numVectors(), CIccMpeBAcs::operator=(), CIccMpeCalculator::operator=(), CIccMpeCLUT::operator=(), CIccMpeCurveSet::operator=(), CIccMpeEAcs::operator=(), CIccMpeMatrix::operator=(), CIccMpeTintArray::operator=(), CIccMpeToneMap::operator=(), CIccMpeXmlTintArray::ParseXml(), CIccMpeXmlToneMap::ParseXml(), CIccMpeXmlMatrix::ParseXml(), CIccMpeXmlCLUT::ParseXml(), CIccMpeXmlExtCLUT::ParseXml(), CIccMpeXmlBAcs::ParseXml(), CIccMpeXmlEAcs::ParseXml(), CIccMpeXmlJabToXYZ::ParseXml(), CIccMpeXmlXYZToJab::ParseXml(), CIccMpeXmlCalculator::ParseXml(), CIccMpeXmlEmissionCLUT::ParseXml(), CIccMpeXmlReflectanceCLUT::ParseXml(), CIccMpeAcs::Read(), CIccMpeCurveSet::Read(), CIccMpeTintArray::Read(), CIccMpeToneMap::Read(), CIccMpeMatrix::Read(), CIccMpeCLUT::Read(), CIccMpeExtCLUT::Read(), CIccMpeCAM::Read(), CIccMpeSpectralCLUT::Read(), CIccMpeCLUT::SetCLUT(), CIccMpeCurveSet::SetCurve(), CIccMpeSpectralCLUT::SetData(), CIccMpeCalculator::SetSize(), CIccMpeMatrix::SetSize(), CIccMpeSpectralMatrix::SetSize(), CIccMpeSpectralObserver::SetSize(), CIccMpeCurveSet::SetSize(), CIccMpeCurveSet::Validate(), CIccMpeTintArray::Validate(), CIccMpeToneMap::Validate(), CIccMpeCAM::Validate(), CIccMpeInvEmissionMatrix::Validate(), CIccMpeAcs::Write(), CIccMpeCurveSet::Write(), CIccMpeTintArray::Write(), CIccMpeToneMap::Write(), CIccMpeMatrix::Write(), CIccMpeCLUT::Write(), CIccMpeExtCLUT::Write(), CIccMpeCAM::Write(), CIccMpeCalculator::Write(), CIccMpeSpectralMatrix::Write(), CIccMpeSpectralCLUT::Write(), and CIccMpeSpectralObserver::Write().

◆ m_nOutputChannels

icUInt16Number CIccMultiProcessElement::m_nOutputChannels
protectedinherited

Referenced by CIccMpeBAcs::CIccMpeBAcs(), CIccMpeBAcs::CIccMpeBAcs(), CIccMpeCalculator::CIccMpeCalculator(), CIccMpeCalculator::CIccMpeCalculator(), CIccMpeCAM::CIccMpeCAM(), CIccMpeCLUT::CIccMpeCLUT(), CIccMpeCLUT::CIccMpeCLUT(), CIccMpeCurveSet::CIccMpeCurveSet(), CIccMpeCurveSet::CIccMpeCurveSet(), CIccMpeEAcs::CIccMpeEAcs(), CIccMpeEAcs::CIccMpeEAcs(), CIccMpeExtCLUT::CIccMpeExtCLUT(), CIccMpeMatrix::CIccMpeMatrix(), CIccMpeMatrix::CIccMpeMatrix(), CIccMpeSpectralCLUT::CIccMpeSpectralCLUT(), CIccMpeSpectralCLUT::CIccMpeSpectralCLUT(), CIccMpeSpectralMatrix::CIccMpeSpectralMatrix(), CIccMpeSpectralMatrix::CIccMpeSpectralMatrix(), CIccMpeSpectralObserver::CIccMpeSpectralObserver(), CIccMpeSpectralObserver::CIccMpeSpectralObserver(), CIccMpeTintArray::CIccMpeTintArray(), CIccMpeTintArray::CIccMpeTintArray(), CIccMpeToneMap::CIccMpeToneMap(), CIccMpeToneMap::CIccMpeToneMap(), CIccMultiProcessElement::CIccMultiProcessElement(), CIccMpeTintArray::Apply(), CIccMpeToneMap::Apply(), CIccMpeMatrix::Apply(), CIccMpeAcs::Begin(), CIccMpeTintArray::Begin(), CIccMpeToneMap::Begin(), CIccMpeMatrix::Begin(), CIccMpeEmissionMatrix::Begin(), CIccMpeInvEmissionMatrix::Begin(), CIccMpeEmissionCLUT::Begin(), Begin(), CIccMpeEmissionObserver::Begin(), CIccMpeReflectanceObserver::Begin(), CIccMpeToneMap::ClearToneFuncs(), CIccMpeSpectralCLUT::copyData(), CIccMpeSpectralMatrix::copyData(), CIccMpeSpectralObserver::copyData(), CIccMpeToneMap::CopyToneFuncs(), CIccMpeMatrix::Describe(), CIccMpeCalculator::Describe(), CIccMpeSpectralMatrix::Describe(), CIccMpeSpectralObserver::Describe(), CIccMpeTintArray::Describe(), CIccMpeToneMap::Describe(), CIccMpeXmlCalculator::Flatten(), CIccMpeToneMap::Insert(), CIccMultiProcessElement::NumOutputChannels(), CIccMpeInvEmissionMatrix::numVectors(), CIccMpeBAcs::operator=(), CIccMpeCalculator::operator=(), CIccMpeCLUT::operator=(), CIccMpeCurveSet::operator=(), CIccMpeEAcs::operator=(), CIccMpeMatrix::operator=(), CIccMpeTintArray::operator=(), CIccMpeToneMap::operator=(), CIccMpeXmlTintArray::ParseXml(), CIccMpeXmlToneMap::ParseXml(), CIccMpeXmlMatrix::ParseXml(), CIccMpeXmlCLUT::ParseXml(), CIccMpeXmlExtCLUT::ParseXml(), CIccMpeXmlBAcs::ParseXml(), CIccMpeXmlEAcs::ParseXml(), CIccMpeXmlJabToXYZ::ParseXml(), CIccMpeXmlXYZToJab::ParseXml(), CIccMpeXmlCalculator::ParseXml(), CIccMpeXmlEmissionCLUT::ParseXml(), CIccMpeXmlReflectanceCLUT::ParseXml(), CIccMpeAcs::Read(), CIccMpeTintArray::Read(), CIccMpeToneMap::Read(), CIccMpeMatrix::Read(), CIccMpeCLUT::Read(), CIccMpeExtCLUT::Read(), CIccMpeCAM::Read(), CIccMpeSpectralCLUT::Read(), CIccMpeCLUT::SetCLUT(), CIccMpeSpectralCLUT::SetData(), CIccMpeToneMap::SetNumOutputChannels(), CIccMpeCalculator::SetSize(), CIccMpeMatrix::SetSize(), CIccMpeSpectralMatrix::SetSize(), CIccMpeSpectralObserver::SetSize(), CIccMpeCurveSet::SetSize(), CIccMpeTintArray::SetVectorSize(), CIccMpeTintArray::Validate(), CIccMpeToneMap::Validate(), CIccMpeCAM::Validate(), CIccMpeSpectralMatrix::Validate(), CIccMpeSpectralObserver::Validate(), CIccMpeAcs::Write(), CIccMpeTintArray::Write(), CIccMpeToneMap::Write(), CIccMpeMatrix::Write(), CIccMpeCLUT::Write(), CIccMpeExtCLUT::Write(), CIccMpeCAM::Write(), CIccMpeCalculator::Write(), CIccMpeSpectralMatrix::Write(), CIccMpeSpectralCLUT::Write(), and CIccMpeSpectralObserver::Write().

◆ m_nReserved

icUInt32Number CIccMultiProcessElement::m_nReserved
inherited

Referenced by CIccMpeAcs::CIccMpeAcs(), CIccMpeBAcs::CIccMpeBAcs(), CIccMpeCalculator::CIccMpeCalculator(), CIccMpeCalculator::CIccMpeCalculator(), CIccMpeCAM::CIccMpeCAM(), CIccMpeCLUT::CIccMpeCLUT(), CIccMpeCLUT::CIccMpeCLUT(), CIccMpeCurveSet::CIccMpeCurveSet(), CIccMpeCurveSet::CIccMpeCurveSet(), CIccMpeEAcs::CIccMpeEAcs(), CIccMpeExtCLUT::CIccMpeExtCLUT(), CIccMpeMatrix::CIccMpeMatrix(), CIccMpeMatrix::CIccMpeMatrix(), CIccMpeSpectralCLUT::CIccMpeSpectralCLUT(), CIccMpeSpectralCLUT::CIccMpeSpectralCLUT(), CIccMpeSpectralMatrix::CIccMpeSpectralMatrix(), CIccMpeSpectralMatrix::CIccMpeSpectralMatrix(), CIccMpeSpectralObserver::CIccMpeSpectralObserver(), CIccMpeSpectralObserver::CIccMpeSpectralObserver(), CIccMpeTintArray::CIccMpeTintArray(), CIccMpeTintArray::CIccMpeTintArray(), CIccMpeToneMap::CIccMpeToneMap(), CIccMpeToneMap::CIccMpeToneMap(), CIccMultiProcessElement::CIccMultiProcessElement(), CIccMpeSpectralCLUT::copyData(), CIccMpeSpectralMatrix::copyData(), CIccMpeSpectralObserver::copyData(), CIccMpeBAcs::operator=(), CIccMpeCalculator::operator=(), CIccMpeCLUT::operator=(), CIccMpeCurveSet::operator=(), CIccMpeEAcs::operator=(), CIccMpeMatrix::operator=(), CIccMpeTintArray::operator=(), CIccMpeToneMap::operator=(), CIccTagXmlMultiProcessElement::ParseElement(), CIccMpeXmlCalculator::ParseImport(), CIccMpeAcs::Read(), CIccMpeCurveSet::Read(), CIccMpeTintArray::Read(), CIccMpeToneMap::Read(), CIccMpeMatrix::Read(), CIccMpeCLUT::Read(), CIccMpeExtCLUT::Read(), CIccMpeCAM::Read(), CIccMpeCalculator::Read(), CIccMpeSpectralMatrix::Read(), CIccMpeSpectralCLUT::Read(), CIccMpeSpectralObserver::Read(), CIccMpeXmlCurveSet::ToXml(), CIccMpeXmlTintArray::ToXml(), CIccMpeXmlToneMap::ToXml(), CIccMpeXmlMatrix::ToXml(), CIccMpeXmlCLUT::ToXml(), CIccMpeXmlExtCLUT::ToXml(), CIccMpeXmlBAcs::ToXml(), CIccMpeXmlEAcs::ToXml(), CIccMpeXmlJabToXYZ::ToXml(), CIccMpeXmlXYZToJab::ToXml(), CIccMpeXmlCalculator::ToXml(), CIccMpeXmlEmissionMatrix::ToXml(), CIccMpeXmlInvEmissionMatrix::ToXml(), CIccMpeXmlEmissionCLUT::ToXml(), CIccMpeXmlReflectanceCLUT::ToXml(), CIccMpeXmlEmissionObserver::ToXml(), CIccMpeXmlReflectanceObserver::ToXml(), CIccMultiProcessElement::Validate(), CIccMpeAcs::Write(), CIccMpeCurveSet::Write(), CIccMpeTintArray::Write(), CIccMpeToneMap::Write(), CIccMpeMatrix::Write(), CIccMpeCLUT::Write(), CIccMpeExtCLUT::Write(), CIccMpeCAM::Write(), CIccMpeCalculator::Write(), CIccMpeSpectralMatrix::Write(), CIccMpeSpectralCLUT::Write(), and CIccMpeSpectralObserver::Write().

◆ m_nStorageType

◆ m_pApplyCLUT

◆ m_pCLUT

◆ m_pWhite

◆ m_Range


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