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

Class: CIccMpeCAM. More...

#include <IccMpeBasic.h>

+ Inheritance diagram for CIccMpeCAM:
+ Collaboration diagram for CIccMpeCAM:

Public Member Functions

virtual void Apply (CIccApplyMpe *pApply, icFloatNumber *dstPixel, const icFloatNumber *srcPixel) const =0
 
virtual bool Begin (icElemInterp nInterp, CIccTagMultiProcessElement *pMPE)
 
virtual void Describe (std::string &sDescription, int nVerboseness)
 
CIccCamConverterGetCAM ()
 
virtual const icCharGetClassName () const =0
 
virtual icElemTypeSignature GetType () const =0
 
virtual const icCharGetXformName () const =0
 
virtual bool Read (icUInt32Number size, CIccIO *pIO)
 
void SetCAM (CIccCamConverter *pCAM)
 
virtual icValidateStatus Validate (std::string sigPath, std::string &sReport, const CIccTagMultiProcessElement *pMPE=NULL, const CIccProfile *pProfile=NULL) const
 Name: CIccProcessElement::Validate.
 
virtual bool Write (CIccIO *pIO)
 
virtual ~CIccMpeCAM ()
 
- Public Member Functions inherited from CIccMultiProcessElement
 CIccMultiProcessElement ()
 
virtual icAcsSignature GetBAcsSig ()
 
virtual icAcsSignature GetEAcsSig ()
 
virtual IIccExtensionMpeGetExtension ()
 
virtual CIccApplyMpeGetNewApply (CIccApplyTagMpe *pApplyTag)
 Name: CIccMultiProcessElement::GetNewApply()
 
virtual bool IsAcs ()
 
virtual bool IsLateBinding () const
 
virtual bool IsLateBindingReflectance () const
 
virtual bool IsSupported ()
 
virtual CIccMultiProcessElementNewCopy () const =0
 
virtual icUInt16Number NumInputChannels () const
 
virtual icUInt16Number NumOutputChannels () const
 
virtual ~CIccMultiProcessElement ()
 

Protected Member Functions

 CIccMpeCAM ()
 

Protected Attributes

CIccCamConverterm_pCAM
 
- Protected Attributes inherited from CIccMultiProcessElement
icUInt16Number m_nInputChannels
 
icUInt16Number m_nOutputChannels
 

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
 

Detailed Description

Class: CIccMpeCAM.

Purpose: The float Color LookUp Table tag

Definition at line 755 of file IccMpeBasic.h.

Constructor & Destructor Documentation

◆ ~CIccMpeCAM()

CIccMpeCAM::~CIccMpeCAM ( )
virtual

Definition at line 6108 of file IccMpeBasic.cpp.

6109{
6110 if (m_pCAM)
6111 delete m_pCAM;
6112}
CIccCamConverter * m_pCAM

References m_pCAM.

◆ CIccMpeCAM()

CIccMpeCAM::CIccMpeCAM ( )
protected

Member Function Documentation

◆ Apply()

virtual void CIccMpeCAM::Apply ( CIccApplyMpe * pApply,
icFloatNumber * dstPixel,
const icFloatNumber * srcPixel ) const
pure virtual

Implements CIccMultiProcessElement.

Implemented in CIccMpeJabToXYZ, and CIccMpeXYZToJab.

◆ Begin()

bool CIccMpeCAM::Begin ( icElemInterp nInterp,
CIccTagMultiProcessElement * pMPE )
virtual

Implements CIccMultiProcessElement.

Definition at line 6203 of file IccMpeBasic.cpp.

6204{
6205 if (m_pCAM) {
6206 return true;
6207 }
6208 return false;
6209}

References m_pCAM.

◆ Describe()

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

Implements CIccMultiProcessElement.

Definition at line 6218 of file IccMpeBasic.cpp.

6219{
6220 sDescription += "Begin ";
6221 sDescription += GetXformName();
6222 sDescription += "\n";
6223
6224 if (m_pCAM) {
6225 char line[256];
6226
6227 icFloatNumber xyz[3];
6229 sprintf(line, "WhitePoint (X=%f, Y=%f, Z=%f)\n", xyz[0], xyz[1], xyz[2]);
6230 sDescription += line;
6231
6232 sprintf(line, "Luminance(La)=%f cd/m^2\n", m_pCAM->GetParameter_La());
6233 sDescription += line;
6234
6235 sprintf(line, "Background Luminance(Yb)=%f cd/m^2\n", m_pCAM->GetParameter_Yb());
6236 sDescription += line;
6237
6238 sprintf(line, "Impact Surround(C)=%f\n", m_pCAM->GetParameter_C());
6239 sDescription += line;
6240
6241 sprintf(line, "Chromatic Induction Factor(Nc)=%f\n", m_pCAM->GetParameter_Nc());
6242 sDescription += line;
6243
6244 sprintf(line, "Adaptation Factor(F)=%f\n", m_pCAM->GetParameter_F());
6245 sDescription += line;
6246
6247 }
6248 sDescription += "End";
6249 sDescription += GetXformName();
6250 sDescription += "\n";
6251}
float icFloatNumber
All floating point operations/variables in IccProfLib use the icFloatNumber data type.
Definition IccDefs.h:100
void GetParameter_WhitePoint(icFloatNumber *whitePoint)
Definition IccCAM.cpp:420
icFloatNumber GetParameter_C()
Definition IccCAM.cpp:446
icFloatNumber GetParameter_Nc()
Definition IccCAM.cpp:454
icFloatNumber GetParameter_Yb()
Definition IccCAM.cpp:438
icFloatNumber GetParameter_F()
Definition IccCAM.cpp:462
icFloatNumber GetParameter_La()
Definition IccCAM.cpp:430
virtual const icChar * GetXformName() const =0

References CIccCamConverter::GetParameter_C(), CIccCamConverter::GetParameter_F(), CIccCamConverter::GetParameter_La(), CIccCamConverter::GetParameter_Nc(), CIccCamConverter::GetParameter_WhitePoint(), CIccCamConverter::GetParameter_Yb(), GetXformName(), and m_pCAM.

+ Here is the call graph for this function:

◆ GetCAM()

CIccCamConverter * CIccMpeCAM::GetCAM ( )
inline

Definition at line 775 of file IccMpeBasic.h.

775{ return m_pCAM; }

◆ GetClassName()

virtual const icChar * CIccMpeCAM::GetClassName ( ) const
pure virtual

◆ GetType()

virtual icElemTypeSignature CIccMpeCAM::GetType ( ) const
pure virtual

Implements CIccMultiProcessElement.

Implemented in CIccMpeJabToXYZ, and CIccMpeXYZToJab.

Referenced by Read(), and Write().

+ Here is the caller graph for this function:

◆ GetXformName()

virtual const icChar * CIccMpeCAM::GetXformName ( ) const
pure virtual

Implemented in CIccMpeJabToXYZ, and CIccMpeXYZToJab.

Referenced by Describe().

+ Here is the caller graph for this function:

◆ Read()

bool CIccMpeCAM::Read ( icUInt32Number size,
CIccIO * pIO )
virtual

Implements CIccMultiProcessElement.

Definition at line 6114 of file IccMpeBasic.cpp.

6115{
6117
6118 icUInt32Number headerSize = sizeof(icTagTypeSignature) +
6119 sizeof(icUInt32Number) +
6120 sizeof(icUInt16Number)*2 +
6121 8 * sizeof(icFloat32Number);
6122
6123 if (headerSize > size)
6124 return false;
6125
6126 if (!pIO) {
6127 return false;
6128 }
6129
6130 if (!pIO->Read32(&sig))
6131 return false;
6132
6133 if (sig!=GetType())
6134 return false;
6135
6136 if (!pIO->Read32(&m_nReserved))
6137 return false;
6138
6139 if (!pIO->Read16(&m_nInputChannels))
6140 return false;
6141
6142 if (!pIO->Read16(&m_nOutputChannels))
6143 return false;
6144
6145 icFloatNumber param[8];
6146
6147 if (pIO->ReadFloat32Float(param, 8)!=8)
6148 return false;
6149
6150 if (m_pCAM)
6151 delete m_pCAM;
6152
6154
6155 m_pCAM->SetParameter_WhitePoint(&param[0]);
6156 m_pCAM->SetParameter_La(param[3]);
6157 m_pCAM->SetParameter_Yb(param[4]);
6158 m_pCAM->SetParameter_C(param[5]);
6159 m_pCAM->SetParameter_Nc(param[6]);
6160 m_pCAM->SetParameter_F(param[7]);
6161
6162 return true;
6163}
icArraySignature sig
icTagTypeSignature
unsigned int icUInt32Number
void SetParameter_Nc(icFloatNumber Nc)
Definition IccCAM.cpp:402
void SetParameter_La(icFloatNumber La)
Definition IccCAM.cpp:375
void SetParameter_F(icFloatNumber F)
Definition IccCAM.cpp:411
void SetParameter_C(icFloatNumber c)
Definition IccCAM.cpp:393
void SetParameter_Yb(icFloatNumber YB)
Definition IccCAM.cpp:384
void SetParameter_WhitePoint(icFloatNumber *whitePoint)
Definition IccCAM.cpp:364
icInt32Number ReadFloat32Float(void *pBufFloat, icInt32Number nNum=1)
Definition IccIO.cpp:302
icInt32Number Read16(void *pBuf16, icInt32Number nNum=1)
Definition IccIO.cpp:114
icInt32Number Read32(void *pBuf32, icInt32Number nNum=1)
Definition IccIO.cpp:143
virtual icElemTypeSignature GetType() const =0
float icFloat32Number
unsigned short icUInt16Number

References GetType(), CIccMultiProcessElement::m_nInputChannels, CIccMultiProcessElement::m_nOutputChannels, CIccMultiProcessElement::m_nReserved, m_pCAM, CIccIO::Read16(), CIccIO::Read32(), CIccIO::ReadFloat32Float(), CIccCamConverter::SetParameter_C(), CIccCamConverter::SetParameter_F(), CIccCamConverter::SetParameter_La(), CIccCamConverter::SetParameter_Nc(), CIccCamConverter::SetParameter_WhitePoint(), CIccCamConverter::SetParameter_Yb(), and sig.

+ Here is the call graph for this function:

◆ SetCAM()

void CIccMpeCAM::SetCAM ( CIccCamConverter * pCAM)

Definition at line 6211 of file IccMpeBasic.cpp.

6212{
6213 if (m_pCAM)
6214 delete m_pCAM;
6215 m_pCAM = pCAM;
6216}

References m_pCAM.

Referenced by CIccDefaultEncProfileConverter::ConvertFromParams().

+ Here is the caller graph for this function:

◆ Validate()

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

Name: CIccProcessElement::Validate.

Purpose:

Args:

Return:

Implements CIccMultiProcessElement.

Definition at line 6254 of file IccMpeBasic.cpp.

6255{
6257
6258 if (m_nInputChannels!=3) {
6259 sReport += icMsgValidateCriticalError;
6260 sReport += "CAM Element Must have 3 input channels\n";
6262 }
6263 if (m_nOutputChannels!=3) {
6264 sReport += icMsgValidateCriticalError;
6265 sReport += "CAM Element Must have 3 output channels";
6267 }
6268 if (!m_pCAM) {
6269 sReport += icMsgValidateCriticalError;
6270 sReport += "Invalid CAM";
6272 }
6273
6274 return rv;
6275}
icValidateStatus
Definition IccDefs.h:118
@ icValidateOK
Definition IccDefs.h:119
@ icValidateCriticalError
Definition IccDefs.h:122
icValidateStatus icMaxStatus(icValidateStatus s1, icValidateStatus s2)
Name: icMaxStatus.
Definition IccUtil.cpp:244
const char * icMsgValidateCriticalError
Definition IccUtil.cpp:92

References icMaxStatus(), icMsgValidateCriticalError, icValidateCriticalError, icValidateOK, CIccMultiProcessElement::m_nInputChannels, CIccMultiProcessElement::m_nOutputChannels, and m_pCAM.

+ Here is the call graph for this function:

◆ Write()

bool CIccMpeCAM::Write ( CIccIO * pIO)
virtual

Implements CIccMultiProcessElement.

Definition at line 6165 of file IccMpeBasic.cpp.

6166{
6167 if (!m_pCAM)
6168 return false;
6169
6171
6172 if (!pIO)
6173 return false;
6174
6175 if (!pIO->Write32(&sig))
6176 return false;
6177
6178 if (!pIO->Write32(&m_nReserved))
6179 return false;
6180
6181 if (!pIO->Write16(&m_nInputChannels))
6182 return false;
6183
6184 if (!pIO->Write16(&m_nOutputChannels))
6185 return false;
6186
6187
6188 icFloatNumber param[8];
6189
6190 m_pCAM->GetParameter_WhitePoint(&param[0]); //sets param[0], param[1], and param[2]
6191 param[3] = m_pCAM->GetParameter_La();
6192 param[4] = m_pCAM->GetParameter_Yb();
6193 param[5] = m_pCAM->GetParameter_C();
6194 param[6] = m_pCAM->GetParameter_Nc();
6195 param[7] = m_pCAM->GetParameter_F();
6196
6197 if (pIO->WriteFloat32Float(&param, 8)!=8)
6198 return false;
6199
6200 return true;
6201}
icInt32Number Write16(void *pBuf16, icInt32Number nNum=1)
Definition IccIO.cpp:122
icInt32Number Write32(void *pBuf32, icInt32Number nNum=1)
Definition IccIO.cpp:152
icInt32Number WriteFloat32Float(void *pBufFloat, icInt32Number nNum=1)
Definition IccIO.cpp:321
icElemTypeSignature
Multi-Processing Element type signatures.

References CIccCamConverter::GetParameter_C(), CIccCamConverter::GetParameter_F(), CIccCamConverter::GetParameter_La(), CIccCamConverter::GetParameter_Nc(), CIccCamConverter::GetParameter_WhitePoint(), CIccCamConverter::GetParameter_Yb(), GetType(), CIccMultiProcessElement::m_nInputChannels, CIccMultiProcessElement::m_nOutputChannels, CIccMultiProcessElement::m_nReserved, m_pCAM, sig, CIccIO::Write16(), CIccIO::Write32(), and CIccIO::WriteFloat32Float().

+ Here is the call graph for this function:

Member Data Documentation

◆ m_pCAM


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