xref: /haiku/src/libs/icon/generic/VertexSource.h (revision e1c4049fed1047bdb957b0529e1921e97ef94770)
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 
19 class 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