/* * Copyright 2006-2007, 2023, Haiku. * Distributed under the terms of the MIT License. * * Authors: * Stephan Aßmus * Zardshard */ #ifndef PATH_TRANSFORMER_H #define PATH_TRANSFORMER_H #include "IconBuild.h" #include "VertexSource.h" _BEGIN_ICON_NAMESPACE /*! A transformation to a VertexSource. It can add points, move them around, turn them to curves, etc. */ class PathTransformer : public VertexSource { public: PathTransformer(VertexSource& source) : fSource(source) {} virtual ~PathTransformer() {} // PathTransformer virtual void rewind(unsigned path_id) { fSource.rewind(path_id); } virtual unsigned vertex(double* x, double* y) { return fSource.vertex(x, y); } virtual void SetSource(VertexSource& source) { fSource = source; } virtual bool WantsOpenPaths() const { return fSource.WantsOpenPaths(); } virtual double ApproximationScale() const { return fSource.ApproximationScale(); } protected: VertexSource& fSource; }; _END_ICON_NAMESPACE #endif // PATH_TRANSFORMER_H