Home | History | Annotate | Download | only in page
      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