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

#include <IccTagXml.h>

+ Inheritance diagram for CIccTagXmlViewingConditions:
+ Collaboration diagram for CIccTagXmlViewingConditions:

Public Member Functions

virtual ~CIccTagXmlViewingConditions ()
 
virtual void Describe (std::string &sDescription, int nVerboseness)
 
virtual void DetachIO ()
 
virtual const char * GetClassName () const
 
virtual const char * GetExtClassName () const
 
virtual const char * GetExtDerivedClassName () const
 
virtual IIccExtensionTagGetExtension ()
 
virtual icArraySignature GetTagArrayType () const
 
virtual icStructSignature GetTagStructType () const
 
virtual icTagTypeSignature GetType () const
 
virtual bool IsArrayType ()
 
virtual bool IsMBBType ()
 
virtual bool IsNumArrayType () const
 
virtual bool IsSupported ()
 
virtual CIccTagNewCopy () const
 
virtual bool ParseXml (xmlNode *pNode, std::string &parseStr)
 
virtual bool Read (icUInt32Number size, CIccIO *pIO)
 
virtual bool Read (icUInt32Number size, CIccIO *pIO, CIccProfile *pProfile)
 
virtual bool ReadAll ()
 
virtual bool ToXml (std::string &xml, std::string blanks="")
 
virtual icValidateStatus Validate (std::string sigPath, std::string &sReport, const CIccProfile *pProfile=NULL) const
 
virtual bool Write (CIccIO *pIO)
 

Static Public Member Functions

static CIccTagCreate (icTagTypeSignature sig)
 

Data Fields

icIlluminant m_illumType
 
icUInt32Number m_nReserved
 
icXYZNumber m_XYZIllum
 
icXYZNumber m_XYZSurround
 

Detailed Description

Constructor & Destructor Documentation

◆ ~CIccTagXmlViewingConditions()

virtual CIccTagXmlViewingConditions::~CIccTagXmlViewingConditions ( )
inlinevirtual
425{}

Member Function Documentation

◆ Create()

CIccTag * CIccTag::Create ( icTagTypeSignature  sig)
staticinherited

Name: CIccTag::Create

Purpose: This is a static tag creator based upon tag signature type

Args: sig = tag type signature

Return: Pointer to Allocated tag

144{
145 return CIccTagCreator::CreateTag(sig);
146}
static CIccTag * CreateTag(icTagTypeSignature tagTypeSig)
Definition IccTagFactory.h:279

References CIccTagCreator::CreateTag().

Referenced by CIccDefaultEncProfileConverter::ConvertFromParams(), CIccTagStruct::LoadElem(), CIccProfileXml::ParseTag(), CIccTagXmlStruct::ParseTag(), CIccMpeXmlTintArray::ParseXml(), CIccTagXmlArray::ParseXml(), CIccMpeTintArray::Read(), CIccTagLutAtoB::Read(), CIccTagLut8::Read(), CIccTagLut16::Read(), CIccTagLut8::SetColorSpaces(), CIccTagLut16::SetColorSpaces(), and CIccProfileDescText::SetType().

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

◆ Describe()

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

Name: CIccTagViewingConditions::Describe

Purpose: Dump data associated with the tag to a string

Args: sDescription - string to concatenate tag dump to

Reimplemented from CIccTag.

9113{
9114 icChar buf[128];
9115 CIccInfo Fmt;
9116
9117 sprintf(buf, "Illuminant Tristimulus values: X = %.4lf, Y = %.4lf, Z = %.4lf\n",
9121 sDescription += buf;
9122
9123 sprintf(buf, "Surround Tristimulus values: X = %.4lf, Y = %.4lf, Z = %.4lf\n",
9127 sDescription += buf;
9128
9129 sDescription += "Illuminant Type: ";
9130
9131 sDescription += Fmt.GetIlluminantName(m_illumType);
9132 sDescription += "\n";
9133
9134}
icS15Fixed16Number Y
Definition icProfileHeader.h:1430
icS15Fixed16Number Z
Definition icProfileHeader.h:1431
icS15Fixed16Number X
Definition icProfileHeader.h:1429
char icChar
Definition IccDefs.h:110
ICCPROFLIB_API icFloatNumber icFtoD(icS15Fixed16Number num)
Definition IccUtil.cpp:559
Definition IccUtil.h:303
const icChar * GetIlluminantName(icIlluminant val)
Definition IccUtil.cpp:2169
icXYZNumber m_XYZSurround
Definition IccTagBasic.h:1444
icIlluminant m_illumType
Definition IccTagBasic.h:1445
icXYZNumber m_XYZIllum
Definition IccTagBasic.h:1443

References CIccInfo::GetIlluminantName(), icFtoD(), CIccTagViewingConditions::m_illumType, CIccTagViewingConditions::m_XYZIllum, CIccTagViewingConditions::m_XYZSurround, icXYZNumber::X, icXYZNumber::Y, and icXYZNumber::Z.

+ Here is the call graph for this function:

◆ DetachIO()

virtual void CIccTag::DetachIO ( )
inlinevirtualinherited

Function: ReadAll() - Read All sub data for tag from file. Called by CIccProfile::ReadAll() to read all sub data for tag

Returns true if ReadAll is successful.

183{}

◆ GetClassName()

virtual const char * CIccTagXmlViewingConditions::GetClassName ( ) const
inlinevirtual

Reimplemented from CIccTagViewingConditions.

427{return "CIccTagXmlViewingConditions"; }

◆ GetExtClassName()

virtual const char * CIccTagXml::GetExtClassName ( ) const
inlinevirtualinherited

Implements IIccExtensionTag.

79{ return "CIccTagXml"; }

Referenced by icProfDescToXml(), and icXmlParseProfDesc().

+ Here is the caller graph for this function:

◆ GetExtDerivedClassName()

virtual const char * CIccTagXml::GetExtDerivedClassName ( ) const
inlinevirtualinherited

Implements IIccExtensionTag.

Reimplemented in CIccCurveXml.

80{ return ""; }

◆ GetExtension()

virtual IIccExtensionTag * CIccTagXmlViewingConditions::GetExtension ( )
inlinevirtual

Reimplemented from CIccTag.

429{return this; }

◆ GetTagArrayType()

virtual icArraySignature CIccTag::GetTagArrayType ( ) const
inlinevirtualinherited

Reimplemented in CIccTagArray.

133{ return icSigUndefinedArray; }
@ icSigUndefinedArray
Definition icProfileHeader.h:617

References icSigUndefinedArray.

Referenced by icGetTagArrayHandlerOfType(), and CIccProfileXml::ParseTag().

+ Here is the caller graph for this function:

◆ GetTagStructType()

virtual icStructSignature CIccTag::GetTagStructType ( ) const
inlinevirtualinherited

Reimplemented in CIccTagStruct.

132{ return icSigUndefinedStruct; }
@ icSigUndefinedStruct
Definition icProfileHeader.h:606

References icSigUndefinedStruct.

Referenced by icGetTagStructHandlerOfType(), CIccArrayColorantInfo::Validate(), and CIccArrayNamedColor::Validate().

+ Here is the caller graph for this function:

◆ GetType()

virtual icTagTypeSignature CIccTagViewingConditions::GetType ( ) const
inlinevirtualinherited

Function: GetType()

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

Reimplemented from CIccTag.

@ icSigViewingConditionsType
Definition icProfileHeader.h:573

References icSigViewingConditionsType.

Referenced by CIccTagViewingConditions::Write().

+ Here is the caller graph for this function:

◆ IsArrayType()

virtual bool CIccTag::IsArrayType ( )
inlinevirtualinherited

Reimplemented in CIccTagXYZ, CIccTagChromaticity, CIccTagSparseMatrixArray, CIccTagFixedNum< T, Tsig >, CIccTagNum< T, Tsig >, CIccTagFloatNum< T, Tsig >, and CIccTagData.

135{ return false; }

Referenced by MyTagDialog::MyTagDialog(), and DumpTag().

+ Here is the caller graph for this function:

◆ IsMBBType()

virtual bool CIccTag::IsMBBType ( )
inlinevirtualinherited

Reimplemented in CIccMBB.

136{ return false; } //If true then CIccTag can be cast as an CIccMBB

Referenced by CIccProfileXml::ParseTag().

+ Here is the caller graph for this function:

◆ IsNumArrayType()

virtual bool CIccTag::IsNumArrayType ( ) const
inlinevirtualinherited

Reimplemented in CIccTagSparseMatrixArray, CIccTagFixedNum< T, Tsig >, CIccTagNum< T, Tsig >, and CIccTagFloatNum< T, Tsig >.

137{ return false;} //If true then CIccTag can be cast as a CIccTagNumArray

Referenced by CIccArrayNamedColor::FindDeviceColor(), CIccArrayNamedColor::FindPcsColor(), CIccArrayNamedColor::FindSpectralColor(), CIccTagStruct::GetElemNumberValue(), CIccStructNamedColor::GetNumArray(), CIccMpeXmlTintArray::ParseXml(), and CIccMpeTintArray::Read().

+ Here is the caller graph for this function:

◆ IsSupported()

virtual bool CIccTag::IsSupported ( )
inlinevirtualinherited

Function: IsSupported(size, pIO) - Check if tag fully supported for apply purposes. By Default inherited classes are supported. Unknown tag types are not supported.

Returns true if tag type is supported.

Reimplemented in CIccTagUnknown, CIccTagEmbeddedProfile, and CIccTagMultiProcessElement.

153{ return true; }

◆ NewCopy()

virtual CIccTag * CIccTagViewingConditions::NewCopy ( ) const
inlinevirtualinherited

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.

1431{return new CIccTagViewingConditions(*this);}
CIccTagViewingConditions()
Definition IccTagBasic.cpp:8947

References CIccTagViewingConditions::CIccTagViewingConditions().

+ Here is the call graph for this function:

◆ ParseXml()

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

Implements CIccTagXml.

1906{
1907 xmlAttr *attr;
1908 xmlNode *pChild;
1909
1910 memset(&m_XYZIllum, 0, sizeof(m_XYZIllum));
1911 memset(&m_XYZSurround, 0, sizeof(m_XYZSurround));
1913
1914 pChild = icXmlFindNode(pNode, "IlluminantXYZ");
1915 if (pChild) {
1916
1917 attr = icXmlFindAttr(pChild, "X");
1918 if (attr) {
1920 }
1921
1922 attr = icXmlFindAttr(pChild, "Y");
1923 if (attr) {
1925 }
1926
1927 attr = icXmlFindAttr(pChild, "Z");
1928 if (attr) {
1930 }
1931 }
1932
1933 pChild = icXmlFindNode(pNode, "SurroundXYZ");
1934 if (pChild) {
1935 attr = icXmlFindAttr(pChild, "X");
1936 if (attr) {
1938 }
1939
1940 attr = icXmlFindAttr(pChild, "Y");
1941 if (attr) {
1943 }
1944
1945 attr = icXmlFindAttr(pChild, "Z");
1946 if (attr) {
1948 }
1949 }
1950
1951 pChild = icXmlFindNode(pNode, "IllumType");
1952 if (pChild && pChild->children && pChild->children->content) {
1953 m_illumType = icGetIlluminantValue((icChar*)pChild->children->content);
1954 }
1955
1956 return true;
1957}
icIlluminant
Definition icProfileHeader.h:1190
float icFloatNumber
Definition IccDefs.h:101
ICCPROFLIB_API icS15Fixed16Number icDtoF(icFloatNumber num)
Definition IccUtil.cpp:545
xmlAttr * icXmlFindAttr(xmlNode *pNode, const char *szAttrName)
Definition IccUtilXml.cpp:669
xmlNode * icXmlFindNode(xmlNode *pNode, const char *szNodeName)
Definition IccUtilXml.cpp:687
const char * icXmlAttrValue(xmlAttr *attr, const char *szDefault="")
Definition IccUtilXml.cpp:572
icIlluminant icGetIlluminantValue(const icChar *str)
Definition IccUtilXml.cpp:1221

References icDtoF(), icGetIlluminantValue(), icXmlAttrValue(), icXmlFindAttr(), icXmlFindNode(), CIccTagViewingConditions::m_illumType, CIccTagViewingConditions::m_XYZIllum, CIccTagViewingConditions::m_XYZSurround, icXYZNumber::X, icXYZNumber::Y, and icXYZNumber::Z.

+ Here is the call graph for this function:

◆ Read() [1/2]

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

Name: CIccTagViewingConditions::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.

9032{
9034
9035 if (sizeof(icTagTypeSignature) +
9036 2*sizeof(icUInt32Number) +
9037 2*sizeof(icXYZNumber) > size)
9038 return false;
9039
9040 if (!pIO) {
9041 return false;
9042 }
9043
9044 if (!pIO->Read32(&sig))
9045 return false;
9046
9047 if (!pIO->Read32(&m_nReserved))
9048 return false;
9049
9050 if (pIO->Read32(&m_XYZIllum.X, 3) != 3)
9051 return false;
9052
9053 if (pIO->Read32(&m_XYZSurround.X, 3) != 3)
9054 return false;
9055
9056 if (!pIO->Read32(&m_illumType))
9057 return false;
9058
9059 return true;
9060}
unsigned long icUInt32Number
Definition icProfileHeader.h:262
icTagTypeSignature
Definition icProfileHeader.h:526
Definition icProfileHeader.h:1428
icInt32Number Read32(void *pBuf32, icInt32Number nNum=1)
Definition IccIO.cpp:143
icUInt32Number m_nReserved
Definition IccTagBasic.h:235

References CIccTagViewingConditions::m_illumType, CIccTag::m_nReserved, CIccTagViewingConditions::m_XYZIllum, CIccTagViewingConditions::m_XYZSurround, CIccIO::Read32(), and icXYZNumber::X.

+ Here is the call graph for this function:

◆ Read() [2/2]

virtual bool CIccTag::Read ( icUInt32Number  size,
CIccIO pIO,
CIccProfile pProfile 
)
inlinevirtualinherited

Function: Read(size, pIO) - Read tag from file. Each derived tag will implement it's own Read() function.

Parameter(s): size - number of bytes in tag including the type signature. pIO - IO object used to read in tag. The IO object should already be initialized to point to the begining of the tag.

Returns true if Read is successful.

Reimplemented in CIccTagEmbeddedProfile.

197{ return Read(size, pIO); }
virtual bool Read(icUInt32Number size, CIccIO *pIO)
Definition IccTagBasic.h:167

References CIccTag::Read().

+ Here is the call graph for this function:

◆ ReadAll()

virtual bool CIccTag::ReadAll ( )
inlinevirtualinherited

Function: ReadAll() - Read All sub data for tag from file. Called by CIccProfile::ReadAll() to read all sub data for tag

Returns true if ReadAll is successful.

Reimplemented in CIccTagEmbeddedProfile.

175{ return true; }

◆ ToXml()

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

Implements CIccTagXml.

1887{
1888 char buf[256];
1889
1890 sprintf(buf, "<IlluminantXYZ X=\"" icXmlFloatFmt "\" Y=\"" icXmlFloatFmt "\" Z=\"" icXmlFloatFmt "\"/>\n",
1892 xml += blanks + buf;
1893
1894 sprintf(buf, "<SurroundXYZ X=\"" icXmlFloatFmt "\" Y=\"" icXmlFloatFmt "\" Z=\"" icXmlFloatFmt "\"/>\n",
1896 xml += blanks + buf;
1897
1898 CIccInfo info;
1899 sprintf(buf, "<IllumType>%s</IllumType>\n", info.GetIlluminantName(m_illumType));
1900 xml += blanks + buf;
1901
1902 return true;
1903}
#define icXmlFloatFmt
Definition IccXmlConfig.h:75

References CIccInfo::GetIlluminantName(), icFtoD(), CIccTagViewingConditions::m_illumType, CIccTagViewingConditions::m_XYZIllum, CIccTagViewingConditions::m_XYZSurround, icXYZNumber::X, icXYZNumber::Y, and icXYZNumber::Z.

+ Here is the call graph for this function:

◆ Validate()

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

Name: CIccTagViewingConditions::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.

9152{
9153 icValidateStatus rv = CIccTag::Validate(sigPath, sReport, pProfile);
9154
9155 CIccInfo Info;
9156 std::string sSigPathName = Info.GetSigPathName(sigPath);
9157
9158 rv = icMaxStatus(rv, Info.CheckData(sReport, m_XYZIllum, "XYZ Illuminant"));
9159 rv = icMaxStatus(rv, Info.CheckData(sReport, m_XYZSurround, "XYZ Surround"));
9160
9161 return rv;
9162}
icValidateStatus
Definition IccDefs.h:119
ICCPROFLIB_API icValidateStatus icMaxStatus(icValidateStatus s1, icValidateStatus s2)
Definition IccUtil.cpp:244
std::string GetSigPathName(std::string sigPath)
Definition IccUtil.cpp:1614
icValidateStatus CheckData(std::string &sReport, const icDateTimeNumber &dateTime, std::string sDesc="")
Definition IccUtil.cpp:2414
virtual icValidateStatus Validate(std::string sigPath, std::string &sReport, const CIccProfile *pProfile=NULL) const
Definition IccTagBasic.cpp:164

References CIccInfo::CheckData(), CIccInfo::GetSigPathName(), icMaxStatus(), CIccTagViewingConditions::m_XYZIllum, CIccTagViewingConditions::m_XYZSurround, and CIccTag::Validate().

+ Here is the call graph for this function:

◆ Write()

bool CIccTagViewingConditions::Write ( CIccIO pIO)
virtualinherited

Name: CIccTagViewingConditions::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.

9077{
9079
9080 if (!pIO)
9081 return false;
9082
9083 if (!pIO->Write32(&sig))
9084 return false;
9085
9086 if (!pIO->Write32(&m_nReserved))
9087 return false;
9088
9089 if (pIO->Write32(&m_XYZIllum.X, 3) !=3)
9090 return false;
9091
9092 if (pIO->Write32(&m_XYZSurround.X, 3) !=3)
9093 return false;
9094
9095 if (!pIO->Write32(&m_illumType))
9096 return false;
9097
9098 return true;
9099}
icInt32Number Write32(void *pBuf32, icInt32Number nNum=1)
Definition IccIO.cpp:152
virtual icTagTypeSignature GetType() const
Definition IccTagBasic.h:1434

References CIccTagViewingConditions::GetType(), CIccTagViewingConditions::m_illumType, CIccTag::m_nReserved, CIccTagViewingConditions::m_XYZIllum, CIccTagViewingConditions::m_XYZSurround, CIccIO::Write32(), and icXYZNumber::X.

+ Here is the call graph for this function:

Field Documentation

◆ m_illumType

◆ m_nReserved

icUInt32Number CIccTag::m_nReserved
inherited

Referenced by CIccTag::CIccTag(), CIccTagMultiProcessElement::CIccTagMultiProcessElement(), CIccTagMultiProcessElement::CIccTagMultiProcessElement(), CIccTagMultiProcessElement::operator=(), CIccProfileXml::ParseTag(), CIccTagXmlStruct::ParseTag(), CIccMpeXmlTintArray::ParseXml(), CIccTagXmlArray::ParseXml(), CIccTagText::Read(), CIccTagUtf8Text::Read(), CIccTagZipUtf8Text::Read(), CIccTagUtf16Text::Read(), CIccTagTextDescription::Read(), CIccTagSignature::Read(), CIccTagNamedColor2::Read(), CIccTagXYZ::Read(), CIccTagChromaticity::Read(), CIccTagCicp::Read(), CIccTagSparseMatrixArray::Read(), CIccTagFixedNum< T, Tsig >::Read(), CIccTagNum< T, Tsig >::Read(), CIccTagFloatNum< T, Tsig >::Read(), CIccTagMeasurement::Read(), CIccTagMultiLocalizedUnicode::Read(), CIccTagData::Read(), CIccTagDateTime::Read(), CIccTagColorantOrder::Read(), CIccTagColorantTable::Read(), CIccTagViewingConditions::Read(), CIccTagProfileSeqDesc::Read(), CIccTagResponseCurveSet16::Read(), CIccTagSpectralDataInfo::Read(), CIccTagSpectralViewingConditions::Read(), CIccTagEmbeddedHeightImage::Read(), CIccTagEmbeddedNormalImage::Read(), CIccTagStruct::Read(), CIccTagArray::Read(), CIccTagDict::Read(), CIccTagCurve::Read(), CIccTagParametricCurve::Read(), CIccTagLutAtoB::Read(), CIccTagLut8::Read(), CIccTagLut16::Read(), CIccTagGamutBoundaryDesc::Read(), CIccTagMultiProcessElement::Read(), CIccTagProfileSequenceId::Read(), CIccTagEmbeddedProfile::Read(), CIccTag::Validate(), CIccTagText::Write(), CIccTagUtf8Text::Write(), CIccTagZipUtf8Text::Write(), CIccTagUtf16Text::Write(), CIccTagTextDescription::Write(), CIccTagSignature::Write(), CIccTagNamedColor2::Write(), CIccTagXYZ::Write(), CIccTagChromaticity::Write(), CIccTagCicp::Write(), CIccTagSparseMatrixArray::Write(), CIccTagFixedNum< T, Tsig >::Write(), CIccTagNum< T, Tsig >::Write(), CIccTagFloatNum< T, Tsig >::Write(), CIccTagMeasurement::Write(), CIccTagMultiLocalizedUnicode::Write(), CIccTagData::Write(), CIccTagDateTime::Write(), CIccTagColorantOrder::Write(), CIccTagColorantTable::Write(), CIccTagViewingConditions::Write(), CIccTagProfileSeqDesc::Write(), CIccTagResponseCurveSet16::Write(), CIccTagSpectralDataInfo::Write(), CIccTagSpectralViewingConditions::Write(), CIccTagEmbeddedHeightImage::Write(), CIccTagEmbeddedNormalImage::Write(), CIccTagStruct::Write(), CIccTagArray::Write(), CIccTagDict::Write(), CIccTagEmbeddedProfile::Write(), CIccTagCurve::Write(), CIccTagParametricCurve::Write(), CIccTagLutAtoB::Write(), CIccTagLut8::Write(), CIccTagLut16::Write(), CIccTagGamutBoundaryDesc::Write(), CIccTagMultiProcessElement::Write(), and CIccTagProfileSequenceId::Write().

◆ m_XYZIllum

◆ m_XYZSurround


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