diff options
author | tsepez <tsepez@chromium.org> | 2016-08-29 10:24:19 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-08-29 10:24:19 -0700 |
commit | d09a09751f724ecdb1a0bc307447a3d0c212ebff (patch) | |
tree | 917a2986be9769a6bfaf8ac4cc96a8a4006eed82 /core/fpdfapi/fpdf_page/cpdf_textstatedata.cpp | |
parent | a032f7f79c67ddef4db0f44fca8f0d245bfb8e82 (diff) | |
download | pdfium-d09a09751f724ecdb1a0bc307447a3d0c212ebff.tar.xz |
Replace wrapper methods in CPDF_Path with -> operator.
These just invoked exaclty the same methodes in the underlying
xxxData class, which we can now do with just a ->()
Move some methods to the xxxData class, where they belong.
In doing so, put MakePrivateCopy() calls at each callsite
for those methods that made a copy.
Review-Url: https://codereview.chromium.org/2286983002
Diffstat (limited to 'core/fpdfapi/fpdf_page/cpdf_textstatedata.cpp')
-rw-r--r-- | core/fpdfapi/fpdf_page/cpdf_textstatedata.cpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/core/fpdfapi/fpdf_page/cpdf_textstatedata.cpp b/core/fpdfapi/fpdf_page/cpdf_textstatedata.cpp index e60af0076e..9ae99a1cdb 100644 --- a/core/fpdfapi/fpdf_page/cpdf_textstatedata.cpp +++ b/core/fpdfapi/fpdf_page/cpdf_textstatedata.cpp @@ -72,3 +72,38 @@ CPDF_TextStateData::~CPDF_TextStateData() { pPageData->ReleaseFont(m_pFont->GetFontDict()); } } + +void CPDF_TextStateData::SetFont(CPDF_Font* pFont) { + CPDF_DocPageData* pPageData = + m_pDocument ? m_pDocument->GetPageData() : nullptr; + if (pPageData && m_pFont && !pPageData->IsForceClear()) + pPageData->ReleaseFont(m_pFont->GetFontDict()); + + m_pDocument = pFont ? pFont->m_pDocument : nullptr; + m_pFont = pFont; +} + +FX_FLOAT CPDF_TextStateData::GetFontSizeV() const { + const FX_FLOAT* pMatrix = GetMatrix(); + FX_FLOAT unit = FXSYS_sqrt2(pMatrix[1], pMatrix[3]); + FX_FLOAT size = unit * GetFontSize(); + return (FX_FLOAT)FXSYS_fabs(size); +} + +FX_FLOAT CPDF_TextStateData::GetFontSizeH() const { + const FX_FLOAT* pMatrix = GetMatrix(); + FX_FLOAT unit = FXSYS_sqrt2(pMatrix[0], pMatrix[2]); + FX_FLOAT size = unit * GetFontSize(); + return (FX_FLOAT)FXSYS_fabs(size); +} + +FX_FLOAT CPDF_TextStateData::GetBaselineAngle() const { + const FX_FLOAT* pMatrix = GetMatrix(); + return FXSYS_atan2(pMatrix[2], pMatrix[0]); +} + +FX_FLOAT CPDF_TextStateData::GetShearAngle() const { + const FX_FLOAT* pMatrix = GetMatrix(); + FX_FLOAT shear_angle = FXSYS_atan2(pMatrix[1], pMatrix[3]); + return GetBaselineAngle() + shear_angle; +} |