Index: fpdfsdk/src/pdfwindow/PWL_Utils.cpp |
diff --git a/fpdfsdk/src/pdfwindow/PWL_Utils.cpp b/fpdfsdk/src/pdfwindow/PWL_Utils.cpp |
index 71a9d474b7265cf3af1c58dbfd31f52defade2fc..2c9ec99dc8e43f96f2965a14b9c6648722085f42 100644 |
--- a/fpdfsdk/src/pdfwindow/PWL_Utils.cpp |
+++ b/fpdfsdk/src/pdfwindow/PWL_Utils.cpp |
@@ -4,7 +4,6 @@ |
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
-#include "fpdfsdk/include/pdfwindow/PDFWindow.h" |
#include "fpdfsdk/include/pdfwindow/PWL_Icon.h" |
#include "fpdfsdk/include/pdfwindow/PWL_Utils.h" |
#include "fpdfsdk/include/pdfwindow/PWL_Wnd.h" |
@@ -14,8 +13,6 @@ |
#define IsFloatSmaller(fa, fb) ((fa) < (fb) && !IsFloatZero((fa) - (fb))) |
#define IsFloatEqual(fa, fb) IsFloatZero((fa) - (fb)) |
-/* ---------------------------- CPWL_Utils ------------------------------ */ |
- |
CFX_ByteString CPWL_Utils::GetAppStreamFromArray(const CPWL_PathData* pPathData, |
int32_t nCount) { |
CFX_ByteTextBuf csAP; |
@@ -136,71 +133,49 @@ CPVT_WordRange CPWL_Utils::OverlapWordRange(const CPVT_WordRange& wr1, |
} |
CFX_ByteString CPWL_Utils::GetAP_Check(const CPDF_Rect& crBBox) { |
- CFX_ByteTextBuf csAP; |
- |
- FX_FLOAT fWidth = crBBox.right - crBBox.left; |
- FX_FLOAT fHeight = crBBox.top - crBBox.bottom; |
- |
- const int32_t num = 8; |
- |
- CPWL_Point pts[num * 3] = {// 1 |
- CPWL_Point(0.28f, 0.52f), CPWL_Point(0.27f, 0.48f), |
- CPWL_Point(0.29f, 0.40f), |
- |
- // 2 |
- CPWL_Point(0.30f, 0.33f), CPWL_Point(0.31f, 0.29f), |
- CPWL_Point(0.31f, 0.28f), |
- |
- // 3 |
- CPWL_Point(0.39f, 0.28f), CPWL_Point(0.49f, 0.29f), |
- CPWL_Point(0.77f, 0.67f), |
- |
- // 4 |
- CPWL_Point(0.76f, 0.68f), CPWL_Point(0.78f, 0.69f), |
- CPWL_Point(0.76f, 0.75f), |
- |
- // 5 |
- CPWL_Point(0.76f, 0.75f), CPWL_Point(0.73f, 0.80f), |
- CPWL_Point(0.68f, 0.75f), |
- |
- // 6 |
- CPWL_Point(0.68f, 0.74f), CPWL_Point(0.68f, 0.74f), |
- CPWL_Point(0.44f, 0.47f), |
- |
- // 7 |
- CPWL_Point(0.43f, 0.47f), CPWL_Point(0.40f, 0.47f), |
- CPWL_Point(0.41f, 0.58f), |
- |
- // 8 |
- CPWL_Point(0.40f, 0.60f), CPWL_Point(0.28f, 0.66f), |
- CPWL_Point(0.30f, 0.56f)}; |
- |
- for (int32_t j = 0; j < num * 3; j++) { |
- pts[j].x *= fWidth; |
- pts[j].x += crBBox.left; |
- |
- pts[j].y *= fHeight; |
- pts[j].y += crBBox.bottom; |
+ const FX_FLOAT fWidth = crBBox.right - crBBox.left; |
+ const FX_FLOAT fHeight = crBBox.top - crBBox.bottom; |
+ |
+ CPWL_Point pts[8][3] = {{CPWL_Point(0.28f, 0.52f), CPWL_Point(0.27f, 0.48f), |
+ CPWL_Point(0.29f, 0.40f)}, |
+ {CPWL_Point(0.30f, 0.33f), CPWL_Point(0.31f, 0.29f), |
+ CPWL_Point(0.31f, 0.28f)}, |
+ {CPWL_Point(0.39f, 0.28f), CPWL_Point(0.49f, 0.29f), |
+ CPWL_Point(0.77f, 0.67f)}, |
+ {CPWL_Point(0.76f, 0.68f), CPWL_Point(0.78f, 0.69f), |
+ CPWL_Point(0.76f, 0.75f)}, |
+ {CPWL_Point(0.76f, 0.75f), CPWL_Point(0.73f, 0.80f), |
+ CPWL_Point(0.68f, 0.75f)}, |
+ {CPWL_Point(0.68f, 0.74f), CPWL_Point(0.68f, 0.74f), |
+ CPWL_Point(0.44f, 0.47f)}, |
+ {CPWL_Point(0.43f, 0.47f), CPWL_Point(0.40f, 0.47f), |
+ CPWL_Point(0.41f, 0.58f)}, |
+ {CPWL_Point(0.40f, 0.60f), CPWL_Point(0.28f, 0.66f), |
+ CPWL_Point(0.30f, 0.56f)}}; |
+ |
+ for (size_t i = 0; i < FX_ArraySize(pts); ++i) { |
+ for (size_t j = 0; j < FX_ArraySize(pts[0]); ++j) { |
+ pts[i][j].x = pts[i][j].x * fWidth + crBBox.left; |
+ pts[i][j].y *= pts[i][j].y * fHeight + crBBox.bottom; |
+ } |
} |
- csAP << pts[0].x << " " << pts[0].y << " m\n"; |
+ CFX_ByteTextBuf csAP; |
+ csAP << pts[0][0].x << " " << pts[0][0].y << " m\n"; |
- for (int32_t i = 0; i < num; i++) { |
- int32_t nCur = i * 3; |
- int32_t n1 = i * 3 + 1; |
- int32_t n2 = i * 3 + 2; |
- int32_t nNext = (i < num - 1 ? (i + 1) * 3 : 0); |
+ for (size_t i = 0; i < FX_ArraySize(pts); ++i) { |
+ size_t nNext = i < FX_ArraySize(pts) - 1 ? i + 1 : 0; |
- FX_FLOAT px1 = pts[n1].x - pts[nCur].x; |
- FX_FLOAT py1 = pts[n1].y - pts[nCur].y; |
- FX_FLOAT px2 = pts[n2].x - pts[nNext].x; |
- FX_FLOAT py2 = pts[n2].y - pts[nNext].y; |
+ FX_FLOAT px1 = pts[i][1].x - pts[i][0].x; |
+ FX_FLOAT py1 = pts[i][1].y - pts[i][0].y; |
+ FX_FLOAT px2 = pts[i][2].x - pts[nNext][0].x; |
+ FX_FLOAT py2 = pts[i][2].y - pts[nNext][0].y; |
- csAP << pts[nCur].x + px1 * PWL_BEZIER << " " |
- << pts[nCur].y + py1 * PWL_BEZIER << " " |
- << pts[nNext].x + px2 * PWL_BEZIER << " " |
- << pts[nNext].y + py2 * PWL_BEZIER << " " << pts[nNext].x << " " |
- << pts[nNext].y << " c\n"; |
+ csAP << pts[i][0].x + px1 * PWL_BEZIER << " " |
+ << pts[i][0].y + py1 * PWL_BEZIER << " " |
+ << pts[nNext][0].x + px2 * PWL_BEZIER << " " |
+ << pts[nNext][0].y + py2 * PWL_BEZIER << " " << pts[nNext][0].x << " " |
+ << pts[nNext][0].y << " c\n"; |
} |
return csAP.GetByteString(); |
@@ -2338,7 +2313,6 @@ void CPWL_Utils::GetGraphics_Cross(CFX_ByteString& sPathData, |
const PWL_PATH_TYPE type) { |
FX_FLOAT fWidth = crBBox.right - crBBox.left; |
FX_FLOAT fHeight = crBBox.top - crBBox.bottom; |
- // FX_FLOAT fcatercorner = (FX_FLOAT)sqrt(fWidth*fWidth + fHeight*fHeight); |
CPWL_Point center_point(crBBox.left + fWidth / 2, |
crBBox.bottom + fHeight / 2); |