/* * 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 SkSVGPoly_DEFINED #define SkSVGPoly_DEFINED #include "experimental/svg/model/SkSVGShape.h" #include "include/core/SkPath.h" // Handles and elements. class SkSVGPoly final : public SkSVGShape { public: ~SkSVGPoly() override = default; static sk_sp MakePolygon() { return sk_sp(new SkSVGPoly(SkSVGTag::kPolygon)); } static sk_sp MakePolyline() { return sk_sp(new SkSVGPoly(SkSVGTag::kPolyline)); } void setPoints(const SkSVGPointsType&); protected: void onSetAttribute(SkSVGAttribute, const SkSVGValue&) override; void onDraw(SkCanvas*, const SkSVGLengthContext&, const SkPaint&, SkPath::FillType) const override; SkPath onAsPath(const SkSVGRenderContext&) const override; private: SkSVGPoly(SkSVGTag); mutable SkPath fPath; // mutated in onDraw(), to apply inherited fill types. typedef SkSVGShape INHERITED; }; #endif // SkSVGPoly_DEFINED