#include "agg_path_storage.h"
namespace agg
{
class path_storage
{
public:
~path_storage();
path_storage();
path_storage(const path_storage& ps);
void remove_all();
unsigned last_vertex(double* vertex_x, double* vertex_y) const;
unsigned prev_vertex(double* vertex_x, double* vertex_y) const;
void rel_to_abs(double* vertex_x, double* vertex_y) const;
void move_to(double x, double y);
void move_rel(double dx, double dy);
void line_to(double x, double y);
void line_rel(double dx, double dy);
void arc_to(double rx, double ry,
double angle,
bool large_arc_flag,
bool sweep_flag,
double x, double y);
void arc_rel(double rx, double ry,
double angle,
bool large_arc_flag,
bool sweep_flag,
double dx, double dy);
void curve3(double x_ctrl, double y_ctrl,
double x_to, double y_to);
void curve3_rel(double dx_ctrl, double dy_ctrl,
double dx_to, double dy_to);
void curve3(double x_to, double y_to);
void curve3_rel(double dx_to, double dy_to);
void curve4(double x_ctrl1, double y_ctrl1,
double x_ctrl2, double y_ctrl2,
double x_to, double y_to);
void curve4_rel(double dx_ctrl1, double dy_ctrl1,
double dx_ctrl2, double dy_ctrl2,
double dx_to, double dy_to);
void curve4(double x_ctrl2, double y_ctrl2,
double x_to, double y_to);
void curve4_rel(double x_ctrl2, double y_ctrl2,
double x_to, double y_to);
void end_poly(unsigned flags = path_flags_close);
void close_polygon(unsigned flags = path_flags_none);
void add_poly(const double* vertices, unsigned num,
bool solid_path = false,
unsigned end_flags = path_flags_none);
unsigned start_new_path();
void copy_from(const path_storage& ps);
unsigned total_vertices() const;
unsigned vertex(unsigned idx, double* vertex_x, double* vertex_y) const;
unsigned command(unsigned idx) const;
void rewind(unsigned path_id);
unsigned vertex(double* vertex_x, double* vertex_y);
unsigned arrange_orientations(unsigned path_id, path_flags_e new_orientation);
void arrange_orientations_all_paths(path_flags_e new_orientation);
void flip_x(double x1, double x2);
void flip_y(double y1, double y2);
void add_vertex(double x, double y, unsigned cmd);
void modify_vertex(unsigned idx, double x, double y);
void modify_command(unsigned idx, unsigned cmd);
};
}
syntax highlighted by Code2HTML, v. 0.9.1