1 // Copyright 2016 The PDFium Authors 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6 7 #include "core/fpdfapi/page/cpdf_pageobject.h" 8 9 #include <utility> 10 11 #include "core/fxcrt/fx_coordinates.h" 12 CPDF_PageObject(int32_t content_stream)13CPDF_PageObject::CPDF_PageObject(int32_t content_stream) 14 : m_ContentStream(content_stream) {} 15 16 CPDF_PageObject::~CPDF_PageObject() = default; 17 IsText() const18bool CPDF_PageObject::IsText() const { 19 return false; 20 } 21 IsPath() const22bool CPDF_PageObject::IsPath() const { 23 return false; 24 } 25 IsImage() const26bool CPDF_PageObject::IsImage() const { 27 return false; 28 } 29 IsShading() const30bool CPDF_PageObject::IsShading() const { 31 return false; 32 } 33 IsForm() const34bool CPDF_PageObject::IsForm() const { 35 return false; 36 } 37 AsText()38CPDF_TextObject* CPDF_PageObject::AsText() { 39 return nullptr; 40 } 41 AsText() const42const CPDF_TextObject* CPDF_PageObject::AsText() const { 43 return nullptr; 44 } 45 AsPath()46CPDF_PathObject* CPDF_PageObject::AsPath() { 47 return nullptr; 48 } 49 AsPath() const50const CPDF_PathObject* CPDF_PageObject::AsPath() const { 51 return nullptr; 52 } 53 AsImage()54CPDF_ImageObject* CPDF_PageObject::AsImage() { 55 return nullptr; 56 } 57 AsImage() const58const CPDF_ImageObject* CPDF_PageObject::AsImage() const { 59 return nullptr; 60 } 61 AsShading()62CPDF_ShadingObject* CPDF_PageObject::AsShading() { 63 return nullptr; 64 } 65 AsShading() const66const CPDF_ShadingObject* CPDF_PageObject::AsShading() const { 67 return nullptr; 68 } 69 AsForm()70CPDF_FormObject* CPDF_PageObject::AsForm() { 71 return nullptr; 72 } 73 AsForm() const74const CPDF_FormObject* CPDF_PageObject::AsForm() const { 75 return nullptr; 76 } 77 GetGraphicsResourceNames() const78pdfium::span<const ByteString> CPDF_PageObject::GetGraphicsResourceNames() 79 const { 80 return m_GeneralState.GetGraphicsResourceNames(); 81 } 82 CopyData(const CPDF_PageObject * pSrc)83void CPDF_PageObject::CopyData(const CPDF_PageObject* pSrc) { 84 CopyStates(*pSrc); 85 m_Rect = pSrc->m_Rect; 86 m_bDirty = true; 87 } 88 TransformClipPath(const CFX_Matrix & matrix)89void CPDF_PageObject::TransformClipPath(const CFX_Matrix& matrix) { 90 if (!m_ClipPath.HasRef()) 91 return; 92 m_ClipPath.Transform(matrix); 93 SetDirty(true); 94 } 95 TransformGeneralState(const CFX_Matrix & matrix)96void CPDF_PageObject::TransformGeneralState(const CFX_Matrix& matrix) { 97 if (!m_GeneralState.HasRef()) 98 return; 99 m_GeneralState.GetMutableMatrix()->Concat(matrix); 100 SetDirty(true); 101 } 102 GetBBox() const103FX_RECT CPDF_PageObject::GetBBox() const { 104 return GetRect().GetOuterRect(); 105 } 106 GetTransformedBBox(const CFX_Matrix & matrix) const107FX_RECT CPDF_PageObject::GetTransformedBBox(const CFX_Matrix& matrix) const { 108 return matrix.TransformRect(GetRect()).GetOuterRect(); 109 } 110