// 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 __H_FX_PATH_GENERATOR__ | |
#define __H_FX_PATH_GENERATOR__ | |
#include "core/include/fxge/fx_ge.h" | |
class CFX_PathGenerator { | |
public: | |
CFX_PathGenerator(); | |
void Create(); | |
~CFX_PathGenerator(); | |
CFX_PathData* GetPathData() const { return m_pPathData; } | |
void AddPathData(CFX_PathData* path_data); | |
void AddPathData(FX_PATHPOINT* points, int count); | |
void MoveTo(FX_FLOAT x, FX_FLOAT y); | |
void LineTo(FX_FLOAT x, FX_FLOAT y); | |
void BezierTo(FX_FLOAT ctrl_x1, | |
FX_FLOAT ctrl_y1, | |
FX_FLOAT ctrl_x2, | |
FX_FLOAT ctrl_y2, | |
FX_FLOAT to_x, | |
FX_FLOAT to_y); | |
void Close(); | |
void ArcTo(FX_FLOAT x, | |
FX_FLOAT y, | |
FX_FLOAT width, | |
FX_FLOAT height, | |
FX_FLOAT start_angle, | |
FX_FLOAT sweep_angle); | |
void AddLine(FX_FLOAT x1, FX_FLOAT y1, FX_FLOAT x2, FX_FLOAT y2); | |
void AddBezier(FX_FLOAT start_x, | |
FX_FLOAT start_y, | |
FX_FLOAT ctrl_x1, | |
FX_FLOAT ctrl_y1, | |
FX_FLOAT ctrl_x2, | |
FX_FLOAT ctrl_y2, | |
FX_FLOAT end_x, | |
FX_FLOAT end_y); | |
void AddRectangle(FX_FLOAT x1, FX_FLOAT y1, FX_FLOAT x2, FX_FLOAT y2); | |
void AddEllipse(FX_FLOAT x, FX_FLOAT y, FX_FLOAT width, FX_FLOAT height); | |
void AddArc(FX_FLOAT x, | |
FX_FLOAT y, | |
FX_FLOAT width, | |
FX_FLOAT height, | |
FX_FLOAT start_angle, | |
FX_FLOAT sweep_angle); | |
void AddPie(FX_FLOAT x, | |
FX_FLOAT y, | |
FX_FLOAT width, | |
FX_FLOAT height, | |
FX_FLOAT start_angle, | |
FX_FLOAT sweep_angle); | |
protected: | |
CFX_PathData* m_pPathData; | |
}; | |
#endif |