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

#include <IccMpeXml.h>

+ Inheritance diagram for CIccMpeXmlEmissionObserver:
+ Collaboration diagram for CIccMpeXmlEmissionObserver:

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 ~CIccMpeXmlEmissionObserver ()
 
- Public Member Functions inherited from CIccMpeEmissionObserver
virtual bool Begin (icElemInterp nInterp, CIccTagMultiProcessElement *pMPE)
 Name: CIccMpeEmissionObserver::Begin.
 
 CIccMpeEmissionObserver ()
 
 CIccMpeEmissionObserver (const CIccMpeEmissionObserver &ITPC)
 
virtual icElemTypeSignature GetType () const
 
virtual CIccMultiProcessElementNewCopy () const
 
CIccMpeEmissionObserveroperator= (const CIccMpeEmissionObserver &ITPC)
 
virtual ~CIccMpeEmissionObserver ()
 
- 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 IsLateBindingReflectance () const
 
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 CIccMpeEmissionObserver
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 395 of file IccMpeXml.h.

Constructor & Destructor Documentation

◆ ~CIccMpeXmlEmissionObserver()

virtual CIccMpeXmlEmissionObserver::~CIccMpeXmlEmissionObserver ( )
inlinevirtual

Definition at line 398 of file IccMpeXml.h.

398{}

Member Function Documentation

◆ GetClassName()

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

Reimplemented from CIccMpeEmissionObserver.

Definition at line 400 of file IccMpeXml.h.

400{ return "CIccMpeXmlEmissionObserver"; }

◆ GetExtension()

virtual IIccExtensionMpe * CIccMpeXmlEmissionObserver::GetExtension ( )
inlinevirtual

Reimplemented from CIccMultiProcessElement.

Definition at line 402 of file IccMpeXml.h.

402{ return this; }

◆ ParseXml()

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

Implements CIccMpeXml.

Definition at line 3401 of file IccMpeXml.cpp.

3402{
3403 icUInt16Number nInputChannels = atoi(icXmlAttrValue(pNode, "InputChannels"));
3404 icUInt16Number nOutputChannels = atoi(icXmlAttrValue(pNode, "OutputChannels"));
3405 m_flags = atoi(icXmlAttrValue(pNode, "Flags"));
3406
3407 if (!nInputChannels || !nOutputChannels) {
3408 parseStr += "Invalid InputChannels or OutputChannels In EmissionObserverElement\n";
3409 return false;
3410 }
3411
3412 xmlNode *pData;
3413
3414 pData = icXmlFindNode(pNode->children, "Wavelengths");
3415 if (pData) {
3416 icFloatNumber dStart = (icFloatNumber)atof(icXmlAttrValue(pData, "start"));
3417 icFloatNumber dEnd = (icFloatNumber)atof(icXmlAttrValue(pData, "end"));
3418 icUInt16Number nSteps = atoi(icXmlAttrValue(pData, "steps"));
3419
3420 if (dStart >= dEnd || nSteps != nInputChannels) {
3421 parseStr += "Invalid Spectral Range\n";
3422 return false;
3423 }
3424 m_Range.start = icFtoF16(dStart);
3425 m_Range.end = icFtoF16(dEnd);
3426 m_Range.steps = nSteps;
3427 }
3428
3429 SetSize(nInputChannels, nOutputChannels, m_Range);
3430 if (!m_pWhite) {
3431 parseStr += "Unable to SetSize\n";
3432 return false;
3433 }
3434
3435 pData = icXmlFindNode(pNode->children, "WhiteData");
3436 if (pData) {
3437
3438 if (!CIccFloatArray::ParseArray(m_pWhite, m_Range.steps, pData->children))
3439 return false;
3440 }
3441 else {
3442 parseStr += "Missing White Data";
3443 }
3444
3445 return true;
3446}
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 CIccMpeXmlEmissionObserver::ToXml ( std::string & xml,
std::string blanks = "" )
virtual

Implements CIccMpeXml.

Definition at line 3448 of file IccMpeXml.cpp.

3449{
3450 char buf[128];
3451 sprintf(buf, "<EmissionObserverElement InputChannels=\"%d\" OutputChannels=\"%d\" Flags=\"%d\"", NumInputChannels(), NumOutputChannels(), m_flags);
3452 xml += blanks + buf;
3453
3454 if (m_nReserved) {
3455 sprintf(buf, " Reserved=\"%u\"", m_nReserved);
3456 xml += buf;
3457 }
3458 xml += ">\n";
3459
3460 sprintf(buf, " <Wavelengths start=\"" icXmlHalfFmt "\" end=\"" icXmlHalfFmt "\" steps=\"%d\"/>\n", icF16toF(m_Range.start), icF16toF(m_Range.end), m_Range.steps);
3461 xml += buf;
3462
3463 int i;
3464
3465 if (m_pWhite) {
3466 xml += blanks + " <WhiteData>\n";
3467
3468 xml += blanks + " ";
3469 for (i=0; i<(int)m_Range.steps; i++) {
3470 sprintf(buf, " " icXmlFloatFmt, m_pWhite[i]);
3471 xml += buf;
3472 }
3473 xml += "\n";
3474
3475 xml += blanks + " </WhiteData>\n";
3476 }
3477
3478 xml += blanks + "</EmissionObserverElement>\n";
3479
3480 return true;
3481}
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: