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

Class: CIccTagMeasurement. More...

#include <IccTagBasic.h>

+ Inheritance diagram for CIccTagMeasurement:
+ Collaboration diagram for CIccTagMeasurement:

Public Member Functions

 CIccTagMeasurement ()
 Name: CIccTagMeasurement::CIccTagMeasurement.
 
 CIccTagMeasurement (const CIccTagMeasurement &ITM)
 Name: CIccTagMeasurement::CIccTagMeasurement.
 
virtual void Describe (std::string &sDescription, int nVerboseness)
 Name: CIccTagMeasurement::Describe.
 
virtual const icCharGetClassName () const
 
virtual icTagTypeSignature GetType () const
 Function: GetType()
 
virtual CIccTagNewCopy () const
 Function: NewCopy(sDescription) Each derived tag will implement it's own NewCopy() function.
 
CIccTagMeasurementoperator= (const CIccTagMeasurement &MeasTag)
 Name: CIccTagMeasurement::operator=.
 
virtual bool Read (icUInt32Number size, CIccIO *pIO)
 Name: CIccTagMeasurement::Read.
 
virtual icValidateStatus Validate (std::string sigPath, std::string &sReport, const CIccProfile *pProfile=NULL) const
 Name: CIccTagMeasurement::Validate.
 
virtual bool Write (CIccIO *pIO)
 Name: CIccTagMeasurement::Write.
 
virtual ~CIccTagMeasurement ()
 Name: CIccTagMeasurement::~CIccTagMeasurement.
 
- Public Member Functions inherited from CIccTag
 CIccTag ()
 Name: CIccTag::CIccTag.
 
virtual void DetachIO ()
 Function: ReadAll() - Read All sub data for tag from file.
 
virtual IIccExtensionTagGetExtension ()
 
virtual icArraySignature GetTagArrayType () const
 
virtual icStructSignature GetTagStructType () const
 
virtual bool IsArrayType ()
 
virtual bool IsMBBType ()
 
virtual bool IsNumArrayType () const
 
virtual bool IsSupported ()
 Function: IsSupported(size, pIO) - Check if tag fully supported for apply purposes.
 
virtual bool Read (icUInt32Number size, CIccIO *pIO, CIccProfile *pProfile)
 Function: Read(size, pIO) - Read tag from file.
 
virtual bool ReadAll ()
 Function: ReadAll() - Read All sub data for tag from file.
 
virtual ~CIccTag ()
 Name: CIccTag::CIccTag.
 

Public Attributes

icMeasurement m_Data
 
- Public Attributes inherited from CIccTag
icUInt32Number m_nReserved
 

Additional Inherited Members

- Static Public Member Functions inherited from CIccTag
static CIccTagCreate (icTagTypeSignature sig)
 Name: CIccTag::Create.
 

Detailed Description

Class: CIccTagMeasurement.

Purpose: The measurmentType tag

Definition at line 1138 of file IccTagBasic.h.

Constructor & Destructor Documentation

◆ CIccTagMeasurement() [1/2]

CIccTagMeasurement::CIccTagMeasurement ( )

Name: CIccTagMeasurement::CIccTagMeasurement.

Purpose: Constructor

Definition at line 6664 of file IccTagBasic.cpp.

6665{
6666 memset(&m_Data, 0, sizeof(m_Data));
6667}
icMeasurement m_Data

◆ CIccTagMeasurement() [2/2]

CIccTagMeasurement::CIccTagMeasurement ( const CIccTagMeasurement & ITM)

Name: CIccTagMeasurement::CIccTagMeasurement.

Purpose: Copy Constructor

Args: ITM = The CIccTagMeasurement object to be copied

Definition at line 6680 of file IccTagBasic.cpp.

6681{
6682 memcpy(&m_Data, &ITM.m_Data, sizeof(m_Data));
6683}

References m_Data.

◆ ~CIccTagMeasurement()

CIccTagMeasurement::~CIccTagMeasurement ( )
virtual

Name: CIccTagMeasurement::~CIccTagMeasurement.

Purpose: Destructor

Definition at line 6716 of file IccTagBasic.cpp.

6717{
6718}

Member Function Documentation

◆ Describe()

void CIccTagMeasurement::Describe ( std::string & sDescription,
int nVerboseness )
virtual

Name: CIccTagMeasurement::Describe.

Purpose: Dump data associated with the tag to a string

Args: sDescription - string to concatenate tag dump to

Reimplemented from CIccTag.

Definition at line 6808 of file IccTagBasic.cpp.

6809{
6810 CIccInfo Fmt;
6811 icChar buf[128];
6812
6813 sDescription += Fmt.GetStandardObserverName(m_Data.stdObserver); sDescription += "\n";
6814 sprintf(buf, "Backing measurement: X=%.4lf, Y=%.4lf, Z=%.4lf\n",
6818 sDescription += buf;
6819 sDescription += Fmt.GetMeasurementGeometryName(m_Data.geometry); sDescription += "\n";
6820 sDescription += Fmt.GetMeasurementFlareName(m_Data.flare); sDescription += "\n";
6821 sDescription += Fmt.GetIlluminantName(m_Data.illuminant); sDescription += "\n";
6822}
char icChar
Definition IccDefs.h:109
icFloatNumber icFtoD(icS15Fixed16Number num)
Definition IccUtil.cpp:559
Type: Class.
Definition IccUtil.h:303
const icChar * GetIlluminantName(icIlluminant val)
Definition IccUtil.cpp:2169
const icChar * GetMeasurementGeometryName(icMeasurementGeometry val)
Definition IccUtil.cpp:2076
const icChar * GetMeasurementFlareName(icMeasurementFlare val)
Definition IccUtil.cpp:2055
const icChar * GetStandardObserverName(icStandardObserver val)
Definition IccUtil.cpp:2151
icXYZNumber backing
icMeasurementGeometry geometry
icMeasurementFlare flare
icStandardObserver stdObserver
icIlluminant illuminant
icS15Fixed16Number Y
icS15Fixed16Number Z
icS15Fixed16Number X

References CIccInfo::GetIlluminantName(), CIccInfo::GetMeasurementFlareName(), CIccInfo::GetMeasurementGeometryName(), CIccInfo::GetStandardObserverName(), and icFtoD().

+ Here is the call graph for this function:

◆ GetClassName()

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

Reimplemented from CIccTag.

Reimplemented in CIccTagXmlMeasurement.

Definition at line 1148 of file IccTagBasic.h.

1148{ return "CIccTagMeasurement"; }

◆ GetType()

virtual icTagTypeSignature CIccTagMeasurement::GetType ( ) const
inlinevirtual

Function: GetType()

Purpose: Get Tag Type. Each derived tag will implement it's own GetType() function.

Reimplemented from CIccTag.

Definition at line 1147 of file IccTagBasic.h.

1147{ return icSigMeasurementType; }
@ icSigMeasurementType

References icSigMeasurementType.

◆ NewCopy()

virtual CIccTag * CIccTagMeasurement::NewCopy ( ) const
inlinevirtual

Function: NewCopy(sDescription) Each derived tag will implement it's own NewCopy() function.

Parameter(s): none

Returns a new CIccTag object that is a copy of this object.

Reimplemented from CIccTag.

Definition at line 1144 of file IccTagBasic.h.

1144{return new CIccTagMeasurement(*this);}
CIccTagMeasurement()
Name: CIccTagMeasurement::CIccTagMeasurement.

◆ operator=()

CIccTagMeasurement & CIccTagMeasurement::operator= ( const CIccTagMeasurement & MeasTag)

Name: CIccTagMeasurement::operator=.

Purpose: Copy Operator

Args: MeasTag = The CIccTagMeasurement object to be copied

Definition at line 6696 of file IccTagBasic.cpp.

6697{
6698 if (&MeasTag == this)
6699 return *this;
6700
6701 memcpy(&m_Data, &MeasTag.m_Data, sizeof(m_Data));
6702
6703 return *this;
6704}

References m_Data.

◆ Read()

bool CIccTagMeasurement::Read ( icUInt32Number size,
CIccIO * pIO )
virtual

Name: CIccTagMeasurement::Read.

Purpose: Read in the tag contents into a data block

Args: size - # of bytes in tag, pIO - IO object to read tag from

Return: true = successful, false = failure

Reimplemented from CIccTag.

Definition at line 6735 of file IccTagBasic.cpp.

6736{
6738
6739 if (sizeof(icTagTypeSignature) +
6740 sizeof(icUInt32Number) +
6741 sizeof(m_Data) > size)
6742 return false;
6743
6744 if (!pIO) {
6745 return false;
6746 }
6747
6748 if (!pIO->Read32(&sig))
6749 return false;
6750
6751 if (!pIO->Read32(&m_nReserved))
6752 return false;
6753
6754 icUInt32Number nSize=sizeof(m_Data)/sizeof(icUInt32Number);
6755
6756 if (pIO->Read32(&m_Data,nSize) != (icInt32Number)nSize)
6757 return false;
6758
6759 return true;
6760}
icArraySignature sig
icTagTypeSignature
unsigned int icUInt32Number
icInt32Number Read32(void *pBuf32, icInt32Number nNum=1)
Definition IccIO.cpp:143
icUInt32Number m_nReserved
long icInt32Number

References CIccIO::Read32(), and sig.

+ Here is the call graph for this function:

◆ Validate()

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

Name: CIccTagMeasurement::Validate.

Purpose: Check tag data validity.

Args: sig = signature of tag being validated, sReport = String to add report information to

Return: icValidateStatusOK if valid, or other error status.

Reimplemented from CIccTag.

Definition at line 6839 of file IccTagBasic.cpp.

6840{
6841 icValidateStatus rv = CIccTag::Validate(sigPath, sReport, pProfile);
6842
6843 CIccInfo Info;
6844 std::string sSigPathName = Info.GetSigPathName(sigPath);
6845
6846 switch(m_Data.stdObserver) {
6847 case icStdObsUnknown:
6850 break;
6851
6852 default:
6853 sReport += icMsgValidateNonCompliant;
6854 sReport += sSigPathName;
6855 sReport += " - Invalid standard observer encoding.\n";
6857 }
6858
6859 switch(m_Data.geometry) {
6860 case icGeometryUnknown:
6861 case icGeometry045or450:
6862 case icGeometry0dord0:
6863 break;
6864
6865 default:
6866 sReport += icMsgValidateNonCompliant;
6867 sReport += sSigPathName;
6868 sReport += " - Invalid measurement geometry encoding.\n";
6870 }
6871
6872 switch(m_Data.illuminant) {
6874 case icIlluminantD50:
6875 case icIlluminantD65:
6876 case icIlluminantD93:
6877 case icIlluminantF2:
6878 case icIlluminantD55:
6879 case icIlluminantA:
6881 case icIlluminantF8:
6882 break;
6883
6884 default:
6885 sReport += icMsgValidateNonCompliant;
6886 sReport += sSigPathName;
6887 sReport += " - Invalid standard illuminant encoding.\n";
6889 }
6890
6891 return rv;
6892}
icValidateStatus
Definition IccDefs.h:118
@ icValidateNonCompliant
Definition IccDefs.h:121
icValidateStatus icMaxStatus(icValidateStatus s1, icValidateStatus s2)
Name: icMaxStatus.
Definition IccUtil.cpp:244
const char * icMsgValidateNonCompliant
Definition IccUtil.cpp:91
std::string GetSigPathName(std::string sigPath)
Definition IccUtil.cpp:1614
virtual icValidateStatus Validate(std::string sigPath, std::string &sReport, const CIccProfile *pProfile=NULL) const
Function: Validate Each derived tag will implement it's own IsValid() function.
@ icIlluminantF8
@ icIlluminantEquiPowerE
@ icIlluminantF2
@ icIlluminantD55
@ icIlluminantA
@ icIlluminantUnknown
@ icIlluminantD65
@ icIlluminantD93
@ icIlluminantD50
@ icGeometry045or450
@ icGeometry0dord0
@ icGeometryUnknown
@ icStdObsUnknown
@ icStdObs1964TenDegrees
@ icStdObs1931TwoDegrees

References CIccInfo::GetSigPathName(), icGeometry045or450, icGeometry0dord0, icGeometryUnknown, icIlluminantA, icIlluminantD50, icIlluminantD55, icIlluminantD65, icIlluminantD93, icIlluminantEquiPowerE, icIlluminantF2, icIlluminantF8, icIlluminantUnknown, icMaxStatus(), icMsgValidateNonCompliant, icStdObs1931TwoDegrees, icStdObs1964TenDegrees, icStdObsUnknown, icValidateNonCompliant, and CIccTag::Validate().

+ Here is the call graph for this function:

◆ Write()

bool CIccTagMeasurement::Write ( CIccIO * pIO)
virtual

Name: CIccTagMeasurement::Write.

Purpose: Write the tag to a file

Args: pIO - The IO object to write tag to.

Return: true = succesful, false = failure

Reimplemented from CIccTag.

Definition at line 6776 of file IccTagBasic.cpp.

6777{
6779
6780 if (!pIO)
6781 return false;
6782
6783 if (!pIO->Write32(&sig))
6784 return false;
6785
6786 if (!pIO->Write32(&m_nReserved))
6787 return false;
6788
6789 icUInt32Number nSize=sizeof(m_Data)/sizeof(icUInt32Number);
6790
6791 if (pIO->Write32(&m_Data,nSize) != (icInt32Number)nSize)
6792 return false;
6793
6794 return true;
6795}
icInt32Number Write32(void *pBuf32, icInt32Number nNum=1)
Definition IccIO.cpp:152
virtual icTagTypeSignature GetType() const
Function: GetType()

References sig, and CIccIO::Write32().

+ Here is the call graph for this function:

Member Data Documentation

◆ m_Data

icMeasurement CIccTagMeasurement::m_Data

Definition at line 1157 of file IccTagBasic.h.

Referenced by CIccTagMeasurement(), and operator=().


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