| /* | 
 |  * Copyright 2016 Google Inc. | 
 |  * | 
 |  * Use of this source code is governed by a BSD-style license that can be | 
 |  * found in the LICENSE file. | 
 |  */ | 
 |  | 
 | #ifndef SkSVGContainer_DEFINED | 
 | #define SkSVGContainer_DEFINED | 
 |  | 
 | #include "SkSVGTransformableNode.h" | 
 | #include "SkTArray.h" | 
 |  | 
 | class SkSVGContainer : public SkSVGTransformableNode { | 
 | public: | 
 |     ~SkSVGContainer() override = default; | 
 |  | 
 |     void appendChild(sk_sp<SkSVGNode>) override; | 
 |  | 
 | protected: | 
 |     explicit SkSVGContainer(SkSVGTag); | 
 |  | 
 |     void onRender(const SkSVGRenderContext&) const override; | 
 |  | 
 |     SkPath onAsPath(const SkSVGRenderContext&) const override; | 
 |  | 
 |     bool hasChildren() const final; | 
 |  | 
 |     // TODO: add some sort of child iterator, and hide the container. | 
 |     SkSTArray<1, sk_sp<SkSVGNode>, true> fChildren; | 
 |  | 
 | private: | 
 |     typedef SkSVGTransformableNode INHERITED; | 
 | }; | 
 |  | 
 | #endif // SkSVGContainer_DEFINED |