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 #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 
     27   CPDF_Document* document() { return m_pDocument; }
     28   CPDF_Object* pattern_obj() { return m_pPatternObj; }
     29   CFX_Matrix* pattern_to_form() { return &m_Pattern2Form; }
     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