summaryrefslogtreecommitdiff
path: root/xfa/fde/cfde_path.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'xfa/fde/cfde_path.cpp')
-rw-r--r--xfa/fde/cfde_path.cpp52
1 files changed, 26 insertions, 26 deletions
diff --git a/xfa/fde/cfde_path.cpp b/xfa/fde/cfde_path.cpp
index 23aad50549..6db0ccc6bf 100644
--- a/xfa/fde/cfde_path.cpp
+++ b/xfa/fde/cfde_path.cpp
@@ -6,6 +6,7 @@
#include "xfa/fde/cfde_path.h"
+#include "third_party/base/stl_util.h"
#include "xfa/fde/fde_object.h"
bool CFDE_Path::StartFigure() {
@@ -106,39 +107,38 @@ void CFDE_Path::ArcTo(bool bStart,
CFX_PointF(cx + rx * cos_beta, cy + ry * sin_beta));
}
-void CFDE_Path::AddBezier(const CFX_PointsF& points) {
- if (points.GetSize() != 4)
+void CFDE_Path::AddBezier(const std::vector<CFX_PointF>& points) {
+ if (points.size() != 4)
return;
- const CFX_PointF* p = points.GetData();
- MoveTo(p[0]);
- BezierTo(p[1], p[2], p[3]);
+ MoveTo(points[0]);
+ BezierTo(points[1], points[2], points[3]);
}
-void CFDE_Path::AddBeziers(const CFX_PointsF& points) {
- int32_t iCount = points.GetSize();
+void CFDE_Path::AddBeziers(const std::vector<CFX_PointF>& points) {
+ int32_t iCount = points.size();
if (iCount < 4)
return;
- const CFX_PointF* p = points.GetData();
+ const CFX_PointF* p = points.data();
const CFX_PointF* pEnd = p + iCount;
MoveTo(p[0]);
for (++p; p <= pEnd - 3; p += 3)
BezierTo(p[0], p[1], p[2]);
}
-void CFDE_Path::GetCurveTangents(const CFX_PointsF& points,
- CFX_PointsF& tangents,
+void CFDE_Path::GetCurveTangents(const std::vector<CFX_PointF>& points,
+ std::vector<CFX_PointF>* tangents,
bool bClosed,
FX_FLOAT fTension) const {
- int32_t iCount = points.GetSize();
- tangents.SetSize(iCount);
+ int32_t iCount = pdfium::CollectionSize<int32_t>(points);
+ tangents->resize(iCount);
if (iCount < 3)
return;
FX_FLOAT fCoefficient = fTension / 3.0f;
- const CFX_PointF* pPoints = points.GetData();
- CFX_PointF* pTangents = tangents.GetData();
+ const CFX_PointF* pPoints = points.data();
+ CFX_PointF* pTangents = tangents->data();
for (int32_t i = 0; i < iCount; ++i) {
int32_t r = i + 1;
int32_t s = i - 1;
@@ -152,17 +152,17 @@ void CFDE_Path::GetCurveTangents(const CFX_PointsF& points,
}
}
-void CFDE_Path::AddCurve(const CFX_PointsF& points,
+void CFDE_Path::AddCurve(const std::vector<CFX_PointF>& points,
bool bClosed,
FX_FLOAT fTension) {
- int32_t iLast = points.GetUpperBound();
+ int32_t iLast = pdfium::CollectionSize<int32_t>(points) - 1;
if (iLast < 1)
return;
- CFX_PointsF tangents;
- GetCurveTangents(points, tangents, bClosed, fTension);
- const CFX_PointF* pPoints = points.GetData();
- CFX_PointF* pTangents = tangents.GetData();
+ std::vector<CFX_PointF> tangents;
+ GetCurveTangents(points, &tangents, bClosed, fTension);
+ const CFX_PointF* pPoints = points.data();
+ CFX_PointF* pTangents = tangents.data();
MoveTo(pPoints[0]);
for (int32_t i = 0; i < iLast; ++i) {
BezierTo(CFX_PointF(pPoints[i].x + pTangents[i].x,
@@ -214,13 +214,13 @@ void CFDE_Path::AddPath(const CFDE_Path* pSrc, bool bConnect) {
m_Path.Append(&pSrc->m_Path, nullptr);
}
-void CFDE_Path::AddPolygon(const CFX_PointsF& points) {
- int32_t iCount = points.GetSize();
+void CFDE_Path::AddPolygon(const std::vector<CFX_PointF>& points) {
+ size_t iCount = points.size();
if (iCount < 2)
return;
AddLines(points);
- const CFX_PointF* p = points.GetData();
+ const CFX_PointF* p = points.data();
if (FXSYS_fabs(p[0].x - p[iCount - 1].x) < 0.01f ||
FXSYS_fabs(p[0].y - p[iCount - 1].y) < 0.01f) {
LineTo(p[0]);
@@ -228,12 +228,12 @@ void CFDE_Path::AddPolygon(const CFX_PointsF& points) {
CloseFigure();
}
-void CFDE_Path::AddLines(const CFX_PointsF& points) {
- int32_t iCount = points.GetSize();
+void CFDE_Path::AddLines(const std::vector<CFX_PointF>& points) {
+ size_t iCount = points.size();
if (iCount < 2)
return;
- const CFX_PointF* p = points.GetData();
+ const CFX_PointF* p = points.data();
const CFX_PointF* pEnd = p + iCount;
MoveTo(p[0]);
for (++p; p < pEnd; ++p)