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

Class: CIccTagGamutBoundaryDesc. More...

#include <IccTagLut.h>

+ Inheritance diagram for CIccTagGamutBoundaryDesc:
+ Collaboration diagram for CIccTagGamutBoundaryDesc:

Public Member Functions

 CIccTagGamutBoundaryDesc ()
 Name: CIccTagGamutBoundaryDescription::CIccTagGamutBoundaryDescription.
 
 CIccTagGamutBoundaryDesc (const CIccTagGamutBoundaryDesc &InGamutBoundaryTag)
 Name: CIccTagGamutBoundaryDescription::CIccTagGamutBoundaryDescription.
 
 CIccTagGamutBoundaryDesc (icUInt8Number nInputChannels, icInt32Number numberOfVertices, icInt32Number numberOfTriangles, icUInt8Number nOutputChannels=0)
 Name: CIccTagGamutBoundaryDescription::CIccTagGamutBoundaryDescription.
 
virtual void Describe (std::string &sDescription, int nVerboseness)
 Name: CIccTagGamutBoundaryDescription::Describe.
 
virtual const icCharGetClassName () const
 
icInt32Number getNumberOfTriangles ()
 
icInt32Number getNumberOfVertices ()
 
icInt16Number getNumDeviceChannels ()
 
icInt16Number getNumPCSChannels ()
 
bool getTriangle (icInt32Number triangleNumber, icGamutBoundaryTriangle &triangle)
 Name: CIccTagGamutBoundaryDescription::getTriangle.
 
virtual icTagTypeSignature GetType () const
 Function: GetType()
 
icFloatNumbergetVertexDeviceCoord (icInt32Number vertexNumber)
 Name: CIccTagGamutBoundaryDescription::getVertexDeviceCoord.
 
icFloatNumbergetVertexPCSCoord (icInt32Number vertexNumber)
 Name: CIccTagGamutBoundaryDescription::getVertexPCSCoord.
 
virtual CIccTagNewCopy () const
 Function: NewCopy(sDescription) Each derived tag will implement it's own NewCopy() function.
 
CIccTagGamutBoundaryDescoperator= (const CIccTagGamutBoundaryDesc &InGamutBoundaryTag)
 Name: CIccTagGamutBoundaryDescription::operator=.
 
virtual bool Read (icUInt32Number size, CIccIO *pIO)
 Name: CIccTagGamutBoundaryDescription::Read.
 
bool setTriangle (icInt32Number triangleNumber, icGamutBoundaryTriangle &triangle)
 Name: CIccTagGamutBoundaryDescription::setTriangle.
 
bool setVertex (icInt32Number vertexNumber, icFloatNumber *pcsCoords, icFloatNumber *deviceCoords=NULL)
 Name: CIccTagGamutBoundaryDescription::setVertex.
 
icValidateStatus Validate (std::string sigPath, std::string &sReport, const CIccProfile *pProfile) const
 Name: CIccTagGamutBoundaryDescription::Validate.
 
virtual bool Write (CIccIO *pIO)
 Name: CIccTagGamutBoundaryDescription::Write.
 
virtual ~CIccTagGamutBoundaryDesc ()
 Name: CIccTagGamutBoundaryDescription::CIccTagGamutBoundaryDescription.
 
- 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 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.
 

Protected Attributes

icFloatNumberm_DeviceValues
 
icInt16Number m_nDeviceChannels
 
icInt16Number m_nPCSChannels
 
icInt32Number m_NumberOfTriangles
 
icInt32Number m_NumberOfVertices
 
icFloatNumberm_PCSValues
 
icGamutBoundaryTrianglem_Triangles
 

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: CIccTagGamutBoundaryDesc.

Purpose: The Gamut Boundary Description tag type

Definition at line 611 of file IccTagLut.h.

Constructor & Destructor Documentation

◆ CIccTagGamutBoundaryDesc() [1/3]

CIccTagGamutBoundaryDesc::CIccTagGamutBoundaryDesc ( )

Name: CIccTagGamutBoundaryDescription::CIccTagGamutBoundaryDescription.

Purpose: Constructor

Definition at line 5322 of file IccTagLut.cpp.

5323{
5326 m_nPCSChannels = 0;
5328 m_PCSValues = NULL;
5329 m_DeviceValues = NULL;
5330 m_Triangles = NULL;
5331
5332}
icGamutBoundaryTriangle * m_Triangles
Definition IccTagLut.h:664
icInt32Number m_NumberOfTriangles
Definition IccTagLut.h:659
icInt16Number m_nPCSChannels
Definition IccTagLut.h:660
icFloatNumber * m_DeviceValues
Definition IccTagLut.h:663
icFloatNumber * m_PCSValues
Definition IccTagLut.h:662
icInt16Number m_nDeviceChannels
Definition IccTagLut.h:661
icInt32Number m_NumberOfVertices
Definition IccTagLut.h:658

References m_DeviceValues, m_nDeviceChannels, m_nPCSChannels, m_NumberOfTriangles, m_NumberOfVertices, m_PCSValues, and m_Triangles.

◆ CIccTagGamutBoundaryDesc() [2/3]

CIccTagGamutBoundaryDesc::CIccTagGamutBoundaryDesc ( icUInt8Number nInputChannels,
icInt32Number numberOfVertices,
icInt32Number numberOfTriangles,
icUInt8Number nOutputChannels = 0 )

Name: CIccTagGamutBoundaryDescription::CIccTagGamutBoundaryDescription.

Purpose: Constructor

Args: nInputChannels = the number of PCS values, typically 3 numberOfVertices = the number of vertices in the gamut boundary numberOfTriangles = the number of triangles that make up the gamut boundary nOutputChannels = the number of device values, can be zero if none are included

Definition at line 5349 of file IccTagLut.cpp.

5350{
5351
5352 m_NumberOfVertices = numberOfVertices;
5353 m_NumberOfTriangles = numberOfTriangles;
5354 m_nPCSChannels = nInputChannels;
5355 m_nDeviceChannels = nOutputChannels;
5356 m_PCSValues = new icFloatNumber[nInputChannels*m_NumberOfVertices];
5357 if (nOutputChannels > 0)
5358 {
5359 m_DeviceValues = new icFloatNumber[nOutputChannels*m_NumberOfVertices];
5360 }
5361 else
5362 {
5363 m_DeviceValues = NULL;
5364 }
5366
5367
5368}
float icFloatNumber
All floating point operations/variables in IccProfLib use the icFloatNumber data type.
Definition IccDefs.h:100

References m_DeviceValues, m_nDeviceChannels, m_nPCSChannels, m_NumberOfTriangles, m_NumberOfVertices, m_PCSValues, and m_Triangles.

◆ CIccTagGamutBoundaryDesc() [3/3]

CIccTagGamutBoundaryDesc::CIccTagGamutBoundaryDesc ( const CIccTagGamutBoundaryDesc & InGamutBoundaryTag)

Name: CIccTagGamutBoundaryDescription::CIccTagGamutBoundaryDescription.

Purpose: Constructor

Args: InGamutBoundaryTag = the CIccTagGamutBoundaryDescription object to copy

Definition at line 5381 of file IccTagLut.cpp.

5382{
5383 m_NumberOfVertices = InGamutBoundaryTag.m_NumberOfVertices;
5384 m_NumberOfTriangles = InGamutBoundaryTag.m_NumberOfTriangles;
5385 m_nPCSChannels = InGamutBoundaryTag.m_nPCSChannels;
5386 m_nDeviceChannels = InGamutBoundaryTag.m_nDeviceChannels;
5387
5389
5390 if (m_nDeviceChannels > 0)
5391 {
5393 }
5394 else
5395 {
5396 m_DeviceValues = NULL;
5397 }
5399
5400 memcpy(m_PCSValues,InGamutBoundaryTag.m_PCSValues,m_nPCSChannels*m_NumberOfVertices*sizeof(icFloatNumber));
5401 if (m_DeviceValues)
5403 memcpy(m_Triangles,InGamutBoundaryTag.m_Triangles,m_NumberOfTriangles*sizeof(icGamutBoundaryTriangle));
5404}

References m_DeviceValues, m_nDeviceChannels, m_nPCSChannels, m_NumberOfTriangles, m_NumberOfVertices, m_PCSValues, and m_Triangles.

◆ ~CIccTagGamutBoundaryDesc()

CIccTagGamutBoundaryDesc::~CIccTagGamutBoundaryDesc ( )
virtual

Name: CIccTagGamutBoundaryDescription::CIccTagGamutBoundaryDescription.

Purpose: Destructor

Definition at line 5455 of file IccTagLut.cpp.

5456{
5457 if (m_PCSValues)
5458 delete [] m_PCSValues;
5459
5460 if (m_DeviceValues)
5461 delete [] m_DeviceValues;
5462
5463 if (m_Triangles)
5464 delete [] m_Triangles;
5465}

References m_DeviceValues, m_PCSValues, and m_Triangles.

Member Function Documentation

◆ Describe()

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

Name: CIccTagGamutBoundaryDescription::Describe.

Purpose: Dump data associated with gamut boundary tag to a string

Args: sDescription - string to concatenate tag dump to

Reimplemented from CIccTag.

Definition at line 5631 of file IccTagLut.cpp.

5632{
5633 icChar buf[256];
5634
5635 sprintf(buf,"Number Of Vertices = %d, Number of Triangles = %d\n",m_NumberOfVertices,m_NumberOfTriangles);
5636 sDescription += buf;
5637
5638 sprintf(buf,"Number Of Inputs = %d, Number of Outputs = %d\n",m_nPCSChannels,m_nDeviceChannels);
5639 sDescription += buf;
5640
5641 if (nVerboseness > 75) {
5642 int c = 0;
5643 int d = 0;
5644 for (int i=0; i<m_NumberOfVertices; i++)
5645 {
5646 sprintf(buf,"V = %d:\t",i);
5647 sDescription += buf;
5648 for (int j=0; j<m_nPCSChannels; j++)
5649 {
5650 sprintf(buf,"%.4lf\t",m_PCSValues[c++]);
5651 sDescription += buf;
5652 }
5653 if (m_nDeviceChannels > 0)
5654 {
5655 sprintf(buf,":\t");
5656 sDescription += buf;
5657
5658 for (int j=0; j<m_nDeviceChannels; j++)
5659 {
5660 sprintf(buf,"%.4lf\t",m_DeviceValues[d++]);
5661 sDescription += buf;
5662 }
5663 }
5664 sprintf(buf,"\n");
5665 sDescription += buf;
5666 }
5667
5668 for (int i=0; i<m_NumberOfTriangles; i++)
5669 {
5670 sprintf(buf,"V1 = %u\tV2 = %u\tV3 = %u\n",m_Triangles[i].m_VertexNumbers[0],m_Triangles[i].m_VertexNumbers[1],m_Triangles[i].m_VertexNumbers[2]);
5671 sDescription += buf;
5672 }
5673 }
5674}
char icChar
Definition IccDefs.h:109

References m_DeviceValues, m_nDeviceChannels, m_nPCSChannels, m_NumberOfTriangles, m_NumberOfVertices, m_PCSValues, and m_Triangles.

◆ GetClassName()

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

Reimplemented from CIccTag.

Definition at line 622 of file IccTagLut.h.

622{ return "icSigTagGamutBoundaryDesc"; }

◆ getNumberOfTriangles()

icInt32Number CIccTagGamutBoundaryDesc::getNumberOfTriangles ( )
inline

Definition at line 642 of file IccTagLut.h.

643 {
644 return m_NumberOfTriangles;
645 }

◆ getNumberOfVertices()

icInt32Number CIccTagGamutBoundaryDesc::getNumberOfVertices ( )
inline

Definition at line 637 of file IccTagLut.h.

638 {
639 return m_NumberOfVertices;
640 }

◆ getNumDeviceChannels()

icInt16Number CIccTagGamutBoundaryDesc::getNumDeviceChannels ( )
inline

Definition at line 652 of file IccTagLut.h.

653 {
654 return m_nDeviceChannels;
655 }

◆ getNumPCSChannels()

icInt16Number CIccTagGamutBoundaryDesc::getNumPCSChannels ( )
inline

Definition at line 647 of file IccTagLut.h.

648 {
649 return m_nPCSChannels;
650 }

◆ getTriangle()

bool CIccTagGamutBoundaryDesc::getTriangle ( icInt32Number triangleNumber,
icGamutBoundaryTriangle & triangle )

Name: CIccTagGamutBoundaryDescription::getTriangle.

Purpose: Dump data associated with gamut boundary tag to a string

Args: triangleNumber = the number of the triangle to set triangle = the triangle to copy from the gamut boundary

Return: true = succesful, false = failure

Definition at line 5788 of file IccTagLut.cpp.

5789{
5790 if ((triangleNumber < 0) || (triangleNumber >= m_NumberOfTriangles))
5791 return false;
5792
5793 memcpy(&triangle,&m_Triangles[triangleNumber],sizeof(icGamutBoundaryTriangle));
5794 return true;
5795}

References m_NumberOfTriangles, and m_Triangles.

◆ GetType()

virtual icTagTypeSignature CIccTagGamutBoundaryDesc::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 621 of file IccTagLut.h.

@ icSigGamutBoundaryDescType

References icSigGamutBoundaryDescType.

Referenced by Write().

+ Here is the caller graph for this function:

◆ getVertexDeviceCoord()

icFloatNumber * CIccTagGamutBoundaryDesc::getVertexDeviceCoord ( icInt32Number vertexNumber)

Name: CIccTagGamutBoundaryDescription::getVertexDeviceCoord.

Purpose: Dump data associated with gamut boundaty tag to a string

Args: vertexNumber = the number of the vertex to get

Return: NULL = failure, otherwise a pointer to the device coordinate

Definition at line 5738 of file IccTagLut.cpp.

5739{
5740 if ((vertexNumber < 0) || (vertexNumber >= m_NumberOfVertices))
5741 return NULL;
5742
5743 if (!m_DeviceValues)
5744 return NULL;
5745
5746 return &m_DeviceValues[vertexNumber*m_nDeviceChannels];
5747}

References m_DeviceValues, m_nDeviceChannels, and m_NumberOfVertices.

◆ getVertexPCSCoord()

icFloatNumber * CIccTagGamutBoundaryDesc::getVertexPCSCoord ( icInt32Number vertexNumber)

Name: CIccTagGamutBoundaryDescription::getVertexPCSCoord.

Purpose: Dump data associated with gamut boundary tag to a string

Args: vertexNumber = the number of the vertex to get

Return: NULL = failure, otherwise a pointer to the PCS coordinate

Definition at line 5717 of file IccTagLut.cpp.

5718{
5719 if ((vertexNumber < 0) || (vertexNumber >= m_NumberOfVertices))
5720 return NULL;
5721
5722 return &m_PCSValues[vertexNumber*m_nPCSChannels];
5723}

References m_nPCSChannels, m_NumberOfVertices, and m_PCSValues.

◆ NewCopy()

virtual CIccTag * CIccTagGamutBoundaryDesc::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 618 of file IccTagLut.h.

618{return new CIccTagGamutBoundaryDesc(*this);}
CIccTagGamutBoundaryDesc()
Name: CIccTagGamutBoundaryDescription::CIccTagGamutBoundaryDescription.

◆ operator=()

CIccTagGamutBoundaryDesc & CIccTagGamutBoundaryDesc::operator= ( const CIccTagGamutBoundaryDesc & InGamutBoundaryTag)

Name: CIccTagGamutBoundaryDescription::operator=.

Purpose: Constructor

Args: InGamutBoundaryTag = the CIccTagGamutBoundaryDescription object to copy

Definition at line 5417 of file IccTagLut.cpp.

5418{
5419 if (&InGamutBoundaryTag == this)
5420 return *this;
5421
5422 m_NumberOfVertices = InGamutBoundaryTag.m_NumberOfVertices;
5423 m_NumberOfTriangles = InGamutBoundaryTag.m_NumberOfTriangles;
5424 m_nPCSChannels = InGamutBoundaryTag.m_nPCSChannels;
5425 m_nDeviceChannels = InGamutBoundaryTag.m_nDeviceChannels;
5426
5428
5429 if (m_nDeviceChannels > 0)
5430 {
5432 }
5433 else
5434 {
5435 m_DeviceValues = NULL;
5436 }
5438
5439 memcpy(m_PCSValues,InGamutBoundaryTag.m_PCSValues,m_nPCSChannels*m_NumberOfVertices*sizeof(icFloatNumber));
5440 if (m_DeviceValues)
5442 memcpy(m_Triangles,InGamutBoundaryTag.m_Triangles,m_NumberOfTriangles*sizeof(icGamutBoundaryTriangle));
5443
5444 return *this;
5445}

References m_DeviceValues, m_nDeviceChannels, m_nPCSChannels, m_NumberOfTriangles, m_NumberOfVertices, m_PCSValues, and m_Triangles.

◆ Read()

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

Name: CIccTagGamutBoundaryDescription::Read.

Purpose: Read in an gamut boundary tag type 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 5481 of file IccTagLut.cpp.

5482{
5484
5485 if (sizeof(icTagTypeSignature) +
5486 sizeof(icUInt32Number)*3 +
5487 sizeof(icUInt16Number)*2 > size)
5488 return false;
5489
5490 if (!pIO) {
5491 return false;
5492 }
5493
5494 if (!pIO->Read32(&sig) ||
5495 !pIO->Read32(&m_nReserved))
5496 return false;
5497
5498 if (!pIO->Read16(&m_nPCSChannels) ||
5499 !pIO->Read16(&m_nDeviceChannels))
5500 return false;
5501
5502 if (!pIO->Read32(&m_NumberOfVertices) ||
5504 return false;
5505
5506 if (sizeof(icTagTypeSignature) +
5507 sizeof(icUInt32Number)*3 +
5508 sizeof(icUInt16Number)*2 +
5512 return false;
5513
5514 if (m_PCSValues)
5515 delete [] m_PCSValues;
5516 if (m_DeviceValues)
5517 delete [] m_DeviceValues;
5518 if (m_Triangles)
5519 delete [] m_Triangles;
5520
5522
5523 if (!m_PCSValues)
5524 return false;
5525
5526 if (m_nDeviceChannels > 0)
5527 {
5529
5530 if (!m_DeviceValues)
5531 return false;
5532 }
5533 else
5534 {
5535 m_DeviceValues = NULL;
5536 }
5538
5540
5541 if (pIO->Read32(m_Triangles, nNum32)!=nNum32)
5542 return false;
5543
5545
5546 if (pIO->ReadFloat32Float(m_PCSValues, nNum32)!=nNum32)
5547 return false;
5548
5549 if (m_nDeviceChannels > 0)
5550 {
5552
5553 if (pIO->ReadFloat32Float(m_DeviceValues, nNum32)!=nNum32)
5554 return false;
5555 }
5556
5557 return true;
5558}
icArraySignature sig
icTagTypeSignature
unsigned int icUInt32Number
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
icUInt32Number m_nReserved
float icFloat32Number
unsigned short icUInt16Number
icUInt32Number icUInt64Number[2]

References m_DeviceValues, m_nDeviceChannels, m_nPCSChannels, CIccTag::m_nReserved, m_NumberOfTriangles, m_NumberOfVertices, m_PCSValues, m_Triangles, CIccIO::Read16(), CIccIO::Read32(), CIccIO::ReadFloat32Float(), and sig.

+ Here is the call graph for this function:

◆ setTriangle()

bool CIccTagGamutBoundaryDesc::setTriangle ( icInt32Number triangleNumber,
icGamutBoundaryTriangle & triangle )

Name: CIccTagGamutBoundaryDescription::setTriangle.

Purpose: Dump data associated with gamut boundary tag to a string

Args: triangleNumber = the number of the triangle to set triangle = the triangle to copy into the gamut boundary

Return: true = succesful, false = failure

Definition at line 5763 of file IccTagLut.cpp.

5764{
5765 if ((triangleNumber < 0) || (triangleNumber >= m_NumberOfTriangles))
5766 return false;
5767
5768 memcpy(&m_Triangles[triangleNumber],&triangle,sizeof(icGamutBoundaryTriangle));
5769
5770 return true;
5771}

References m_NumberOfTriangles, and m_Triangles.

◆ setVertex()

bool CIccTagGamutBoundaryDesc::setVertex ( icInt32Number vertexNumber,
icFloatNumber * pcsCoords,
icFloatNumber * deviceCoords = NULL )

Name: CIccTagGamutBoundaryDescription::setVertex.

Purpose: Dump data associated with gamut boundary tag to a string

Args: vertexNumber = the number of the vertex to set pcsCoords = the pcs coordinates of the vertex deviceCoords = the device coordinates of the vertex

Return: true = succesful, false = failure

Definition at line 5691 of file IccTagLut.cpp.

5692{
5693 if ((vertexNumber < 0) || (vertexNumber >= m_NumberOfVertices))
5694 return false;
5695
5696 memcpy(&m_PCSValues[vertexNumber*m_nPCSChannels],pcsCoords,sizeof(icFloatNumber)*m_nPCSChannels);
5697 if ((m_DeviceValues) && (deviceCoords))
5698 memcpy(&m_DeviceValues[vertexNumber*m_nDeviceChannels],deviceCoords,sizeof(icFloatNumber)*m_nDeviceChannels);
5699
5700 return true;
5701}

References m_DeviceValues, m_nDeviceChannels, m_nPCSChannels, m_NumberOfVertices, and m_PCSValues.

◆ Validate()

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

Name: CIccTagGamutBoundaryDescription::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 5813 of file IccTagLut.cpp.

5814{
5815 icValidateStatus rv = CIccTag::Validate(sigPath, sReport, pProfile);
5816
5817 CIccInfo Info;
5818 std::string sSigPathName = Info.GetSigPathName(sigPath);
5819
5820 if ((m_NumberOfVertices == 0) || (m_NumberOfTriangles == 0) || (m_nPCSChannels < 3)) {
5821 sReport += icMsgValidateWarning;
5822 sReport += sSigPathName;
5823 sReport += " - Invalid tag.\n";
5824
5826 return rv;
5827 }
5828
5829 return rv;
5830}
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
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::GetSigPathName(), icMaxStatus(), icMsgValidateWarning, icValidateWarning, m_nPCSChannels, m_NumberOfTriangles, m_NumberOfVertices, and CIccTag::Validate().

+ Here is the call graph for this function:

◆ Write()

bool CIccTagGamutBoundaryDesc::Write ( CIccIO * pIO)
virtual

Name: CIccTagGamutBoundaryDescription::Write.

Purpose: Write a gamut boundary type tag to a file

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

Return: true = succesful, false = failure

Reimplemented from CIccTag.

Definition at line 5573 of file IccTagLut.cpp.

5574{
5575
5577
5578 if (!pIO) {
5579 return false;
5580 }
5581
5582 icUInt32Number startPos = pIO->GetLength();
5583
5584 if (!pIO->Write32(&sig) ||
5585 !pIO->Write32(&m_nReserved))
5586 return false;
5587
5588
5589 if (!pIO->Write16(&m_nPCSChannels) ||
5590 !pIO->Write16(&m_nDeviceChannels))
5591 return false;
5592
5593 if (!pIO->Write32(&m_NumberOfVertices) ||
5595 return false;
5596
5598
5599 if (pIO->Write32(m_Triangles, nNum32)!=nNum32)
5600 return false;
5601
5602
5604
5605 if (pIO->WriteFloat32Float(m_PCSValues, nNum32)!=nNum32)
5606 return false;
5607
5608 if (m_nDeviceChannels > 0)
5609 {
5611
5612 if (pIO->WriteFloat32Float(m_DeviceValues, nNum32)!=nNum32)
5613 return false;
5614 }
5615
5616 return true;
5617
5618}
virtual icInt32Number GetLength()
Definition IccIO.h:130
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
virtual icTagTypeSignature GetType() const
Function: GetType()
Definition IccTagLut.h:621

References CIccIO::GetLength(), GetType(), m_DeviceValues, m_nDeviceChannels, m_nPCSChannels, CIccTag::m_nReserved, m_NumberOfTriangles, m_NumberOfVertices, m_PCSValues, m_Triangles, sig, CIccIO::Write16(), CIccIO::Write32(), and CIccIO::WriteFloat32Float().

+ Here is the call graph for this function:

Member Data Documentation

◆ m_DeviceValues

◆ m_nDeviceChannels

icInt16Number CIccTagGamutBoundaryDesc::m_nDeviceChannels
protected

◆ m_nPCSChannels

icInt16Number CIccTagGamutBoundaryDesc::m_nPCSChannels
protected

◆ m_NumberOfTriangles

icInt32Number CIccTagGamutBoundaryDesc::m_NumberOfTriangles
protected

◆ m_NumberOfVertices

◆ m_PCSValues

◆ m_Triangles


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