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_PATTERN_H_ 8 #define CORE_FPDFAPI_PAGE_CPDF_PATTERN_H_ 9 10 #include "core/fxcrt/fx_coordinates.h" 11 #include "core/fxcrt/fx_system.h" 12 13 class CPDF_Document; 14 class CPDF_Object; 15 class CPDF_ShadingPattern; 16 class CPDF_TilingPattern; 17 18 class CPDF_Pattern { 19 public: 20 enum PatternType { TILING = 1, SHADING }; 21 22 virtual ~CPDF_Pattern(); 23 24 virtual CPDF_TilingPattern* AsTilingPattern() = 0; 25 virtual CPDF_ShadingPattern* AsShadingPattern() = 0; 26 document()27 CPDF_Document* document() { return m_pDocument; } pattern_obj()28 CPDF_Object* pattern_obj() { return m_pPatternObj; } pattern_to_form()29 CFX_Matrix* pattern_to_form() { return &m_Pattern2Form; } parent_matrix()30 const CFX_Matrix& parent_matrix() const { return m_ParentMatrix; } 31 32 protected: 33 CPDF_Pattern(PatternType type, 34 CPDF_Document* pDoc, 35 CPDF_Object* pObj, 36 const CFX_Matrix& parentMatrix); 37 38 const PatternType m_PatternType; 39 CPDF_Document* const m_pDocument; 40 CPDF_Object* const m_pPatternObj; 41 CFX_Matrix m_Pattern2Form; 42 const CFX_Matrix m_ParentMatrix; 43 }; 44 45 #endif // CORE_FPDFAPI_PAGE_CPDF_PATTERN_H_ 46