8#ifndef SkSVGContainer_DEFINED
9#define SkSVGContainer_DEFINED
29 template <
typename NodeType,
typename Func>
31 for (
const auto& child : fChildren) {
32 if (child->tag() == NodeType::tag) {
33 func(
static_cast<const NodeType*
>(child.get()));
skia_private::STArray< 1, sk_sp< SkSVGNode >, true > fChildren
void forEachChild(Func func) const
virtual SkRect onObjectBoundingBox(const SkSVGRenderContext &) const
virtual void onRender(const SkSVGRenderContext &) const =0
virtual void appendChild(sk_sp< SkSVGNode >)=0
virtual bool hasChildren() const
virtual SkPath onAsPath(const SkSVGRenderContext &) const =0