#ifndef SVGPathUtilities_h
#define SVGPathUtilities_h
#include "core/svg/SVGPathConsumer.h"
#include "platform/geometry/FloatPoint.h"
#include "wtf/OwnPtr.h"
#include "wtf/text/WTFString.h"
namespace WebCore {
class Path;
class SVGPathByteStream;
class SVGPathElement;
class SVGPathSeg;
class SVGPathSegList;
bool buildPathFromString(const String&, Path&);
bool buildPathFromByteStream(const SVGPathByteStream*, Path&);
bool appendSVGPathByteStreamFromSVGPathSeg(PassRefPtr<SVGPathSeg>, SVGPathByteStream*, PathParsingMode);
bool buildSVGPathByteStreamFromString(const String&, SVGPathByteStream*, PathParsingMode);
bool buildStringFromByteStream(const SVGPathByteStream*, String&, PathParsingMode);
bool buildStringFromSVGPathSegList(PassRefPtr<SVGPathSegList>, String&, PathParsingMode);
bool addToSVGPathByteStream(SVGPathByteStream*, const SVGPathByteStream*, unsigned repeatCount = 1);
bool getSVGPathSegAtLengthFromSVGPathByteStream(const SVGPathByteStream*, float length, unsigned& pathSeg);
bool getTotalLengthOfSVGPathByteStream(const SVGPathByteStream*, float& totalLength);
bool getPointAtLengthOfSVGPathByteStream(const SVGPathByteStream*, float length, FloatPoint&);
}
#endif