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#ifndef CORE_FPDFAPI_PAGE_CPDF_TILINGPATTERN_H_
8#define CORE_FPDFAPI_PAGE_CPDF_TILINGPATTERN_H_
9
10#include <memory>
11
12#include "core/fpdfapi/page/cpdf_pattern.h"
13#include "core/fxcrt/fx_coordinates.h"
14#include "core/fxcrt/fx_system.h"
15
16class CPDF_Document;
17class CPDF_Form;
18class CPDF_Object;
19
20class CPDF_TilingPattern : public CPDF_Pattern {
21 public:
22  CPDF_TilingPattern(CPDF_Document* pDoc,
23                     CPDF_Object* pPatternObj,
24                     const CFX_Matrix& parentMatrix);
25  ~CPDF_TilingPattern() override;
26
27  CPDF_TilingPattern* AsTilingPattern() override;
28  CPDF_ShadingPattern* AsShadingPattern() override;
29
30  bool Load();
31
32  bool colored() const { return m_bColored; }
33  const CFX_FloatRect& bbox() const { return m_BBox; }
34  FX_FLOAT x_step() const { return m_XStep; }
35  FX_FLOAT y_step() const { return m_YStep; }
36  CPDF_Form* form() const { return m_pForm.get(); }
37
38 private:
39  bool m_bColored;
40  CFX_FloatRect m_BBox;
41  FX_FLOAT m_XStep;
42  FX_FLOAT m_YStep;
43  std::unique_ptr<CPDF_Form> m_pForm;
44};
45
46#endif  // CORE_FPDFAPI_PAGE_CPDF_TILINGPATTERN_H_
47