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

#include <IccTagXml.h>

+ Inheritance diagram for CIccTagXmlMeasurement:
+ Collaboration diagram for CIccTagXmlMeasurement:

Public Member Functions

virtual const char * GetClassName () const
 
virtual IIccExtensionTagGetExtension ()
 
virtual bool ParseXml (xmlNode *pNode, std::string &parseStr)
 
virtual bool ToXml (std::string &xml, std::string blanks="")
 
virtual ~CIccTagXmlMeasurement ()
 
- Public Member Functions inherited from CIccTagMeasurement
 CIccTagMeasurement ()
 Name: CIccTagMeasurement::CIccTagMeasurement.
 
 CIccTagMeasurement (const CIccTagMeasurement &ITM)
 Name: CIccTagMeasurement::CIccTagMeasurement.
 
virtual void Describe (std::string &sDescription, int nVerboseness)
 Name: CIccTagMeasurement::Describe.
 
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 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 Member Functions inherited from CIccTagXml
virtual const char * GetExtClassName () const
 
virtual const char * GetExtDerivedClassName () const
 
virtual ~CIccTagXml (void)
 

Additional Inherited Members

- Static Public Member Functions inherited from CIccTag
static CIccTagCreate (icTagTypeSignature sig)
 Name: CIccTag::Create.
 
- Public Attributes inherited from CIccTagMeasurement
icMeasurement m_Data
 
- Public Attributes inherited from CIccTag
icUInt32Number m_nReserved
 

Detailed Description

Definition at line 340 of file IccTagXml.h.

Constructor & Destructor Documentation

◆ ~CIccTagXmlMeasurement()

virtual CIccTagXmlMeasurement::~CIccTagXmlMeasurement ( )
inlinevirtual

Definition at line 343 of file IccTagXml.h.

343{}

Member Function Documentation

◆ GetClassName()

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

Reimplemented from CIccTagMeasurement.

Definition at line 345 of file IccTagXml.h.

345{return "CIccTagXmlMeasurement"; }

◆ GetExtension()

virtual IIccExtensionTag * CIccTagXmlMeasurement::GetExtension ( )
inlinevirtual

Reimplemented from CIccTag.

Definition at line 347 of file IccTagXml.h.

347{return this; }

◆ ParseXml()

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

Implements CIccTagXml.

Definition at line 1612 of file IccTagXml.cpp.

1613{
1614 memset(&m_Data, 0, sizeof(m_Data));
1615
1616 pNode = icXmlFindNode(pNode, "StandardObserver");
1617 if (pNode) {
1618 m_Data.stdObserver = icGetNamedStandardObserverValue(pNode->children ? (icChar*)pNode->children->content: "");
1619 }
1620
1621
1622 pNode = icXmlFindNode(pNode, "MeasurementBacking");
1623 if (pNode){
1624 xmlAttr *attr;
1625
1626 attr = icXmlFindAttr(pNode, "X");
1627 if (attr) {
1629 }
1630
1631 attr = icXmlFindAttr(pNode, "Y");
1632 if (attr) {
1634 }
1635
1636 attr = icXmlFindAttr(pNode, "Z");
1637 if (attr) {
1639 }
1640 }
1641
1642 pNode = icXmlFindNode(pNode, "Geometry");
1643 if (pNode){
1644 m_Data.geometry = icGeNamedtMeasurementGeometryValue(pNode->children ? (icChar*)pNode->children->content : "");
1645 }
1646
1647 pNode = icXmlFindNode(pNode, "Flare");
1648 if (pNode){
1649 m_Data.flare = icGetNamedMeasurementFlareValue(pNode->children ? (icChar*)pNode->children->content : "");
1650 }
1651
1652 pNode = icXmlFindNode(pNode, "StandardIlluminant");
1653 if (pNode){
1654 m_Data.illuminant = icGetIlluminantValue(pNode->children ? (icChar*)pNode->children->content : "");
1655 }
1656
1657 return true;
1658}
float icFloatNumber
All floating point operations/variables in IccProfLib use the icFloatNumber data type.
Definition IccDefs.h:100
char icChar
Definition IccDefs.h:109
icS15Fixed16Number icDtoF(icFloatNumber num)
Definition IccUtil.cpp:545
icMeasurementGeometry icGeNamedtMeasurementGeometryValue(const icChar *str)
xmlAttr * icXmlFindAttr(xmlNode *pNode, const char *szAttrName)
xmlNode * icXmlFindNode(xmlNode *pNode, const char *szNodeName)
icMeasurementFlare icGetNamedMeasurementFlareValue(const icChar *str)
icIlluminant icGetIlluminantValue(const icChar *str)
icStandardObserver icGetNamedStandardObserverValue(const icChar *str)
const char * icXmlAttrValue(xmlAttr *attr, const char *szDefault)
icMeasurement m_Data
icXYZNumber backing
icMeasurementGeometry geometry
icMeasurementFlare flare
icStandardObserver stdObserver
icIlluminant illuminant
icS15Fixed16Number Y
icS15Fixed16Number Z
icS15Fixed16Number X

References icDtoF(), icGeNamedtMeasurementGeometryValue(), icGetIlluminantValue(), icGetNamedMeasurementFlareValue(), icGetNamedStandardObserverValue(), icXmlAttrValue(), icXmlFindAttr(), and icXmlFindNode().

+ Here is the call graph for this function:

◆ ToXml()

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

Implements CIccTagXml.

Definition at line 1587 of file IccTagXml.cpp.

1588{
1589 char buf[256];
1590
1591 CIccInfo info;
1592
1593 sprintf(buf,"<StandardObserver>%s</StandardObserver>\n",icGetStandardObserverName(m_Data.stdObserver));
1594 xml += blanks + buf;
1595
1596 sprintf(buf, "<MeasurementBacking X=\"" icXmlFloatFmt "\" Y=\"" icXmlFloatFmt "\" Z=\"" icXmlFloatFmt "\"/>\n", icFtoD(m_Data.backing.X),
1598 xml += blanks + buf;
1599
1600 sprintf(buf,"<Geometry>%s</Geometry>\n",info.GetMeasurementGeometryName(m_Data.geometry));
1601 xml += blanks + buf;
1602
1603 sprintf(buf,"<Flare>%s</Flare>\n",info.GetMeasurementFlareName(m_Data.flare));
1604 xml += blanks + buf;
1605
1606 sprintf(buf,"<StandardIlluminant>%s</StandardIlluminant>\n",info.GetIlluminantName(m_Data.illuminant));
1607 xml += blanks + buf;
1608 return true;
1609}
icFloatNumber icFtoD(icS15Fixed16Number num)
Definition IccUtil.cpp:559
const icChar * icGetStandardObserverName(icStandardObserver str)
#define icXmlFloatFmt
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

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

+ Here is the call graph for this function:

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