Mako 8.2.0 API
MakoCore SDK API Documentation
Loading...
Searching...
No Matches
idomgroup.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 EDLIDOMGROUP_H
6#define EDLIDOMGROUP_H
7
8#include <edl/idomnode.h>
9#include <edl/edlnamespaces.h>
10#include <edl/edlfwd.h>
11
12#include <edl/edlblend.h>
13#include <edl/idombrush.h>
14#include <edl/idomcolorspace.h>
16#include <jawsmako/types.h>
17
19
25class IDOMGroup : public IDOMNode
26{
27#define IDOMGroupClassID 0x4535624b, 0xc4c04966, 0x9a248943, 0x89527f98
28public:
29
30 virtual ~IDOMGroup () {}
31
40 static EDL_API IDOMGroupPtr create(IEDLClassFactory *pFactory, const FMatrix &transform = FMatrix(), const IDOMPathGeometryPtr &clip = IDOMPathGeometryPtr());
41
46 static const CClassID &classID()
47 {
48 static CClassID id(IDOMGroupClassID);
49 return id;
50 };
51
56 class Data : public CClassParams
57 {
58 public:
60 IDOMPathGeometryPtr ptrClip;
61 };
62
67 virtual const FMatrix &getRenderTransform() const = 0;
68
73 virtual void setRenderTransform(const FMatrix &matrix) = 0;
74
79 virtual IDOMPathGeometryPtr getClip() const = 0;
80
85 virtual void setClip(const IDOMPathGeometryPtr &ptrClip) = 0;
86
92 virtual JawsMako::IOptionalContentDetailsPtr getOptionalContentDetails() const = 0;
93
104 virtual void setOptionalContentDetails(const JawsMako::IOptionalContentDetailsPtr &details) = 0;
105
111 virtual JawsMako::IMarkedContentDetailsPtr getMarkedContentDetails() const = 0;
112
122 virtual void setMarkedContentDetails(const JawsMako::IMarkedContentDetailsPtr &details) = 0;
123
124};
125#define edlobj2IDOMGroup(src) edl_cast((IDOMGroup *)NULL, src)
126static inline IDOMGroupPtr dom2IDOMGroup(const IDOMNodePtr &src)
127{
128 if (src)
129 {
130 switch (src->getNodeType())
131 {
132 case eDOMGroupNode:
134 case eDOMCanvasNode:
136 return IDOMGroupPtr(static_cast<IDOMGroup *>((IDOMNode *)src), true);
137 default:
138 return IDOMGroupPtr();
139 }
140 }
141 else
142 {
143 return IDOMTransparencyGroupPtr();
144 }
145}
146
153{
154#define IDOMTransparencyGroupClassID 0x67dd9c06, 0x1e0f42b5, 0xba609ed6, 0x9931c071
155public:
160 static const CClassID &classID()
161 {
163 return id;
164 };
165
180 static EDL_API IDOMTransparencyGroupPtr create(IEDLClassFactory *pFactory,
181 const FMatrix &transform = FMatrix(),
182 const IDOMPathGeometryPtr &clip = IDOMPathGeometryPtr(),
183 float opacity = 1.0f,
184 const IDOMBrushPtr &opacityMask = IDOMBrushPtr(),
185 eBlendMode blendMode = eBlendModeNormal,
186 const IDOMColorSpacePtr &colorSpace = IDOMColorSpacePtr(),
187 bool isolated = false,
188 bool knockout = false);
189
194 class Data : public CClassParams
195 {
196 public:
198 {}
199 float opacity;
201 IDOMColorSpacePtr colorSpace;
205 IDOMBrushPtr ptrOpacityMask;
206 IDOMPathGeometryPtr ptrClip;
207 };
208
213 virtual float getOpacity() const = 0;
214
219 virtual void setOpacity(float opacity) = 0;
220
225 virtual eBlendMode getBlendMode() const = 0;
226
231 virtual void setBlendMode(eBlendMode blendMode) = 0;
232
237 virtual IDOMColorSpacePtr getColorSpace() const = 0;
238
253 virtual void setColorSpace(const IDOMColorSpacePtr &colorSpace) = 0;
254
260 virtual bool getIsIsolated() const = 0;
261
267 virtual void setIsIsolated(bool isolated) = 0;
268
274 virtual bool getIsKnockout() const = 0;
275
281 virtual void setIsKnockout(bool knockout) = 0;
282
287 virtual IDOMBrushPtr getOpacityMask() const = 0;
288
293 virtual void setOpacityMask(const IDOMBrushPtr &ptrOpacityMask) = 0;
294
307
319 virtual void setRenderingIntent(eRenderingIntent intent) = 0;
320
332
344
345};
346#define edlobj2IDOMTransparencyGroup(src) edl_cast((IDOMTransparencyGroup *)NULL, src)
347static inline IDOMTransparencyGroupPtr dom2IDOMTransparencyGroup(const IDOMNodePtr &src)
348{
349 if (src)
350 {
351 switch (src->getNodeType())
352 {
354 case eDOMCanvasNode:
355 return IDOMTransparencyGroupPtr(static_cast<IDOMTransparencyGroup *>((IDOMNode *)src), true);
356 default:
357 return IDOMTransparencyGroupPtr();
358 }
359 }
360 else
361 {
362 return IDOMTransparencyGroupPtr();
363 }
364}
365
367
368
369#endif /* EDLIDOMGROUP_H */
370
371
An object to represent a 128-bit globally unique ID.
Definition objclassid.h:29
EDL Object Interface.
Definition iedlobject.h:31
Initialization data.
Definition idomgroup.h:57
FMatrix renderTransform
Definition idomgroup.h:59
IDOMPathGeometryPtr ptrClip
Definition idomgroup.h:60
Interface to DOM node representing Group Elements.
Definition idomgroup.h:26
virtual const FMatrix & getRenderTransform() const =0
Retrieves render transform matrix of the Group and its children.
virtual IDOMPathGeometryPtr getClip() const =0
Retrieves smart pointer to the clip.
virtual JawsMako::IOptionalContentDetailsPtr getOptionalContentDetails() const =0
Get the JawsMako Optional Content details, or NULL if the group is not subject to optional content.
static EDL_API IDOMGroupPtr create(IEDLClassFactory *pFactory, const FMatrix &transform=FMatrix(), const IDOMPathGeometryPtr &clip=IDOMPathGeometryPtr())
Simplified creation function for IDOMGroup. Throws an IEDLError exception on failure.
static const CClassID & classID()
Retrieves class id of IDOMGroup.
Definition idomgroup.h:46
virtual JawsMako::IMarkedContentDetailsPtr getMarkedContentDetails() const =0
Get the JawsMako Marked Content details for this group, or NULL if the group is not marked.
virtual void setOptionalContentDetails(const JawsMako::IOptionalContentDetailsPtr &details)=0
Set the JawsMako Optional Content details for the group, or NULL to remove. Note that this is only al...
virtual ~IDOMGroup()
Definition idomgroup.h:30
virtual void setClip(const IDOMPathGeometryPtr &ptrClip)=0
Sets clip.
virtual void setMarkedContentDetails(const JawsMako::IMarkedContentDetailsPtr &details)=0
Set the JawsMako Marked Content details for this group, or NULL to remove. Note that this is only all...
virtual void setRenderTransform(const FMatrix &matrix)=0
Sets render transform matrix of the Group and its children.
Abstract class providing the interface to basic DOM node functionality. IDOMNode is the base class fo...
Definition idomnode.h:139
bool isolated
Definition idomgroup.h:202
Data()
Definition idomgroup.h:197
FMatrix renderTransform
Definition idomgroup.h:204
eBlendMode blendMode
Definition idomgroup.h:200
float opacity
Definition idomgroup.h:199
IDOMPathGeometryPtr ptrClip
Definition idomgroup.h:206
IDOMColorSpacePtr colorSpace
Definition idomgroup.h:201
bool knockout
Definition idomgroup.h:203
IDOMBrushPtr ptrOpacityMask
Definition idomgroup.h:205
IDOMTransparencyGroup interface. Analogous to PDF Transparency groups.
Definition idomgroup.h:153
virtual void setIsIsolated(bool isolated)=0
Set whether the group is isolated. See section 7.5.5 of the PDF 1.7 spec for details.
virtual void setOpacity(float opacity)=0
Set the group opacity.
virtual float getOpacity() const =0
Get the group alpha/opacity.
virtual eRenderingIntent getRenderingIntent() const =0
Get the rendering intent for the node if present. The rendering intent is used whenever the node requ...
virtual void setOpacityMask(const IDOMBrushPtr &ptrOpacityMask)=0
Sets opacity mask.
virtual void setIsKnockout(bool knockout)=0
Set whether the group is a knockout group. See section 7.5.5 of the PDF 1.7 spec for details.
static EDL_API IDOMTransparencyGroupPtr create(IEDLClassFactory *pFactory, const FMatrix &transform=FMatrix(), const IDOMPathGeometryPtr &clip=IDOMPathGeometryPtr(), float opacity=1.0f, const IDOMBrushPtr &opacityMask=IDOMBrushPtr(), eBlendMode blendMode=eBlendModeNormal, const IDOMColorSpacePtr &colorSpace=IDOMColorSpacePtr(), bool isolated=false, bool knockout=false)
Simplified creation function for IDOMGroup. Throws an IEDLError exception on failure.
virtual void setRenderingIntent(eRenderingIntent intent)=0
Set or clear the rendering intent for the node. The rendering intent is used whenever the node requir...
virtual eBlendMode getBlendMode() const =0
Get the blend mode to be used for compositing this group with the backdrop.
virtual void setBlendMode(eBlendMode blendMode)=0
Set the blend mode to be used for compositing this group with the backdrop.
virtual void setColorSpace(const IDOMColorSpacePtr &colorSpace)=0
Set the group colorspace.
virtual bool getIsIsolated() const =0
Is the group an isolated group? See section 7.5.5 of the PDF 1.7 spec for details.
virtual bool getIsKnockout() const =0
Is the group a knockout group? See section 7.5.5 of the PDF 1.7 spec for details.
static const CClassID & classID()
Retrieves class id of IDOMTransparencyGroup.
Definition idomgroup.h:160
virtual eBlackPointCompensation getBlackPointCompensation() const =0
Get the black point compensation for the node. The black point compensation setting is used whenever ...
virtual void setBlackPointCompensation(eBlackPointCompensation compensation)=0
Set the black point compensation for the node. The black point compensation setting is used whenever ...
virtual IDOMColorSpacePtr getColorSpace() const =0
Get the group colorspace.
virtual IDOMBrushPtr getOpacityMask() const =0
Retrieves smart pointer to opacity mask.
EDL Factory Interface allows one part of the EDL infrastructure to register class creation methods id...
Definition iedlfactory.h:31
CTransformMatrix< double > FMatrix
Definition edlgeom.h:1208
EDL C++ namespace(s)
#define _END_EDL_DOM_NAMESPACE
Definition edlnamespaces.h:110
#define _BEGIN_EDL_DOM_NAMESPACE
Definition edlnamespaces.h:109
#define EDL_API
Definition edltypes.h:86
eBlendMode
An enum for transparency blend modes.
Definition edlblend.h:25
@ eBlendModeNormal
Selects the source color, ignoring the backdrop.
Definition edlblend.h:27
eBlackPointCompensation
Black point compensation enumeration.
Definition edlblackpointcompensation.h:17
eRenderingIntent
Rendering intent enumeration.
Definition edlrenderingintent.h:17
#define IDOMTransparencyGroupClassID
Definition idomgroup.h:154
#define IDOMGroupClassID
Definition idomgroup.h:27
@ eDOMCharPathGroupNode
Char Path Group Node.
Definition idomnode.h:42
@ eDOMCanvasNode
Canvas Node.
Definition idomnode.h:44
@ eDOMGroupNode
Group Node.
Definition idomnode.h:41
@ eDOMTransparencyGroupNode
Transparency GroupNode.
Definition idomnode.h:43