svgpathparser.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __SVGPATHPARSER_H__
00021 #define __SVGPATHPARSER_H__
00022
00023 class QString;
00024
00036 class SVGPathParser
00037 {
00038 public:
00039 void parseSVG( const QString &d, bool process = false );
00040
00041 protected:
00042 virtual void svgMoveTo( double x1, double y1, bool abs = true ) = 0;
00043 virtual void svgLineTo( double x1, double y1, bool abs = true ) = 0;
00044 virtual void svgLineToHorizontal( double x, bool abs = true );
00045 virtual void svgLineToVertical( double y, bool abs = true );
00046 virtual void svgCurveToCubic( double x1, double y1, double x2, double y2, double x, double y, bool abs = true ) = 0;
00047 virtual void svgCurveToCubicSmooth( double x, double y, double x2, double y2, bool abs = true );
00048 virtual void svgCurveToQuadratic( double x, double y, double x1, double y1, bool abs = true );
00049 virtual void svgCurveToQuadraticSmooth( double x, double y, bool abs = true );
00050 virtual void svgArcTo( double x, double y, double r1, double r2, double angle, bool largeArcFlag, bool sweepFlag, bool abs = true );
00051 virtual void svgClosePath() = 0;
00052
00053 private:
00054 const char *getCoord( const char *, double & );
00055 void calculateArc( bool relative, double &curx, double &cury, double angle, double x, double y, double r1, double r2, bool largeArcFlag, bool sweepFlag );
00056 };
00057
00058 #endif
This file is part of the documentation for lib Library Version 1.3.5.