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

#include <IccMpeXml.h>

+ Inheritance diagram for CIccMpeXmlReflectanceObserver:
+ Collaboration diagram for CIccMpeXmlReflectanceObserver:

Public Member Functions

virtual const char * GetClassName () const
 
virtual IIccExtensionMpeGetExtension ()
 
virtual bool ParseXml (xmlNode *pNode, std::string &parseStr)
 
virtual bool ToXml (std::string &xml, std::string blanks="")
 
virtual ~CIccMpeXmlReflectanceObserver ()
 
- Public Member Functions inherited from CIccMpeReflectanceObserver
virtual bool Begin (icElemInterp nInterp, CIccTagMultiProcessElement *pMPE)
 Name: CIccMpeReflectanceObserver::Begin.
 
 CIccMpeReflectanceObserver ()
 
 CIccMpeReflectanceObserver (const CIccMpeReflectanceObserver &ITPC)
 
virtual icElemTypeSignature GetType () const
 
virtual bool IsLateBindingReflectance () const
 
virtual CIccMpeReflectanceObserverNewCopy () const
 
CIccMpeReflectanceObserveroperator= (const CIccMpeReflectanceObserver &ITPC)
 
virtual ~CIccMpeReflectanceObserver ()
 
- Public Member Functions inherited from CIccMpeSpectralObserver
virtual void Apply (CIccApplyMpe *pApply, icFloatNumber *dstPixel, const icFloatNumber *srcPixel) const
 
 CIccMpeSpectralObserver ()
 Name: CIccMpeSpectralObserver::CIccMpeSpectralObserver.
 
 CIccMpeSpectralObserver (const CIccMpeSpectralObserver &ITPC)
 Name: CIccMpeSpectralObserver::CIccMpeSpectralObserver.
 
virtual void Describe (std::string &sDescription, int nVerboseness)
 Name: CIccMpeSpectralObserver::Describe.
 
const icSpectralRangeGetRange ()
 
icFloatNumberGetWhite ()
 
virtual bool IsLateBinding () const
 
virtual bool Read (icUInt32Number size, CIccIO *pIO)
 Name: CIccMpeSpectralObserver::Read.
 
bool SetSize (icUInt16Number nInputChannels, icUInt16Number nOutputChannels, const icSpectralRange &range)
 Name: CIccMpeSpectralObserver::SetSize.
 
virtual icValidateStatus Validate (std::string sigPath, std::string &sReport, const CIccTagMultiProcessElement *pMPE=NULL, const CIccProfile *pProfile=NULL) const
 Name: CIccMpeSpectralObserver::Validate.
 
virtual bool Write (CIccIO *pIO)
 Name: CIccMpeSpectralObserver::Write.
 
virtual ~CIccMpeSpectralObserver ()
 Name: CIccMpeSpectralObserver::~CIccMpeSpectralObserver.
 
- Public Member Functions inherited from CIccMultiProcessElement
 CIccMultiProcessElement ()
 
virtual icAcsSignature GetBAcsSig ()
 
virtual icAcsSignature GetEAcsSig ()
 
virtual CIccApplyMpeGetNewApply (CIccApplyTagMpe *pApplyTag)
 Name: CIccMultiProcessElement::GetNewApply()
 
virtual bool IsAcs ()
 
virtual bool IsSupported ()
 
virtual icUInt16Number NumInputChannels () const
 
virtual icUInt16Number NumOutputChannels () const
 
virtual ~CIccMultiProcessElement ()
 
- Public Member Functions inherited from CIccMpeXml
virtual const char * GetExtClassName ()
 
virtual ~CIccMpeXml (void)
 

Additional Inherited Members

- Static Public Member Functions inherited from CIccMultiProcessElement
static CIccMultiProcessElementCreate (icElemTypeSignature sig)
 Name: CIccMultiProcessElement::Create.
 
- Public Attributes inherited from CIccMultiProcessElement
icUInt32Number m_nReserved
 
- Protected Member Functions inherited from CIccMpeReflectanceObserver
virtual const char * GetDescribeName () const
 
- Protected Member Functions inherited from CIccMpeSpectralObserver
void copyData (const CIccMpeSpectralObserver &ITPC)
 Name: &CIccMpeSpectralObserver::operator=.
 
- Protected Attributes inherited from CIccMpeSpectralObserver
icUInt16Number m_flags
 
CIccMatrixMathm_pApplyMtx
 
icFloatNumberm_pWhite
 
icSpectralRange m_Range
 
icFloatNumber m_xyzscale [3]
 
icFloatNumber m_xyzw [3]
 
- Protected Attributes inherited from CIccMultiProcessElement
icUInt16Number m_nInputChannels
 
icUInt16Number m_nOutputChannels
 

Detailed Description

Definition at line 408 of file IccMpeXml.h.

Constructor & Destructor Documentation

◆ ~CIccMpeXmlReflectanceObserver()

virtual CIccMpeXmlReflectanceObserver::~CIccMpeXmlReflectanceObserver ( )
inlinevirtual

Definition at line 411 of file IccMpeXml.h.

411{}

Member Function Documentation

◆ GetClassName()

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

Reimplemented from CIccMpeReflectanceObserver.

Definition at line 413 of file IccMpeXml.h.

413{ return "CIccMpeXmlReflectanceObserver"; }

◆ GetExtension()

virtual IIccExtensionMpe * CIccMpeXmlReflectanceObserver::GetExtension ( )
inlinevirtual

Reimplemented from CIccMultiProcessElement.

Definition at line 415 of file IccMpeXml.h.

415{ return this; }

◆ ParseXml()

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

Implements CIccMpeXml.

Definition at line 3483 of file IccMpeXml.cpp.

3484{
3485 icUInt16Number nInputChannels = atoi(icXmlAttrValue(pNode, "InputChannels"));
3486 icUInt16Number nOutputChannels = atoi(icXmlAttrValue(pNode, "OutputChannels"));
3487 m_flags = atoi(icXmlAttrValue(pNode, "Flags"));
3488
3489 if (!nInputChannels || !nOutputChannels) {
3490 parseStr += "Invalid InputChannels or OutputChannels In ReflectanceObserverElement\n";
3491 return false;
3492 }
3493
3494 xmlNode *pData;
3495
3496 pData = icXmlFindNode(pNode->children, "Wavelengths");
3497 if (pData) {
3498 icFloatNumber dStart = (icFloatNumber)atof(icXmlAttrValue(pData, "start"));
3499 icFloatNumber dEnd = (icFloatNumber)atof(icXmlAttrValue(pData, "end"));
3500 icUInt16Number nSteps = atoi(icXmlAttrValue(pData, "steps"));
3501
3502 if (dStart >= dEnd || nSteps != nInputChannels) {
3503 parseStr += "Invalid Spectral Range\n";
3504 return false;
3505 }
3506 m_Range.start = icFtoF16(dStart);
3507 m_Range.end = icFtoF16(dEnd);
3508 m_Range.steps = nSteps;
3509 }
3510
3511 SetSize(nInputChannels, nOutputChannels, m_Range);
3512 if (!m_pWhite) {
3513 parseStr += "Unable to SetSize\n";
3514 return false;
3515 }
3516
3517 pData = icXmlFindNode(pNode->children, "WhiteData");
3518 if (pData) {
3519
3520 if (!CIccFloatArray::ParseArray(m_pWhite, m_Range.steps, pData->children))
3521 return false;
3522 }
3523 else {
3524 parseStr += "Missing White Data";
3525 }
3526
3527 return true;
3528}
float icFloatNumber
All floating point operations/variables in IccProfLib use the icFloatNumber data type.
Definition IccDefs.h:100
icFloat16Number icFtoF16(icFloat32Number num)
Definition IccUtil.cpp:673
xmlNode * icXmlFindNode(xmlNode *pNode, const char *szNodeName)
const char * icXmlAttrValue(xmlAttr *attr, const char *szDefault)
bool SetSize(icUInt16Number nInputChannels, icUInt16Number nOutputChannels, const icSpectralRange &range)
Name: CIccMpeSpectralObserver::SetSize.
static bool ParseArray(T *buf, icUInt32Number nBufSize, xmlNode *pNode)
unsigned short icUInt16Number
icUInt16Number steps
icFloat16Number start
icFloat16Number end

References icFtoF16(), icXmlAttrValue(), icXmlFindNode(), and CIccXmlArrayType< T, Tsig >::ParseArray().

+ Here is the call graph for this function:

◆ ToXml()

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

Implements CIccMpeXml.

Definition at line 3530 of file IccMpeXml.cpp.

3531{
3532 char buf[128];
3533 sprintf(buf, "<ReflectanceObserverElement InputChannels=\"%d\" OutputChannels=\"%d\" Flags=\"%d\"", NumInputChannels(), NumOutputChannels(), m_flags);
3534 xml += blanks + buf;
3535
3536 if (m_nReserved) {
3537 sprintf(buf, " Reserved=\"%u\"", m_nReserved);
3538 xml += buf;
3539 }
3540 xml += ">\n";
3541
3542 sprintf(buf, " <Wavelengths start=\"" icXmlHalfFmt "\" end=\"" icXmlHalfFmt "\" steps=\"%d\"/>\n", icF16toF(m_Range.start), icF16toF(m_Range.end), m_Range.steps);
3543 xml += buf;
3544
3545 int i;
3546
3547 if (m_pWhite) {
3548 xml += blanks + " <WhiteData>\n";
3549
3550 xml += blanks + " ";
3551 for (i=0; i<(int)m_Range.steps; i++) {
3552 sprintf(buf, " " icXmlFloatFmt, m_pWhite[i]);
3553 xml += buf;
3554 }
3555 xml += "\n";
3556
3557 xml += blanks + " </WhiteData>\n";
3558 }
3559
3560 xml += blanks + "</ReflectanceObserverElement>\n";
3561
3562 return true;
3563}
icFloatNumber icF16toF(icFloat16Number num)
Definition IccUtil.cpp:629
#define icXmlHalfFmt
#define icXmlFloatFmt
virtual icUInt16Number NumInputChannels() const
Definition IccTagMPE.h:159
virtual icUInt16Number NumOutputChannels() const
Definition IccTagMPE.h:160
icUInt32Number m_nReserved
Definition IccTagMPE.h:188

References icF16toF(), icXmlFloatFmt, and icXmlHalfFmt.

+ Here is the call graph for this function:

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