Hoyt's FORK of DemoIccMAX 2.1.17.hoyt
Documentation for Hoyt's FORK of DemoIccMAX
Loading...
Searching...
No Matches
CIccStructNamedColor Class Reference

Class: CIccStructNamedColor. More...

#include <IccStructBasic.h>

+ Inheritance diagram for CIccStructNamedColor:
+ Collaboration diagram for CIccStructNamedColor:

Public Member Functions

 CIccStructNamedColor (CIccTagStruct *pTagStruct=NULL)
 
virtual const icCharGetClassName () const
 
virtual const icCharGetDisplayName () const
 
std::string getName () const
 
CIccTagNumArrayGetNumArray (icSignature sigElem) const
 
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
 
virtual ~CIccStructNamedColor ()
 
- Public Member Functions inherited from CIccStructUnknown
 CIccStructUnknown (CIccTagStruct *pTagStruct=NULL)
 
virtual void Describe (std::string &sDescription, int nVerboseness) const
 
CIccTagGetElem (icSignature sigElem) const
 
virtual std::string GetElemName (icSignature sigElem) const
 
virtual icSignature GetElemSig (const icChar *szElemName) const
 
virtual ~CIccStructUnknown ()
 
- Public Member Functions inherited from IIccStruct
CIccTagStructGetTagStruct ()
 
virtual ~IIccStruct ()
 

Additional Inherited Members

- Protected Member Functions inherited from IIccStruct
TagEntryList * getTagEntries () const
 
- Protected Attributes inherited from CIccStructUnknown
SIccElemNameSigm_pElemNameSigTable
 
- Protected Attributes inherited from IIccStruct
CIccTagStructm_pTagStruct
 

Detailed Description

Class: CIccStructNamedColor.

Purpose: The Named Color struct handler

Definition at line 126 of file IccStructBasic.h.

Constructor & Destructor Documentation

◆ CIccStructNamedColor()

CIccStructNamedColor::CIccStructNamedColor ( CIccTagStruct * pTagStruct = NULL)

Definition at line 436 of file IccStructBasic.cpp.

437{
438 m_pTagStruct = pTagStruct;
440}
static SIccElemNameSig g_IccStructNamedColorMbrTable[]
SIccElemNameSig * m_pElemNameSigTable
CIccTagStruct * m_pTagStruct

References g_IccStructNamedColorMbrTable.

◆ ~CIccStructNamedColor()

CIccStructNamedColor::~CIccStructNamedColor ( )
virtual

Definition at line 443 of file IccStructBasic.cpp.

444{
445
446}

Member Function Documentation

◆ GetClassName()

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

Reimplemented from CIccStructUnknown.

Reimplemented in CIccStructTintZero.

Definition at line 133 of file IccStructBasic.h.

133{ return "CIccStructNamedColor"; }

◆ GetDisplayName()

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

Reimplemented from CIccStructUnknown.

Reimplemented in CIccStructTintZero.

Definition at line 134 of file IccStructBasic.h.

134{ return "namedColorStructure"; }

◆ getName()

std::string CIccStructNamedColor::getName ( ) const

Definition at line 457 of file IccStructBasic.cpp.

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}
Class: CIccTag.
virtual icTagTypeSignature GetType() const
Function: GetType()
CIccTag * FindElem(icSignature sig)
Name: CIccTagStruct::FindElem.
Class: CIccTagUtf8Text()
const icUChar * GetText() const
@ icSigNmclNameMbr
@ icSigUtf8TextType

References CIccTagUtf8Text::GetText(), CIccTag::GetType(), icSigNmclNameMbr, and icSigUtf8TextType.

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

Definition at line 470 of file IccStructBasic.cpp.

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
virtual bool IsNumArrayType() const
Class: CIccTagNumArray.

References CIccTag::IsNumArrayType().

Referenced by CIccArrayNamedColor::Validate().

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

◆ GetTint()

bool CIccStructNamedColor::GetTint ( icFloatNumber * dstColor,
icFloatNumber tint,
CIccTagNumArray * pZero,
icSignature sigElem,
icUInt32Number nSamples ) const

Definition at line 479 of file IccStructBasic.cpp.

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}
float icFloatNumber
All floating point operations/variables in IccProfLib use the icFloatNumber data type.
Definition IccDefs.h:100
CIccTagNumArray * GetNumArray(icSignature sigElem) const
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
@ icSigNmclTintMbr

References 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 * CIccStructNamedColor::NewCopy ( CIccTagStruct * pNewTagStruct) const
virtual

Reimplemented from CIccStructUnknown.

Reimplemented in CIccStructTintZero.

Definition at line 449 of file IccStructBasic.cpp.

450{
451 CIccStructNamedColor *rv = new CIccStructNamedColor(pTagStruct);
452
453 return rv;
454}
Class: CIccStructNamedColor.
CIccStructNamedColor(CIccTagStruct *pTagStruct=NULL)

◆ Validate()

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

Reimplemented from CIccStructUnknown.

Definition at line 557 of file IccStructBasic.cpp.

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}
icValidateStatus
Definition IccDefs.h:118
@ icValidateOK
Definition IccDefs.h:119
@ icValidateCriticalError
Definition IccDefs.h:122
icValidateStatus icMaxStatus(icValidateStatus s1, icValidateStatus s2)
Name: icMaxStatus.
Definition IccUtil.cpp:244
const char * icMsgValidateWarning
Definition IccUtil.cpp:90
Type: Class.
Definition IccUtil.h:303
std::string GetSigPathName(std::string sigPath)
Definition IccUtil.cpp:1614
virtual icValidateStatus Validate(std::string sigPath, std::string &sReport, const CIccProfile *pProfile=NULL) const
virtual icStructSignature GetTagStructType() const
@ icSigNamedColorStruct

References CIccInfo::GetSigPathName(), icMaxStatus(), icMsgValidateWarning, icSigNamedColorStruct, icSigNmclNameMbr, icValidateCriticalError, icValidateOK, and CIccStructUnknown::Validate().

+ Here is the call graph for this function:

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