// Copyright 2014 PDFium Authors. All rights reserved. // 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 #ifndef _FDE_PATH #define _FDE_PATH class IFDE_Path; class IFDE_Path { public: static IFDE_Path* Create(); virtual ~IFDE_Path() {} virtual void Release() = 0; virtual FX_BOOL StartFigure() = 0; virtual FX_BOOL CloseFigure() = 0; virtual void AddBezier(const CFX_PointsF& points) = 0; virtual void AddBeziers(const CFX_PointsF& points) = 0; virtual void AddCurve(const CFX_PointsF& points, FX_BOOL bClosed, FX_FLOAT fTension = 0.5f) = 0; virtual void AddEllipse(const CFX_RectF& rect) = 0; virtual void AddLines(const CFX_PointsF& points) = 0; virtual void AddLine(const CFX_PointF& pt1, const CFX_PointF& pt2) = 0; virtual void AddPath(const IFDE_Path* pSrc, FX_BOOL bConnect) = 0; virtual void AddPolygon(const CFX_PointsF& points) = 0; virtual void AddRectangle(const CFX_RectF& rect) = 0; virtual void GetBBox(CFX_RectF& bbox) const = 0; virtual void GetBBox(CFX_RectF& bbox, FX_FLOAT fLineWidth, FX_FLOAT fMiterLimit) const = 0; }; #endif