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

#include <IccMpeXml.h>

+ Inheritance diagram for CIccMpeXmlCLUT:
+ Collaboration diagram for CIccMpeXmlCLUT:

Public Member Functions

virtual ~CIccMpeXmlCLUT ()
 
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)
 
virtual icAcsSignature GetBAcsSig ()
 
virtual const char * GetClassName () const
 
CIccCLUTGetCLUT ()
 
virtual icAcsSignature GetEAcsSig ()
 
virtual const char * GetExtClassName ()
 
virtual IIccExtensionMpeGetExtension ()
 
virtual CIccApplyMpeGetNewApply (CIccApplyTagMpe *pApplyTag)
 
virtual icElemTypeSignature GetType () const
 
virtual bool IsAcs ()
 
virtual bool IsLateBinding () const
 
virtual bool IsLateBindingReflectance () const
 
virtual bool IsSupported ()
 
virtual CIccMultiProcessElementNewCopy () const
 
virtual icUInt16Number NumInputChannels () const
 
virtual icUInt16Number NumOutputChannels () const
 
virtual bool ParseXml (xmlNode *pNode, std::string &parseStr)
 
virtual bool Read (icUInt32Number size, CIccIO *pIO)
 
void SetCLUT (CIccCLUT *pCLUT)
 
virtual bool ToXml (std::string &xml, std::string blanks="")
 
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 Attributes

icCLUTElemType m_interpType
 
icUInt16Number m_nInputChannels
 
icUInt16Number m_nOutputChannels
 
CIccCLUTm_pCLUT
 

Detailed Description

Constructor & Destructor Documentation

◆ ~CIccMpeXmlCLUT()

virtual CIccMpeXmlCLUT::~CIccMpeXmlCLUT ( )
inlinevirtual
182{}

Member Function Documentation

◆ Apply()

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

Name: CIccMpeCLUT::Apply

Purpose:

Args:

Return:

Implements CIccMultiProcessElement.

5690{
5691 const CIccCLUT *pCLUT = m_pCLUT;
5692
5693 switch(m_interpType) {
5694 case ic1dInterp:
5695 pCLUT->Interp1d(dstPixel, srcPixel);
5696 break;
5697 case ic2dInterp:
5698 pCLUT->Interp2d(dstPixel, srcPixel);
5699 break;
5700 case ic3dInterpTetra:
5701 pCLUT->Interp3dTetra(dstPixel, srcPixel);
5702 break;
5703 case ic3dInterp:
5704 pCLUT->Interp3d(dstPixel, srcPixel);
5705 break;
5706 case ic4dInterp:
5707 pCLUT->Interp4d(dstPixel, srcPixel);
5708 break;
5709 case ic5dInterp:
5710 pCLUT->Interp5d(dstPixel, srcPixel);
5711 break;
5712 case ic6dInterp:
5713 pCLUT->Interp6d(dstPixel, srcPixel);
5714 break;
5715 case icNdInterp:
5716 CIccApplyMpeCLUT* pApplyCLUT = (CIccApplyMpeCLUT*)pApply;
5717 pCLUT->InterpND(dstPixel, srcPixel, pApplyCLUT->m_pApply);
5718 break;
5719 }
5720}
@ 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
CIccCLUT * m_pCLUT
Definition IccMpeBasic.h:682
icCLUTElemType m_interpType
Definition IccMpeBasic.h:683
Definition IccMpeBasic.h:695
CIccApplyCLUT * m_pApply
Definition IccMpeBasic.h:708
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

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(), CIccMpeCLUT::m_interpType, CIccApplyMpeCLUT::m_pApply, and CIccMpeCLUT::m_pCLUT.

+ Here is the call graph for this function:

◆ Begin()

bool CIccMpeCLUT::Begin ( icElemInterp  nInterp,
CIccTagMultiProcessElement pMPE 
)
virtualinherited

Name: CIccMpeCLUT::Begin

Purpose:

Args:

Return:

Implements CIccMultiProcessElement.

5644{
5645 if (!m_pCLUT)
5646 return false;
5647
5648 m_pCLUT->Begin();
5649
5650 switch (m_nInputChannels) {
5651 case 1:
5653 break;
5654 case 2:
5656 break;
5657 case 3:
5658 if (nInterp==icElemInterpTetra)
5660 else
5662 break;
5663 case 4:
5665 break;
5666 case 5:
5668 break;
5669 case 6:
5671 break;
5672 default:
5674 break;
5675 }
5676 return true;
5677}
@ icElemInterpTetra
Definition IccTagMPE.h:95
void Begin()
Definition IccTagLut.cpp:2221
icUInt16Number m_nInputChannels
Definition IccTagMPE.h:191

References CIccCLUT::Begin(), ic1dInterp, ic2dInterp, ic3dInterp, ic3dInterpTetra, ic4dInterp, ic5dInterp, ic6dInterp, icElemInterpTetra, icNdInterp, CIccMpeCLUT::m_interpType, CIccMultiProcessElement::m_nInputChannels, and CIccMpeCLUT::m_pCLUT.

+ Here is the call 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 CIccMpeCLUT::Describe ( std::string &  sDescription,
int  nVerboseness 
)
virtualinherited

Name: CIccMpeCLUT::Describe

Purpose:

Args:

Return:

Implements CIccMultiProcessElement.

Reimplemented in CIccMpeExtCLUT.

5504{
5505 if (m_pCLUT) {
5506 m_pCLUT->DumpLut(sDescription, "ELEM_CLUT", icSigUnknownData, icSigUnknownData, nVerboseness);
5507 }
5508}
#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

References CIccCLUT::DumpLut(), and CIccMpeCLUT::m_pCLUT.

+ Here is the call graph for this function:

◆ 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 char * CIccMpeXmlCLUT::GetClassName ( ) const
inlinevirtual

Reimplemented from CIccMpeCLUT.

184{ return "CIccMpeXmlCLUT"; }

◆ GetCLUT()

CIccCLUT * CIccMpeCLUT::GetCLUT ( )
inlineinherited
678{ return m_pCLUT; }

References CIccMpeCLUT::m_pCLUT.

◆ GetEAcsSig()

virtual icAcsSignature CIccMultiProcessElement::GetEAcsSig ( )
inlinevirtualinherited

Reimplemented in CIccMpeEAcs.

179{ return icSigAcsZero; }

◆ GetExtClassName()

virtual const char * CIccMpeXml::GetExtClassName ( )
inlinevirtualinherited

Implements IIccExtensionMpe.

84{ return "CIccMpeXml"; }

◆ GetExtension()

virtual IIccExtensionMpe * CIccMpeXmlCLUT::GetExtension ( )
inlinevirtual

Reimplemented from CIccMultiProcessElement.

186{ return this; }

◆ GetNewApply()

CIccApplyMpe * CIccMpeCLUT::GetNewApply ( CIccApplyTagMpe pApplyTag)
virtualinherited

Name: CIccMpeCLUT::Begin

Purpose:

Args:

Return:

Reimplemented from CIccMultiProcessElement.

5762{
5763 if (!m_pCLUT) {
5764 return NULL;
5765 }
5766
5767 CIccApplyCLUT* pApply = m_pCLUT->GetNewApply();
5768 if (!pApply)
5769 return NULL;
5770
5771 CIccApplyMpeCLUT * rv = new CIccApplyMpeCLUT(this, pApply);
5772 if (!rv)
5773 delete pApply;
5774
5775 return rv;
5776}
Definition IccTagLut.h:302
CIccApplyCLUT * GetNewApply()
Definition IccTagLut.cpp:2403

References CIccApplyMpeCLUT::CIccApplyMpeCLUT(), CIccCLUT::GetNewApply(), and CIccMpeCLUT::m_pCLUT.

+ Here is the call graph for this function:

◆ GetType()

virtual icElemTypeSignature CIccMpeCLUT::GetType ( ) const
inlinevirtualinherited

Implements CIccMultiProcessElement.

Reimplemented in CIccMpeExtCLUT.

664{ return icSigCLutElemType; }
@ icSigCLutElemType
Definition icProfileHeader.h:645

References icSigCLutElemType.

Referenced by CIccMpeCLUT::Validate(), and CIccMpeCLUT::Write().

+ Here is the caller graph for this function:

◆ 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 CIccMultiProcessElement::IsLateBinding ( ) const
inlinevirtualinherited

Reimplemented in CIccMpeCalculator, CIccMpeSpectralMatrix, CIccMpeSpectralCLUT, and CIccMpeSpectralObserver.

184{ return false; }

Referenced by CIccMpeCalculator::IsLateBinding(), and CIccTagMultiProcessElement::IsLateBinding().

+ Here is the caller graph for this function:

◆ IsLateBindingReflectance()

virtual bool CIccMultiProcessElement::IsLateBindingReflectance ( ) const
inlinevirtualinherited

Reimplemented in CIccMpeCalculator, CIccMpeReflectanceCLUT, and CIccMpeReflectanceObserver.

185{ return false; }

Referenced by CIccMpeCalculator::IsLateBindingReflectance(), and CIccTagMultiProcessElement::IsLateBindingReflectance().

+ Here is the caller graph for this function:

◆ 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 CIccMultiProcessElement * CIccMpeCLUT::NewCopy ( ) const
inlinevirtualinherited

Implements CIccMultiProcessElement.

Reimplemented in CIccMpeExtCLUT.

661{ return new CIccMpeCLUT(*this);}
CIccMpeCLUT()
Definition IccMpeBasic.cpp:5392

References CIccMpeCLUT::CIccMpeCLUT().

+ Here is the call graph for this function:

◆ NumInputChannels()

◆ NumOutputChannels()

◆ ParseXml()

bool CIccMpeXmlCLUT::ParseXml ( xmlNode *  pNode,
std::string &  parseStr 
)
virtual

Implements CIccMpeXml.

1888{
1889 m_nInputChannels = atoi(icXmlAttrValue(pNode, "InputChannels"));
1890 m_nOutputChannels = atoi(icXmlAttrValue(pNode, "OutputChannels"));
1891
1893 parseStr += "Invalid InputChannels or OutputChannels In CLutElement\n";
1894 return false;
1895 }
1896
1898 if (pCLut) {
1899 SetCLUT(pCLut);
1900 if (m_pCLUT)
1901 return true;
1902 }
1903
1904 return false;
1905}
@ icConvertFloat
Definition IccXmlConfig.h:70
const char * icXmlAttrValue(xmlAttr *attr, const char *szDefault="")
Definition IccUtilXml.cpp:572
CIccCLUT * icCLutFromXml(xmlNode *pNode, int nIn, int nOut, icConvertType nType, std::string &parseStr)
Definition IccTagXml.cpp:3327
void SetCLUT(CIccCLUT *pCLUT)
Definition IccMpeBasic.cpp:5480

References icCLutFromXml(), icConvertFloat, icXmlAttrValue(), CIccMultiProcessElement::m_nInputChannels, CIccMultiProcessElement::m_nOutputChannels, CIccMpeCLUT::m_pCLUT, and CIccMpeCLUT::SetCLUT().

+ Here is the call graph for this function:

◆ Read()

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

Name: CIccMpeCLUT::Read

Purpose:

Args:

Return:

Implements CIccMultiProcessElement.

Reimplemented in CIccMpeExtCLUT.

5521{
5523
5524 icUInt32Number headerSize = sizeof(icTagTypeSignature) +
5525 sizeof(icUInt32Number) +
5526 sizeof(icUInt16Number) +
5527 sizeof(icUInt16Number) +
5528 16 * sizeof(icUInt8Number);
5529
5530 if (headerSize > size)
5531 return false;
5532
5533 icUInt32Number dataSize = size - headerSize;
5534
5535 if (!pIO) {
5536 return false;
5537 }
5538
5539 if (!pIO->Read32(&sig))
5540 return false;
5541
5542 if (!pIO->Read32(&m_nReserved))
5543 return false;
5544
5545 if (!pIO->Read16(&m_nInputChannels))
5546 return false;
5547
5548 if (!pIO->Read16(&m_nOutputChannels))
5549 return false;
5550
5551 icUInt8Number gridPoints[16];
5552
5553 if (pIO->Read8(gridPoints, 16)!=16) {
5554 return false;
5555 }
5556
5558
5559 if (m_nInputChannels > 16 || nPoints > dataSize || nPoints * sizeof (icFloat32Number) > dataSize)
5560 return false;
5561
5563
5564 if (!m_pCLUT)
5565 return false;
5566
5568
5569 m_pCLUT->Init(gridPoints);
5570
5571 icFloatNumber *pData = m_pCLUT->GetData(0);
5572
5573 if (!pData)
5574 return false;
5575
5576 nPoints = m_pCLUT->NumPoints()*m_nOutputChannels;
5577
5578 if (pIO->ReadFloat32Float(pData,nPoints)!= nPoints)
5579 return false;
5580
5581 return true;
5582}
unsigned char icUInt8Number
Definition icProfileHeader.h:250
float icFloat32Number
Definition icProfileHeader.h:313
unsigned short icUInt16Number
Definition icProfileHeader.h:256
unsigned long icUInt32Number
Definition icProfileHeader.h:262
icTagTypeSignature
Definition icProfileHeader.h:526
static icFloatNumber NoClip(icFloatNumber v)
Definition IccMpeBasic.cpp:5377
float icFloatNumber
Definition IccDefs.h:101
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 Read32(void *pBuf32, icInt32Number nNum=1)
Definition IccIO.cpp:143
void SetClipFunc(icCLUTCLIPFUNC ClipFunc)
Definition IccTagLut.h:379
icUInt32Number NumPoints() const
Definition IccTagLut.h:348
icFloatNumber * GetData(int index)
Definition IccTagLut.h:347
bool Init(icUInt8Number nGridPoints, icUInt32Number nMaxSize=0, icUInt8Number nBytesPerPoint=4)
Definition IccTagLut.cpp:1806
icUInt32Number m_nReserved
Definition IccTagMPE.h:188

References CIccCLUT::CIccCLUT(), CIccCLUT::GetData(), CIccCLUT::Init(), CIccMultiProcessElement::m_nInputChannels, CIccMultiProcessElement::m_nOutputChannels, CIccMultiProcessElement::m_nReserved, CIccMpeCLUT::m_pCLUT, NoClip(), CIccCLUT::NumPoints(), CIccIO::Read16(), CIccIO::Read32(), CIccIO::Read8(), CIccIO::ReadFloat32Float(), and CIccCLUT::SetClipFunc().

+ Here is the call graph for this function:

◆ SetCLUT()

void CIccMpeCLUT::SetCLUT ( CIccCLUT pCLUT)
inherited

Name: CIccMpeCLUT::SetCLUT

Purpose:

Args:

Return:

5481{
5482 if (m_pCLUT)
5483 delete m_pCLUT;
5484
5485 m_pCLUT = pCLUT;
5486 if (pCLUT) {
5487 pCLUT->SetClipFunc(NoClip);
5488 m_nInputChannels = pCLUT->GetInputDim();
5490 }
5491}
icUInt8Number GetInputDim() const
Definition IccTagLut.h:356
icUInt16Number GetOutputChannels() const
Definition IccTagLut.h:357

References CIccCLUT::GetInputDim(), CIccCLUT::GetOutputChannels(), CIccMultiProcessElement::m_nInputChannels, CIccMultiProcessElement::m_nOutputChannels, CIccMpeCLUT::m_pCLUT, NoClip(), and CIccCLUT::SetClipFunc().

Referenced by CDevLinkWriter::begin(), main(), ParseXml(), and CIccMpeXmlExtCLUT::ParseXml().

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

◆ ToXml()

bool CIccMpeXmlCLUT::ToXml ( std::string &  xml,
std::string  blanks = "" 
)
virtual

Implements CIccMpeXml.

1874{
1875 char attrs[256];
1876
1877 if (m_nReserved) {
1878 sprintf(attrs, " InputChannels=\"%d\" OutputChannels=\"%d\" Reserved=\"%u\"", NumInputChannels(), NumOutputChannels(), m_nReserved);
1879 }
1880 else {
1881 sprintf(attrs, " InputChannels=\"%d\" OutputChannels=\"%d\"", NumInputChannels(), NumOutputChannels());
1882 }
1883
1884 return icCLUTToXml(xml, m_pCLUT, icConvertFloat, blanks, true, attrs, "CLutElement");
1885}
bool icCLUTToXml(std::string &xml, CIccCLUT *pCLUT, icConvertType nType, std::string blanks, bool bSaveGridPoints=false, const char *szExtraAttrs="", const char *szName="CLUT")
Definition IccUtilXml.cpp:537
virtual icUInt16Number NumInputChannels() const
Definition IccTagMPE.h:159
virtual icUInt16Number NumOutputChannels() const
Definition IccTagMPE.h:160

References icCLUTToXml(), icConvertFloat, CIccMultiProcessElement::m_nReserved, CIccMpeCLUT::m_pCLUT, CIccMultiProcessElement::NumInputChannels(), and CIccMultiProcessElement::NumOutputChannels().

+ Here is the call graph for this function:

◆ Validate()

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

Name: CIccMpeCLUT::Validate

Purpose:

Args:

Return:

Implements CIccMultiProcessElement.

Reimplemented in CIccMpeExtCLUT.

5733{
5734 std::string mpeSigPath = sigPath + icGetSigPath(GetType());
5735 icValidateStatus rv = CIccMultiProcessElement::Validate(sigPath, sReport, pMPE, pProfile);
5736
5737 if (!m_pCLUT) {
5738 CIccInfo Info;
5739 std::string sSigPathName = Info.GetSigPathName(mpeSigPath);
5740
5741 sReport += icMsgValidateCriticalError;
5742 sReport += sSigPathName;
5743 sReport += " - Has No CLUT!\n";
5745 }
5746
5747 return rv;
5748}
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
Definition IccUtil.h:303
std::string GetSigPathName(std::string sigPath)
Definition IccUtil.cpp:1614
virtual icElemTypeSignature GetType() const
Definition IccMpeBasic.h:664
virtual icValidateStatus Validate(std::string sigPath, std::string &sReport, const CIccTagMultiProcessElement *pMPE=NULL, const CIccProfile *pProfile=NULL) const =0
Definition IccTagMPE.cpp:454

References CIccInfo::GetSigPathName(), CIccMpeCLUT::GetType(), icGetSigPath(), icMsgValidateCriticalError, icValidateCriticalError, CIccMpeCLUT::m_pCLUT, and CIccMultiProcessElement::Validate().

Referenced by CIccMpeExtCLUT::Validate().

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

◆ Write()

bool CIccMpeCLUT::Write ( CIccIO pIO)
virtualinherited

Name: CIccMpeCLUT::Write

Purpose:

Args:

Return:

Implements CIccMultiProcessElement.

Reimplemented in CIccMpeExtCLUT.

5595{
5597
5598 if (!pIO)
5599 return false;
5600
5601 if (!pIO->Write32(&sig))
5602 return false;
5603
5604 if (!pIO->Write32(&m_nReserved))
5605 return false;
5606
5607 if (!pIO->Write16(&m_nInputChannels))
5608 return false;
5609
5610 if (!pIO->Write16(&m_nOutputChannels))
5611 return false;
5612
5613 if (m_pCLUT) {
5614 icUInt8Number gridPoints[16];
5615 int i;
5616
5617 for (i=0; i<16; i++)
5618 gridPoints[i] = m_pCLUT->GridPoint(i);
5619
5620 if (pIO->Write8(gridPoints, 16)!=16)
5621 return false;
5622
5623 icFloatNumber *pData = m_pCLUT->GetData(0);
5625
5626 if (pIO->WriteFloat32Float(pData, nPoints) != nPoints)
5627 return false;
5628 }
5629
5630 return true;
5631}
long icInt32Number
Definition icProfileHeader.h:291
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 Write32(void *pBuf32, icInt32Number nNum=1)
Definition IccIO.cpp:152
icInt32Number WriteFloat32Float(void *pBufFloat, icInt32Number nNum=1)
Definition IccIO.cpp:321
icUInt8Number GridPoint(int index) const
Definition IccTagLut.h:350

References CIccCLUT::GetData(), CIccMpeCLUT::GetType(), CIccCLUT::GridPoint(), CIccMultiProcessElement::m_nInputChannels, CIccMultiProcessElement::m_nOutputChannels, CIccMultiProcessElement::m_nReserved, CIccMpeCLUT::m_pCLUT, CIccCLUT::NumPoints(), CIccIO::Write16(), CIccIO::Write32(), CIccIO::Write8(), and CIccIO::WriteFloat32Float().

+ Here is the call graph for this function:

Field Documentation

◆ m_interpType

icCLUTElemType CIccMpeCLUT::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(), CIccMpeReflectanceCLUT::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(), 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(), CIccMpeReflectanceCLUT::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(), 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(), 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_pCLUT


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