#ifndef AGG_STROKE_MATH_INCLUDED
#define AGG_STROKE_MATH_INCLUDED
#include "agg_math.h"
#include "agg_vertex_sequence.h"
namespace pdfium
{
namespace agg
{
enum line_cap_e { … };
enum line_join_e { … };
enum inner_join_e { … };
const float stroke_theta = …;
template<class VertexConsumer>
void stroke_calc_arc(VertexConsumer& out_vertices,
float x, float y,
float dx1, float dy1,
float dx2, float dy2,
float width,
float approximation_scale)
{ … }
template<class VertexConsumer>
void stroke_calc_miter(VertexConsumer& out_vertices,
const vertex_dist& v0,
const vertex_dist& v1,
const vertex_dist& v2,
float dx1, float dy1,
float dx2, float dy2,
float width,
line_join_e line_join,
float miter_limit,
float approximation_scale)
{ … }
template<class VertexConsumer>
void stroke_calc_cap(VertexConsumer& out_vertices,
const vertex_dist& v0,
const vertex_dist& v1,
float len,
line_cap_e line_cap,
float width,
float approximation_scale)
{ … }
template<class VertexConsumer>
void stroke_calc_join(VertexConsumer& out_vertices,
const vertex_dist& v0,
const vertex_dist& v1,
const vertex_dist& v2,
float len1,
float len2,
float width,
line_join_e line_join,
inner_join_e inner_join,
float miter_limit,
float inner_miter_limit,
float approximation_scale)
{ … }
}
}
#endif