Path SVGAnimateMotionElement::animationPath() { for (Node* child = firstChild(); child; child->nextSibling()) { if (child->hasTagName(SVGNames::mpathTag)) { SVGMPathElement* mPath = static_cast<SVGMPathElement*>(child); SVGPathElement* pathElement = mPath->pathElement(); if (pathElement) return pathElement->toPathData(); // The spec would probably have us throw up an error here, but instead we try to fall back to the d value } } if (hasAttribute(SVGNames::dAttr)) return m_path; return Path(); }
Path SVGAnimateMotionElement::animationPath() const { for (Node* child = firstChild(); child; child = child->nextSibling()) { if (child->hasTagName(SVGNames::mpathTag)) { SVGMPathElement* mPath = static_cast<SVGMPathElement*>(child); SVGPathElement* pathElement = mPath->pathElement(); Path path; if (pathElement) pathElement->toPathData(path); return path; } } if (hasAttribute(SVGNames::pathAttr)) return m_path; return Path(); }