1 // Copyright 2016 PDFium Authors. All rights reserved. 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 CPDF_PageObject::CPDF_PageObject() : m_bDirty(false) {} 10 11 CPDF_PageObject::~CPDF_PageObject() {} 12 13 bool CPDF_PageObject::IsText() const { 14 return false; 15 } 16 17 bool CPDF_PageObject::IsPath() const { 18 return false; 19 } 20 21 bool CPDF_PageObject::IsImage() const { 22 return false; 23 } 24 25 bool CPDF_PageObject::IsShading() const { 26 return false; 27 } 28 29 bool CPDF_PageObject::IsForm() const { 30 return false; 31 } 32 33 CPDF_TextObject* CPDF_PageObject::AsText() { 34 return nullptr; 35 } 36 37 const CPDF_TextObject* CPDF_PageObject::AsText() const { 38 return nullptr; 39 } 40 41 CPDF_PathObject* CPDF_PageObject::AsPath() { 42 return nullptr; 43 } 44 45 const CPDF_PathObject* CPDF_PageObject::AsPath() const { 46 return nullptr; 47 } 48 49 CPDF_ImageObject* CPDF_PageObject::AsImage() { 50 return nullptr; 51 } 52 53 const CPDF_ImageObject* CPDF_PageObject::AsImage() const { 54 return nullptr; 55 } 56 57 CPDF_ShadingObject* CPDF_PageObject::AsShading() { 58 return nullptr; 59 } 60 61 const CPDF_ShadingObject* CPDF_PageObject::AsShading() const { 62 return nullptr; 63 } 64 65 CPDF_FormObject* CPDF_PageObject::AsForm() { 66 return nullptr; 67 } 68 69 const CPDF_FormObject* CPDF_PageObject::AsForm() const { 70 return nullptr; 71 } 72 73 void CPDF_PageObject::CopyData(const CPDF_PageObject* pSrc) { 74 CopyStates(*pSrc); 75 m_Left = pSrc->m_Left; 76 m_Right = pSrc->m_Right; 77 m_Top = pSrc->m_Top; 78 m_Bottom = pSrc->m_Bottom; 79 m_bDirty = true; 80 } 81 82 void CPDF_PageObject::TransformClipPath(CFX_Matrix& matrix) { 83 if (!m_ClipPath.HasRef()) 84 return; 85 m_ClipPath.Transform(matrix); 86 SetDirty(true); 87 } 88 89 void CPDF_PageObject::TransformGeneralState(CFX_Matrix& matrix) { 90 if (!m_GeneralState.HasRef()) 91 return; 92 m_GeneralState.GetMutableMatrix()->Concat(matrix); 93 SetDirty(true); 94 } 95 96 FX_RECT CPDF_PageObject::GetBBox(const CFX_Matrix* pMatrix) const { 97 CFX_FloatRect rect(m_Left, m_Bottom, m_Right, m_Top); 98 if (pMatrix) 99 rect = pMatrix->TransformRect(rect); 100 101 return rect.GetOuterRect(); 102 } 103