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

Class: CIccTagXYZ. More...

#include <IccTagBasic.h>

+ Inheritance diagram for CIccTagXYZ:
+ Collaboration diagram for CIccTagXYZ:

Public Member Functions

 CIccTagXYZ (const CIccTagXYZ &ITXYZ)
 Name: CIccTagXYZ::CIccTagXYZ.
 
 CIccTagXYZ (int nSize=1)
 Name: CIccTagXYZ::CIccTagXYZ.
 
virtual void Describe (std::string &sDescription, int nVerboseness)
 Name: CIccTagXYZ::Describe.
 
virtual const icCharGetClassName () const
 
icUInt32Number GetSize () const
 
virtual icTagTypeSignature GetType () const
 Function: GetType()
 
icXYZNumberGetXYZ (icUInt32Number index)
 
virtual bool IsArrayType ()
 
virtual CIccTagNewCopy () const
 Function: NewCopy(sDescription) Each derived tag will implement it's own NewCopy() function.
 
CIccTagXYZoperator= (const CIccTagXYZ &XYZTag)
 Name: CIccTagXYZ::operator=.
 
icXYZNumberoperator[] (icUInt32Number index) const
 
virtual bool Read (icUInt32Number size, CIccIO *pIO)
 Name: CIccTagXYZ::Read.
 
bool SetSize (icUInt32Number nSize, bool bZeroNew=true)
 Name: CIccTagXYZ::SetSize.
 
virtual icValidateStatus Validate (std::string sigPath, std::string &sReport, const CIccProfile *pProfile=NULL) const
 Name: CIccTagXYZ::Validate.
 
virtual bool Write (CIccIO *pIO)
 Name: CIccTagXYZ::Write.
 
virtual ~CIccTagXYZ ()
 Name: CIccTagXYZ::~CIccTagXYZ.
 
- Public Member Functions inherited from CIccTag
 CIccTag ()
 Name: CIccTag::CIccTag.
 
virtual void DetachIO ()
 Function: ReadAll() - Read All sub data for tag from file.
 
virtual IIccExtensionTagGetExtension ()
 
virtual icArraySignature GetTagArrayType () const
 
virtual icStructSignature GetTagStructType () const
 
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.
 

Protected Attributes

icUInt32Number m_nSize
 
icXYZNumberm_XYZ
 

Additional Inherited Members

- Static Public Member Functions inherited from CIccTag
static CIccTagCreate (icTagTypeSignature sig)
 Name: CIccTag::Create.
 
- Public Attributes inherited from CIccTag
icUInt32Number m_nReserved
 

Detailed Description

Class: CIccTagXYZ.

Purpose: the XYZType tag - an array of XYZ values

Definition at line 667 of file IccTagBasic.h.

Constructor & Destructor Documentation

◆ CIccTagXYZ() [1/2]

CIccTagXYZ::CIccTagXYZ ( int nSize = 1)

Name: CIccTagXYZ::CIccTagXYZ.

Purpose: Constructor

Args: nSize = number of XYZ entries

Definition at line 3491 of file IccTagBasic.cpp.

3492{
3493 m_nSize = nSize;
3494 if (m_nSize <1)
3495 m_nSize = 1;
3496 m_XYZ = (icXYZNumber*)calloc(nSize, sizeof(icXYZNumber));
3497}
icUInt32Number m_nSize
icXYZNumber * m_XYZ

◆ CIccTagXYZ() [2/2]

CIccTagXYZ::CIccTagXYZ ( const CIccTagXYZ & ITXYZ)

Name: CIccTagXYZ::CIccTagXYZ.

Purpose: Copy Constructor

Args: ITXYZ = The CIccTagXYZ object to be copied

Definition at line 3510 of file IccTagBasic.cpp.

3511{
3512 m_nSize = ITXYZ.m_nSize;
3513
3514 m_XYZ = (icXYZNumber*)calloc(m_nSize, sizeof(icXYZNumber));
3515 memcpy(m_XYZ, ITXYZ.m_XYZ, sizeof(icXYZNumber)*m_nSize);
3516}

References m_nSize, and m_XYZ.

◆ ~CIccTagXYZ()

CIccTagXYZ::~CIccTagXYZ ( )
virtual

Name: CIccTagXYZ::~CIccTagXYZ.

Purpose: Destructor

Definition at line 3554 of file IccTagBasic.cpp.

3555{
3556 if (m_XYZ)
3557 free(m_XYZ);
3558}

Member Function Documentation

◆ Describe()

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

Name: CIccTagXYZ::Describe.

Purpose: Dump data associated with the tag to a string

Args: sDescription - string to concatenate tag dump to

Reimplemented from CIccTag.

Definition at line 3653 of file IccTagBasic.cpp.

3654{
3655 icChar buf[128];
3656
3657 if (m_nSize == 1 ) {
3658 sprintf(buf, "X=%.4lf, Y=%.4lf, Z=%.4lf\n", icFtoD(m_XYZ[0].X), icFtoD(m_XYZ[0].Y), icFtoD(m_XYZ[0].Z));
3659 sDescription += buf;
3660 }
3661 else {
3663 sDescription.reserve(sDescription.size() + m_nSize*79);
3664
3665 for (i=0; i<m_nSize; i++) {
3666 sprintf(buf, "value[%u]: X=%.4lf, Y=%.4lf, Z=%.4lf\n", i, icFtoD(m_XYZ[i].X), icFtoD(m_XYZ[i].Y), icFtoD(m_XYZ[i].Z));
3667 sDescription += buf;
3668 }
3669 }
3670}
char icChar
Definition IccDefs.h:109
icFloatNumber icFtoD(icS15Fixed16Number num)
Definition IccUtil.cpp:559
unsigned int icUInt32Number

References icFtoD().

+ Here is the call graph for this function:

◆ GetClassName()

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

Reimplemented from CIccTag.

Reimplemented in CIccTagXmlXYZ.

Definition at line 679 of file IccTagBasic.h.

679{ return "CIccTagXYZ"; }

◆ GetSize()

icUInt32Number CIccTagXYZ::GetSize ( ) const
inline

Definition at line 688 of file IccTagBasic.h.

688{ return m_nSize; }

◆ GetType()

virtual icTagTypeSignature CIccTagXYZ::GetType ( ) const
inlinevirtual

Function: GetType()

Purpose: Get Tag Type. Each derived tag will implement it's own GetType() function.

Reimplemented from CIccTag.

Definition at line 678 of file IccTagBasic.h.

678{ return icSigXYZType; }
@ icSigXYZType

References icSigXYZType.

◆ GetXYZ()

icXYZNumber * CIccTagXYZ::GetXYZ ( icUInt32Number index)
inline

Definition at line 687 of file IccTagBasic.h.

687{return &m_XYZ[index];}

◆ IsArrayType()

virtual bool CIccTagXYZ::IsArrayType ( )
inlinevirtual

Reimplemented from CIccTag.

Definition at line 676 of file IccTagBasic.h.

676{ return m_nSize > 1; }

◆ NewCopy()

virtual CIccTag * CIccTagXYZ::NewCopy ( ) const
inlinevirtual

Function: NewCopy(sDescription) Each derived tag will implement it's own NewCopy() function.

Parameter(s): none

Returns a new CIccTag object that is a copy of this object.

Reimplemented from CIccTag.

Definition at line 673 of file IccTagBasic.h.

673{return new CIccTagXYZ(*this);}
CIccTagXYZ(int nSize=1)
Name: CIccTagXYZ::CIccTagXYZ.

◆ operator=()

CIccTagXYZ & CIccTagXYZ::operator= ( const CIccTagXYZ & XYZTag)

Name: CIccTagXYZ::operator=.

Purpose: Copy Operator

Args: XYZTag = The CIccTagXYZ object to be copied

Definition at line 3530 of file IccTagBasic.cpp.

3531{
3532 if (&XYZTag == this)
3533 return *this;
3534
3535 m_nSize = XYZTag.m_nSize;
3536
3537 if (m_XYZ)
3538 free(m_XYZ);
3539 m_XYZ = (icXYZNumber*)calloc(m_nSize, sizeof(icXYZNumber));
3540 memcpy(m_XYZ, XYZTag.m_XYZ, sizeof(icXYZNumber)*m_nSize);
3541
3542 return *this;
3543}

References m_nSize, and m_XYZ.

◆ operator[]()

icXYZNumber & CIccTagXYZ::operator[] ( icUInt32Number index) const
inline

Definition at line 686 of file IccTagBasic.h.

686{return m_XYZ[index];}

◆ Read()

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

Name: CIccTagXYZ::Read.

Purpose: Read in the tag contents into a data block

Args: size - # of bytes in tag, pIO - IO object to read tag from

Return: true = successful, false = failure

Reimplemented from CIccTag.

Definition at line 3575 of file IccTagBasic.cpp.

3576{
3578
3579 if (sizeof(icTagTypeSignature) +
3580 sizeof(icUInt32Number) +
3581 sizeof(icXYZNumber) > size)
3582 return false;
3583
3584 if (!pIO) {
3585 return false;
3586 }
3587
3588 if (!pIO->Read32(&sig))
3589 return false;
3590
3591 if (!pIO->Read32(&m_nReserved))
3592 return false;
3593
3594 icUInt32Number nNum=((size-2*sizeof(icUInt32Number)) / sizeof(icXYZNumber));
3595 icUInt32Number nNum32 = nNum*sizeof(icXYZNumber)/sizeof(icUInt32Number);
3596
3597 if (!SetSize(nNum))
3598 return false;
3599
3600 if (pIO->Read32(m_XYZ, nNum32) != (icInt32Number)nNum32 )
3601 return false;
3602
3603 return true;
3604}
icArraySignature sig
icTagTypeSignature
icInt32Number Read32(void *pBuf32, icInt32Number nNum=1)
Definition IccIO.cpp:143
icUInt32Number m_nReserved
bool SetSize(icUInt32Number nSize, bool bZeroNew=true)
Name: CIccTagXYZ::SetSize.
long icInt32Number

References CIccIO::Read32(), and sig.

+ Here is the call graph for this function:

◆ SetSize()

bool CIccTagXYZ::SetSize ( icUInt32Number nSize,
bool bZeroNew = true )

Name: CIccTagXYZ::SetSize.

Purpose: Sets the size of the XYZ array.

Args: nSize - number of XYZ entries, bZeroNew - flag to zero newly formed values

Definition at line 3683 of file IccTagBasic.cpp.

3684{
3685 if (nSize==m_nSize)
3686 return true;
3687
3688 m_XYZ = (icXYZNumber*)icRealloc(m_XYZ, nSize*sizeof(icXYZNumber));
3689
3690 if (!m_XYZ) {
3691 m_nSize = 0;
3692 return false;
3693 }
3694
3695 if (bZeroNew && m_nSize < nSize) {
3696 memset(&m_XYZ[m_nSize], 0, (nSize-m_nSize)*sizeof(icXYZNumber));
3697 }
3698 m_nSize = nSize;
3699
3700 return true;
3701}
void * icRealloc(void *ptr, size_t size)
Name: icRealloc.
Definition IccUtil.cpp:111

References icRealloc().

Referenced by CIccDefaultEncProfileConverter::ConvertFromParams().

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

◆ Validate()

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

Name: CIccTagXYZ::Validate.

Purpose: Check tag data validity.

Args: sig = signature of tag being validated, sReport = String to add report information to

Return: icValidateStatusOK if valid, or other error status.

Reimplemented from CIccTag.

Definition at line 3718 of file IccTagBasic.cpp.

3719{
3720 icValidateStatus rv = CIccTag::Validate(sigPath, sReport, pProfile);
3721
3722 CIccInfo Info;
3723 std::string sSigPathName = Info.GetSigPathName(sigPath);
3724
3725 if (!m_nSize) {
3726 sReport += icMsgValidateWarning;
3727 sReport += sSigPathName;
3728 sReport += " - Empty tag.\n";
3729
3731 return rv;
3732 }
3733
3734 for (int i=0; i<(int)m_nSize; i++) {
3735 rv = icMaxStatus(rv, Info.CheckData(sReport, m_XYZ[i], sSigPathName + ":XYZ"));
3736 }
3737
3738 return rv;
3739}
icValidateStatus
Definition IccDefs.h:118
@ icValidateWarning
Definition IccDefs.h:120
icValidateStatus icMaxStatus(icValidateStatus s1, icValidateStatus s2)
Name: icMaxStatus.
Definition IccUtil.cpp:244
const char * icMsgValidateWarning
Definition IccUtil.cpp:90
Type: Class.
Definition IccUtil.h:303
std::string GetSigPathName(std::string sigPath)
Definition IccUtil.cpp:1614
icValidateStatus CheckData(std::string &sReport, const icDateTimeNumber &dateTime, std::string sDesc="")
Definition IccUtil.cpp:2414
virtual icValidateStatus Validate(std::string sigPath, std::string &sReport, const CIccProfile *pProfile=NULL) const
Function: Validate Each derived tag will implement it's own IsValid() function.

References CIccInfo::CheckData(), CIccInfo::GetSigPathName(), icMaxStatus(), icMsgValidateWarning, icValidateWarning, and CIccTag::Validate().

+ Here is the call graph for this function:

◆ Write()

bool CIccTagXYZ::Write ( CIccIO * pIO)
virtual

Name: CIccTagXYZ::Write.

Purpose: Write the tag to a file

Args: pIO - The IO object to write tag to.

Return: true = succesful, false = failure

Reimplemented from CIccTag.

Definition at line 3620 of file IccTagBasic.cpp.

3621{
3623
3624 if (!pIO)
3625 return false;
3626
3627 if (!pIO->Write32(&sig))
3628 return false;
3629
3630 if (!pIO->Write32(&m_nReserved))
3631 return false;
3632
3633 icUInt32Number nNum32 = m_nSize * sizeof(icXYZNumber)/sizeof(icUInt32Number);
3634
3635 if (
3636 pIO->Write32(m_XYZ, nNum32) != (icInt32Number)nNum32)
3637 return false;
3638
3639 return true;
3640}
icInt32Number Write32(void *pBuf32, icInt32Number nNum=1)
Definition IccIO.cpp:152
virtual icTagTypeSignature GetType() const
Function: GetType()

References sig, and CIccIO::Write32().

+ Here is the call graph for this function:

Member Data Documentation

◆ m_nSize

icUInt32Number CIccTagXYZ::m_nSize
protected

Definition at line 694 of file IccTagBasic.h.

Referenced by CIccTagXYZ(), and operator=().

◆ m_XYZ

icXYZNumber* CIccTagXYZ::m_XYZ
protected

Definition at line 693 of file IccTagBasic.h.

Referenced by CIccTagXYZ(), and operator=().


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