Hoyt's FORK of DemoIccMAX 2.1.17.hoyt
Documentation for Hoyt's FORK of DemoIccMAX
Loading...
Searching...
No Matches
IccStructBasic.h
Go to the documentation of this file.
1/** @file
2 File: IccStructBasic.h
3
4 Contains: Header for implementation of basic IccStruct handlers
5
6 Version: V1
7
8 Copyright: � see ICC Software License
9*/
10
11/*
12 * The ICC Software License, Version 0.2
13 *
14 *
15 * Copyright (c) 2003-2012 The International Color Consortium. All rights
16 * reserved.
17 *
18 * Redistribution and use in source and binary forms, with or without
19 * modification, are permitted provided that the following conditions
20 * are met:
21 *
22 * 1. Redistributions of source code must retain the above copyright
23 * notice, this list of conditions and the following disclaimer.
24 *
25 * 2. Redistributions in binary form must reproduce the above copyright
26 * notice, this list of conditions and the following disclaimer in
27 * the documentation and/or other materials provided with the
28 * distribution.
29 *
30 * 3. In the absence of prior written permission, the names "ICC" and "The
31 * International Color Consortium" must not be used to imply that the
32 * ICC organization endorses or promotes products derived from this
33 * software.
34 *
35 *
36 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
37 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
38 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
39 * DISCLAIMED. IN NO EVENT SHALL THE INTERNATIONAL COLOR CONSORTIUM OR
40 * ITS CONTRIBUTING MEMBERS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
41 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
42 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
43 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
44 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
45 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
46 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
47 * SUCH DAMAGE.
48 * ====================================================================
49 *
50 * This software consists of voluntary contributions made by many
51 * individuals on behalf of the The International Color Consortium.
52 *
53 *
54 * Membership in the ICC is encouraged when this software is used for
55 * commercial purposes.
56 *
57 *
58 * For more information on The International Color Consortium, please
59 * see <http://www.color.org/>.
60 *
61 *
62 */
63
64//////////////////////////////////////////////////////////////////////
65// HISTORY:
66//
67// -Initial implementation by Max Derhak 7-27-2011
68//
69//////////////////////////////////////////////////////////////////////
70
71#if !defined(_ICCSTRUCTBASIC_H)
72#define _ICCSTRUCTBASIC_H
73
74#include <list>
75#include <string>
76#include "IccDefs.h"
77#include "IccTagComposite.h"
78#ifdef USEREFICCMAXNAMESPACE
79namespace refIccMAX {
80#endif
81
87
88/**
89****************************************************************************
90* Class: CIccStructUnknown
91*
92* Purpose: The Unknown struct handler
93*****************************************************************************
94*/
96{
97public:
98 CIccStructUnknown(CIccTagStruct *pTagStruct=NULL);
99 virtual ~CIccStructUnknown();
100 virtual IIccStruct* NewCopy(CIccTagStruct *pNewTagStruct) const;
101
102 virtual void Describe(std::string &sDescription, int nVerboseness) const;
103
104 virtual const icChar *GetClassName() const { return "CIccStructUnknown"; }
105 virtual const icChar *GetDisplayName() const { return "privateStruct"; }
106
107 virtual std::string GetElemName(icSignature sigElem) const;
108 virtual icSignature GetElemSig(const icChar *szElemName) const;
109
110 CIccTag *GetElem(icSignature sigElem) const;
111
112 virtual icValidateStatus Validate(std::string sigPath, std::string &sReport, const CIccProfile* pProfile = NULL) const;
113
114protected:
116
117};
118
119/**
120****************************************************************************
121* Class: CIccStructNamedColor
122*
123* Purpose: The Named Color struct handler
124*****************************************************************************
125*/
127{
128public:
129 CIccStructNamedColor(CIccTagStruct *pTagStruct=NULL);
130 virtual ~CIccStructNamedColor();
131 virtual IIccStruct* NewCopy(CIccTagStruct *pNewTagStruct) const;
132
133 virtual const icChar *GetClassName() const { return "CIccStructNamedColor"; }
134 virtual const icChar *GetDisplayName() const { return "namedColorStructure"; }
135
136 std::string getName() const;
137
138 bool GetTint(icFloatNumber *dstColor,
139 icFloatNumber tint,
140 CIccTagNumArray *pZero,
141 icSignature sigElem,
142 icUInt32Number nSamples) const;
143
144 CIccTagNumArray *GetNumArray(icSignature sigElem) const;
145
146 icValidateStatus Validate(std::string sigPath, std::string &sReport, const CIccProfile* pProfile/* = NULL*/) const;
147
148protected:
149
150};
151
152
153/**
154****************************************************************************
155* Class: CIccStructBRDF
156*
157* Purpose: The BRDF struct handler
158*****************************************************************************
159*/
161{
162public:
163 CIccStructBRDF(CIccTagStruct *pTagStruct=NULL);
164 virtual ~CIccStructBRDF();
165 virtual IIccStruct* NewCopy(CIccTagStruct *pNewTagStruct) const;
166
167 virtual const icChar *GetClassName() const { return "CIccStructBRDF"; }
168 virtual const icChar *GetDisplayName() const { return "brdfTransformStructure"; }
169
170 virtual icSigBRDFType GetBRDFType() const;
171
172 virtual icSigBRDFFunction GetBRDFFunction() const;
173
174 virtual icValidateStatus Validate(std::string sigPath, std::string &sReport, const CIccProfile* pProfile = NULL) const;
175
176protected:
177
178};
179
180
181/**
182****************************************************************************
183* Class: CIccStructColorEncodingParams
184*
185* Purpose: The colorEncodingParamsStructure handler
186*****************************************************************************
187*/
189{
190public:
193 virtual IIccStruct* NewCopy(CIccTagStruct *pNewTagStruct) const;
194
195 virtual const icChar *GetClassName() const { return "CIccStructColorEncodingParams"; }
196 virtual const icChar *GetDisplayName() const { return "colorEncodingParamsStructure"; }
197
198protected:
199
200};
201
202
203/**
204****************************************************************************
205* Class: CIccStructColorantInfo
206*
207* Purpose: The Named Color struct handler
208*****************************************************************************
209*/
211{
212public:
213 CIccStructColorantInfo(CIccTagStruct *pTagStruct = NULL);
214 virtual ~CIccStructColorantInfo();
215 virtual IIccStruct* NewCopy(CIccTagStruct *pNewTagStruct) const;
216
217 virtual const icChar *GetClassName() const { return "CIccStructColorantInfo"; }
218 virtual const icChar *GetDisplayName() const { return "colorantInfoStructure"; }
219
220 virtual icValidateStatus Validate(std::string sigPath, std::string &sReport, const CIccProfile* pProfile = NULL) const;
221
222protected:
223
224};
225
226
227/**
228****************************************************************************
229* Class: CIccStructMeasurementInfo
230*
231* Purpose: The Named Color struct handler
232*****************************************************************************
233*/
235{
236public:
237 CIccStructMeasurementInfo(CIccTagStruct *pTagStruct = NULL);
239 virtual IIccStruct* NewCopy(CIccTagStruct *pNewTagStruct) const;
240
241 virtual const icChar *GetClassName() const { return "CIccStructMeasurementInfo"; }
242 virtual const icChar *GetDisplayName() const { return "measurementInfoStructure"; }
243
244protected:
245
246};
247
248
249/**
250****************************************************************************
251* Class: CIccStructProfileInfo
252*
253* Purpose: The Named Color struct handler
254*****************************************************************************
255*/
257{
258public:
259 CIccStructProfileInfo(CIccTagStruct *pTagStruct = NULL);
260 virtual ~CIccStructProfileInfo();
261 virtual IIccStruct* NewCopy(CIccTagStruct *pNewTagStruct) const;
262
263 virtual const icChar *GetClassName() const { return "CIccStructProfileInfo"; }
264 virtual const icChar *GetDisplayName() const { return "profileInfoStructure"; }
265
266protected:
267
268};
269
270
271/**
272****************************************************************************
273* Class: CIccStructTintZero
274*
275* Purpose: The Named Color struct handler
276*****************************************************************************
277*/
279{
280public:
281 CIccStructTintZero(CIccTagStruct *pTagStruct = NULL);
282 virtual ~CIccStructTintZero();
283 virtual IIccStruct* NewCopy(CIccTagStruct *pNewTagStruct) const;
284
285 virtual const icChar *GetClassName() const { return "CIccStructTintZero"; }
286 virtual const icChar *GetDisplayName() const { return "tintZeroStructure"; }
287
288protected:
289
290};
291
292
293#ifdef USEREFICCMAXNAMESPACE
294} //namespace refIccMAX
295#endif
296
297#endif // !defined(_ICCSTRUCTBASIC_H)
File: IccDefs.h
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
#define ICCPROFLIB_API
File: IccTagComposite.h.
unsigned int icUInt32Number
Class: CIccStructBRDF.
virtual const icChar * GetClassName() const
virtual const icChar * GetDisplayName() const
Class: CIccStructColorEncodingParams.
virtual const icChar * GetDisplayName() const
virtual const icChar * GetClassName() const
Class: CIccStructColorantInfo.
virtual const icChar * GetDisplayName() const
virtual const icChar * GetClassName() const
Class: CIccStructMeasurementInfo.
virtual const icChar * GetDisplayName() const
virtual const icChar * GetClassName() const
Class: CIccStructNamedColor.
virtual const icChar * GetDisplayName() const
virtual const icChar * GetClassName() const
Class: CIccStructProfileInfo.
virtual const icChar * GetDisplayName() const
virtual const icChar * GetClassName() const
Class: CIccStructTintZero.
virtual const icChar * GetClassName() const
virtual const icChar * GetDisplayName() const
Class: CIccStructUnknown.
virtual const icChar * GetClassName() const
SIccElemNameSig * m_pElemNameSigTable
virtual const icChar * GetDisplayName() const
Class: CIccTag.
Class: CIccTagNumArray.
Class: CIccTagStruct.
Class: IIccStruct.
icSigBRDFType
BRDF type signatures.
icUInt32Number icSignature
icSigBRDFFunction
BRDF function signatures.
icSignature nSig
const icChar * szName