1 // Copyright 2014 PDFium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6 7 #ifndef _FDE_PATH 8 #define _FDE_PATH 9 class IFDE_Path; 10 class IFDE_Path { 11 public: 12 static IFDE_Path* Create(); ~IFDE_Path()13 virtual ~IFDE_Path() {} 14 virtual void Release() = 0; 15 virtual FX_BOOL StartFigure() = 0; 16 virtual FX_BOOL CloseFigure() = 0; 17 virtual void AddBezier(const CFX_PointsF& points) = 0; 18 virtual void AddBeziers(const CFX_PointsF& points) = 0; 19 virtual void AddCurve(const CFX_PointsF& points, 20 FX_BOOL bClosed, 21 FX_FLOAT fTension = 0.5f) = 0; 22 virtual void AddEllipse(const CFX_RectF& rect) = 0; 23 virtual void AddLines(const CFX_PointsF& points) = 0; 24 virtual void AddLine(const CFX_PointF& pt1, const CFX_PointF& pt2) = 0; 25 virtual void AddPath(const IFDE_Path* pSrc, FX_BOOL bConnect) = 0; 26 virtual void AddPolygon(const CFX_PointsF& points) = 0; 27 virtual void AddRectangle(const CFX_RectF& rect) = 0; 28 virtual void GetBBox(CFX_RectF& bbox) const = 0; 29 virtual void GetBBox(CFX_RectF& bbox, 30 FX_FLOAT fLineWidth, 31 FX_FLOAT fMiterLimit) const = 0; 32 }; 33 #endif 34