11#include "PdfPatternDefinition.h"
15 class PODOFO_API PdfPattern :
public PdfDictionaryElement
17 friend class PdfTilingPattern;
18 friend class PdfShadingPattern;
20 PdfPattern(PdfDocument& doc, PdfPatternDefinitionPtr&& definition);
23 const PdfPatternDefinition& GetDefinition()
const {
return *m_Definition; }
29 class PODOFO_API PdfTilingPattern :
public PdfPattern,
public PdfCanvas
31 friend class PdfColouredTilingPattern;
32 friend class PdfUncolouredTilingPattern;
35 PdfTilingPattern(PdfDocument& doc, std::shared_ptr<PdfTilingPatternDefinition>&& definition);
38 const PdfTilingPatternDefinition& GetDefinition()
const;
39 std::shared_ptr<const PdfTilingPatternDefinition> GetDefinitionPtr()
const;
40 inline PdfResources* GetResources() {
return m_Resources.get(); }
41 inline const PdfResources* GetResources()
const {
return m_Resources.get(); }
44 PdfObjectStream& GetOrCreateContentsStream(PdfStreamAppendFlags flags)
override;
45 PdfResources& GetOrCreateResources()
override;
46 PdfObjectStream& ResetContentsStream()
override;
47 void CopyContentsTo(OutputStream& stream)
const override;
48 Corners GetRectRaw()
const override;
49 bool TryGetRotationRadians(
double& teta)
const override;
50 PdfObject* getContentsObject()
override;
51 PdfResources* getResources()
override;
52 PdfDictionaryElement& getElement()
override;
56 PdfElement& GetElement() =
delete;
57 const PdfElement& GetElement()
const =
delete;
58 PdfObject* GetContentsObject() =
delete;
59 const PdfObject* GetContentsObject()
const =
delete;
62 std::unique_ptr<PdfResources> m_Resources;
65 class PODOFO_API PdfColouredTilingPattern final :
public PdfTilingPattern
67 friend class PdfDocument;
70 PdfColouredTilingPattern(PdfDocument& doc, std::shared_ptr<PdfColouredTilingPatternDefinition> definition);
73 const PdfColouredTilingPatternDefinition& GetDefinition()
const;
74 std::shared_ptr<const PdfColouredTilingPatternDefinition> GetDefinitionPtr()
const;
77 class PODOFO_API PdfUncolouredTilingPattern final :
public PdfTilingPattern
79 friend class PdfDocument;
82 PdfUncolouredTilingPattern(PdfDocument& doc, std::shared_ptr<PdfUncolouredTilingPatternDefinition> definition);
85 const PdfUncolouredTilingPatternDefinition& GetDefinition()
const;
86 std::shared_ptr<const PdfUncolouredTilingPatternDefinition> GetDefinitionPtr()
const;
89 class PODOFO_API PdfShadingPattern final :
public PdfPattern
91 friend class PdfDocument;
94 PdfShadingPattern(PdfDocument& doc, PdfShadingPatternDefinitionPtr definition);
97 const PdfShadingPatternDefinition& GetDefinition()
const;
101 class PODOFO_API PdfShadingDictionary final :
public PdfDictionaryElement
103 friend class PdfDocument;
106 PdfShadingDictionary(PdfDocument& doc, PdfShadingDefinitionPtr definition);
109 const PdfShadingDefinition& GetDefinition()
const {
return *m_Definition; }
SPDX-FileCopyrightText: (C) 2022 Francesco Pretto ceztko@gmail.com SPDX-License-Identifier: LGPL-2....
Definition basetypes.h:16
std::shared_ptr< const PdfPatternDefinition > PdfPatternDefinitionPtr
Convenience alias for a constant PdfTilingPatternDefinition shared ptr.
Definition PdfPatternDefinition.h:406
std::shared_ptr< const PdfShadingDefinition > PdfShadingDefinitionPtr
Convenience alias for a constant PdfShadingDefinition shared ptr.
Definition PdfPatternDefinition.h:167
std::shared_ptr< const PdfShadingPatternDefinition > PdfShadingPatternDefinitionPtr
Convenience alias for a constant PdfShadingPatternDefinition shared ptr.
Definition PdfPatternDefinition.h:414