diff options
Diffstat (limited to 'ksvg/dom/SVGPathElement.cpp')
-rw-r--r-- | ksvg/dom/SVGPathElement.cpp | 198 |
1 files changed, 198 insertions, 0 deletions
diff --git a/ksvg/dom/SVGPathElement.cpp b/ksvg/dom/SVGPathElement.cpp new file mode 100644 index 00000000..d3610f47 --- /dev/null +++ b/ksvg/dom/SVGPathElement.cpp @@ -0,0 +1,198 @@ +/* + Copyright (C) 2001-2003 KSVG Team + This file is part of the KDE project + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "SVGPathElement.h" +#include "SVGPathElementImpl.h" +#include "SVGPoint.h" +#include "SVGPathSegClosePath.h" +#include "SVGPathSegLineto.h" +#include "SVGPathSegLinetoHorizontal.h" +#include "SVGPathSegLinetoVertical.h" +#include "SVGPathSegMoveto.h" +#include "SVGPathSegArc.h" +#include "SVGPathSegCurvetoCubic.h" +#include "SVGPathSegCurvetoCubicSmooth.h" +#include "SVGPathSegCurvetoQuadratic.h" +#include "SVGPathSegCurvetoQuadraticSmooth.h" + +using namespace KSVG; + +SVGPathElement::SVGPathElement() : SVGElement(), SVGTests(), SVGLangSpace(), SVGExternalResourcesRequired(), SVGStylable(), SVGTransformable(), SVGAnimatedPathData() +{ + impl = 0; +} + +SVGPathElement::SVGPathElement(const SVGPathElement &other) : SVGElement(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGTransformable(other), SVGAnimatedPathData(other), impl(0) +{ + (*this) = other; +} + +SVGPathElement &SVGPathElement::operator=(const SVGPathElement &other) +{ + SVGElement::operator=(other); + SVGTests::operator=(other); + SVGLangSpace::operator=(other); + SVGExternalResourcesRequired::operator=(other); + SVGStylable::operator=(other); + SVGTransformable::operator=(other); + + if(impl == other.impl) + return *this; + + if(impl) + impl->deref(); + + impl = other.impl; + + if(impl) + impl->ref(); + + return *this; +} + +SVGPathElement::SVGPathElement(SVGPathElementImpl *other) : SVGElement(other), SVGTests(other), SVGLangSpace(other), SVGExternalResourcesRequired(other), SVGStylable(other), SVGTransformable(other), SVGAnimatedPathData(other) +{ + impl = other; + if(impl) + impl->ref(); +} + +SVGPathElement::~SVGPathElement() +{ + if(impl) + impl->deref(); +} + +/* +SVGAnimatedNumber SVGPathElement::pathLength() const +{ + return m_pathLength; +} +*/ + +float SVGPathElement::getTotalLength() +{ + return impl->getTotalLength(); +} + +SVGPoint SVGPathElement::getPointAtLength(float distance) +{ + return SVGPoint(impl->getPointAtLength(distance)); +} + +unsigned long SVGPathElement::getPathSegAtLength(float distance) +{ + return impl->getPathSegAtLength(distance); +} + +SVGPathSegClosePath SVGPathElement::createSVGPathSegClosePath() +{ + return impl->createSVGPathSegClosePath(); +} + +SVGPathSegMovetoAbs SVGPathElement::createSVGPathSegMovetoAbs(float x,float y) +{ + return impl->createSVGPathSegMovetoAbs(x, y);; +} + +SVGPathSegMovetoRel SVGPathElement::createSVGPathSegMovetoRel(float x,float y) +{ + return impl->createSVGPathSegMovetoRel(x, y); +} + +SVGPathSegLinetoAbs SVGPathElement::createSVGPathSegLinetoAbs(float x,float y) +{ + return impl->createSVGPathSegLinetoAbs(x, y); +} + +SVGPathSegLinetoRel SVGPathElement::createSVGPathSegLinetoRel(float x,float y) +{ + return impl->createSVGPathSegLinetoRel(x, y); +} + +SVGPathSegCurvetoCubicAbs SVGPathElement::createSVGPathSegCurvetoCubicAbs(float x,float y,float x1,float y1,float x2,float y2) +{ + return impl->createSVGPathSegCurvetoCubicAbs(x, y, x1, y1, x2, y2); +} + +SVGPathSegCurvetoCubicRel SVGPathElement::createSVGPathSegCurvetoCubicRel(float x,float y,float x1,float y1,float x2,float y2) +{ + return impl->createSVGPathSegCurvetoCubicRel(x, y, x1, y1, x2, y2); +} + +SVGPathSegCurvetoQuadraticAbs SVGPathElement::createSVGPathSegCurvetoQuadraticAbs(float x,float y,float x1,float y1) +{ + return impl->createSVGPathSegCurvetoQuadraticAbs(x, y, x1, y1); +} + +SVGPathSegCurvetoQuadraticRel SVGPathElement::createSVGPathSegCurvetoQuadraticRel(float x,float y,float x1,float y1) +{ + return impl->createSVGPathSegCurvetoQuadraticRel(x, y, x1, y1); +} + +SVGPathSegArcAbs SVGPathElement::createSVGPathSegArcAbs(float x,float y,float r1,float r2,float angle,bool largeArcFlag,bool sweepFlag) +{ + return impl->createSVGPathSegArcAbs(x, y, r1, r2, angle, largeArcFlag, sweepFlag); +} + +SVGPathSegArcRel SVGPathElement::createSVGPathSegArcRel(float x,float y,float r1,float r2,float angle,bool largeArcFlag,bool sweepFlag) +{ + return impl->createSVGPathSegArcRel(x, y, r1, r2, angle, largeArcFlag, sweepFlag); +} + +SVGPathSegLinetoHorizontalAbs SVGPathElement::createSVGPathSegLinetoHorizontalAbs(float x) +{ + return impl->createSVGPathSegLinetoHorizontalAbs(x); +} + +SVGPathSegLinetoHorizontalRel SVGPathElement::createSVGPathSegLinetoHorizontalRel(float x) +{ + return impl->createSVGPathSegLinetoHorizontalRel(x); +} + +SVGPathSegLinetoVerticalAbs SVGPathElement::createSVGPathSegLinetoVerticalAbs(float y) +{ + return impl->createSVGPathSegLinetoVerticalAbs(y); +} + +SVGPathSegLinetoVerticalRel SVGPathElement::createSVGPathSegLinetoVerticalRel(float y) +{ + return impl->createSVGPathSegLinetoVerticalRel(y); +} + +SVGPathSegCurvetoCubicSmoothAbs SVGPathElement::createSVGPathSegCurvetoCubicSmoothAbs(float x,float y,float x2,float y2) +{ + return impl->createSVGPathSegCurvetoCubicSmoothAbs(x, y, x2, y2);; +} + +SVGPathSegCurvetoCubicSmoothRel SVGPathElement::createSVGPathSegCurvetoCubicSmoothRel(float x,float y,float x2,float y2) +{ + return impl->createSVGPathSegCurvetoCubicSmoothRel(x, y, x2, y2); +} + +SVGPathSegCurvetoQuadraticSmoothAbs SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothAbs(float x,float y) +{ + return impl->createSVGPathSegCurvetoQuadraticSmoothAbs(x, y); +} + +SVGPathSegCurvetoQuadraticSmoothRel SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothRel(float x,float y) +{ + return impl->createSVGPathSegCurvetoQuadraticSmoothRel(x, y); +} |