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

#include <IccMpeCalc.h>

+ Inheritance diagram for CIccMpeCalculator:
+ Collaboration diagram for CIccMpeCalculator:

Public Member Functions

 CIccMpeCalculator (const CIccMpeCalculator &curveSet)
 
 CIccMpeCalculator (icUInt16Number nInputChannels=0, icUInt16Number nOutputChannels=0)
 
virtual ~CIccMpeCalculator ()
 
virtual void Apply (CIccApplyMpe *pApply, icFloatNumber *pDestPixel, const icFloatNumber *pSrcPixel) const
 
virtual bool Begin (icElemInterp nInterp, CIccTagMultiProcessElement *pMPE)
 
virtual void Describe (std::string &sDescription, int nVerboseness)
 
virtual icAcsSignature GetBAcsSig ()
 
virtual const icCharGetClassName () const
 
virtual icAcsSignature GetEAcsSig ()
 
CIccMultiProcessElementGetElem (icSigCalcOp op, icUInt16Number index)
 
virtual IIccExtensionMpeGetExtension ()
 
virtual CIccApplyMpeGetNewApply (CIccApplyTagMpe *pApplyTag)
 
virtual icElemTypeSignature GetType () const
 
virtual bool IsAcs ()
 
virtual bool IsLateBinding () const
 
virtual bool IsLateBindingReflectance () const
 
virtual bool IsSupported ()
 
virtual CIccMpeCalculatorNewCopy () const
 
virtual icUInt16Number NumInputChannels () const
 
virtual icUInt16Number NumOutputChannels () const
 
CIccMpeCalculatoroperator= (const CIccMpeCalculator &curveSet)
 
virtual bool Read (icUInt32Number size, CIccIO *pIO)
 
void Reset ()
 
icFuncParseStatus SetCalcFunc (const char *szFuncDef, std::string &sReport)
 
icFuncParseStatus SetCalcFunc (icCalculatorFuncPtr newFunc)
 
void SetSize (icUInt16Number nInputChannels, icUInt16Number nOutputChannels)
 
bool SetSubElem (icUInt32Number idx, CIccMultiProcessElement *pElem)
 
virtual icValidateStatus Validate (std::string sigPath, std::string &sReport, const CIccTagMultiProcessElement *pMPE=NULL, const CIccProfile *pProfile=NULL) const
 
virtual bool Write (CIccIO *pIO)
 

Static Public Member Functions

static CIccMultiProcessElementCreate (icElemTypeSignature sig)
 

Data Fields

icUInt32Number m_nReserved
 

Protected Member Functions

bool SetElem (icUInt32Number idx, CIccMultiProcessElement *pElem, icUInt32Number &count, CIccMultiProcessElement ***pArray)
 

Protected Attributes

bool m_bNeedTempReset
 
icCalculatorFuncPtr m_calcFunc
 
icUInt16Number m_nInputChannels
 
icUInt16Number m_nOutputChannels
 
icUInt32Number m_nSubElem
 
icUInt32Number m_nTempChannels
 
IIccCmmEnvVarLookupm_pCmmEnvVarLookup
 
CIccMultiProcessElement ** m_SubElem
 

Detailed Description

Class: CIccMpeCalculator

Purpose: The Calculator process element

Constructor & Destructor Documentation

◆ CIccMpeCalculator() [1/2]

CIccMpeCalculator::CIccMpeCalculator ( icUInt16Number  nInputChannels = 0,
icUInt16Number  nOutputChannels = 0 
)

Name: CIccMpeCalculator::CIccMpeCalculator

Purpose:

Args:

Return:

4203{
4204 m_nReserved = 0;
4205 m_nInputChannels = nInputChannels;
4206 m_nOutputChannels = nOutputChannels;
4207 m_nTempChannels = 0;
4208 m_bNeedTempReset = true;
4209 m_nSubElem = 0;
4210 m_SubElem = NULL;
4211 m_calcFunc = NULL;
4212 m_pCmmEnvVarLookup = NULL;
4213}
icUInt16Number m_nOutputChannels
Definition IccTagMPE.h:192
icUInt16Number m_nInputChannels
Definition IccTagMPE.h:191
icUInt32Number m_nReserved
Definition IccTagMPE.h:188
bool m_bNeedTempReset
Definition IccMpeCalc.h:486
icUInt32Number m_nTempChannels
Definition IccMpeCalc.h:485
icCalculatorFuncPtr m_calcFunc
Definition IccMpeCalc.h:491
IIccCmmEnvVarLookup * m_pCmmEnvVarLookup
Definition IccMpeCalc.h:493
icUInt32Number m_nSubElem
Definition IccMpeCalc.h:488
CIccMultiProcessElement ** m_SubElem
Definition IccMpeCalc.h:489

References m_bNeedTempReset, m_calcFunc, CIccMultiProcessElement::m_nInputChannels, CIccMultiProcessElement::m_nOutputChannels, CIccMultiProcessElement::m_nReserved, m_nSubElem, m_nTempChannels, m_pCmmEnvVarLookup, and m_SubElem.

Referenced by CIccBasicMpeFactory::CreateElement().

+ Here is the caller graph for this function:

◆ CIccMpeCalculator() [2/2]

CIccMpeCalculator::CIccMpeCalculator ( const CIccMpeCalculator channelGen)

Name: CIccMpeCalculator::CIccMpeCalculator

Purpose:

Args:

Return:

4226{
4227 m_nReserved = channelGen.m_nReserved;
4228
4231 m_nTempChannels = channelGen.m_nTempChannels;
4232
4234
4235 m_nSubElem = channelGen.m_nSubElem;
4237
4239
4240 icCalculatorFuncPtr ptr = channelGen.m_calcFunc;
4241
4242 if (ptr)
4243 m_calcFunc = ptr->NewCopy();
4244 else
4245 m_calcFunc = NULL;
4246
4247 if (channelGen.m_nSubElem) {
4249
4251 if (m_SubElem) {
4252 for (i=0; i<m_nSubElem; i++) {
4253 if (channelGen.m_SubElem[i])
4254 m_SubElem[i] = channelGen.m_SubElem[i]->NewCopy();
4255 }
4256 }
4257 else {
4258 m_nSubElem = 0;
4259 m_SubElem = NULL;
4260 }
4261 }
4262 else {
4263 m_nSubElem = 0;
4264 m_SubElem = NULL;
4265 }
4266}
unsigned long icUInt32Number
Definition icProfileHeader.h:262
Definition IccTagMPE.h:146
virtual CIccMultiProcessElement * NewCopy() const =0
Definition IccMpeCalc.h:364
virtual CIccCalculatorFunc * NewCopy() const
Definition IccMpeCalc.h:369

References m_bNeedTempReset, m_calcFunc, CIccMultiProcessElement::m_nInputChannels, CIccMultiProcessElement::m_nOutputChannels, CIccMultiProcessElement::m_nReserved, m_nSubElem, m_nTempChannels, m_pCmmEnvVarLookup, m_SubElem, CIccCalculatorFunc::NewCopy(), and CIccMultiProcessElement::NewCopy().

Referenced by NewCopy().

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

◆ ~CIccMpeCalculator()

CIccMpeCalculator::~CIccMpeCalculator ( )
virtual

Name: CIccMpeCalculator::~CIccMpeCalculator

Purpose:

Args:

Return:

4330{
4331 SetSize(0,0);
4332}
void SetSize(icUInt16Number nInputChannels, icUInt16Number nOutputChannels)
Definition IccMpeCalc.cpp:4344

References SetSize().

+ Here is the call graph for this function:

Member Function Documentation

◆ Apply()

void CIccMpeCalculator::Apply ( CIccApplyMpe pApply,
icFloatNumber pDestPixel,
const icFloatNumber pSrcPixel 
) const
virtual

Name: CIccMpeCalculator::Apply

Purpose:

Args:

Return:

Implements CIccMultiProcessElement.

4783{
4784 CIccApplyMpeCalculator *pApplyCalc = (CIccApplyMpeCalculator*)pApply;
4785 icFloatNumber *pSrcTemp = pApplyCalc->m_temp;
4786 bool rv;
4787
4788 pApplyCalc->m_temp = pSrcTemp;
4789 pApplyCalc->m_input = pSrcPixel;
4790 pApplyCalc->m_output = pDestPixel;
4791
4792 if (m_bNeedTempReset) {
4793 memset(pSrcTemp, 0, m_nTempChannels*sizeof(icFloatNumber));
4794 }
4795
4796 if (g_pDebugger) {
4798 rv = m_calcFunc->Apply(pApplyCalc);
4799 if (!rv)
4800 g_pDebugger->Error("Calc Function Apply Terminated with an error!");
4801
4803 }
4804 else {
4805 rv = m_calcFunc->Apply(pApplyCalc);
4806 }
4807}
static IIccCalcDebugger * g_pDebugger
Definition IccMpeCalc.cpp:154
float icFloatNumber
Definition IccDefs.h:101
virtual bool Apply(CIccApplyMpeCalculator *pApply) const
Definition IccMpeCalc.cpp:3685
Definition IccMpeCalc.h:505
icFloatNumber * m_output
Definition IccMpeCalc.h:533
const icFloatNumber * m_input
Definition IccMpeCalc.h:532
icFloatNumber * m_temp
Definition IccMpeCalc.h:534
virtual void EndApply()=0
virtual void Error(const char *msg)=0
virtual void BeginApply()=0

References CIccCalculatorFunc::Apply(), IIccCalcDebugger::BeginApply(), IIccCalcDebugger::EndApply(), IIccCalcDebugger::Error(), g_pDebugger, m_bNeedTempReset, m_calcFunc, CIccApplyMpeCalculator::m_input, m_nTempChannels, CIccApplyMpeCalculator::m_output, and CIccApplyMpeCalculator::m_temp.

Referenced by CIccSampledCalculatorCurve::Begin().

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

◆ Begin()

bool CIccMpeCalculator::Begin ( icElemInterp  nInterp,
CIccTagMultiProcessElement pMPE 
)
virtual

Name: CIccMpeCalculator::Begin

Purpose:

Args:

Return:

Implements CIccMultiProcessElement.

4688{
4689 if (!m_calcFunc)
4690 return false;
4691
4693
4695
4696 if (m_nTempChannels>65536)
4697 return false;
4698
4699 if (m_nTempChannels) {
4700 icUInt8Number *tempUsage = (icUInt8Number *)calloc(m_nTempChannels, sizeof(icUInt8Number));
4701 if (tempUsage) {
4703 free(tempUsage);
4704 }
4705 else
4706 m_bNeedTempReset = true;
4707 }
4708 else {
4709 m_bNeedTempReset = false;
4710 }
4711
4712 if (!m_calcFunc->Begin(this, pMPE))
4713 return false;
4714
4716 for (n=0; n<m_nSubElem; n++) {
4717 if (m_SubElem[n] && !m_SubElem[n]->Begin(nInterp, pMPE))
4718 return false;
4719 }
4720
4721 return true;
4722}
unsigned char icUInt8Number
Definition icProfileHeader.h:250
IIccCmmEnvVarLookup * GetCmmEnvLookup()
Definition IccTagMPE.h:405
virtual bool Begin(const CIccMpeCalculator *pChannelMux, CIccTagMultiProcessElement *pMPE)
Definition IccMpeCalc.cpp:3462
icUInt32Number GetMaxTemp() const
Definition IccMpeCalc.cpp:3786
bool NeedTempReset(icUInt8Number *tempUsage, icUInt32Number nMaxTemp)
Definition IccMpeCalc.cpp:3810
virtual bool Begin(icElemInterp nInterp, CIccTagMultiProcessElement *pMPE)
Definition IccMpeCalc.cpp:4687

References CIccCalculatorFunc::Begin(), CIccMultiProcessElement::Begin(), CIccTagMultiProcessElement::GetCmmEnvLookup(), CIccCalculatorFunc::GetMaxTemp(), m_bNeedTempReset, m_calcFunc, m_nSubElem, m_nTempChannels, m_pCmmEnvVarLookup, m_SubElem, and CIccCalculatorFunc::NeedTempReset().

Referenced by CIccSampledCalculatorCurve::Begin().

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

◆ Create()

CIccMultiProcessElement * CIccMultiProcessElement::Create ( icElemTypeSignature  sig)
staticinherited

Name: CIccMultiProcessElement::Create

Purpose:

Args:

Return:

132{
134}
static CIccMultiProcessElement * CreateElement(icElemTypeSignature elemTypeSig)
Definition IccMpeFactory.h:213

References CIccMpeCreator::CreateElement().

Referenced by CIccDefaultEncProfileConverter::ConvertFromParams(), CIccSampledCalculatorCurve::Read(), Read(), and CIccTagMultiProcessElement::Read().

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

◆ Describe()

void CIccMpeCalculator::Describe ( std::string &  sDescription,
int  nVerboseness 
)
virtual

Name: CIccMpeCalculator::Describe

Purpose:

Args:

Return:

Implements CIccMultiProcessElement.

4431{
4432 if (m_calcFunc) {
4433 icChar buf[81];
4434
4435 sprintf(buf, "BEGIN_CALC_ELEMENT %u %u\n", m_nInputChannels, m_nOutputChannels);
4436 sDescription += buf;
4437
4438 if (m_nSubElem && m_SubElem) {
4440 for (i=0; i<m_nSubElem; i++) {
4441 sprintf(buf, "BEGIN_SUBCALCELEM %u\n", i);
4442 sDescription += buf;
4443 m_SubElem[i]->Describe(sDescription, nVerboseness);
4444 sprintf(buf, "END_SUBCALCELEM %u\n\n", i);
4445 sDescription += buf;
4446 }
4447 }
4448
4449 if (m_calcFunc) {
4450 sDescription += "BEGIN_CALC_FUNCTION\n";
4451 m_calcFunc->Describe(sDescription, nVerboseness);
4452 sDescription += "END_CALC_FUNCTION\n";
4453 }
4454
4455 sprintf(buf, "END_CALC_ELEMENT\n");
4456 sDescription += buf;
4457
4458 }
4459}
char icChar
Definition IccDefs.h:110
virtual void Describe(std::string &sDescription, int nVerboseness)=0
virtual void Describe(std::string &sDescription, int nVerboseness=0, int nBlanks=0)
Definition IccMpeCalc.cpp:2956

References CIccMultiProcessElement::Describe(), CIccCalculatorFunc::Describe(), m_calcFunc, CIccMultiProcessElement::m_nInputChannels, CIccMultiProcessElement::m_nOutputChannels, m_nSubElem, and m_SubElem.

Referenced by CIccSampledCalculatorCurve::Describe().

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

◆ GetBAcsSig()

virtual icAcsSignature CIccMultiProcessElement::GetBAcsSig ( )
inlinevirtualinherited

Reimplemented in CIccMpeBAcs.

178{ return icSigAcsZero; }
#define icSigAcsZero
Definition icProfileHeader.h:1100

Referenced by CIccMpeAcs::Describe().

+ Here is the caller graph for this function:

◆ GetClassName()

virtual const icChar * CIccMpeCalculator::GetClassName ( ) const
inlinevirtual

Implements CIccMultiProcessElement.

Reimplemented in CIccMpeXmlCalculator.

464{ return "CIccMpeCalculator"; }

Referenced by CIccSampledCalculatorCurveXml::ToXml().

+ Here is the caller graph for this function:

◆ GetEAcsSig()

virtual icAcsSignature CIccMultiProcessElement::GetEAcsSig ( )
inlinevirtualinherited

Reimplemented in CIccMpeEAcs.

179{ return icSigAcsZero; }

◆ GetElem()

CIccMultiProcessElement * CIccMpeCalculator::GetElem ( icSigCalcOp  opsig,
icUInt16Number  index 
)

Name: CIccMpeCalculator::GetSubApply

Purpose:

Args:

Return:

4914{
4915 if (m_SubElem && index<m_nSubElem) {
4916 CIccMultiProcessElement *pMpe = m_SubElem[index];
4917 if (opsig==icSigApplyElemOp)
4918 return pMpe;
4919
4920 if ((opsig==icSigApplyCurvesOp && pMpe->GetType() != icSigCurveSetElemType) ||
4921 (opsig==icSigApplyMatrixOp && pMpe->GetType() != icSigMatrixElemType) ||
4922 (opsig==icSigApplyCLutOp && !(pMpe->GetType() == icSigCLutElemType || pMpe->GetType() == icSigExtCLutElemType)) ||
4923 (opsig==icSigApplyTintOp && pMpe->GetType() != icSigTintArrayElemType) ||
4924 (opsig==icSigApplyToJabOp && pMpe->GetType() != icSigXYZToJabElemType) ||
4925 (opsig==icSigApplyFromJabOp && pMpe->GetType() != icSigJabToXYZElemType) ||
4926 (opsig==icSigApplyCalcOp && pMpe->GetType() != icSigCalculatorElemType))
4927 return NULL;
4928
4929 return pMpe;
4930 }
4931
4932 return NULL;
4933}
@ icSigCurveSetElemType
Definition icProfileHeader.h:643
@ icSigCLutElemType
Definition icProfileHeader.h:645
@ icSigExtCLutElemType
Definition icProfileHeader.h:650
@ icSigTintArrayElemType
Definition icProfileHeader.h:654
@ icSigXYZToJabElemType
Definition icProfileHeader.h:651
@ icSigJabToXYZElemType
Definition icProfileHeader.h:652
@ icSigMatrixElemType
Definition icProfileHeader.h:644
@ icSigCalculatorElemType
Definition icProfileHeader.h:649
@ icSigApplyFromJabOp
Definition IccMpeCalc.h:134
@ icSigApplyCLutOp
Definition IccMpeCalc.h:131
@ icSigApplyCurvesOp
Definition IccMpeCalc.h:129
@ icSigApplyElemOp
Definition IccMpeCalc.h:136
@ icSigApplyToJabOp
Definition IccMpeCalc.h:133
@ icSigApplyTintOp
Definition IccMpeCalc.h:132
@ icSigApplyCalcOp
Definition IccMpeCalc.h:135
@ icSigApplyMatrixOp
Definition IccMpeCalc.h:130
virtual icElemTypeSignature GetType() const =0

References CIccMultiProcessElement::GetType(), icSigApplyCalcOp, icSigApplyCLutOp, icSigApplyCurvesOp, icSigApplyElemOp, icSigApplyFromJabOp, icSigApplyMatrixOp, icSigApplyTintOp, icSigApplyToJabOp, icSigCalculatorElemType, icSigCLutElemType, icSigCurveSetElemType, icSigExtCLutElemType, icSigJabToXYZElemType, icSigMatrixElemType, icSigTintArrayElemType, icSigXYZToJabElemType, m_nSubElem, and m_SubElem.

Referenced by SIccCalcOp::ArgsPushed(), SIccCalcOp::ArgsUsed(), and SIccCalcOp::IsValidOp().

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

◆ GetExtension()

◆ GetNewApply()

CIccApplyMpe * CIccMpeCalculator::GetNewApply ( CIccApplyTagMpe pApplyTag)
virtual

Name: CIccMpeCalculator::Begin

Purpose:

Args:

Return:

Reimplemented from CIccMultiProcessElement.

4735{
4736 CIccApplyTagMpe *pApplyTagEx = (CIccApplyTagMpe*)pApplyTag;
4737
4739
4740 if (!pApply)
4741 return NULL;
4742
4743 if (m_nTempChannels) {
4744 pApply->m_temp = (icFloatNumber*)malloc(m_nTempChannels*sizeof(icFloatNumber));
4745 }
4746 pApply->m_stack = new CIccFloatVector;
4747 pApply->m_scratch = new CIccFloatVector;
4748 pApply->m_scratch->resize(50);
4750
4752
4753 pApply->m_nSubElem = m_nSubElem;
4754 if(m_nSubElem) {
4755 pApply->m_SubElem = (CIccSubCalcApply **)calloc(m_nSubElem, sizeof(CIccSubCalcApply*));
4756
4757 if (m_SubElem) {
4758 for (i=0; i<m_nSubElem; i++) {
4759 if (m_SubElem[i]) {
4760 pApply->m_SubElem[i] = new CIccSubCalcApply(m_SubElem[i]->GetNewApply(pApplyTag));
4761 }
4762 }
4763 }
4764 }
4765 else {
4766 m_SubElem=NULL;
4767 }
4768 return pApply;
4769}
std::vector< icFloatNumber > CIccFloatVector
Definition IccMpeCalc.h:263
Definition IccTagMPE.h:321
Definition IccMpeCalc.h:424
virtual CIccApplyMpe * GetNewApply(CIccApplyTagMpe *pApplyTag)
Definition IccMpeCalc.cpp:4734
icUInt32Number m_nSubElem
Definition IccMpeCalc.h:537
CIccSubCalcApply ** m_SubElem
Definition IccMpeCalc.h:538
CIccFloatVector * m_stack
Definition IccMpeCalc.h:528
CIccFloatVector * m_scratch
Definition IccMpeCalc.h:529
IIccCmmEnvVarLookup * m_pCmmEnvVarLookup
Definition IccMpeCalc.h:540

References CIccApplyMpeCalculator::CIccApplyMpeCalculator(), CIccSubCalcApply::CIccSubCalcApply(), CIccMultiProcessElement::GetNewApply(), m_nSubElem, CIccApplyMpeCalculator::m_nSubElem, m_nTempChannels, m_pCmmEnvVarLookup, CIccApplyMpeCalculator::m_pCmmEnvVarLookup, CIccApplyMpeCalculator::m_scratch, CIccApplyMpeCalculator::m_stack, m_SubElem, CIccApplyMpeCalculator::m_SubElem, and CIccApplyMpeCalculator::m_temp.

Referenced by CIccSampledCalculatorCurve::Begin().

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

◆ GetType()

virtual icElemTypeSignature CIccMpeCalculator::GetType ( ) const
inlinevirtual

Implements CIccMultiProcessElement.

463{ return icSigCalculatorElemType; }

References icSigCalculatorElemType.

Referenced by Validate(), and Write().

+ Here is the caller graph for this function:

◆ IsAcs()

virtual bool CIccMultiProcessElement::IsAcs ( )
inlinevirtualinherited

Reimplemented in CIccMpeAcs.

177{ return false; }

Referenced by CIccTagMultiProcessElement::Apply().

+ Here is the caller graph for this function:

◆ IsLateBinding()

bool CIccMpeCalculator::IsLateBinding ( ) const
virtual

Name: CIccMpeCalculator::IsLateBinding

Purpose:

Args:

Return:

Reimplemented from CIccMultiProcessElement.

4865{
4867
4868 if (m_SubElem) {
4869 for (i=0; i<m_nSubElem; i++) {
4870 if (m_SubElem[i] && m_SubElem[i]->IsLateBinding())
4871 return true;
4872 }
4873 }
4874
4875 return false;
4876}
virtual bool IsLateBinding() const
Definition IccMpeCalc.cpp:4864

References CIccMultiProcessElement::IsLateBinding(), m_nSubElem, and m_SubElem.

+ Here is the call graph for this function:

◆ IsLateBindingReflectance()

bool CIccMpeCalculator::IsLateBindingReflectance ( ) const
virtual

Name: CIccMpeCalculator::IsLateBindingReflectance

Purpose:

Args:

Return:

Reimplemented from CIccMultiProcessElement.

4889{
4891
4892 if (m_SubElem) {
4893 for (i=0; i<m_nSubElem; i++) {
4895 return true;
4896 }
4897 }
4898
4899 return false;
4900}
virtual bool IsLateBindingReflectance() const
Definition IccMpeCalc.cpp:4888

References CIccMultiProcessElement::IsLateBindingReflectance(), m_nSubElem, and m_SubElem.

+ Here is the call graph for this function:

◆ IsSupported()

virtual bool CIccMultiProcessElement::IsSupported ( )
inlinevirtualinherited

Reimplemented in CIccMpeUnknown.

162{ return true; }

Referenced by CIccTagMultiProcessElement::IsSupported().

+ Here is the caller graph for this function:

◆ NewCopy()

virtual CIccMpeCalculator * CIccMpeCalculator::NewCopy ( ) const
inlinevirtual

Implements CIccMultiProcessElement.

452{ return new CIccMpeCalculator(*this);}
Definition IccMpeCalc.h:447

References CIccMpeCalculator().

Referenced by CIccSampledCalculatorCurve::CIccSampledCalculatorCurve(), and CIccSampledCalculatorCurve::operator=().

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

◆ NumInputChannels()

◆ NumOutputChannels()

◆ operator=()

CIccMpeCalculator & CIccMpeCalculator::operator= ( const CIccMpeCalculator channelGen)

Name: &CIccMpeCalculator::operator=

Purpose:

Args:

Return:

4279{
4280 m_nReserved = channelGen.m_nReserved;
4281
4282 SetSize(0,0);
4283
4286
4288
4289 icCalculatorFuncPtr ptr = channelGen.m_calcFunc;
4290
4291 if (ptr)
4292 m_calcFunc = ptr->NewCopy();
4293 else
4294 m_calcFunc = NULL;
4295
4296 if (channelGen.m_nSubElem) {
4298
4300 if (m_SubElem) {
4301 for (i=0; i<m_nSubElem; i++) {
4302 if (channelGen.m_SubElem[i])
4303 m_SubElem[i] = channelGen.m_SubElem[i]->NewCopy();
4304 }
4305 }
4306 else {
4307 m_nSubElem = 0;
4308 m_SubElem = NULL;
4309 }
4310 }
4311 else {
4312 m_nSubElem = 0;
4313 m_SubElem = NULL;
4314 }
4315
4316 return *this;
4317}

References m_calcFunc, CIccMultiProcessElement::m_nInputChannels, CIccMultiProcessElement::m_nOutputChannels, CIccMultiProcessElement::m_nReserved, m_nSubElem, m_pCmmEnvVarLookup, m_SubElem, CIccCalculatorFunc::NewCopy(), CIccMultiProcessElement::NewCopy(), and SetSize().

+ Here is the call graph for this function:

◆ Read()

bool CIccMpeCalculator::Read ( icUInt32Number  size,
CIccIO pIO 
)
virtual

Name: CIccMpeCalculator::Read

Purpose:

Args:

Return:

Implements CIccMultiProcessElement.

4475{
4477
4478 icUInt32Number startPos = pIO->Tell();
4479
4480 icUInt32Number headerSize = sizeof(icTagTypeSignature) +
4481 sizeof(icUInt32Number) +
4482 sizeof(icUInt16Number) +
4483 sizeof(icUInt16Number) +
4484 sizeof(icUInt16Number) +
4485 sizeof(icUInt16Number) +
4486 sizeof(icUInt16Number) +
4487 sizeof(icUInt16Number);
4488
4489 if (headerSize > size)
4490 return false;
4491
4492 if (!pIO) {
4493 return false;
4494 }
4495
4496 icUInt16Number nInputChannels, nOutputChannels;
4497
4498 if (!pIO->Read32(&sig))
4499 return false;
4500
4501 if (!pIO->Read32(&m_nReserved))
4502 return false;
4503
4504 if (!pIO->Read16(&nInputChannels))
4505 return false;
4506
4507 if (!pIO->Read16(&nOutputChannels))
4508 return false;
4509
4510 SetSize(nInputChannels, nOutputChannels);
4511
4512 icUInt32Number nSubElem;
4513
4514 if (!pIO->Read32(&nSubElem))
4515 return false;
4516
4517 icUInt32Number nPos = nSubElem + 1;
4518
4519 if (headerSize + (icUInt64Number)nPos*sizeof(icPositionNumber) > size) {
4520 return false;
4521 }
4522
4523 icPositionNumber *pos, *posvals = (icPositionNumber*)malloc(nPos*sizeof(icPositionNumber));
4524 if (!posvals) {
4525 return false;
4526 }
4527
4528 icUInt32Number n = nPos * (sizeof(icPositionNumber)/sizeof(icUInt32Number));
4529 if (pIO->Read32(posvals, n)!=n) {
4530 free(posvals);
4531 return false;
4532 }
4533
4534 pos = &posvals[1];
4535 if (nSubElem) {
4536 icElemTypeSignature elemSig;
4537
4538 SetSubElem(nSubElem-1, NULL); //Initialize array
4539
4540 for (n=0; n<nSubElem; n++) {
4541 if (pos->offset + pos->size > size) {
4542 free(posvals);
4543 return false;
4544 }
4545 pIO->Seek(startPos + pos->offset, icSeekSet);
4546
4547 if (!pIO->Read32(&elemSig)) {
4548 free(posvals);
4549 return false;
4550 }
4551
4553 if (!pElem) {
4554 free(posvals);
4555 return false;
4556 }
4557
4558 pIO->Seek(startPos + pos->offset, icSeekSet);
4559 if (!pElem->Read(pos->size, pIO)) {
4560 free(posvals);
4561 return false;
4562 }
4564 pos++;
4565 }
4566 }
4567
4568 m_calcFunc = new CIccCalculatorFunc(this);
4569 pos = posvals;
4570
4571 if (!m_calcFunc || pos->offset + pos->size > size) {
4572 free(posvals);
4573 return false;
4574 }
4575
4576 pIO->Seek(startPos + pos->offset, icSeekSet);
4577
4578 if (!m_calcFunc->Read(pos->size, pIO)) {
4579 return false;
4580 }
4581 free(posvals);
4582
4583 pIO->Seek(startPos + size, icSeekSet);
4584
4585 return true;
4586}
unsigned short icUInt16Number
Definition icProfileHeader.h:256
icElemTypeSignature
Definition icProfileHeader.h:641
icUInt32Number offset
Definition icProfileHeader.h:1461
icTagTypeSignature
Definition icProfileHeader.h:526
icUInt32Number icUInt64Number[2]
Definition icProfileHeader.h:268
icUInt32Number size
Definition icProfileHeader.h:1462
Definition icProfileHeader.h:1460
@ icSeekSet
Definition IccIO.h:83
icInt32Number Read16(void *pBuf16, icInt32Number nNum=1)
Definition IccIO.cpp:114
virtual icInt32Number Tell()
Definition IccIO.h:133
virtual icInt32Number Seek(icInt32Number nOffset, icSeekVal pos)
Definition IccIO.h:132
icInt32Number Read32(void *pBuf32, icInt32Number nNum=1)
Definition IccIO.cpp:143
virtual bool Read(icUInt32Number size, CIccIO *pIO)=0
static CIccMultiProcessElement * Create(icElemTypeSignature sig)
Definition IccTagMPE.cpp:131
virtual bool Read(icUInt32Number size, CIccIO *pIO)
Definition IccMpeCalc.cpp:3335
bool SetSubElem(icUInt32Number idx, CIccMultiProcessElement *pElem)
Definition IccMpeCalc.h:461

References CIccCalculatorFunc::CIccCalculatorFunc(), CIccMultiProcessElement::Create(), icSeekSet, m_calcFunc, CIccMultiProcessElement::m_nReserved, icPositionNumber::offset, CIccCalculatorFunc::Read(), CIccMultiProcessElement::Read(), CIccIO::Read16(), CIccIO::Read32(), CIccIO::Seek(), SetSize(), SetSubElem(), icPositionNumber::size, and CIccIO::Tell().

Referenced by CIccSampledCalculatorCurve::Read().

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

◆ Reset()

void CIccMpeCalculator::Reset ( )
inline
455{ SetSize(0,0); }

References SetSize().

+ Here is the call graph for this function:

◆ SetCalcFunc() [1/2]

icFuncParseStatus CIccMpeCalculator::SetCalcFunc ( const char *  szFuncDef,
std::string &  sReport 
)

Name: CIccMpeCalculator::SetCalcFunc

Purpose:

Args:

Return:

4397{
4398
4399 if (m_calcFunc) {
4400 delete m_calcFunc;
4401 m_calcFunc = NULL;
4402 }
4403
4404 CIccCalculatorFunc *pFunc = new CIccCalculatorFunc(this);
4405 icFuncParseStatus rv = pFunc->SetFunction(szFuncDef, sReport);
4406
4407 if (rv!=icFuncParseNoError) {
4408 delete pFunc;
4409 m_calcFunc = NULL;
4410
4411 return rv;
4412 }
4413
4414 m_calcFunc = pFunc;
4415
4416 return rv;
4417}
icFuncParseStatus
Definition IccMpeCalc.h:308
@ icFuncParseNoError
Definition IccMpeCalc.h:309
icFuncParseStatus SetFunction(const char *szFuncDef, std::string &sReport)
Definition IccMpeCalc.cpp:3276

References CIccCalculatorFunc::CIccCalculatorFunc(), icFuncParseNoError, m_calcFunc, and CIccCalculatorFunc::SetFunction().

Referenced by CIccMpeXmlCalculator::ParseXml().

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

◆ SetCalcFunc() [2/2]

icFuncParseStatus CIccMpeCalculator::SetCalcFunc ( icCalculatorFuncPtr  newChannelFunc)

Name: CIccMpeCalculator::SetCalcFunc

Purpose:

Args:

Return:

4377{
4378 if (m_calcFunc) {
4379 delete m_calcFunc;
4380 }
4381 m_calcFunc = newChannelFunc;
4382
4383 return icFuncParseNoError;
4384}

References icFuncParseNoError, and m_calcFunc.

◆ SetElem()

bool CIccMpeCalculator::SetElem ( icUInt32Number  idx,
CIccMultiProcessElement pElem,
icUInt32Number count,
CIccMultiProcessElement ***  pArray 
)
protected

Name: CIccMpeCalculator::GetSubApply

Purpose:

Args:

Return:

4947{
4948 bool rv = true;
4949
4950 if (idx + 1 > count) {
4951 if (*pArray) {
4952 *pArray = (CIccMultiProcessElement**)icRealloc(*pArray, (idx + 1) * sizeof(CIccMultiProcessElement*));
4953
4954 if (!(*pArray))
4955 return false;
4956
4958 for (i = count; i <= idx; i++) {
4959 (*pArray)[i] = NULL;
4960 }
4961 }
4962 else {
4963 *pArray = (CIccMultiProcessElement**)calloc(idx + 1, sizeof(CIccMultiProcessElement*));
4964
4965 if (!(*pArray))
4966 return false;
4967 }
4968 count = idx + 1;
4969 }
4970 else if (!(*pArray))
4971 return false;
4972
4973 if ((*pArray)[idx]) {
4974 delete (*pArray)[idx];
4975 rv = false;
4976 }
4977
4978 (*pArray)[idx] = pElem;
4979
4980 return rv;
4981}
ICCPROFLIB_API void * icRealloc(void *ptr, size_t size)
Definition IccUtil.cpp:111

References icRealloc().

Referenced by SetSubElem().

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

◆ SetSize()

void CIccMpeCalculator::SetSize ( icUInt16Number  nInputChannels,
icUInt16Number  nOutputChannels 
)

Name: CIccMpeCalculator::SetSize

Purpose:

Args:

Return:

4345{
4346 if (m_calcFunc) {
4347 delete m_calcFunc;
4348 m_calcFunc = NULL;
4349 }
4351
4352 if (m_SubElem) {
4353 for (i=0; i<m_nSubElem; i++) {
4354 if (m_SubElem[i])
4355 delete m_SubElem[i];
4356 }
4357 free(m_SubElem);
4358 m_SubElem = NULL;
4359 m_nSubElem = 0;
4360 }
4361
4362 m_nInputChannels = nInputChannels;
4363 m_nOutputChannels = nOutputChannels;
4364}

References m_calcFunc, CIccMultiProcessElement::m_nInputChannels, CIccMultiProcessElement::m_nOutputChannels, m_nSubElem, and m_SubElem.

Referenced by ~CIccMpeCalculator(), operator=(), CIccMpeXmlCalculator::ParseXml(), Read(), and Reset().

+ Here is the caller graph for this function:

◆ SetSubElem()

bool CIccMpeCalculator::SetSubElem ( icUInt32Number  idx,
CIccMultiProcessElement pElem 
)
inline
461{ return SetElem(idx, pElem, m_nSubElem, &m_SubElem); }
bool SetElem(icUInt32Number idx, CIccMultiProcessElement *pElem, icUInt32Number &count, CIccMultiProcessElement ***pArray)
Definition IccMpeCalc.cpp:4946

References m_nSubElem, m_SubElem, and SetElem().

Referenced by CIccMpeXmlCalculator::ParseXml(), and Read().

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

◆ Validate()

icValidateStatus CIccMpeCalculator::Validate ( std::string  sigPath,
std::string &  sReport,
const CIccTagMultiProcessElement pMPE = NULL,
const CIccProfile pProfile = NULL 
) const
virtual

Name: CIccMpeCalculator::Validate

Purpose:

Args:

Return:

Implements CIccMultiProcessElement.

4820{
4821 std::string mpeSigPath = sigPath + icGetSigPath(GetType());
4822 icValidateStatus rv = CIccMultiProcessElement::Validate(sigPath, sReport, pMPE, pProfile);
4823
4825
4826 if (m_SubElem) {
4827 for (i=0; i<m_nSubElem; i++) {
4828 if (m_SubElem[i])
4829 rv = icMaxStatus(rv, m_SubElem[i]->Validate(mpeSigPath, sReport, pMPE, pProfile));
4830 }
4831 }
4832
4833 bool empty=false;
4834 if (m_calcFunc) {
4835 rv = icMaxStatus(rv, m_calcFunc->Validate(mpeSigPath, sReport, this, pProfile));
4836 }
4837 else
4838 empty = true;
4839
4840 if (empty) {
4841 CIccInfo Info;
4842 std::string sSigPathName = Info.GetSigPathName(sigPath);
4843
4844 sReport += icMsgValidateCriticalError;
4845 sReport += sSigPathName;
4846 sReport += " - Has an Empty Calculator Functions!\n";
4848 }
4849
4850 return rv;
4851}
icValidateStatus
Definition IccDefs.h:119
@ icValidateCriticalError
Definition IccDefs.h:123
ICCPROFLIB_API std::string icGetSigPath(icUInt32Number sig)
Definition IccUtil.cpp:1191
ICCPROFLIB_API const char * icMsgValidateCriticalError
Definition IccUtil.cpp:92
ICCPROFLIB_API icValidateStatus icMaxStatus(icValidateStatus s1, icValidateStatus s2)
Definition IccUtil.cpp:244
Definition IccUtil.h:303
std::string GetSigPathName(std::string sigPath)
Definition IccUtil.cpp:1614
virtual icValidateStatus Validate(std::string sigPath, std::string &sReport, const CIccTagMultiProcessElement *pMPE=NULL, const CIccProfile *pProfile=NULL) const =0
Definition IccTagMPE.cpp:454
virtual icValidateStatus Validate(std::string sigPath, std::string &sReport, const CIccMpeCalculator *pChannelCalc=NULL, const CIccProfile *pProfile=NULL) const
Definition IccMpeCalc.cpp:3712
virtual icElemTypeSignature GetType() const
Definition IccMpeCalc.h:463
virtual icValidateStatus Validate(std::string sigPath, std::string &sReport, const CIccTagMultiProcessElement *pMPE=NULL, const CIccProfile *pProfile=NULL) const
Definition IccMpeCalc.cpp:4819

References CIccInfo::GetSigPathName(), GetType(), icGetSigPath(), icMaxStatus(), icMsgValidateCriticalError, icValidateCriticalError, m_calcFunc, m_nSubElem, m_SubElem, CIccCalculatorFunc::Validate(), and CIccMultiProcessElement::Validate().

Referenced by CIccSampledCalculatorCurve::Validate().

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

◆ Write()

bool CIccMpeCalculator::Write ( CIccIO pIO)
virtual

Name: CIccMpeCalculator::Write

Purpose:

Args:

Return:

Implements CIccMultiProcessElement.

4599{
4601
4602 if (!pIO)
4603 return false;
4604
4605 icUInt32Number elemStart = pIO->Tell();
4606
4607 if (!pIO->Write32(&sig))
4608 return false;
4609
4610 if (!pIO->Write32(&m_nReserved))
4611 return false;
4612
4613 if (!pIO->Write16(&m_nInputChannels))
4614 return false;
4615
4616 if (!pIO->Write16(&m_nOutputChannels))
4617 return false;
4618
4619 if (!pIO->Write32(&m_nSubElem))
4620 return false;
4621
4622 icUInt32Number nPos = m_nSubElem + 1;
4623
4624 icPositionNumber *pos, *posvals = (icPositionNumber*)calloc(nPos, sizeof(icPositionNumber));
4625 if (!posvals) {
4626 return false;
4627 }
4628 icUInt32Number nPositionStart = pIO->Tell();
4629
4630 icUInt32Number n, np = nPos * (sizeof(icPositionNumber)/sizeof(icUInt32Number));
4631 if (pIO->Write32(posvals, np)!=np) {
4632 free(posvals);
4633 return false;
4634 }
4635
4636 if (m_calcFunc) {
4637 posvals[0].offset = pIO->Tell()-elemStart;
4638 if (!m_calcFunc->Write(pIO)) {
4639 free(posvals);
4640 return false;
4641 }
4642 posvals[0].size = pIO->Tell()-elemStart - posvals[nPos-1].offset;
4643 pIO->Align32();
4644 }
4645
4646 pos = &posvals[1];
4647
4648 if (m_nSubElem) {
4649 for(n=0; n<m_nSubElem; n++) {
4650 if (m_SubElem[n]) {
4651 pos->offset = pIO->Tell()-elemStart;
4652 if (!m_SubElem[n]->Write(pIO)) {
4653 free(posvals);
4654 return false;
4655 }
4656 pos->size = pIO->Tell()-elemStart - pos->offset;
4657 pIO->Align32();
4658 }
4659 pos++;
4660 }
4661 }
4662 icUInt32Number endPos = pIO->Tell();
4663
4664 pIO->Seek(nPositionStart, icSeekSet);
4665
4666 if (pIO->Write32(posvals, np)!=np) {
4667 free(posvals);
4668 return false;
4669 }
4670 free(posvals);
4671
4672 pIO->Seek(endPos, icSeekSet);
4673
4674 return true;
4675}
icInt32Number Write16(void *pBuf16, icInt32Number nNum=1)
Definition IccIO.cpp:122
bool Align32()
Write operation to make sure that filelength is evenly divisible by 4.
Definition IccIO.cpp:341
icInt32Number Write32(void *pBuf32, icInt32Number nNum=1)
Definition IccIO.cpp:152
virtual bool Write(CIccIO *pIO)
Definition IccMpeCalc.cpp:3399
virtual bool Write(CIccIO *pIO)
Definition IccMpeCalc.cpp:4598

References CIccIO::Align32(), GetType(), icSeekSet, m_calcFunc, CIccMultiProcessElement::m_nInputChannels, CIccMultiProcessElement::m_nOutputChannels, CIccMultiProcessElement::m_nReserved, m_nSubElem, m_SubElem, icPositionNumber::offset, CIccIO::Seek(), icPositionNumber::size, CIccIO::Tell(), CIccCalculatorFunc::Write(), CIccMultiProcessElement::Write(), CIccIO::Write16(), and CIccIO::Write32().

Referenced by CIccSampledCalculatorCurve::Write().

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

Field Documentation

◆ m_bNeedTempReset

bool CIccMpeCalculator::m_bNeedTempReset
protected

◆ m_calcFunc

◆ m_nInputChannels

icUInt16Number CIccMultiProcessElement::m_nInputChannels
protectedinherited

Referenced by CIccMpeBAcs::CIccMpeBAcs(), CIccMpeBAcs::CIccMpeBAcs(), CIccMpeCalculator(), CIccMpeCalculator(), CIccMpeCAM::CIccMpeCAM(), CIccMpeCLUT::CIccMpeCLUT(), CIccMpeCLUT::CIccMpeCLUT(), CIccMpeCurveSet::CIccMpeCurveSet(), CIccMpeCurveSet::CIccMpeCurveSet(), CIccMpeEAcs::CIccMpeEAcs(), CIccMpeEAcs::CIccMpeEAcs(), CIccMpeExtCLUT::CIccMpeExtCLUT(), CIccMpeMatrix::CIccMpeMatrix(), CIccMpeMatrix::CIccMpeMatrix(), CIccMpeSpectralCLUT::CIccMpeSpectralCLUT(), CIccMpeSpectralCLUT::CIccMpeSpectralCLUT(), CIccMpeSpectralMatrix::CIccMpeSpectralMatrix(), CIccMpeSpectralMatrix::CIccMpeSpectralMatrix(), CIccMpeSpectralObserver::CIccMpeSpectralObserver(), CIccMpeSpectralObserver::CIccMpeSpectralObserver(), CIccMpeTintArray::CIccMpeTintArray(), CIccMpeTintArray::CIccMpeTintArray(), CIccMpeToneMap::CIccMpeToneMap(), CIccMpeToneMap::CIccMpeToneMap(), CIccMultiProcessElement::CIccMultiProcessElement(), CIccMpeAcs::Apply(), CIccMpeCurveSet::Apply(), CIccMpeMatrix::Apply(), CIccMpeAcs::Begin(), CIccMpeCurveSet::Begin(), CIccMpeMatrix::Begin(), CIccMpeCLUT::Begin(), CIccMpeEmissionMatrix::Begin(), CIccMpeInvEmissionMatrix::Begin(), CIccMpeEmissionCLUT::Begin(), CIccMpeReflectanceCLUT::Begin(), CIccMpeEmissionObserver::Begin(), CIccMpeReflectanceObserver::Begin(), CIccMpeSpectralCLUT::copyData(), CIccMpeSpectralMatrix::copyData(), CIccMpeSpectralObserver::copyData(), CIccMpeCurveSet::Describe(), CIccMpeMatrix::Describe(), Describe(), CIccMpeSpectralMatrix::Describe(), CIccMpeSpectralObserver::Describe(), CIccMpeXmlCalculator::Flatten(), CIccMultiProcessElement::NumInputChannels(), CIccMpeEmissionMatrix::numVectors(), CIccMpeBAcs::operator=(), operator=(), CIccMpeCLUT::operator=(), CIccMpeCurveSet::operator=(), CIccMpeEAcs::operator=(), CIccMpeMatrix::operator=(), CIccMpeTintArray::operator=(), CIccMpeToneMap::operator=(), CIccMpeXmlTintArray::ParseXml(), CIccMpeXmlToneMap::ParseXml(), CIccMpeXmlMatrix::ParseXml(), CIccMpeXmlCLUT::ParseXml(), CIccMpeXmlExtCLUT::ParseXml(), CIccMpeXmlBAcs::ParseXml(), CIccMpeXmlEAcs::ParseXml(), CIccMpeXmlJabToXYZ::ParseXml(), CIccMpeXmlXYZToJab::ParseXml(), CIccMpeXmlCalculator::ParseXml(), CIccMpeXmlEmissionCLUT::ParseXml(), CIccMpeXmlReflectanceCLUT::ParseXml(), CIccMpeAcs::Read(), CIccMpeCurveSet::Read(), CIccMpeTintArray::Read(), CIccMpeToneMap::Read(), CIccMpeMatrix::Read(), CIccMpeCLUT::Read(), CIccMpeExtCLUT::Read(), CIccMpeCAM::Read(), CIccMpeSpectralCLUT::Read(), CIccMpeCLUT::SetCLUT(), CIccMpeCurveSet::SetCurve(), CIccMpeSpectralCLUT::SetData(), SetSize(), CIccMpeMatrix::SetSize(), CIccMpeSpectralMatrix::SetSize(), CIccMpeSpectralObserver::SetSize(), CIccMpeCurveSet::SetSize(), CIccMpeCurveSet::Validate(), CIccMpeTintArray::Validate(), CIccMpeToneMap::Validate(), CIccMpeCAM::Validate(), CIccMpeInvEmissionMatrix::Validate(), CIccMpeAcs::Write(), CIccMpeCurveSet::Write(), CIccMpeTintArray::Write(), CIccMpeToneMap::Write(), CIccMpeMatrix::Write(), CIccMpeCLUT::Write(), CIccMpeExtCLUT::Write(), CIccMpeCAM::Write(), Write(), CIccMpeSpectralMatrix::Write(), CIccMpeSpectralCLUT::Write(), and CIccMpeSpectralObserver::Write().

◆ m_nOutputChannels

icUInt16Number CIccMultiProcessElement::m_nOutputChannels
protectedinherited

Referenced by CIccMpeBAcs::CIccMpeBAcs(), CIccMpeBAcs::CIccMpeBAcs(), CIccMpeCalculator(), CIccMpeCalculator(), CIccMpeCAM::CIccMpeCAM(), CIccMpeCLUT::CIccMpeCLUT(), CIccMpeCLUT::CIccMpeCLUT(), CIccMpeCurveSet::CIccMpeCurveSet(), CIccMpeCurveSet::CIccMpeCurveSet(), CIccMpeEAcs::CIccMpeEAcs(), CIccMpeEAcs::CIccMpeEAcs(), CIccMpeExtCLUT::CIccMpeExtCLUT(), CIccMpeMatrix::CIccMpeMatrix(), CIccMpeMatrix::CIccMpeMatrix(), CIccMpeSpectralCLUT::CIccMpeSpectralCLUT(), CIccMpeSpectralCLUT::CIccMpeSpectralCLUT(), CIccMpeSpectralMatrix::CIccMpeSpectralMatrix(), CIccMpeSpectralMatrix::CIccMpeSpectralMatrix(), CIccMpeSpectralObserver::CIccMpeSpectralObserver(), CIccMpeSpectralObserver::CIccMpeSpectralObserver(), CIccMpeTintArray::CIccMpeTintArray(), CIccMpeTintArray::CIccMpeTintArray(), CIccMpeToneMap::CIccMpeToneMap(), CIccMpeToneMap::CIccMpeToneMap(), CIccMultiProcessElement::CIccMultiProcessElement(), CIccMpeTintArray::Apply(), CIccMpeToneMap::Apply(), CIccMpeMatrix::Apply(), CIccMpeAcs::Begin(), CIccMpeTintArray::Begin(), CIccMpeToneMap::Begin(), CIccMpeMatrix::Begin(), CIccMpeEmissionMatrix::Begin(), CIccMpeInvEmissionMatrix::Begin(), CIccMpeEmissionCLUT::Begin(), CIccMpeReflectanceCLUT::Begin(), CIccMpeEmissionObserver::Begin(), CIccMpeReflectanceObserver::Begin(), CIccMpeToneMap::ClearToneFuncs(), CIccMpeSpectralCLUT::copyData(), CIccMpeSpectralMatrix::copyData(), CIccMpeSpectralObserver::copyData(), CIccMpeToneMap::CopyToneFuncs(), CIccMpeMatrix::Describe(), Describe(), CIccMpeSpectralMatrix::Describe(), CIccMpeSpectralObserver::Describe(), CIccMpeTintArray::Describe(), CIccMpeToneMap::Describe(), CIccMpeXmlCalculator::Flatten(), CIccMpeToneMap::Insert(), CIccMultiProcessElement::NumOutputChannels(), CIccMpeInvEmissionMatrix::numVectors(), CIccMpeBAcs::operator=(), operator=(), CIccMpeCLUT::operator=(), CIccMpeCurveSet::operator=(), CIccMpeEAcs::operator=(), CIccMpeMatrix::operator=(), CIccMpeTintArray::operator=(), CIccMpeToneMap::operator=(), CIccMpeXmlTintArray::ParseXml(), CIccMpeXmlToneMap::ParseXml(), CIccMpeXmlMatrix::ParseXml(), CIccMpeXmlCLUT::ParseXml(), CIccMpeXmlExtCLUT::ParseXml(), CIccMpeXmlBAcs::ParseXml(), CIccMpeXmlEAcs::ParseXml(), CIccMpeXmlJabToXYZ::ParseXml(), CIccMpeXmlXYZToJab::ParseXml(), CIccMpeXmlCalculator::ParseXml(), CIccMpeXmlEmissionCLUT::ParseXml(), CIccMpeXmlReflectanceCLUT::ParseXml(), CIccMpeAcs::Read(), CIccMpeTintArray::Read(), CIccMpeToneMap::Read(), CIccMpeMatrix::Read(), CIccMpeCLUT::Read(), CIccMpeExtCLUT::Read(), CIccMpeCAM::Read(), CIccMpeSpectralCLUT::Read(), CIccMpeCLUT::SetCLUT(), CIccMpeSpectralCLUT::SetData(), CIccMpeToneMap::SetNumOutputChannels(), SetSize(), CIccMpeMatrix::SetSize(), CIccMpeSpectralMatrix::SetSize(), CIccMpeSpectralObserver::SetSize(), CIccMpeCurveSet::SetSize(), CIccMpeTintArray::SetVectorSize(), CIccMpeTintArray::Validate(), CIccMpeToneMap::Validate(), CIccMpeCAM::Validate(), CIccMpeSpectralMatrix::Validate(), CIccMpeSpectralObserver::Validate(), CIccMpeAcs::Write(), CIccMpeTintArray::Write(), CIccMpeToneMap::Write(), CIccMpeMatrix::Write(), CIccMpeCLUT::Write(), CIccMpeExtCLUT::Write(), CIccMpeCAM::Write(), Write(), CIccMpeSpectralMatrix::Write(), CIccMpeSpectralCLUT::Write(), and CIccMpeSpectralObserver::Write().

◆ m_nReserved

icUInt32Number CIccMultiProcessElement::m_nReserved
inherited

Referenced by CIccMpeAcs::CIccMpeAcs(), CIccMpeBAcs::CIccMpeBAcs(), CIccMpeCalculator(), CIccMpeCalculator(), CIccMpeCAM::CIccMpeCAM(), CIccMpeCLUT::CIccMpeCLUT(), CIccMpeCLUT::CIccMpeCLUT(), CIccMpeCurveSet::CIccMpeCurveSet(), CIccMpeCurveSet::CIccMpeCurveSet(), CIccMpeEAcs::CIccMpeEAcs(), CIccMpeExtCLUT::CIccMpeExtCLUT(), CIccMpeMatrix::CIccMpeMatrix(), CIccMpeMatrix::CIccMpeMatrix(), CIccMpeSpectralCLUT::CIccMpeSpectralCLUT(), CIccMpeSpectralCLUT::CIccMpeSpectralCLUT(), CIccMpeSpectralMatrix::CIccMpeSpectralMatrix(), CIccMpeSpectralMatrix::CIccMpeSpectralMatrix(), CIccMpeSpectralObserver::CIccMpeSpectralObserver(), CIccMpeSpectralObserver::CIccMpeSpectralObserver(), CIccMpeTintArray::CIccMpeTintArray(), CIccMpeTintArray::CIccMpeTintArray(), CIccMpeToneMap::CIccMpeToneMap(), CIccMpeToneMap::CIccMpeToneMap(), CIccMultiProcessElement::CIccMultiProcessElement(), CIccMpeSpectralCLUT::copyData(), CIccMpeSpectralMatrix::copyData(), CIccMpeSpectralObserver::copyData(), CIccMpeBAcs::operator=(), operator=(), CIccMpeCLUT::operator=(), CIccMpeCurveSet::operator=(), CIccMpeEAcs::operator=(), CIccMpeMatrix::operator=(), CIccMpeTintArray::operator=(), CIccMpeToneMap::operator=(), CIccTagXmlMultiProcessElement::ParseElement(), CIccMpeXmlCalculator::ParseImport(), CIccMpeAcs::Read(), CIccMpeCurveSet::Read(), CIccMpeTintArray::Read(), CIccMpeToneMap::Read(), CIccMpeMatrix::Read(), CIccMpeCLUT::Read(), CIccMpeExtCLUT::Read(), CIccMpeCAM::Read(), Read(), CIccMpeSpectralMatrix::Read(), CIccMpeSpectralCLUT::Read(), CIccMpeSpectralObserver::Read(), CIccMpeXmlCurveSet::ToXml(), CIccMpeXmlTintArray::ToXml(), CIccMpeXmlToneMap::ToXml(), CIccMpeXmlMatrix::ToXml(), CIccMpeXmlCLUT::ToXml(), CIccMpeXmlExtCLUT::ToXml(), CIccMpeXmlBAcs::ToXml(), CIccMpeXmlEAcs::ToXml(), CIccMpeXmlJabToXYZ::ToXml(), CIccMpeXmlXYZToJab::ToXml(), CIccMpeXmlCalculator::ToXml(), CIccMpeXmlEmissionMatrix::ToXml(), CIccMpeXmlInvEmissionMatrix::ToXml(), CIccMpeXmlEmissionCLUT::ToXml(), CIccMpeXmlReflectanceCLUT::ToXml(), CIccMpeXmlEmissionObserver::ToXml(), CIccMpeXmlReflectanceObserver::ToXml(), CIccMultiProcessElement::Validate(), CIccMpeAcs::Write(), CIccMpeCurveSet::Write(), CIccMpeTintArray::Write(), CIccMpeToneMap::Write(), CIccMpeMatrix::Write(), CIccMpeCLUT::Write(), CIccMpeExtCLUT::Write(), CIccMpeCAM::Write(), Write(), CIccMpeSpectralMatrix::Write(), CIccMpeSpectralCLUT::Write(), and CIccMpeSpectralObserver::Write().

◆ m_nSubElem

◆ m_nTempChannels

icUInt32Number CIccMpeCalculator::m_nTempChannels
protected

◆ m_pCmmEnvVarLookup

IIccCmmEnvVarLookup* CIccMpeCalculator::m_pCmmEnvVarLookup
protected

◆ m_SubElem


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