1 /* 2 Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org> 3 2004, 2005, 2006 Rob Buis <buis@kde.org> 4 5 This file is part of the KDE project 6 7 This library is free software; you can redistribute it and/or 8 modify it under the terms of the GNU Library General Public 9 License as published by the Free Software Foundation; either 10 version 2 of the License, or (at your option) any later version. 11 12 This library is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 Library General Public License for more details. 16 17 You should have received a copy of the GNU Library General Public License 18 along with this library; see the file COPYING.LIB. If not, write to 19 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 20 Boston, MA 02110-1301, USA. 21 */ 22 23 #ifndef SVGPathSegLineto_h 24 #define SVGPathSegLineto_h 25 26 #if ENABLE(SVG) 27 28 #include "SVGPathSeg.h" 29 30 namespace WebCore 31 { 32 class SVGPathSegLinetoAbs : public SVGPathSeg 33 { 34 public: create(float x,float y)35 static PassRefPtr<SVGPathSegLinetoAbs> create(float x, float y) 36 { 37 return adoptRef(new SVGPathSegLinetoAbs(x, y)); 38 } 39 virtual ~SVGPathSegLinetoAbs(); 40 pathSegType()41 unsigned short pathSegType() const override 42 { 43 return PATHSEG_LINETO_ABS; 44 } pathSegTypeAsLetter()45 String pathSegTypeAsLetter() const override 46 { 47 return "L"; 48 } toString()49 String toString() const override 50 { 51 return String::format("L %.6lg %.6lg", m_x, m_y); 52 } 53 54 void setX(float); 55 float x() const; 56 57 void setY(float); 58 float y() const; 59 60 private: 61 SVGPathSegLinetoAbs(float x, float y); 62 63 float m_x; 64 float m_y; 65 }; 66 67 class SVGPathSegLinetoRel : public SVGPathSeg 68 { 69 public: create(float x,float y)70 static PassRefPtr<SVGPathSegLinetoRel> create(float x, float y) 71 { 72 return adoptRef(new SVGPathSegLinetoRel(x, y)); 73 } 74 virtual ~SVGPathSegLinetoRel(); 75 pathSegType()76 unsigned short pathSegType() const override 77 { 78 return PATHSEG_LINETO_REL; 79 } pathSegTypeAsLetter()80 String pathSegTypeAsLetter() const override 81 { 82 return "l"; 83 } toString()84 String toString() const override 85 { 86 return String::format("l %.6lg %.6lg", m_x, m_y); 87 } 88 89 void setX(float); 90 float x() const; 91 92 void setY(float); 93 float y() const; 94 95 private: 96 SVGPathSegLinetoRel(float x, float y); 97 98 float m_x; 99 float m_y; 100 }; 101 102 } // namespace WebCore 103 104 #endif // ENABLE(SVG) 105 #endif 106 107