#include "config.h"
#if ENABLE(SVG)
#include "SVGPointList.h"
#include "SVGPathSegList.h"
#include "PlatformString.h"
namespace WebCore {
SVGPointList::SVGPointList(const QualifiedName& attributeName)
: SVGPODList<FloatPoint>(attributeName)
{
}
SVGPointList::~SVGPointList()
{
}
String SVGPointList::valueAsString() const
{
String result;
ExceptionCode ec = 0;
for (unsigned int i = 0; i < numberOfItems(); ++i) {
if (i > 0)
result += " ";
FloatPoint point = getItem(i, ec);
ASSERT(ec == 0);
result += String::format("%.6lg %.6lg", point.x(), point.y());
}
return result;
}
PassRefPtr<SVGPointList> SVGPointList::createAnimated(const SVGPointList* fromList, const SVGPointList* toList, float progress)
{
unsigned itemCount = fromList->numberOfItems();
if (!itemCount || itemCount != toList->numberOfItems())
return 0;
RefPtr<SVGPointList> result = create(fromList->associatedAttributeName());
ExceptionCode ec = 0;
for (unsigned n = 0; n < itemCount; ++n) {
FloatPoint from = fromList->getItem(n, ec);
if (ec)
return 0;
FloatPoint to = toList->getItem(n, ec);
if (ec)
return 0;
FloatPoint segment = FloatPoint(adjustAnimatedValue(from.x(), to.x(), progress),
adjustAnimatedValue(from.y(), to.y(), progress));
result->appendItem(segment, ec);
if (ec)
return 0;
}
return result.release();
}
}
#endif // ENABLE(SVG)