Hoyt's FORK of DemoIccMAX 2.1.17.hoyt
Documentation for Hoyt's FORK of DemoIccMAX
Loading...
Searching...
No Matches
IccMpeACS.h
Go to the documentation of this file.
1/** @file
2File: IccMpeACS.h
3
4Contains: Header for implementation of CIccTagMultiProcessElement
5ACS elements and supporting classes
6
7Version: V1
8
9Copyright: (c) see ICC Software License
10*/
11
12/*
13* The ICC Software License, Version 0.2
14*
15*
16* Copyright (c) 2005 The International Color Consortium. All rights
17* reserved.
18*
19* Redistribution and use in source and binary forms, with or without
20* modification, are permitted provided that the following conditions
21* are met:
22*
23* 1. Redistributions of source code must retain the above copyright
24* notice, this list of conditions and the following disclaimer.
25*
26* 2. Redistributions in binary form must reproduce the above copyright
27* notice, this list of conditions and the following disclaimer in
28* the documentation and/or other materials provided with the
29* distribution.
30*
31* 3. In the absence of prior written permission, the names "ICC" and "The
32* International Color Consortium" must not be used to imply that the
33* ICC organization endorses or promotes products derived from this
34* software.
35*
36*
37* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
38* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
39* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
40* DISCLAIMED. IN NO EVENT SHALL THE INTERNATIONAL COLOR CONSORTIUM OR
41* ITS CONTRIBUTING MEMBERS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
42* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
43* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
44* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
45* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
46* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
47* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
48* SUCH DAMAGE.
49* ====================================================================
50*
51* This software consists of voluntary contributions made by many
52* individuals on behalf of the The International Color Consortium.
53*
54*
55* Membership in the ICC is encouraged when this software is used for
56* commercial purposes.
57*
58*
59* For more information on The International Color Consortium, please
60* see <http://www.color.org/>.
61*
62*
63*/
64
65//////////////////////////////////////////////////////////////////////
66// HISTORY:
67//
68// -Jan 30, 2005
69// Initial CIccMpeent prototype development
70//
71//////////////////////////////////////////////////////////////////////
72
73#ifndef _ICCMPEACS_H
74#define _ICCMPEACS_H
75
76#include "IccTagMPE.h"
77
78
79//CIccFloatTag support
80#ifdef USEREFICCMAXNAMESPACE
81namespace refIccMAX {
82#endif
83
84/**
85****************************************************************************
86* Class: CIccMpeAcs
87*
88* Purpose: The alternate connection space base class element
89*****************************************************************************
90*/
92{
93public:
94 virtual ~CIccMpeAcs();
95 virtual void Describe(std::string &sDescription, int nVerboseness);
96
97 virtual bool Read(icUInt32Number size, CIccIO *pIO);
98 virtual bool Write(CIccIO *pIO);
99
100 virtual bool Begin(icElemInterp nInterp, CIccTagMultiProcessElement *pMPE);
101 virtual void Apply(CIccApplyMpe *pApply, icFloatNumber *dstPixel, const icFloatNumber *srcPixel) const;
102
103 virtual icValidateStatus Validate(std::string sigPath, std::string &sReport, const CIccTagMultiProcessElement* pMPE=NULL, const CIccProfile* pProfile = NULL) const;
104
105 virtual bool IsAcs() { return true; }
106
107 bool AllocData(icUInt32Number size);
108 icUInt8Number* GetData() { return m_pData; }
109 icUInt32Number GetDataSize() { return m_nDataSize; }
110
111 virtual icAcsSignature GetAcsSig() { return m_signature; }
112
113protected:
114 CIccMpeAcs();
116
119};
120
121
122
123/**
124****************************************************************************
125* Class: CIccMpeBAcs
126*
127* Purpose: The bACS element
128*****************************************************************************
129*/
131{
132public:
134 CIccMpeBAcs(const CIccMpeBAcs &elemAcs);
135 CIccMpeBAcs &operator=(const CIccMpeBAcs &elemAcs);
136 virtual CIccMultiProcessElement *NewCopy() const { return new CIccMpeBAcs(*this);}
137 virtual ~CIccMpeBAcs();
138
140 virtual const icChar *GetClassName() const { return "CIccMpeBAcs"; }
141
142 virtual icAcsSignature GetBAcsSig() { return m_signature; }
143
144};
145
146
147/**
148****************************************************************************
149* Class: CIccMpeEndAcs
150*
151* Purpose: The eAcs element
152*****************************************************************************
153*/
155{
156public:
158 CIccMpeEAcs(const CIccMpeEAcs &elemAcs);
159 CIccMpeEAcs &operator=(const CIccMpeEAcs &elemAcs);
160 virtual CIccMultiProcessElement *NewCopy() const { return new CIccMpeEAcs(*this);}
161 virtual ~CIccMpeEAcs();
162
164 virtual const icChar *GetClassName() const { return "CIccMpeEAcs"; }
165
166 virtual icAcsSignature GetEAcsSig() { return m_signature;}
167};
168
169
170//CIccMPElements support
171#ifdef USEREFICCMAXNAMESPACE
172}
173#endif
174
175#endif //_ICCMPEACS_H
icArraySignature sig
float icFloatNumber
All floating point operations/variables in IccProfLib use the icFloatNumber data type.
Definition IccDefs.h:100
char icChar
Definition IccDefs.h:109
icValidateStatus
Definition IccDefs.h:118
File: IccTagMPE.h.
icElemInterp
Definition IccTagMPE.h:93
unsigned int icUInt32Number
Class: CIccApplyMpe.
Definition IccTagMPE.h:203
Type: Class.
Definition IccIO.h:97
Class: CIccMpeAcs.
Definition IccMpeACS.h:92
virtual icAcsSignature GetAcsSig()
Definition IccMpeACS.h:111
icAcsSignature m_signature
Definition IccMpeACS.h:115
icUInt32Number GetDataSize()
Definition IccMpeACS.h:109
virtual bool IsAcs()
Definition IccMpeACS.h:105
icUInt8Number * GetData()
Definition IccMpeACS.h:108
icUInt32Number m_nDataSize
Definition IccMpeACS.h:117
icUInt8Number * m_pData
Definition IccMpeACS.h:118
Class: CIccMpeBAcs.
Definition IccMpeACS.h:131
virtual const icChar * GetClassName() const
Definition IccMpeACS.h:140
virtual CIccMultiProcessElement * NewCopy() const
Definition IccMpeACS.h:136
virtual icAcsSignature GetBAcsSig()
Definition IccMpeACS.h:142
virtual icElemTypeSignature GetType() const
Definition IccMpeACS.h:139
Class: CIccMpeEndAcs.
Definition IccMpeACS.h:155
virtual icAcsSignature GetEAcsSig()
Definition IccMpeACS.h:166
virtual CIccMultiProcessElement * NewCopy() const
Definition IccMpeACS.h:160
virtual icElemTypeSignature GetType() const
Definition IccMpeACS.h:163
virtual const icChar * GetClassName() const
Definition IccMpeACS.h:164
Class: CIccMultiProcessElement.
Definition IccTagMPE.h:146
Class: CIccTagMultiProcessElement.
Definition IccTagMPE.h:358
unsigned char icUInt8Number
Number definitions.
icSignature icAcsSignature
MPE Future Extension Acs signature.
unsigned short icUInt16Number
icElemTypeSignature
Multi-Processing Element type signatures.
@ icSigBAcsElemType
@ icSigEAcsElemType