|  |  | 
|  | //---------------------------------------------------------------------------- | 
|  | // Anti-Grain Geometry - Version 2.3 | 
|  | // Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com) | 
|  | // | 
|  | // Permission to copy, use, modify, sell and distribute this software | 
|  | // is granted provided this copyright notice appears in all copies. | 
|  | // This software is provided "as is" without express or implied | 
|  | // warranty, and with no claim as to its suitability for any purpose. | 
|  | // | 
|  | //---------------------------------------------------------------------------- | 
|  | // Contact: mcseem@antigrain.com | 
|  | //          mcseemagg@yahoo.com | 
|  | //          http://www.antigrain.com | 
|  | //---------------------------------------------------------------------------- | 
|  | // | 
|  | // conv_stroke | 
|  | // | 
|  | //---------------------------------------------------------------------------- | 
|  | #ifndef AGG_CONV_STROKE_INCLUDED | 
|  | #define AGG_CONV_STROKE_INCLUDED | 
|  | #include "agg_basics.h" | 
|  | #include "agg_vcgen_stroke.h" | 
|  | #include "agg_conv_adaptor_vcgen.h" | 
|  | namespace pdfium | 
|  | { | 
|  | namespace agg | 
|  | { | 
|  | template<class VertexSource, class Markers = null_markers> | 
|  | struct conv_stroke : | 
|  | public conv_adaptor_vcgen<VertexSource, vcgen_stroke, Markers> { | 
|  | typedef Markers marker_type; | 
|  | typedef conv_adaptor_vcgen<VertexSource, vcgen_stroke, Markers> base_type; | 
|  | conv_stroke(VertexSource& vs) : | 
|  | conv_adaptor_vcgen<VertexSource, vcgen_stroke, Markers>(vs) | 
|  | { | 
|  | } | 
|  | void line_cap(line_cap_e lc) | 
|  | { | 
|  | base_type::generator().line_cap(lc); | 
|  | } | 
|  | void line_join(line_join_e lj) | 
|  | { | 
|  | base_type::generator().line_join(lj); | 
|  | } | 
|  | void inner_join(inner_join_e ij) | 
|  | { | 
|  | base_type::generator().inner_join(ij); | 
|  | } | 
|  | line_cap_e   line_cap()   const | 
|  | { | 
|  | return base_type::generator().line_cap(); | 
|  | } | 
|  | line_join_e  line_join()  const | 
|  | { | 
|  | return base_type::generator().line_join(); | 
|  | } | 
|  | inner_join_e inner_join() const | 
|  | { | 
|  | return base_type::generator().inner_join(); | 
|  | } | 
|  | void width(float w) | 
|  | { | 
|  | base_type::generator().width(w); | 
|  | } | 
|  | void miter_limit(float ml) | 
|  | { | 
|  | base_type::generator().miter_limit(ml); | 
|  | } | 
|  | void miter_limit_theta(float t) | 
|  | { | 
|  | base_type::generator().miter_limit_theta(t); | 
|  | } | 
|  | void inner_miter_limit(float ml) | 
|  | { | 
|  | base_type::generator().inner_miter_limit(ml); | 
|  | } | 
|  | void approximation_scale(float as) | 
|  | { | 
|  | base_type::generator().approximation_scale(as); | 
|  | } | 
|  | float width() const | 
|  | { | 
|  | return base_type::generator().width(); | 
|  | } | 
|  | float miter_limit() const | 
|  | { | 
|  | return base_type::generator().miter_limit(); | 
|  | } | 
|  | float inner_miter_limit() const | 
|  | { | 
|  | return base_type::generator().inner_miter_limit(); | 
|  | } | 
|  | float approximation_scale() const | 
|  | { | 
|  | return base_type::generator().approximation_scale(); | 
|  | } | 
|  | void shorten(float s) | 
|  | { | 
|  | base_type::generator().shorten(s); | 
|  | } | 
|  | float shorten() const | 
|  | { | 
|  | return base_type::generator().shorten(); | 
|  | } | 
|  | private: | 
|  | conv_stroke(const conv_stroke<VertexSource, Markers>&); | 
|  | const conv_stroke<VertexSource, Markers>& | 
|  | operator = (const conv_stroke<VertexSource, Markers>&); | 
|  | }; | 
|  | } | 
|  | }  // namespace pdfium | 
|  | #endif |