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

#include <IccMpeXml.h>

+ Inheritance diagram for CIccMpeXmlTintArray:
+ Collaboration diagram for CIccMpeXmlTintArray:

Public Member Functions

virtual ~CIccMpeXmlTintArray ()
 
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=0)
 
CIccTagNumArrayGetArray ()
 
virtual icAcsSignature GetBAcsSig ()
 
virtual const char * GetClassName () const
 
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 SetArray (CIccTagNumArray *pTag)
 
void SetVectorSize (int nVectorSize)
 
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

CIccTagNumArraym_Array
 
icUInt16Number m_nInputChannels
 
icUInt16Number m_nOutputChannels
 

Detailed Description

Constructor & Destructor Documentation

◆ ~CIccMpeXmlTintArray()

virtual CIccMpeXmlTintArray::~CIccMpeXmlTintArray ( )
inlinevirtual
128{}

Member Function Documentation

◆ Apply()

void CIccMpeTintArray::Apply ( CIccApplyMpe pApply,
icFloatNumber pDestPixel,
const icFloatNumber pSrcPixel 
) const
virtualinherited

Name: CIccMpeTintArray::Apply

Purpose:

Args:

Return:

Implements CIccMultiProcessElement.

3808{
3809 if (m_Array) {
3810 m_Array->Interpolate(pDestPixel, *pSrcPixel, m_nOutputChannels);
3811 }
3812 else
3813 memset(pDestPixel, 0, m_nOutputChannels*sizeof(icFloatNumber));
3814}
float icFloatNumber
Definition IccDefs.h:101
CIccTagNumArray * m_Array
Definition IccMpeBasic.h:494
virtual bool Interpolate(icFloatNumber *DstVector, icFloatNumber pos, icUInt32Number nVectorSize=1, icFloatNumber *zeroVals=NULL) const =0
icUInt16Number m_nOutputChannels
Definition IccTagMPE.h:192

References CIccTagNumArray::Interpolate(), CIccMpeTintArray::m_Array, and CIccMultiProcessElement::m_nOutputChannels.

+ Here is the call graph for this function:

◆ Begin()

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

Name: CIccMpeTintArray::Begin

Purpose:

Args:

Return:

Implements CIccMultiProcessElement.

3785{
3786 if (!m_Array)
3787 return false;
3788
3790
3791 if (nVals/m_nOutputChannels<2 || nVals % m_nOutputChannels != 0)
3792 return false;
3793
3794 return true;
3795}
unsigned long icUInt32Number
Definition icProfileHeader.h:262
virtual icUInt32Number GetNumValues() const =0

References CIccTagNumArray::GetNumValues(), CIccMpeTintArray::m_Array, and CIccMultiProcessElement::m_nOutputChannels.

+ 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 CIccMpeTintArray::Describe ( std::string &  sDescription,
int  nVerboseness = 0 
)
virtualinherited

Name: CIccMpeTintArray::Describe

Purpose:

Args:

Return:

Implements CIccMultiProcessElement.

3645{
3646 if (m_Array) {
3647 icChar buf[81];
3648
3649 sprintf(buf, "BEGIN_TINT_ARRAY %d\n", m_nOutputChannels);
3650 sDescription += buf;
3651
3652 m_Array->Describe(sDescription, nVerboseness);
3653
3654 sDescription += "END_TINT_ARRAY\n";
3655 }
3656}
char icChar
Definition IccDefs.h:110
virtual void Describe(std::string &sDescription, int nVerboseness=0)
Definition IccTagBasic.h:221

References CIccTag::Describe(), CIccMpeTintArray::m_Array, and CIccMultiProcessElement::m_nOutputChannels.

+ Here is the call graph for this function:

◆ GetArray()

CIccTagNumArray * CIccMpeTintArray::GetArray ( )
inlineinherited
478{ return m_Array; }

References CIccMpeTintArray::m_Array.

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

Reimplemented from CIccMpeTintArray.

130{ return "CIccMpeXmlTintArray"; }

◆ 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 * CIccMpeXmlTintArray::GetExtension ( )
inlinevirtual

Reimplemented from CIccMultiProcessElement.

132{ return this; }

◆ GetNewApply()

CIccApplyMpe * CIccMultiProcessElement::GetNewApply ( CIccApplyTagMpe pApplyTag)
virtualinherited

Name: CIccMultiProcessElement::GetNewApply()

Purpose:

Args:

Return:

Reimplemented in CIccMpeCLUT, CIccMpeCalculator, and CIccMpeSpectralCLUT.

147{
148 return new CIccApplyMpe(this);
149}
Definition IccTagMPE.h:203

References CIccApplyMpe::CIccApplyMpe().

Referenced by CIccApplyTagMpe::AppendElem(), and CIccMpeCalculator::GetNewApply().

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

◆ GetType()

virtual icElemTypeSignature CIccMpeTintArray::GetType ( ) const
inlinevirtualinherited

Implements CIccMultiProcessElement.

480{ return icSigTintArrayElemType; }
@ icSigTintArrayElemType
Definition icProfileHeader.h:654

References icSigTintArrayElemType.

Referenced by CIccMpeTintArray::Validate(), and CIccMpeTintArray::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 * CIccMpeTintArray::NewCopy ( ) const
inlinevirtualinherited

Implements CIccMultiProcessElement.

470{ return new CIccMpeTintArray(*this);}
Definition IccMpeBasic.h:465

References CIccMpeTintArray::CIccMpeTintArray().

+ Here is the call graph for this function:

◆ NumInputChannels()

◆ NumOutputChannels()

◆ ParseXml()

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

Implements CIccMpeXml.

1570{
1571 icUInt16Number nInputChannels = atoi(icXmlAttrValue(pNode, "InputChannels"));
1572 icUInt16Number nOutputChannels = atoi(icXmlAttrValue(pNode, "OutputChannels"));
1573 if (!nInputChannels || !nOutputChannels) {
1574 parseStr += "Invalid InputChannels or OutputChannels In TintArrayElement\n";
1575 return false;
1576 }
1577 m_nInputChannels = nInputChannels;
1578 m_nOutputChannels = nOutputChannels;
1579
1580 for (pNode = pNode->children; pNode && pNode->type != XML_ELEMENT_NODE; pNode = pNode->next);
1581 if (pNode) {
1582 CIccTag *pTag = NULL;
1583 icSignature sigTag = (icSignature)0;
1584
1585 // get the tag signature
1586 std::string nodeName = (icChar*) pNode->name;
1587 icTagTypeSignature sigType = icGetTypeNameTagSig (nodeName.c_str());
1588
1589 if (sigType==icSigUnknownType){
1590 xmlAttr *attr = icXmlFindAttr(pNode, "type");
1592 }
1593
1594 CIccInfo info;
1595
1596 // create a tag based on the signature
1597 pTag = CIccTag::Create(sigType);
1598
1599 if (!pTag || !pTag->IsNumArrayType()) {
1600 parseStr+= "Invalid data type for Tint Array!\n";
1601 delete pTag;
1602 return false;
1603 }
1604
1605 IIccExtensionTag *pExt;
1606
1607 if (pTag && (pExt = pTag->GetExtension()) && !strcmp(pExt->GetExtClassName(), "CIccTagXml")) {
1608 CIccTagXml* pXmlTag = (CIccTagXml*)pExt;
1609 xmlAttr *attr;
1610
1611 if (pXmlTag->ParseXml(pNode->children, parseStr)) {
1612 if ((attr=icXmlFindAttr(pNode, "reserved"))) {
1613 sscanf(icXmlAttrValue(attr), "%u", &pTag->m_nReserved);
1614 }
1615 m_Array = (CIccTagNumArray*)pTag;
1616 }
1617 else {
1618 parseStr += "Unable to Parse \"";
1619 parseStr += info.GetTagTypeSigName(sigType);
1620 parseStr += "\" (";
1621 parseStr += nodeName;
1622 parseStr += ") Tint Tag\n";
1623 delete pTag;
1624 return false;
1625 }
1626 }
1627 else {
1628 parseStr += "Invalid tag extension for \"";
1629 parseStr += info.GetTagTypeSigName(sigType);
1630 parseStr += "\" (";
1631 parseStr += nodeName;
1632 parseStr += ") Tint Tag\n";
1633 if (pTag)
1634 delete pTag;
1635 return false;
1636 }
1637 }
1638 else {
1639 parseStr += "Tint Array missing tint values\n";
1640 return false;
1641 }
1642 return true;
1643}
#define icSigUnknownType
Definition icProfileHeader.h:591
unsigned short icUInt16Number
Definition icProfileHeader.h:256
icUInt32Number icSignature
Definition icProfileHeader.h:271
icTagTypeSignature
Definition icProfileHeader.h:526
ICCPROFLIB_API icUInt32Number icGetSigVal(const icChar *pBuf)
Definition IccUtil.cpp:1258
xmlAttr * icXmlFindAttr(xmlNode *pNode, const char *szAttrName)
Definition IccUtilXml.cpp:669
icTagTypeSignature icGetTypeNameTagSig(const icChar *szTagType)
Definition IccUtilXml.cpp:1152
const char * icXmlAttrValue(xmlAttr *attr, const char *szDefault="")
Definition IccUtilXml.cpp:572
Definition IccUtil.h:303
const icChar * GetTagTypeSigName(icTagTypeSignature sig)
Definition IccUtil.cpp:1594
Definition IccTagBasic.h:90
virtual const char * GetExtClassName() const =0
Definition IccTagBasic.h:108
static CIccTag * Create(icTagTypeSignature sig)
Definition IccTagBasic.cpp:143
Definition IccTagBasic.h:791
Definition IccTagXml.h:75
virtual bool ParseXml(xmlNode *pNode, std::string &parseStr)=0

References CIccTag::Create(), IIccExtensionTag::GetExtClassName(), CIccTag::GetExtension(), CIccInfo::GetTagTypeSigName(), icGetSigVal(), icGetTypeNameTagSig(), icXmlAttrValue(), icXmlAttrValue(), icXmlFindAttr(), CIccTag::IsNumArrayType(), CIccMpeTintArray::m_Array, CIccMultiProcessElement::m_nInputChannels, CIccMultiProcessElement::m_nOutputChannels, CIccTag::m_nReserved, and CIccTagXml::ParseXml().

+ Here is the call graph for this function:

◆ Read()

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

Name: CIccMpeTintArray::Read

Purpose:

Args:

Return:

Implements CIccMultiProcessElement.

3669{
3670 if (m_Array)
3671 delete m_Array;
3672 m_Array = NULL;
3673
3675
3676 icUInt32Number startPos = pIO->Tell();
3677
3678 icUInt32Number headerSize = sizeof(icElemTypeSignature) +
3679 sizeof(icUInt32Number) +
3680 sizeof(icUInt16Number) +
3681 sizeof(icUInt16Number);
3682
3683 if (headerSize +sizeof(icTagTypeSignature) > size)
3684 return false;
3685
3686 if (!pIO) {
3687 return false;
3688 }
3689
3690 icUInt16Number nInputChannels, nOutputChannels;
3691
3692 if (!pIO->Read32(&sig))
3693 return false;
3694
3695 if (!pIO->Read32(&m_nReserved))
3696 return false;
3697
3698 if (!pIO->Read16(&nInputChannels))
3699 return false;
3700
3701 if (!pIO->Read16(&nOutputChannels))
3702 return false;
3703
3704 if (nInputChannels != 1 || !nOutputChannels)
3705 return false;
3706
3707 m_nInputChannels = nInputChannels;
3708 m_nOutputChannels = nOutputChannels;
3709
3710 icUInt32Number arrayPos = pIO->Tell();
3711
3712 icTagTypeSignature tagType;
3713 if (!pIO->Read32(&tagType))
3714 return false;
3715
3716 CIccTag *pTag = CIccTag::Create(tagType);
3717 if (!pTag)
3718 return false;
3719
3720 if (!pTag->IsNumArrayType()) {
3721 delete pTag;
3722 return false;
3723 }
3724
3725 m_Array = (CIccTagNumArray*)pTag;
3726 pIO->Seek(arrayPos, icSeekSet);
3727 if (!m_Array->Read(size-headerSize, pIO)) {
3728 return false;
3729 }
3730
3732 if (nVals/m_nOutputChannels <2 || (nVals%m_nOutputChannels) != 0) {
3733 return false;
3734 }
3735
3736 return true;
3737}
icElemTypeSignature
Definition icProfileHeader.h:641
@ icSeekSet
Definition IccIO.h:83
icInt32Number Read16(void *pBuf16, icInt32Number nNum=1)
Definition IccIO.cpp:114
virtual icInt32Number Tell()
Definition IccIO.h:133
virtual icInt32Number Seek(icInt32Number nOffset, icSeekVal pos)
Definition IccIO.h:132
icInt32Number Read32(void *pBuf32, icInt32Number nNum=1)
Definition IccIO.cpp:143
virtual bool Read(icUInt32Number size, CIccIO *pIO)
Definition IccTagBasic.h:167
virtual bool IsNumArrayType() const
Definition IccTagBasic.h:137
icUInt32Number m_nReserved
Definition IccTagMPE.h:188

References CIccTag::Create(), CIccTagNumArray::GetNumValues(), icSeekSet, CIccTag::IsNumArrayType(), CIccMpeTintArray::m_Array, CIccMultiProcessElement::m_nInputChannels, CIccMultiProcessElement::m_nOutputChannels, CIccMultiProcessElement::m_nReserved, CIccTag::Read(), CIccIO::Read16(), CIccIO::Read32(), CIccIO::Seek(), and CIccIO::Tell().

+ Here is the call graph for this function:

◆ SetArray()

void CIccMpeTintArray::SetArray ( CIccTagNumArray pArray)
inherited

Name: CIccMpeTintArray::SetCurve

Purpose:

Args:

Return:

3626{
3627 if (m_Array)
3628 delete m_Array;
3629
3630 m_Array = pArray;
3631}

References CIccMpeTintArray::m_Array.

◆ SetVectorSize()

void CIccMpeTintArray::SetVectorSize ( int  nVectorSize)
inherited

Name: CIccMpeTintArray::SetVectorSize

Purpose:

Args:

Return:

3611{
3612 m_nOutputChannels = nVectorSize;
3613}

References CIccMultiProcessElement::m_nOutputChannels.

◆ ToXml()

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

Implements CIccMpeXml.

1535{
1536 char buf[128], line[128];
1537 sprintf(buf, "<TintArrayElement InputChannels=\"%d\" OutputChannels=\"%d\"", NumInputChannels(), NumOutputChannels());
1538 xml += blanks + buf;
1539
1540 if (m_nReserved) {
1541 sprintf(buf, " Reserved=\"%u\"", m_nReserved);
1542 xml += buf;
1543 }
1544 xml += ">\n";
1545
1546 IIccExtensionTag *pTagEx;
1547 if (m_Array && (pTagEx=m_Array->GetExtension()) && !strcmp(pTagEx->GetExtClassName(), "CIccTagXml")) {
1548 CIccTagXml *pTagXml = (CIccTagXml*)pTagEx;
1549 const icChar* tagSig = icGetTagSigTypeName(m_Array->GetType());
1550
1551 sprintf(line, " <%s>\n", tagSig); //parent node is the tag type
1552 xml += line;
1553
1554 //convert the rest of the tag to xml
1555 if (!pTagXml->ToXml(xml, " ")) {
1556 printf("Unable to output tag with type %s\n", icGetSigStr(buf, m_Array->GetType()));
1557 return false;
1558 }
1559 sprintf(line, " </%s>\n", tagSig);
1560 xml += line;
1561 }
1562
1563 xml += blanks + "</TintArrayElement>\n";
1564
1565 return true;
1566}
ICCPROFLIB_API const icChar * icGetSigStr(icChar *pBuf, icUInt32Number nSig)
Definition IccUtil.cpp:1056
const icChar * icGetTagSigTypeName(icTagTypeSignature tagTypeSig)
Definition IccUtilXml.cpp:1141
virtual icTagTypeSignature GetType() const
Definition IccTagBasic.h:131
virtual IIccExtensionTag * GetExtension()
Definition IccTagBasic.h:143
virtual icUInt16Number NumInputChannels() const
Definition IccTagMPE.h:159
virtual icUInt16Number NumOutputChannels() const
Definition IccTagMPE.h:160
virtual bool ToXml(std::string &xml, std::string blanks="")=0

References IIccExtensionTag::GetExtClassName(), CIccTag::GetExtension(), CIccTag::GetType(), icGetSigStr(), icGetTagSigTypeName(), CIccMpeTintArray::m_Array, CIccMultiProcessElement::m_nReserved, CIccMultiProcessElement::NumInputChannels(), CIccMultiProcessElement::NumOutputChannels(), and CIccTagXml::ToXml().

+ Here is the call graph for this function:

◆ Validate()

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

Name: CIccMpeTintArray::Validate

Purpose:

Args:

Return:

Implements CIccMultiProcessElement.

3827{
3828 std::string mpeSigPath = sigPath + icGetSigPath(GetType());
3829 icValidateStatus rv = CIccMultiProcessElement::Validate(sigPath, sReport, pMPE, pProfile);
3830
3831 if (m_nInputChannels!=1) {
3832 CIccInfo Info;
3833 std::string sSigPathName = Info.GetSigPathName(mpeSigPath);
3834
3835 sReport += icMsgValidateCriticalError;
3836 sReport += sSigPathName;
3837 sReport += " - Bad number of input channels!\n";
3839 }
3840
3841 if (!m_nOutputChannels) {
3842 CIccInfo Info;
3843 std::string sSigPathName = Info.GetSigPathName(mpeSigPath);
3844
3845 sReport += icMsgValidateCriticalError;
3846 sReport += sSigPathName;
3847 sReport += " - Bad number of output channels!\n";
3849 }
3850
3851 if (!m_Array) {
3852 CIccInfo Info;
3853 std::string sSigPathName = Info.GetSigPathName(mpeSigPath);
3854
3855 sReport += icMsgValidateCriticalError;
3856 sReport += sSigPathName;
3857 sReport += " - Has no tint values(s)!\n";
3859 }
3860 else {
3862 bool bBad = false;
3863
3864 /*
3865 * NOTE: nVals is unsigned as is m_nOutputChannels
3866 * so the result will never be < 0
3867 */
3868 /*
3869 if (nVals/m_nOutputChannels<0) {
3870 CIccInfo Info;
3871 std::string sSigPathName = Info.GetSigPathName(mpeSigPath);
3872
3873 sReport += icMsgValidateCriticalError;
3874 sReport += sSigPathName;
3875 sReport += " - Needs two or more tint steps!\n";
3876 bBad = true;
3877 }
3878 */
3879 if ((nVals % m_nOutputChannels)!=0) {
3880 CIccInfo Info;
3881 std::string sSigPathName = Info.GetSigPathName(mpeSigPath);
3882
3883 sReport += icMsgValidateCriticalError;
3884 sReport += sSigPathName;
3885 sReport += " - Array size must be multiple of output channels!\n";
3886 bBad = true;
3887 }
3888
3889 if (bBad) {
3891 }
3892 }
3893
3894 return rv;
3895}
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
std::string GetSigPathName(std::string sigPath)
Definition IccUtil.cpp:1614
virtual icElemTypeSignature GetType() const
Definition IccMpeBasic.h:480
virtual icValidateStatus Validate(std::string sigPath, std::string &sReport, const CIccTagMultiProcessElement *pMPE=NULL, const CIccProfile *pProfile=NULL) const =0
Definition IccTagMPE.cpp:454

References CIccTagNumArray::GetNumValues(), CIccInfo::GetSigPathName(), CIccMpeTintArray::GetType(), icGetSigPath(), icMsgValidateCriticalError, icValidateCriticalError, CIccMpeTintArray::m_Array, CIccMultiProcessElement::m_nInputChannels, CIccMultiProcessElement::m_nOutputChannels, and CIccMultiProcessElement::Validate().

+ Here is the call graph for this function:

◆ Write()

bool CIccMpeTintArray::Write ( CIccIO pIO)
virtualinherited

Name: CIccMpeTintArray::Write

Purpose:

Args:

Return:

Implements CIccMultiProcessElement.

3750{
3751 if (!m_Array)
3752 return false;
3753
3755
3756 if (!pIO)
3757 return false;
3758
3759 if (!pIO->Write32(&sig))
3760 return false;
3761
3762 if (!pIO->Write32(&m_nReserved))
3763 return false;
3764
3765 if (!pIO->Write16(&m_nInputChannels))
3766 return false;
3767
3768 if (!pIO->Write16(&m_nOutputChannels))
3769 return false;
3770
3771 return m_Array->Write(pIO);
3772}
icInt32Number Write16(void *pBuf16, icInt32Number nNum=1)
Definition IccIO.cpp:122
icInt32Number Write32(void *pBuf32, icInt32Number nNum=1)
Definition IccIO.cpp:152
virtual bool Write(CIccIO *pIO)
Definition IccTagBasic.h:211

References CIccMpeTintArray::GetType(), CIccMpeTintArray::m_Array, CIccMultiProcessElement::m_nInputChannels, CIccMultiProcessElement::m_nOutputChannels, CIccMultiProcessElement::m_nReserved, CIccTag::Write(), CIccIO::Write16(), and CIccIO::Write32().

+ Here is the call graph for this function:

Field Documentation

◆ m_Array

◆ 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=(), 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(), 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=(), 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(), 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().


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