1/*
2 * Copyright 2006-2007, 2023, Haiku.
3 * Distributed under the terms of the MIT License.
4 *
5 * Authors:
6 *		Stephan A��mus <superstippi@gmx.de>
7 *		Zardshard
8 */
9#ifndef VERTEX_SOURCE_H
10#define VERTEX_SOURCE_H
11
12
13#include "IconBuild.h"
14
15
16_BEGIN_ICON_NAMESPACE
17
18
19class VertexSource {
20 public:
21								VertexSource() {}
22	virtual						~VertexSource() {}
23
24	virtual	void				rewind(unsigned path_id) = 0;
25	virtual	unsigned			vertex(double* x, double* y) = 0;
26
27	/*! Determines whether open paths should be closed or left open. */
28	virtual	bool				WantsOpenPaths() const = 0;
29	virtual	double				ApproximationScale() const = 0;
30
31 private:
32	// Not allowed
33#if __GNUC__ <= 2
34#define NOT_ALLOWED
35#else
36#define NOT_ALLOWED = delete
37#endif
38	VertexSource(const VertexSource& other) NOT_ALLOWED;
39	VertexSource& operator=(const VertexSource& other) NOT_ALLOWED;
40#undef NOT_ALLOWED
41};
42
43
44_END_ICON_NAMESPACE
45
46
47#endif	// VERTEX_SOURCE_H
48