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

#include <IccStructBasic.h>

+ Inheritance diagram for CIccStructTintZero:
+ Collaboration diagram for CIccStructTintZero:

Public Member Functions

 CIccStructTintZero (CIccTagStruct *pTagStruct=NULL)
 
virtual ~CIccStructTintZero ()
 
virtual void Describe (std::string &sDescription, int nVerboseness) const
 
virtual const icCharGetClassName () const
 
virtual const icCharGetDisplayName () const
 
CIccTagGetElem (icSignature sigElem) const
 
virtual std::string GetElemName (icSignature sigElem) const
 
virtual icSignature GetElemSig (const icChar *szElemName) const
 
std::string getName () const
 
CIccTagNumArrayGetNumArray (icSignature sigElem) const
 
CIccTagStructGetTagStruct ()
 
bool GetTint (icFloatNumber *dstColor, icFloatNumber tint, CIccTagNumArray *pZero, icSignature sigElem, icUInt32Number nSamples) const
 
virtual IIccStructNewCopy (CIccTagStruct *pNewTagStruct) const
 
icValidateStatus Validate (std::string sigPath, std::string &sReport, const CIccProfile *pProfile) const
 

Protected Member Functions

TagEntryList * getTagEntries () const
 

Protected Attributes

SIccElemNameSigm_pElemNameSigTable
 
CIccTagStructm_pTagStruct
 

Detailed Description

Class: CIccStructTintZero

Purpose: The Named Color struct handler

Constructor & Destructor Documentation

◆ CIccStructTintZero()

CIccStructTintZero::CIccStructTintZero ( CIccTagStruct pTagStruct = NULL)
621{
622 m_pTagStruct = pTagStruct;
624}
static SIccElemNameSig g_IccStructTintZeroMbrTable[]
Definition IccStructBasic.cpp:611
SIccElemNameSig * m_pElemNameSigTable
Definition IccStructBasic.h:115
CIccTagStruct * m_pTagStruct
Definition IccTagComposite.h:118

References g_IccStructTintZeroMbrTable, CIccStructUnknown::m_pElemNameSigTable, and IIccStruct::m_pTagStruct.

Referenced by CIccBasicStructFactory::CreateStruct(), and NewCopy().

+ Here is the caller graph for this function:

◆ ~CIccStructTintZero()

CIccStructTintZero::~CIccStructTintZero ( )
virtual
628{
629
630}

Member Function Documentation

◆ Describe()

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

Reimplemented from IIccStruct.

116{
117 char buf[256];
118 CIccInfo info;
119 int n;
120
121 if (m_pTagStruct) {
122 TagEntryList *entries = m_pTagStruct->GetElemList();
123 TagEntryList::iterator i;
124
125 for (n=0, i=entries->begin(); i!=entries->end(); n++, i++) {
126 if (i->pTag) {
127 if (n)
128 sDescription += "\n";
129 sprintf(buf, "Begin SubTag(%s)\n", GetElemName(i->TagInfo.sig).c_str());
130 sDescription += buf;
131 i->pTag->Describe(sDescription, nVerboseness);
132 sprintf(buf, "End SubTag(%s)\n", GetElemName(i->TagInfo.sig).c_str());
133 sDescription += buf;
134 }
135 }
136 }
137}
virtual std::string GetElemName(icSignature sigElem) const
Definition IccStructBasic.cpp:140
Definition IccUtil.h:303
TagEntryList * GetElemList()
Definition IccTagComposite.h:181

References CIccTag::Describe(), CIccTagStruct::GetElemList(), CIccStructUnknown::GetElemName(), IIccStruct::m_pTagStruct, and icTag::sig.

Referenced by CIccTagStruct::Describe().

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

◆ GetClassName()

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

Reimplemented from CIccStructNamedColor.

285{ return "CIccStructTintZero"; }

◆ GetDisplayName()

virtual const icChar * CIccStructTintZero::GetDisplayName ( ) const
inlinevirtual

Reimplemented from CIccStructNamedColor.

286{ return "tintZeroStructure"; }

◆ GetElem()

CIccTag * CIccStructUnknown::GetElem ( icSignature  sigElem) const
inherited
173{
174 if (!m_pTagStruct)
175 return NULL;
176
177 return m_pTagStruct->FindElem(sigElem);
178}
CIccTag * FindElem(icSignature sig)
Definition IccTagComposite.cpp:672

References CIccTagStruct::FindElem(), and IIccStruct::m_pTagStruct.

Referenced by CIccArrayNamedColor::FindDeviceColor(), CIccArrayNamedColor::FindPcsColor(), CIccArrayNamedColor::FindSpectralColor(), CIccStructBRDF::GetBRDFFunction(), CIccStructBRDF::GetBRDFType(), and CIccStructNamedColor::GetNumArray().

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

◆ GetElemName()

std::string CIccStructUnknown::GetElemName ( icSignature  sigElem) const
virtualinherited

Implements IIccStruct.

141{
143 int i;
144 for (i = 0; m_pElemNameSigTable[i].szName; i++) {
145 if (m_pElemNameSigTable[i].nSig == sigElem)
146 return m_pElemNameSigTable[i].szName;
147 }
148 }
149
150 CIccInfo info;
151 std::string str;
152
153 str = "PrivateSubTag";
154 //str += info.GetSigName(sigElem);
155
156 return str;
157}
const icChar * szName
Definition IccStructBasic.h:85

References CIccStructUnknown::m_pElemNameSigTable, SIccElemNameSig::nSig, and SIccElemNameSig::szName.

Referenced by CIccStructUnknown::Describe().

+ Here is the caller graph for this function:

◆ GetElemSig()

icSignature CIccStructUnknown::GetElemSig ( const icChar szElemName) const
virtualinherited

Implements IIccStruct.

160{
162 int i;
163 for (i = 0; m_pElemNameSigTable[i].szName; i++) {
164 if (!strcmp(m_pElemNameSigTable[i].szName, szElemName))
165 return m_pElemNameSigTable[i].nSig;
166 }
167 }
168
169 return (icSignature)0;
170}
icUInt32Number icSignature
Definition icProfileHeader.h:271
icSignature nSig
Definition IccStructBasic.h:84

References CIccStructUnknown::m_pElemNameSigTable, SIccElemNameSig::nSig, and SIccElemNameSig::szName.

◆ getName()

std::string CIccStructNamedColor::getName ( ) const
inherited
458{
460
461 if (pTag && pTag->GetType()==icSigUtf8TextType) {
462 CIccTagUtf8Text *pText = (CIccTagUtf8Text*)pTag;
463
464 return std::string((char*)pText->GetText());
465 }
466
467 return "";
468}
@ icSigNmclNameMbr
Definition icProfileHeader.h:791
@ icSigUtf8TextType
Definition icProfileHeader.h:574
Definition IccTagBasic.h:108
virtual icTagTypeSignature GetType() const
Definition IccTagBasic.h:131
Definition IccTagBasic.h:322
const icUChar * GetText() const
Definition IccTagBasic.h:338

References CIccTagStruct::FindElem(), CIccTagUtf8Text::GetText(), CIccTag::GetType(), icSigNmclNameMbr, icSigUtf8TextType, and IIccStruct::m_pTagStruct.

Referenced by CIccArrayNamedColor::Begin().

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

◆ GetNumArray()

CIccTagNumArray * CIccStructNamedColor::GetNumArray ( icSignature  sigElem) const
inherited
471{
472 CIccTag *pTag = GetElem(sigElem);
473 if (pTag && pTag->IsNumArrayType())
474 return (CIccTagNumArray*)pTag;
475
476 return NULL;
477}
CIccTag * GetElem(icSignature sigElem) const
Definition IccStructBasic.cpp:172
virtual bool IsNumArrayType() const
Definition IccTagBasic.h:137
Definition IccTagBasic.h:791

References CIccStructUnknown::GetElem(), and CIccTag::IsNumArrayType().

Referenced by CIccArrayNamedColor::GetDeviceTint(), CIccArrayNamedColor::GetPcsTint(), CIccArrayNamedColor::GetSpectralTint(), CIccStructNamedColor::GetTint(), and CIccArrayNamedColor::Validate().

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

◆ getTagEntries()

TagEntryList * IIccStruct::getTagEntries ( ) const
protectedinherited
111{
112 if (m_pTagStruct)
114
115 return NULL;
116}
TagEntryList * m_ElemEntries
Definition IccTagComposite.h:212

References CIccTagStruct::m_ElemEntries, and IIccStruct::m_pTagStruct.

Referenced by CIccStructUnknown::Validate().

+ Here is the caller graph for this function:

◆ GetTagStruct()

CIccTagStruct * IIccStruct::GetTagStruct ( )
inlineinherited
107{ return m_pTagStruct; }

References IIccStruct::m_pTagStruct.

◆ GetTint()

bool CIccStructNamedColor::GetTint ( icFloatNumber dstColor,
icFloatNumber  tint,
CIccTagNumArray pZero,
icSignature  sigElem,
icUInt32Number  nSamples 
) const
inherited
484{
485
486 if (tint<0.0f)
487 tint = 0.0f;
488 else if (tint>1.0f)
489 tint = 1.0f;
490
491 CIccTagNumArray *pData;
492 CIccTagNumArray *pTint;
493
494 pData = GetNumArray(sigElem);
496
497 if (!pData || !nSamples)
498 return false;
499
500 int nEntries = pData->GetNumValues()/nSamples;
501 if (nEntries<1)
502 return false;
503
504 bool bNoZero;
505 bool bNeedZero;
506 icFloatNumber pos;
507
508 if (pTint) {
509 if (pTint->GetNumValues()!=nEntries)
510 return false;
511
512 if (!pTint->ValuePos(pos, tint, bNoZero))
513 return false;
514
515 bNeedZero = (pos<0.0f);
516
517 if (bNoZero)
518 pos = (pos + 1.0f)/nEntries;
519 else
520 pos = pos / (nEntries-1.0f);
521 }
522 else {
523 bNoZero = true;
524 bNeedZero = true;
525 pos = tint;
526 }
527
528 icFloatNumber vals[256];
529 icFloatNumber *zeroVals=NULL;
530
531 if (bNoZero) {
532 if (!pZero || pZero->GetNumValues()!=nSamples)
533 return false;
534
535 if (bNeedZero) {
536 if (nSamples<256)
537 zeroVals = vals;
538 else if (bNeedZero)
539 zeroVals = new icFloatNumber[nSamples];
540
541 pZero->GetValues(zeroVals, 0, nSamples);
542 }
543 else {
544 zeroVals = vals;
545 }
546 }
547
548 bool rv = pData->Interpolate(dstColor, pos, nSamples, zeroVals);
549
550 if (zeroVals && zeroVals!=vals)
551 delete [] zeroVals;
552
553 return rv;
554}
@ icSigNmclTintMbr
Definition icProfileHeader.h:797
float icFloatNumber
Definition IccDefs.h:101
CIccTagNumArray * GetNumArray(icSignature sigElem) const
Definition IccStructBasic.cpp:470
virtual bool Interpolate(icFloatNumber *DstVector, icFloatNumber pos, icUInt32Number nVectorSize=1, icFloatNumber *zeroVals=NULL) const =0
virtual bool GetValues(icFloatNumber *DstVector, icUInt32Number nStart=0, icUInt32Number nVectorSize=1) const =0
virtual icUInt32Number GetNumValues() const =0
virtual bool ValuePos(icFloatNumber &DstPos, icFloatNumber val, bool &bNoZero) const =0

References CIccStructNamedColor::GetNumArray(), CIccTagNumArray::GetNumValues(), CIccTagNumArray::GetValues(), icSigNmclTintMbr, CIccTagNumArray::Interpolate(), and CIccTagNumArray::ValuePos().

Referenced by CIccArrayNamedColor::GetDeviceTint(), CIccArrayNamedColor::GetPcsTint(), and CIccArrayNamedColor::GetSpectralTint().

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

◆ NewCopy()

IIccStruct * CIccStructTintZero::NewCopy ( CIccTagStruct pNewTagStruct) const
virtual

Reimplemented from CIccStructNamedColor.

634{
635 CIccStructTintZero *rv = new CIccStructTintZero(pTagStruct);
636
637 return rv;
638}
Definition IccStructBasic.h:279

References CIccStructTintZero().

+ Here is the call graph for this function:

◆ Validate()

icValidateStatus CIccStructNamedColor::Validate ( std::string  sigPath,
std::string &  sReport,
const CIccProfile pProfile 
) const
virtualinherited

Reimplemented from CIccStructUnknown.

558{
560 if (m_pTagStruct) {
562 CIccInfo Info;
563 std::string sSigPathName = Info.GetSigPathName(sigPath);
564
566 sReport += icMsgValidateWarning;
567 sReport += sSigPathName;
568 sReport += " - Missing required struct member(s).\n";
569 }
570 }
571
572 return icMaxStatus(rv, CIccStructUnknown::Validate(sigPath, sReport, pProfile));
573}
@ icSigNamedColorStruct
Definition icProfileHeader.h:603
icValidateStatus
Definition IccDefs.h:119
@ icValidateOK
Definition IccDefs.h:120
@ icValidateCriticalError
Definition IccDefs.h:123
ICCPROFLIB_API const char * icMsgValidateWarning
Definition IccUtil.cpp:90
ICCPROFLIB_API icValidateStatus icMaxStatus(icValidateStatus s1, icValidateStatus s2)
Definition IccUtil.cpp:244
virtual icValidateStatus Validate(std::string sigPath, std::string &sReport, const CIccProfile *pProfile=NULL) const
Definition IccStructBasic.cpp:181
std::string GetSigPathName(std::string sigPath)
Definition IccUtil.cpp:1614
virtual icStructSignature GetTagStructType() const
Definition IccTagComposite.h:168

References CIccTagStruct::FindElem(), CIccInfo::GetSigPathName(), CIccTagStruct::GetTagStructType(), icMaxStatus(), icMsgValidateWarning, icSigNamedColorStruct, icSigNmclNameMbr, icValidateCriticalError, icValidateOK, IIccStruct::m_pTagStruct, and CIccStructUnknown::Validate().

+ Here is the call graph for this function:

Field Documentation

◆ m_pElemNameSigTable

◆ m_pTagStruct


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