• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 "core/fxcrt/fx_coordinates.h"
10 
CPDF_PageObject(int32_t content_stream)11 CPDF_PageObject::CPDF_PageObject(int32_t content_stream)
12     : m_ContentStream(content_stream) {}
13 
14 CPDF_PageObject::~CPDF_PageObject() = default;
15 
IsText() const16 bool CPDF_PageObject::IsText() const {
17   return false;
18 }
19 
IsPath() const20 bool CPDF_PageObject::IsPath() const {
21   return false;
22 }
23 
IsImage() const24 bool CPDF_PageObject::IsImage() const {
25   return false;
26 }
27 
IsShading() const28 bool CPDF_PageObject::IsShading() const {
29   return false;
30 }
31 
IsForm() const32 bool CPDF_PageObject::IsForm() const {
33   return false;
34 }
35 
AsText()36 CPDF_TextObject* CPDF_PageObject::AsText() {
37   return nullptr;
38 }
39 
AsText() const40 const CPDF_TextObject* CPDF_PageObject::AsText() const {
41   return nullptr;
42 }
43 
AsPath()44 CPDF_PathObject* CPDF_PageObject::AsPath() {
45   return nullptr;
46 }
47 
AsPath() const48 const CPDF_PathObject* CPDF_PageObject::AsPath() const {
49   return nullptr;
50 }
51 
AsImage()52 CPDF_ImageObject* CPDF_PageObject::AsImage() {
53   return nullptr;
54 }
55 
AsImage() const56 const CPDF_ImageObject* CPDF_PageObject::AsImage() const {
57   return nullptr;
58 }
59 
AsShading()60 CPDF_ShadingObject* CPDF_PageObject::AsShading() {
61   return nullptr;
62 }
63 
AsShading() const64 const CPDF_ShadingObject* CPDF_PageObject::AsShading() const {
65   return nullptr;
66 }
67 
AsForm()68 CPDF_FormObject* CPDF_PageObject::AsForm() {
69   return nullptr;
70 }
71 
AsForm() const72 const CPDF_FormObject* CPDF_PageObject::AsForm() const {
73   return nullptr;
74 }
75 
CopyData(const CPDF_PageObject * pSrc)76 void CPDF_PageObject::CopyData(const CPDF_PageObject* pSrc) {
77   CopyStates(*pSrc);
78   m_Rect = pSrc->m_Rect;
79   m_bDirty = true;
80 }
81 
TransformClipPath(const CFX_Matrix & matrix)82 void CPDF_PageObject::TransformClipPath(const CFX_Matrix& matrix) {
83   if (!m_ClipPath.HasRef())
84     return;
85   m_ClipPath.Transform(matrix);
86   SetDirty(true);
87 }
88 
TransformGeneralState(const CFX_Matrix & matrix)89 void CPDF_PageObject::TransformGeneralState(const CFX_Matrix& matrix) {
90   if (!m_GeneralState.HasRef())
91     return;
92   m_GeneralState.GetMutableMatrix()->Concat(matrix);
93   SetDirty(true);
94 }
95 
GetBBox() const96 FX_RECT CPDF_PageObject::GetBBox() const {
97   return GetRect().GetOuterRect();
98 }
99 
GetTransformedBBox(const CFX_Matrix & matrix) const100 FX_RECT CPDF_PageObject::GetTransformedBBox(const CFX_Matrix& matrix) const {
101   return matrix.TransformRect(GetRect()).GetOuterRect();
102 }
103