OLD | NEW |
| (Empty) |
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 #include "core/fpdfapi/fpdf_page/cpdf_graphstate.h" | |
8 | |
9 #include "core/fpdfapi/fpdf_parser/include/cpdf_array.h" | |
10 | |
11 CPDF_GraphState::CPDF_GraphState() {} | |
12 | |
13 CPDF_GraphState::CPDF_GraphState(const CPDF_GraphState& that) | |
14 : m_Ref(that.m_Ref) {} | |
15 | |
16 CPDF_GraphState::~CPDF_GraphState() {} | |
17 | |
18 void CPDF_GraphState::Emplace() { | |
19 m_Ref.Emplace(); | |
20 } | |
21 | |
22 void CPDF_GraphState::SetLineDash(CPDF_Array* pArray, | |
23 FX_FLOAT phase, | |
24 FX_FLOAT scale) { | |
25 CFX_GraphStateData* pData = m_Ref.GetPrivateCopy(); | |
26 pData->m_DashPhase = phase * scale; | |
27 pData->SetDashCount(static_cast<int>(pArray->GetCount())); | |
28 for (size_t i = 0; i < pArray->GetCount(); i++) | |
29 pData->m_DashArray[i] = pArray->GetNumberAt(i) * scale; | |
30 } | |
31 | |
32 FX_FLOAT CPDF_GraphState::GetLineWidth() const { | |
33 return m_Ref.GetObject()->m_LineWidth; | |
34 } | |
35 | |
36 void CPDF_GraphState::SetLineWidth(FX_FLOAT width) { | |
37 m_Ref.GetPrivateCopy()->m_LineWidth = width; | |
38 } | |
39 | |
40 CFX_GraphStateData::LineCap CPDF_GraphState::GetLineCap() const { | |
41 return m_Ref.GetObject()->m_LineCap; | |
42 } | |
43 void CPDF_GraphState::SetLineCap(CFX_GraphStateData::LineCap cap) { | |
44 m_Ref.GetPrivateCopy()->m_LineCap = cap; | |
45 } | |
46 | |
47 CFX_GraphStateData::LineJoin CPDF_GraphState::GetLineJoin() const { | |
48 return m_Ref.GetObject()->m_LineJoin; | |
49 } | |
50 | |
51 void CPDF_GraphState::SetLineJoin(CFX_GraphStateData::LineJoin join) { | |
52 m_Ref.GetPrivateCopy()->m_LineJoin = join; | |
53 } | |
54 | |
55 FX_FLOAT CPDF_GraphState::GetMiterLimit() const { | |
56 return m_Ref.GetObject()->m_MiterLimit; | |
57 } | |
58 | |
59 void CPDF_GraphState::SetMiterLimit(FX_FLOAT limit) { | |
60 m_Ref.GetPrivateCopy()->m_MiterLimit = limit; | |
61 } | |
OLD | NEW |