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

#include <IccTagXml.h>

+ Inheritance diagram for CIccTagXmlParametricCurve:
+ Collaboration diagram for CIccTagXmlParametricCurve:

Public Member Functions

virtual const char * GetClassName () const
 
virtual IIccExtensionTagGetExtension ()
 
virtual bool ParseXml (xmlNode *pNode, icConvertType nType, std::string &parseStr)
 
virtual bool ParseXml (xmlNode *pNode, std::string &parseStr)
 
virtual bool ToXml (std::string &xml, icConvertType nType, std::string blanks="")
 
virtual bool ToXml (std::string &xml, std::string blanks="")
 
virtual ~CIccTagXmlParametricCurve ()
 
- Public Member Functions inherited from CIccTagParametricCurve
virtual icFloatNumber Apply (icFloatNumber v) const
 Name: CIccTagParametricCurve::Apply.
 
 CIccTagParametricCurve ()
 Name: CIccTagParametricCurve::CIccTagParametricCurve.
 
 CIccTagParametricCurve (const CIccTagParametricCurve &ITPC)
 Name: CIccTagParametricCurve::CIccTagParametricCurve.
 
virtual void Describe (std::string &sDescription, int nVerboseness)
 Name: CIccTagParametricCurve::Describe.
 
virtual void DumpLut (std::string &sDescription, const icChar *szName, icColorSpaceSignature csSig, int nIndex, int nVerboseness)
 Name: CIccTagParametricCurve::DumpLut.
 
icUInt16Number GetFunctionType () const
 
icUInt16Number GetNumParam () const
 
icFloatNumberGetParams () const
 
virtual icTagTypeSignature GetType () const
 Function: GetType()
 
virtual bool IsIdentity ()
 Name: CIccTagParametricCurve::IsIdentity.
 
virtual CIccTagNewCopy () const
 Function: NewCopy(sDescription) Each derived tag will implement it's own NewCopy() function.
 
CIccTagParametricCurveoperator= (const CIccTagParametricCurve &ParamCurveTag)
 Name: CIccTagParametricCurve::operator=.
 
icFloatNumberoperator[] (int index)
 
icFloatNumber Param (int index) const
 
virtual bool Read (icUInt32Number size, CIccIO *pIO)
 Name: CIccTagParametricCurve::Read.
 
bool SetFunctionType (icUInt16Number nFunctionType)
 Name: CIccTagParametricCurve::SetFunctionType.
 
virtual icValidateStatus Validate (std::string sigPath, std::string &sReport, const CIccProfile *pProfile=NULL) const
 Name: CIccTagParametricCurve::Validate.
 
virtual bool Write (CIccIO *pIO)
 Name: CIccTagParametricCurve::Write.
 
virtual ~CIccTagParametricCurve ()
 Name: CIccTagParametricCurve::~CIccTagParametricCurve.
 
- Public Member Functions inherited from CIccCurve
virtual void Begin ()
 
 CIccCurve ()
 
icFloatNumber Find (icFloatNumber v)
 
virtual ~CIccCurve ()
 
- 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 CIccCurveXml
virtual const char * GetExtDerivedClassName () const
 
virtual ~CIccCurveXml ()
 
- Public Member Functions inherited from CIccTagXml
virtual const char * GetExtClassName () 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 CIccTagParametricCurve
icUInt16Number m_nReserved2
 
- Public Attributes inherited from CIccTag
icUInt32Number m_nReserved
 
- Protected Member Functions inherited from CIccCurve
icFloatNumber Find (icFloatNumber v, icFloatNumber p0, icFloatNumber v0, icFloatNumber p1, icFloatNumber v1)
 Name: CIccCurve::Find.
 
- Protected Attributes inherited from CIccTagParametricCurve
icFloatNumberm_dParam
 
icUInt16Number m_nFunctionType
 
icUInt16Number m_nNumParam
 

Detailed Description

Definition at line 513 of file IccTagXml.h.

Constructor & Destructor Documentation

◆ ~CIccTagXmlParametricCurve()

virtual CIccTagXmlParametricCurve::~CIccTagXmlParametricCurve ( )
inlinevirtual

Definition at line 516 of file IccTagXml.h.

516{}

Member Function Documentation

◆ GetClassName()

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

Reimplemented from CIccTagParametricCurve.

Definition at line 518 of file IccTagXml.h.

518{return "CIccTagXmlParametricCurve"; }

◆ GetExtension()

virtual IIccExtensionTag * CIccTagXmlParametricCurve::GetExtension ( )
inlinevirtual

Reimplemented from CIccTag.

Definition at line 520 of file IccTagXml.h.

520{return this; }

◆ ParseXml() [1/2]

bool CIccTagXmlParametricCurve::ParseXml ( xmlNode * pNode,
icConvertType nType,
std::string & parseStr )
virtual

Implements CIccCurveXml.

Definition at line 2987 of file IccTagXml.cpp.

2988{
2989 return ParseXml (pNode, parseStr);
2990}
virtual bool ParseXml(xmlNode *pNode, std::string &parseStr)

◆ ParseXml() [2/2]

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

Implements CIccTagXml.

Definition at line 2992 of file IccTagXml.cpp.

2993{
2994 xmlNode *pCurveNode = icXmlFindNode(pNode->children, "ParametricCurve");
2995
2996 for (pCurveNode = pNode; pCurveNode; pCurveNode=pCurveNode->next) {
2997 if (pCurveNode->type==XML_ELEMENT_NODE) {
2998 if (!icXmlStrCmp(pCurveNode->name, "ParametricCurve")) {
2999
3000 const char *functionType = icXmlAttrValue(pCurveNode, "FunctionType");
3001
3002 if (!functionType)
3003 return false;
3004
3005 if (!SetFunctionType(atoi(functionType))){
3006 return false;
3007 }
3008 CIccFloatArray data;
3009
3010 if (!data.ParseArray(pCurveNode->children)){
3011 return false;
3012 }
3013
3014 if (data.GetSize()!=GetNumParam()){
3015 return false;
3016 }
3017
3019 icFloatNumber *dParams = GetParams();
3020 icFloatNumber *dataBuf = data.GetBuf();
3021 for (j=0; j<data.GetSize(); j++) {
3022 dParams[j] = dataBuf[j];
3023 }
3024
3025 xmlAttr *reserved2 = icXmlFindAttr(pCurveNode, "Reserved");
3026
3027 if (reserved2) {
3028 m_nReserved2 = (icUInt16Number)atoi(icXmlAttrValue(reserved2));
3029 }
3030 return true;
3031 }
3032 }
3033 }
3034 return false;
3035}
float icFloatNumber
All floating point operations/variables in IccProfLib use the icFloatNumber data type.
Definition IccDefs.h:100
xmlAttr * icXmlFindAttr(xmlNode *pNode, const char *szAttrName)
xmlNode * icXmlFindNode(xmlNode *pNode, const char *szNodeName)
const char * icXmlAttrValue(xmlAttr *attr, const char *szDefault)
#define icXmlStrCmp(x, y)
Definition IccUtilXml.h:134
unsigned int icUInt32Number
icUInt16Number m_nReserved2
Definition IccTagLut.h:202
icFloatNumber * GetParams() const
Definition IccTagLut.h:194
bool SetFunctionType(icUInt16Number nFunctionType)
Name: CIccTagParametricCurve::SetFunctionType.
icUInt16Number GetNumParam() const
Definition IccTagLut.h:193
static bool ParseArray(T *buf, icUInt32Number nBufSize, xmlNode *pNode)
icUInt32Number GetSize()
Definition IccUtilXml.h:166
unsigned short icUInt16Number

References CIccXmlArrayType< T, Tsig >::GetBuf(), CIccXmlArrayType< T, Tsig >::GetSize(), icXmlAttrValue(), icXmlFindAttr(), icXmlFindNode(), icXmlStrCmp, and CIccXmlArrayType< T, Tsig >::ParseArray().

+ Here is the call graph for this function:

◆ ToXml() [1/2]

bool CIccTagXmlParametricCurve::ToXml ( std::string & xml,
icConvertType nType,
std::string blanks = "" )
virtual

Implements CIccCurveXml.

Definition at line 2982 of file IccTagXml.cpp.

2983{
2984 return ToXml(xml, blanks);
2985}
virtual bool ToXml(std::string &xml, std::string blanks="")

◆ ToXml() [2/2]

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

Implements CIccTagXml.

Definition at line 2955 of file IccTagXml.cpp.

2956{
2957 char buf[80];
2958 int i;
2959
2960 sprintf(buf, "<ParametricCurve FunctionType=\"%d\"", m_nFunctionType);
2961 xml += blanks + buf;
2962
2963 if (m_nReserved2) {
2964 sprintf(buf, " Reserved=\"%d\"", m_nReserved2);
2965 xml += buf;
2966 }
2967 xml += ">\n";
2968 xml += blanks + " ";
2969
2970 for (i=0; i<(int)m_nNumParam; i++) {
2971 sprintf(buf, " " icXmlFloatFmt, m_dParam[i]);
2972 xml += buf;
2973 }
2974 xml += "\n";
2975
2976 sprintf(buf, "</ParametricCurve>\n");
2977 xml += blanks + buf;
2978
2979 return true;
2980}
#define icXmlFloatFmt
icUInt16Number m_nFunctionType
Definition IccTagLut.h:204
icFloatNumber * m_dParam
Definition IccTagLut.h:208
icUInt16Number m_nNumParam
Definition IccTagLut.h:205

References icXmlFloatFmt.


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