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