chromium/third_party/pdfium/core/fxge/cfx_path.cpp

// Copyright 2016 The PDFium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com

#include "core/fxge/cfx_path.h"

#include <math.h>

#include <algorithm>
#include <array>
#include <iterator>

#include "core/fxcrt/check_op.h"
#include "core/fxcrt/fx_system.h"

namespace {

bool IsRectPreTransform(const std::vector<CFX_Path::Point>& points) {}

bool XYBothNotEqual(const CFX_PointF& p1, const CFX_PointF& p2) {}

bool IsRectImpl(const std::vector<CFX_Path::Point>& points) {}

CFX_FloatRect CreateRectFromPoints(const CFX_PointF& p1, const CFX_PointF& p2) {}

bool PathPointsNeedNormalization(const std::vector<CFX_Path::Point>& points) {}

std::vector<CFX_Path::Point> GetNormalizedPoints(
    const std::vector<CFX_Path::Point>& points) {}

void UpdateLineEndPoints(CFX_FloatRect* rect,
                         const CFX_PointF& start_pos,
                         const CFX_PointF& end_pos,
                         float hw) {}

void UpdateLineJoinPoints(CFX_FloatRect* rect,
                          const CFX_PointF& start_pos,
                          const CFX_PointF& mid_pos,
                          const CFX_PointF& end_pos,
                          float half_width,
                          float miter_limit) {}

}  // namespace

CFX_Path::Point::Point() = default;

CFX_Path::Point::Point(const CFX_PointF& point, Type type, bool close)
    :{}

CFX_Path::Point::Point(const Point& other) = default;

CFX_Path::Point::~Point() = default;

CFX_Path::CFX_Path() = default;

CFX_Path::CFX_Path(const CFX_Path& src) = default;

CFX_Path::CFX_Path(CFX_Path&& src) noexcept = default;

CFX_Path::~CFX_Path() = default;

void CFX_Path::Clear() {}

void CFX_Path::ClosePath() {}

void CFX_Path::Append(const CFX_Path& src, const CFX_Matrix* matrix) {}

void CFX_Path::AppendPoint(const CFX_PointF& point, Point::Type type) {}

void CFX_Path::AppendPointAndClose(const CFX_PointF& point, Point::Type type) {}

void CFX_Path::AppendLine(const CFX_PointF& pt1, const CFX_PointF& pt2) {}

void CFX_Path::AppendFloatRect(const CFX_FloatRect& rect) {}

void CFX_Path::AppendRect(float left, float bottom, float right, float top) {}

CFX_FloatRect CFX_Path::GetBoundingBox() const {}

CFX_FloatRect CFX_Path::GetBoundingBoxForStrokePath(float line_width,
                                                    float miter_limit) const {}

void CFX_Path::Transform(const CFX_Matrix& matrix) {}

bool CFX_Path::IsRect() const {}

std::optional<CFX_FloatRect> CFX_Path::GetRect(const CFX_Matrix* matrix) const {}

CFX_RetainablePath::CFX_RetainablePath() = default;

// Note: can't default the copy constructor since Retainable<> has a deleted
// copy constructor (as it should). Instead, we want the default Retainable<>
// constructor to be invoked so as to create a copy with a ref-count of 1 as
// of the time it is created, then populate the remainder of the members from
// the |src| object.
CFX_RetainablePath::CFX_RetainablePath(const CFX_RetainablePath& src)
    :{}

CFX_RetainablePath::~CFX_RetainablePath() = default;

RetainPtr<CFX_RetainablePath> CFX_RetainablePath::Clone() const {}