+/*
+ * 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 "SkPath.h"
+#include "SkSVGShape.h"
+
+// Handles <polygon> and <polyline> elements.
+class SkSVGPoly final : public SkSVGShape {
+public:
+ virtual ~SkSVGPoly() = default;
+
+ static sk_sp<SkSVGPoly> MakePolygon() {
+ return sk_sp<SkSVGPoly>(new SkSVGPoly(SkSVGTag::kPolygon));
+ }
+
+ static sk_sp<SkSVGPoly> MakePolyline() {
+ return sk_sp<SkSVGPoly>(new SkSVGPoly(SkSVGTag::kPolyline));
+ }
+
+ void setPoints(const SkSVGPointsType&);
+
+protected:
+ void onSetAttribute(SkSVGAttribute, const SkSVGValue&) override;
+
+ void onDraw(SkCanvas*, const SkSVGLengthContext&, const SkPaint&) const override;
+
+private:
+ SkSVGPoly(SkSVGTag);
+
+ SkPath fPath;
+
+ typedef SkSVGShape INHERITED;
+};
+
+#endif // SkSVGPoly_DEFINED