xref: /aosp_15_r20/external/pdfium/core/fpdfapi/page/cpdf_pageobject.cpp (revision 3ac0a46f773bac49fa9476ec2b1cf3f8da5ec3a4)
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)13 CPDF_PageObject::CPDF_PageObject(int32_t content_stream)
14     : m_ContentStream(content_stream) {}
15 
16 CPDF_PageObject::~CPDF_PageObject() = default;
17 
IsText() const18 bool CPDF_PageObject::IsText() const {
19   return false;
20 }
21 
IsPath() const22 bool CPDF_PageObject::IsPath() const {
23   return false;
24 }
25 
IsImage() const26 bool CPDF_PageObject::IsImage() const {
27   return false;
28 }
29 
IsShading() const30 bool CPDF_PageObject::IsShading() const {
31   return false;
32 }
33 
IsForm() const34 bool CPDF_PageObject::IsForm() const {
35   return false;
36 }
37 
AsText()38 CPDF_TextObject* CPDF_PageObject::AsText() {
39   return nullptr;
40 }
41 
AsText() const42 const CPDF_TextObject* CPDF_PageObject::AsText() const {
43   return nullptr;
44 }
45 
AsPath()46 CPDF_PathObject* CPDF_PageObject::AsPath() {
47   return nullptr;
48 }
49 
AsPath() const50 const CPDF_PathObject* CPDF_PageObject::AsPath() const {
51   return nullptr;
52 }
53 
AsImage()54 CPDF_ImageObject* CPDF_PageObject::AsImage() {
55   return nullptr;
56 }
57 
AsImage() const58 const CPDF_ImageObject* CPDF_PageObject::AsImage() const {
59   return nullptr;
60 }
61 
AsShading()62 CPDF_ShadingObject* CPDF_PageObject::AsShading() {
63   return nullptr;
64 }
65 
AsShading() const66 const CPDF_ShadingObject* CPDF_PageObject::AsShading() const {
67   return nullptr;
68 }
69 
AsForm()70 CPDF_FormObject* CPDF_PageObject::AsForm() {
71   return nullptr;
72 }
73 
AsForm() const74 const CPDF_FormObject* CPDF_PageObject::AsForm() const {
75   return nullptr;
76 }
77 
GetGraphicsResourceNames() const78 pdfium::span<const ByteString> CPDF_PageObject::GetGraphicsResourceNames()
79   const {
80   return m_GeneralState.GetGraphicsResourceNames();
81 }
82 
CopyData(const CPDF_PageObject * pSrc)83 void 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)89 void 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)96 void 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() const103 FX_RECT CPDF_PageObject::GetBBox() const {
104   return GetRect().GetOuterRect();
105 }
106 
GetTransformedBBox(const CFX_Matrix & matrix) const107 FX_RECT CPDF_PageObject::GetTransformedBBox(const CFX_Matrix& matrix) const {
108   return matrix.TransformRect(GetRect()).GetOuterRect();
109 }
110