Mako 8.2.0 API
MakoCore SDK API Documentation
Loading...
Searching...
No Matches
idomcolorspace.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2007-2025 Global Graphics Software Ltd. All rights reserved.
3 */
4
5#ifndef EDLIDOMCOLORSPACE_H
6#define EDLIDOMCOLORSPACE_H
7
8#include <stdarg.h>
9#include <edl/idomfunction.h>
12#include <edl/edlmath.h>
13#include <edl/edltypes.h>
14#include <edl/iedlobject.h>
15#include <edl/idomresources.h>
16#include <edl/edlvector.h>
17#include <edl/idomhashable.h>
18#include <edl/edlerrors.h>
19
21
22class IDOMColorSpace;
24
25
43{
44 public:
45 virtual ~IDOMColorSpace() {}
46
70
77
82 virtual uint8 getNumComponents() = 0;
83
92 virtual bool getComponentsHaveSameRange() = 0;
93
94#ifdef SWIG
95 %apply float &OUTPUT { float &low };
96 %apply float &OUTPUT { float &high };
97#endif
106 virtual bool getComponentRange(int component, float &low, float &high) = 0;
107#ifdef SWIG
108 %clear float &low;
109 %clear float &high;
110#endif
111
117
126 virtual EDLRawString getColorantName(uint8 component) const = 0;
127
138 virtual bool equals(const IDOMColorSpacePtr &colorSpace, bool exact = false) = 0;
139
151 virtual bool similar(const IDOMColorSpacePtr &colorSpace, eRenderingIntent intent, eBlackPointCompensation bpc) = 0;
152};
153#define edlobj2IDOMColorSpace(src) edl_cast((IDOMColorSpace *)NULL, src)
154
155
158
165{
166#define IDOMColorSpacesRGBClassID 0xbc9883fc, 0x15d34522, 0xa339ae75, 0xba783f1a
167 public:
169
176 static EDL_API IDOMColorSpacesRGBPtr create(IEDLClassFactory *pFactory);
177
182 static const CClassID &classID()
183 {
185 return id;
186 };
187};
188#define edlobj2IDOMColorSpacesRGB(src) edl_cast((IDOMColorSpacesRGB *)NULL, src)
189
190
193
204{
205#define IDOMColorSpacesGrayClassID 0x21164cec, 0x039345e2, 0xbd7d2a20, 0x91116c09
206 public:
208
215 static EDL_API IDOMColorSpacesGrayPtr create(IEDLClassFactory *pFactory);
216
221 static const CClassID &classID()
222 {
224 return id;
225 };
226
227};
228#define edlobj2IDOMColorSpacesGray(src) edl_cast((IDOMColorSpacesGray *)NULL, src)
229
230
233
244{
245#define IDOMColorSpacescRGBClassID 0xdf8fb57c, 0xd20e11db, 0x9fdeecb6, 0x55d89593
246 public:
248
255 static EDL_API IDOMColorSpacescRGBPtr create(IEDLClassFactory *pFactory);
256
261 static const CClassID &classID()
262 {
264 return id;
265 };
266
267};
268#define edlobj2IDOMColorSpacescRGB(src) edl_cast((IDOMColorSpacescRGB *)NULL, src)
269
270
273
280{
281#define IDOMColorSpaceDeviceRGBClassID 0x5A615EA5, 0xFBF2440D, 0xAE04C3BD, 0xF0758C02
282 public:
284
291 static EDL_API IDOMColorSpaceDeviceRGBPtr create(IEDLClassFactory *pFactory);
292
297 static const CClassID &classID()
298 {
300 return id;
301 };
302
303};
304#define edlobj2IDOMColorSpaceDeviceRGB(src) edl_cast((IDOMColorSpaceDeviceRGB *)NULL, src)
305
306
309
316{
317#define IDOMColorSpaceDeviceGrayClassID 0x8FB5ECD1, 0x18C2447E, 0x91ABB50F, 0xE4E70A0D
318 public:
320
327 static EDL_API IDOMColorSpaceDeviceGrayPtr create(IEDLClassFactory *pFactory);
328
333 static const CClassID &classID()
334 {
336 return id;
337 };
338
339};
340#define edlobj2IDOMColorSpaceDeviceGray(src) edl_cast((IDOMColorSpaceDeviceGray *)NULL, src)
341
342
345
352{
353#define IDOMColorSpaceDeviceCMYKClassID 0x6F31A7BC, 0x4B994A3C, 0x9FFE836F, 0xE5C07FBB
354 public:
356
363 static EDL_API IDOMColorSpaceDeviceCMYKPtr create(IEDLClassFactory *pFactory);
364
369 static const CClassID &classID()
370 {
372 return id;
373 };
374
375};
376#define edlobj2IDOMColorSpaceDeviceCMYK(src) edl_cast((IDOMColorSpaceDeviceCMYK *)NULL, src)
377
378
381
390{
391#define IDOMColorSpaceDeviceCMYClassID 0x27849B58, 0x9E584782, 0x876CE042, 0x5A91C168
392
393 public:
395
402 static EDL_API IDOMColorSpaceDeviceCMYPtr create(IEDLClassFactory *pFactory);
403
408 static const CClassID &classID()
409 {
411 return id;
412 };
413
414};
415#define edlobj2IDOMColorSpaceDeviceCMY(src) edl_cast((IDOMColorSpaceDeviceCMY *)NULL, src)
416
417
418
421
428{
429#define IDOMColorSpaceICCBasedClassID 0xd67937e4, 0x7a1d4f5f, 0xb950bc30, 0x38474418
430 public:
432
442 static EDL_API IDOMColorSpaceICCBasedPtr create(IEDLClassFactory *pFactory, const IDOMICCProfilePtr &profile, const IDOMColorSpacePtr &alternate = IDOMColorSpacePtr());
443
448 class Data : public CClassParams
449 {
450 public:
452 {}
453 Data(IDOMICCProfilePtr &pICCProfile):
454 m_pICCProfile(pICCProfile), m_AlternateSpace(0)
455 {}
456 Data(IDOMICCProfilePtr &pICCProfile, IDOMColorSpacePtr &pAlt):
457 m_pICCProfile(pICCProfile), m_AlternateSpace(pAlt)
458 {}
459 IDOMICCProfilePtr m_pICCProfile;
460 IDOMColorSpacePtr m_AlternateSpace; /* PDF alternate color space */
461 };
462
467 static const CClassID &classID()
468 {
470 return id;
471 };
472
480 virtual IDOMICCProfilePtr getICCProfile() = 0;
481
486 virtual void setICCProfile(const IDOMICCProfilePtr &profile) = 0;
487
492 virtual IDOMColorSpacePtr getAlternateColorSpace() const = 0;
493
498 virtual bool getIsLabColorSpace() const = 0;
499
504 virtual bool getIsDeviceLink() const = 0;
505};
506
507#define edlobj2IDOMColorSpaceICCBased(src) edl_cast((IDOMColorSpaceICCBased *)NULL, src)
508
509
512
524{
525#define IDOMColorSpaceIndexedClassID 0x0ef4de20, 0x5f914784, 0x9b607760, 0x6ae02137
526 public:
528
538 static EDL_API IDOMColorSpaceIndexedPtr create(IEDLClassFactory *pFactory, const IDOMColorSpacePtr &underlying, const IDOMFunctionPtr &mappingFunction);
539
550 static EDL_API IDOMColorSpaceIndexedPtr create(IEDLClassFactory *pFactory, const IDOMColorSpacePtr &underlying, const CEDLVector<uint8> &table);
551
556 class Data : public CClassParams
557 {
558 public:
559 Data() {}
560 Data(IDOMColorSpacePtr &pUnderlying, IDOMFunctionPtr &pMapping):
561 pUnderlyingSpace(pUnderlying), pMappingFunction(pMapping)
562 {}
563 IDOMColorSpacePtr pUnderlyingSpace;
564 IDOMFunctionPtr pMappingFunction;
565 };
566
571 static const CClassID &classID()
572 {
574 return id;
575 };
576
582 virtual IDOMColorSpacePtr getUnderlyingColorSpace() = 0;
583
590 virtual IDOMFunctionPtr getMappingFunction() = 0;
591
592};
593#define edlobj2IDOMColorSpaceIndexed(src) edl_cast((IDOMColorSpaceIndexed *)NULL, src)
594
595
603{
604#define IDOMDeviceNColorantClassID 0x78fad1cd, 0x07cd43c8, 0x96f7e4cf, 0xd1f98d63
605 public:
607
612 class Data : public CClassParams
613 {
614 public:
615 Data() : hasSolidity(false), solidity(0.0)
616 {}
619 float solidity;
620 IDOMFunctionPtr pDotGainFunction;
621 IDOMColorSpacePtr pAlternateSpace;
622 IDOMFunctionPtr pTintTransform;
623 };
624
629 static const CClassID &classID()
630 {
632 return id;
633 };
634
640 virtual const EDLRawString& getName() = 0;
641
642#ifdef SWIG
643 %apply float &OUTPUT { float &solidity };
644#endif
650 virtual bool getSolidity(float &solidity) = 0;
651#ifdef SWIG
652 %clear float &solidity;
653#endif
654
660 virtual IDOMFunctionPtr getTintTransform() = 0;
661
667 virtual IDOMFunctionPtr getDotGainFunction() = 0;
668
673 virtual IDOMColorSpacePtr getAlternateColorSpace() = 0;
674};
675
677#define edlobj2IDOMDeviceNColorant(src) edl_cast((IDOMDeviceNColorant *) NULL, src)
679
682
691{
692#define IDOMColorSpaceDeviceNClassID 0x30404cc4, 0xa1d940ea, 0xb396c3b3, 0xa84d4bf7
693 public:
695
708 static EDL_API IDOMColorSpaceDeviceNPtr create(IEDLClassFactory *pFactory, const CEDLRawStringVect &colorants,
709 const IDOMColorSpacePtr &alternate, const IDOMFunctionPtr &tintTransform,
710 const IDOMColorSpacePtr &processColorSpace = IDOMColorSpacePtr());
711
727 static EDL_API IDOMColorSpaceDeviceNPtr create(IEDLClassFactory *pFactory, const CDeviceNColorantVect &colorants,
728 const IDOMColorSpacePtr &alternate, const IDOMFunctionPtr &tintTransform,
729 const IDOMColorSpacePtr &processColorSpace = IDOMColorSpacePtr(),
730 const CEDLRawStringVect &processComponents = CEDLRawStringVect (),
731 const CEDLRawStringVect &printingOrder = CEDLRawStringVect (),
732 bool isNChannel = false);
733
735 {
736 public:
738
739 MAKO_DEPRECATED_FUNC(CColorantInfo(const EDLRawString &_name, uint32 numComponents, ...), "Please use initializer list instead of variable arguments.")
740 {
741 va_list argPtr;
742 name = _name;
743 components.reserve(numComponents);
744
745 va_start(argPtr, numComponents);
746 for (uint32 i = 0; i < numComponents; i++)
747 {
748 components.append((float) va_arg(argPtr, double));
749 }
750 va_end(argPtr);
751 }
752
753 MAKO_DEPRECATED_FUNC(CColorantInfo(const EDLRawString &_name, const IDOMColorSpacePtr &_alternate, uint32 numComponents, ...), "Please use initializer list instead of variable arguments.")
754 {
755 va_list argPtr;
756 name = _name;
757 alternate = _alternate;
758 if (alternate && alternate->getNumComponents() != numComponents)
759 {
761 }
762 components.reserve(numComponents);
763
764 va_start(argPtr, numComponents);
765 for (uint32 i = 0; i < numComponents; i++)
766 {
767 components.append((float) va_arg(argPtr, double));
768 }
769 va_end(argPtr);
770 }
771
772 CColorantInfo (const EDLRawString& _name, const std::initializer_list<double> & _components)
773 {
774 name = _name;
775 components.reserve ((uint32_t) _components.size ());
776 for (auto val : _components)
777 components.append ((float) val);
778 }
779
780 CColorantInfo (const EDLRawString& _name, const IDOMColorSpacePtr& _alternate, const std::initializer_list<double> & _components)
781 {
782 name = _name;
783 alternate = _alternate;
784
785 components.reserve ((uint32_t) _components.size ());
786 for (auto val : _components)
787 components.append ((float) val);
788
789 if (alternate && alternate->getNumComponents () != components.size ())
790 {
792 }
793 }
794
795 CColorantInfo (const EDLRawString& _name, const CEDLVector<double> & _components)
796 {
797 name = _name;
798 components.reserve (_components.size ());
799 for (auto val : _components)
800 components.append ((float) val);
801 }
802
803 CColorantInfo (const EDLRawString& _name, const IDOMColorSpacePtr& _alternate, const CEDLVector<double> & _components)
804 {
805 name = _name;
806 alternate = _alternate;
807
808 components.reserve (_components.size ());
809 for (auto val : _components)
810 components.append ((float) val);
811
812 if (alternate && alternate->getNumComponents () != components.size ())
813 {
815 }
816 }
817
820 IDOMColorSpacePtr alternate; // If null, the colorants are in terms of the DeviceN alternate color space.
821
822 bool operator== (const CColorantInfo &other) const
823 {
824 return (other.name == name)
825 && (other.components == components);
826 }
827
828 bool operator!= (const CColorantInfo &other) const
829 {
830 return ! (*this == other);
831 }
832 };
834
846 const IDOMICCProfilePtr &extendedGamutProfile,
847 const IDOMColorSpacePtr &alternate);
848
864 static EDL_API IDOMColorSpaceDeviceNPtr create(IEDLClassFactory *pFactory, const CColorantInfoVect &colorants,
865 const IDOMColorSpacePtr &alternate,
866 const IDOMColorSpacePtr &processColorSpace = IDOMColorSpacePtr());
867
884
889 static const CClassID &classID()
890 {
892 return id;
893 };
894
899 virtual bool getIsNChannel() const = 0;
900
907 virtual IDOMColorSpacePtr getAlternateColorSpace() const = 0;
908
918 virtual bool getHasRealColorant() const = 0;
919
926 virtual IDOMFunctionPtr getTintTransform() const = 0;
927
934 virtual IDOMDeviceNColorantPtr getColorant(uint8 component) const = 0;
935
941 virtual IDOMColorSpacePtr getProcessColorSpace() const = 0;
942
949 virtual const CEDLRawStringVect &getProcessComponentNames() const = 0;
950
957 virtual const CEDLRawStringVect &getPrintingOrder() const = 0;
958
966 virtual CColorantInfoVect getColorantInfo(IEDLClassFactory *factory, const IDOMColorSpacePtr &colorantSpace = IDOMColorSpacePtr()) const = 0;
967};
968#define edlobj2IDOMColorSpaceDeviceN(src) edl_cast((IDOMColorSpaceDeviceN *)NULL, src)
969
970
973
980{
981#define IDOMColorSpaceLABClassID 0x0d9f95d3, 0x4f2d4882, 0xb4293528, 0xea287840
982 public:
984
1001 static EDL_API IDOMColorSpaceLABPtr create(IEDLClassFactory *pFactory, float whitePointX, float whitePointY, float whitePointZ,
1002 float blackPointX = 0.0f, float blackPointY = 0.0f, float blackPointZ = 0.0f,
1003 float rangeALo = -100.0f, float rangeAHi = 100.0f, float rangeBLo = -100.0f, float rangeBHi = 100.0f);
1004
1009 class Data : public CClassParams
1010 {
1011 public:
1013 {
1014 rangeAB[0] = rangeAB[2] = -100.0f;
1015 rangeAB[1] = rangeAB[3] = 100.0f;
1016 blackPoint[0] = blackPoint[1] = blackPoint[2] = 0.0f;
1017 whitePoint[0] = whitePoint[1] = whitePoint[2] = 1.0f;
1018 }
1019 float rangeAB[4];
1020 float whitePoint[3];
1021 float blackPoint[3];
1022 };
1023
1028 static const CClassID &classID()
1029 {
1031 return id;
1032 };
1033
1034#ifdef SWIG
1035 %apply float &OUTPUT { float &lowA };
1036 %apply float &OUTPUT { float &lowB };
1037 %apply float &OUTPUT { float &highA };
1038 %apply float &OUTPUT { float &highB };
1039#endif
1049 virtual void getRangeAB(float &lowA, float &highA,
1050 float &lowB, float &highB) = 0;
1051#ifdef SWIG
1052 %clear float &lowA;
1053 %clear float &lowB;
1054 %clear float &highA;
1055 %clear float &highB;
1056#endif
1057
1058#ifdef SWIG
1059 %apply float &OUTPUT { float &x };
1060 %apply float &OUTPUT { float &y };
1061 %apply float &OUTPUT { float &z };
1062#endif
1069 virtual void getWhitePoint(float &x, float &y, float &z) = 0;
1070
1077 virtual void getBlackPoint(float &x, float &y, float &z) = 0;
1078#ifdef SWIG
1079 %clear float &x;
1080 %clear float &y;
1081 %clear float &z;
1082#endif
1083
1084};
1085#define edlobj2IDOMColorSpaceLAB(src) edl_cast((IDOMColorSpaceLAB *)NULL, src)
1086
1087
1088
1089
1091
1092#endif /* EDLIDOMCOLORSPACE_H */
An object to represent a 128-bit globally unique ID.
Definition objclassid.h:29
EDL Object Interface.
Definition iedlobject.h:31
Definition edlvector.h:30
uint32_t size() const
Definition edlvector.h:106
Represents the default CMY color space. NOTE: Currently for internal use only; Do not use this color ...
Definition idomcolorspace.h:390
static EDL_API IDOMColorSpaceDeviceCMYPtr create(IEDLClassFactory *pFactory)
Create a DeviceCMY Color Space. Throws an IEDLError on failure.
static const CClassID & classID()
Retrieves class id of IDOMColorSpaceDeviceCMY.
Definition idomcolorspace.h:408
virtual ~IDOMColorSpaceDeviceCMY()
Definition idomcolorspace.h:394
Represents the default CMYK color space.
Definition idomcolorspace.h:352
static EDL_API IDOMColorSpaceDeviceCMYKPtr create(IEDLClassFactory *pFactory)
Create a DeviceCMYK Color Space. Throws an IEDLError on failure.
static const CClassID & classID()
Retrieves class id of IDOMColorSpaceDeviceCMYK.
Definition idomcolorspace.h:369
virtual ~IDOMColorSpaceDeviceCMYK()
Definition idomcolorspace.h:355
IDOMColorSpaceDeviceGray interface.
Definition idomcolorspace.h:316
virtual ~IDOMColorSpaceDeviceGray()
Definition idomcolorspace.h:319
static EDL_API IDOMColorSpaceDeviceGrayPtr create(IEDLClassFactory *pFactory)
Create a DeviceGray Color Space. Throws an IEDLError on failure.
static const CClassID & classID()
Retrieves class id of IDOMColorSpaceDeviceGray.
Definition idomcolorspace.h:333
CColorantInfo(const EDLRawString &_name, const std::initializer_list< double > &_components)
Definition idomcolorspace.h:772
CColorantInfo(const EDLRawString &_name, const IDOMColorSpacePtr &_alternate, const CEDLVector< double > &_components)
Definition idomcolorspace.h:803
bool operator==(const CColorantInfo &other) const
Definition idomcolorspace.h:822
va_start(argPtr, numComponents)
name
Definition idomcolorspace.h:742
CEDLVector< float > components
Definition idomcolorspace.h:819
alternate
Definition idomcolorspace.h:757
CColorantInfo(const EDLRawString &_name, const IDOMColorSpacePtr &_alternate, const std::initializer_list< double > &_components)
Definition idomcolorspace.h:780
bool operator!=(const CColorantInfo &other) const
Definition idomcolorspace.h:828
CColorantInfo()
Definition idomcolorspace.h:737
CColorantInfo(const EDLRawString &_name, const CEDLVector< double > &_components)
Definition idomcolorspace.h:795
bool nChannel
Definition idomcolorspace.h:876
CDeviceNColorantVect pColorants
Definition idomcolorspace.h:879
IDOMColorSpacePtr pProcessColorSpace
Definition idomcolorspace.h:880
IDOMFunctionPtr pTintTransform
Definition idomcolorspace.h:878
IDOMColorSpacePtr pAlternateSpace
Definition idomcolorspace.h:877
CEDLRawStringVect pProcessComponentNames
Definition idomcolorspace.h:881
Data()
Definition idomcolorspace.h:875
CEDLRawStringVect pPrintingOrder
Definition idomcolorspace.h:882
This color space is analogous to the PostScript/PDF DeviceN/Separation color spaces.
Definition idomcolorspace.h:691
static EDL_API IDOMColorSpaceDeviceNPtr create(IEDLClassFactory *pFactory, const CColorantInfoVect &colorants, const IDOMColorSpacePtr &alternate, const IDOMColorSpacePtr &processColorSpace=IDOMColorSpacePtr())
Create a simple DeviceN Color Space, with automatic generation of the tint transform function....
virtual CColorantInfoVect getColorantInfo(IEDLClassFactory *factory, const IDOMColorSpacePtr &colorantSpace=IDOMColorSpacePtr()) const =0
Convenience method to populate a CColorantInfoVect from the DeviceN colorspace.
virtual ~IDOMColorSpaceDeviceN()
Definition idomcolorspace.h:694
virtual IDOMColorSpacePtr getProcessColorSpace() const =0
Get the Process color space associated with this DeviceN space. (See Table 4.22 of the PDF 1....
static const CClassID & classID()
Retrieves class id of IDOMColorSpaceDeviceN.
Definition idomcolorspace.h:889
virtual IDOMDeviceNColorantPtr getColorant(uint8 component) const =0
Get the colorant information for a component at the given index. An exception of type IEDLError is th...
virtual IDOMColorSpacePtr getAlternateColorSpace() const =0
Get the alternate color space for this color space, which must be present. An exception of type IEDLE...
CEDLVector< CColorantInfo > CColorantInfoVect
Definition idomcolorspace.h:833
static EDL_API IDOMColorSpaceDeviceNPtr create(IEDLClassFactory *pFactory, const CEDLRawStringVect &colorants, const IDOMColorSpacePtr &alternate, const IDOMFunctionPtr &tintTransform, const IDOMColorSpacePtr &processColorSpace=IDOMColorSpacePtr())
Create a simple DeviceN Color Space. Throws an IEDLError on failure.
virtual bool getHasRealColorant() const =0
Determine if this DeviceN color space contains only the special "None" colorant (or the strange case ...
virtual const CEDLRawStringVect & getPrintingOrder() const =0
Get the list of component names describing the printing order of the device N colorants....
virtual const CEDLRawStringVect & getProcessComponentNames() const =0
Get the vector of Process component names to those in the associated process color space (see Table 4...
virtual bool getIsNChannel() const =0
Get if the color space represents an NChannel color space.
virtual IDOMFunctionPtr getTintTransform() const =0
Get the function that maps components of this space to component(s) of the alternate color space....
static EDL_API CColorantInfoVect getExtendedGamutColorants(IEDLClassFactory *pFactory, const IDOMICCProfilePtr &extendedGamutProfile, const IDOMColorSpacePtr &alternate)
From an extended gamut ICC profile, create a set of colorant info structures based on the colorants p...
static EDL_API IDOMColorSpaceDeviceNPtr create(IEDLClassFactory *pFactory, const CDeviceNColorantVect &colorants, const IDOMColorSpacePtr &alternate, const IDOMFunctionPtr &tintTransform, const IDOMColorSpacePtr &processColorSpace=IDOMColorSpacePtr(), const CEDLRawStringVect &processComponents=CEDLRawStringVect(), const CEDLRawStringVect &printingOrder=CEDLRawStringVect(), bool isNChannel=false)
Create a DeviceN Color Space. Throws an IEDLError on failure.
IDOMColorSpaceDeviceRGB interface.
Definition idomcolorspace.h:280
virtual ~IDOMColorSpaceDeviceRGB()
Definition idomcolorspace.h:283
static const CClassID & classID()
Retrieves class id of IDOMColorSpaceDeviceRGB.
Definition idomcolorspace.h:297
static EDL_API IDOMColorSpaceDeviceRGBPtr create(IEDLClassFactory *pFactory)
Create a DeviceRGB Color Space. Throws an IEDLError on failure.
IDOMColorSpace interface.
Definition idomcolorspace.h:43
virtual bool getComponentRange(int component, float &low, float &high)=0
Retrieves the expected range of component values for a given channel, if applicable.
virtual EDLRawString getColorantName(uint8 component) const =0
Determine the colorant name for a colorant index. If a colorant name cannot be determined,...
virtual eRenderingIntent getDefaultRenderingIntent()=0
Retrieves the default rendering intent for this color space.
virtual ~IDOMColorSpace()
Definition idomcolorspace.h:45
virtual eColorSpaceType getColorSpaceType()=0
Retrieves the color space type.
virtual bool similar(const IDOMColorSpacePtr &colorSpace, eRenderingIntent intent, eBlackPointCompensation bpc)=0
Determines if the given color space is very similar to this color space for the given rendering inten...
virtual uint8 getNumComponents()=0
Retrieves the number of components that are in colors in this color space.
virtual bool getComponentsHaveSameRange()=0
Checks if this color space has the same range for all its components. Some color spaces (such as Lab ...
virtual bool equals(const IDOMColorSpacePtr &colorSpace, bool exact=false)=0
Determines if the given color space is equivalent to this color space.
@ eIndexed
Definition idomcolorspace.h:60
@ escRGB
XPS scRGB color space.
Definition idomcolorspace.h:58
@ esRGB
XPS sRGB color space with input range scaled to between 0 and 1.
Definition idomcolorspace.h:56
@ eICCBased
Color space with an ICC profile.
Definition idomcolorspace.h:59
@ esGray
Gray with sRGB gamma color space.
Definition idomcolorspace.h:57
@ eLAB
Lab color space as described in section 4.5.4 of the PDF 1.7 Reference Manual.
Definition idomcolorspace.h:66
@ eDeviceGray
Device Gray color space.
Definition idomcolorspace.h:54
@ eDeviceCMY
Device CMY color space to support PCL input. Internal use only.
Definition idomcolorspace.h:67
@ eDeviceN
Definition idomcolorspace.h:64
@ eDeviceRGB
Device RGB color space.
Definition idomcolorspace.h:53
@ eNumColorSpaceTypes
Definition idomcolorspace.h:68
@ eDeviceCMYK
Device CMYK color space.
Definition idomcolorspace.h:55
Data()
Definition idomcolorspace.h:451
IDOMICCProfilePtr m_pICCProfile
Definition idomcolorspace.h:459
Data(IDOMICCProfilePtr &pICCProfile)
Definition idomcolorspace.h:453
IDOMColorSpacePtr m_AlternateSpace
Definition idomcolorspace.h:460
Data(IDOMICCProfilePtr &pICCProfile, IDOMColorSpacePtr &pAlt)
Definition idomcolorspace.h:456
Represents a color space described by an ICC profile.
Definition idomcolorspace.h:428
virtual IDOMICCProfilePtr getICCProfile()=0
Retrieve the ICC profile for this color space. As a profile is required and should have been availabl...
virtual void setICCProfile(const IDOMICCProfilePtr &profile)=0
Set the ICC profile for the color space.
static const CClassID & classID()
Retrieves class id of IDOMColorSpaceICCBased.
Definition idomcolorspace.h:467
virtual bool getIsLabColorSpace() const =0
Determine if this ICC space represents a LAB color space.
virtual ~IDOMColorSpaceICCBased()
Definition idomcolorspace.h:431
static EDL_API IDOMColorSpaceICCBasedPtr create(IEDLClassFactory *pFactory, const IDOMICCProfilePtr &profile, const IDOMColorSpacePtr &alternate=IDOMColorSpacePtr())
Creation function for an IDOMColorspaceICCBased color space. Throws an IEDLError exception on failure...
virtual IDOMColorSpacePtr getAlternateColorSpace() const =0
Gets the PDF alternate color space for this ICC-based color space. Useful for PDF input filter contex...
virtual bool getIsDeviceLink() const =0
Determine if this ICC space represents a device link profile.
Data()
Definition idomcolorspace.h:559
IDOMColorSpacePtr pUnderlyingSpace
Definition idomcolorspace.h:563
Data(IDOMColorSpacePtr &pUnderlying, IDOMFunctionPtr &pMapping)
Definition idomcolorspace.h:560
IDOMFunctionPtr pMappingFunction
Definition idomcolorspace.h:564
This color space is analogous to the PostScript/PDF Indexed color space.
Definition idomcolorspace.h:524
virtual ~IDOMColorSpaceIndexed()
Definition idomcolorspace.h:527
static EDL_API IDOMColorSpaceIndexedPtr create(IEDLClassFactory *pFactory, const IDOMColorSpacePtr &underlying, const IDOMFunctionPtr &mappingFunction)
Create an Indexed Color Space. Throws an IEDLError on failure.
static const CClassID & classID()
Retrieves class id of IDOMColorSpaceICCBased.
Definition idomcolorspace.h:571
virtual IDOMFunctionPtr getMappingFunction()=0
Get the function that maps an index value to component(s) in the underlying color space....
static EDL_API IDOMColorSpaceIndexedPtr create(IEDLClassFactory *pFactory, const IDOMColorSpacePtr &underlying, const CEDLVector< uint8 > &table)
Create an Indexed Color Space from an 8bpc table. Throws an IEDLError on failure.
virtual IDOMColorSpacePtr getUnderlyingColorSpace()=0
Get the underlying color space for this color space, which must be present. Throws an exception of ty...
float whitePoint[3]
Definition idomcolorspace.h:1020
Data()
Definition idomcolorspace.h:1012
float rangeAB[4]
Definition idomcolorspace.h:1019
float blackPoint[3]
Definition idomcolorspace.h:1021
This color space is as described in section 4.5.4 of the PDF 1.7 Reference Manual.
Definition idomcolorspace.h:980
virtual void getWhitePoint(float &x, float &y, float &z)=0
Get the White Point in CIE 1931 XYZ space.
virtual ~IDOMColorSpaceLAB()
Definition idomcolorspace.h:983
static EDL_API IDOMColorSpaceLABPtr create(IEDLClassFactory *pFactory, float whitePointX, float whitePointY, float whitePointZ, float blackPointX=0.0f, float blackPointY=0.0f, float blackPointZ=0.0f, float rangeALo=-100.0f, float rangeAHi=100.0f, float rangeBLo=-100.0f, float rangeBHi=100.0f)
Create a LAB Color Space. Throws an IEDLError on failure.
virtual void getBlackPoint(float &x, float &y, float &z)=0
Get the Black Point in CIE 1931 XYZ space.
static const CClassID & classID()
Retrieves class id of IDOMColorSpaceLAB.
Definition idomcolorspace.h:1028
virtual void getRangeAB(float &lowA, float &highA, float &lowB, float &highB)=0
Get the input range for this color space. The range of the L component is always implicitly 0 to 100.
Represents a gray color space using the sRGB gamma and WhitePoint.
Definition idomcolorspace.h:204
virtual ~IDOMColorSpacesGray()
Definition idomcolorspace.h:207
static EDL_API IDOMColorSpacesGrayPtr create(IEDLClassFactory *pFactory)
Create an sGray Color Space. Throws an IEDLError on failure.
static const CClassID & classID()
Retrieves class id of IDOMColorSpacesGray.
Definition idomcolorspace.h:221
Represents the RGB color space.
Definition idomcolorspace.h:165
virtual ~IDOMColorSpacesRGB()
Definition idomcolorspace.h:168
static const CClassID & classID()
Retrieves the class id of IDOMColorSpacesRGB.
Definition idomcolorspace.h:182
static EDL_API IDOMColorSpacesRGBPtr create(IEDLClassFactory *pFactory)
Create an sRGB Color Space. Throws an IEDLError on failure.
Represents the scRGB color space.
Definition idomcolorspace.h:244
virtual ~IDOMColorSpacescRGB()
Definition idomcolorspace.h:247
static const CClassID & classID()
Retrieves the class id of IDOMColorSpacescRGB.
Definition idomcolorspace.h:261
static EDL_API IDOMColorSpacescRGBPtr create(IEDLClassFactory *pFactory)
Create an scRGB Color Space. Throws an IEDLError on failure.
EDLRawString name
Definition idomcolorspace.h:617
IDOMFunctionPtr pTintTransform
Definition idomcolorspace.h:622
IDOMColorSpacePtr pAlternateSpace
Definition idomcolorspace.h:621
Data()
Definition idomcolorspace.h:615
bool hasSolidity
Definition idomcolorspace.h:618
float solidity
Definition idomcolorspace.h:619
IDOMFunctionPtr pDotGainFunction
Definition idomcolorspace.h:620
This class enables the specification of colorant information for PDF style NChannel variants of Devic...
Definition idomcolorspace.h:603
static const CClassID & classID()
Retrieves class id fo IDOMDeviceNColorant.
Definition idomcolorspace.h:629
virtual bool getSolidity(float &solidity)=0
Get the solidity of the colorant.
virtual const EDLRawString & getName()=0
Get the name of the colorant, which must be present. An exception of type IEDLError will be thrown if...
virtual IDOMFunctionPtr getDotGainFunction()=0
Get the function that describes the dot gain of the colorant on the intended output device....
virtual IDOMColorSpacePtr getAlternateColorSpace()=0
Get the alternate color space for this colorant. Optional.
virtual ~IDOMDeviceNColorant()
Definition idomcolorspace.h:606
virtual IDOMFunctionPtr getTintTransform()=0
Get the function that maps the colorant to component(s) of the alternate color space....
Abstract interface for objects that can be hashed.
Definition idomhashable.h:28
EDL Factory Interface allows one part of the EDL infrastructure to register class creation methods id...
Definition iedlfactory.h:31
IEDLObject is an abstract base class that is used by all classes that are intended to be created via ...
Definition iedlobject.h:53
EDL_API void throwEDLError(uint32 errorcode)
Utility - Throw an IEDLError exception with the given error code.
(very thin) portability layer around operating system provided math functionality but also includes a...
#define _END_EDL_DOM_NAMESPACE
Definition edlnamespaces.h:110
#define _BEGIN_EDL_DOM_NAMESPACE
Definition edlnamespaces.h:109
EDLSysString EDLRawString
Definition edlstring.h:171
CEDLVector< EDLRawString > CEDLRawStringVect
Definition edlstring.h:175
EDL "standard" types including known bit-length signed and unsigned integer type[def]s and definition...
unsigned int uint32
Definition edltypes.h:34
#define EDL_API
Definition edltypes.h:86
unsigned char uint8
Definition edltypes.h:32
Simple template vector class for general use.
eColorSpaceType
Color spaces type enumeration.
Definition idomcolorspace.h:52
eBlackPointCompensation
Black point compensation enumeration.
Definition edlblackpointcompensation.h:17
eRenderingIntent
Rendering intent enumeration.
Definition edlrenderingintent.h:17
@ EDL_ERR_BAD_ARGUMENTS
General error for bad arguments passed to an API function.
Definition edlerrors.h:42
#define IDOMColorSpaceICCBasedClassID
Definition idomcolorspace.h:429
#define IDOMColorSpaceDeviceCMYClassID
Definition idomcolorspace.h:391
#define IDOMColorSpaceDeviceCMYKClassID
Definition idomcolorspace.h:353
#define IDOMDeviceNColorantClassID
Definition idomcolorspace.h:604
#define IDOMColorSpaceDeviceGrayClassID
Definition idomcolorspace.h:317
#define IDOMColorSpacesGrayClassID
Definition idomcolorspace.h:205
CEDLVector< IDOMDeviceNColorantPtr > CDeviceNColorantVect
Definition idomcolorspace.h:678
#define IDOMColorSpaceDeviceNClassID
Definition idomcolorspace.h:692
#define IDOMColorSpacesRGBClassID
Definition idomcolorspace.h:166
#define IDOMColorSpaceLABClassID
Definition idomcolorspace.h:981
#define IDOMColorSpacescRGBClassID
Definition idomcolorspace.h:245
#define IDOMColorSpaceDeviceRGBClassID
Definition idomcolorspace.h:281
#define IDOMColorSpaceIndexedClassID
Definition idomcolorspace.h:525
IDOMResources interface.
#define DECL_SMART_PTR(cls)
Definition smartptr.h:211