/* * Copyright 2023, Haiku. * Distributed under the terms of the MIT License. * * Authors: * Zardshard */ #ifndef COMPOUND_STYLE_TRANSFORMER_H #define COMPOUND_STYLE_TRANSFORMER_H #include #include "IconBuild.h" #include "StyleTransformer.h" _BEGIN_ICON_NAMESPACE class VertexSource; class StyleTransformer; /*! Allows turning an array of StyleTransformers into a single StyleTransformer. \note This class is not meant to be exposed to the GUI or saved in a file. It is currently only used for rendering. */ class CompoundStyleTransformer : public StyleTransformer { public: CompoundStyleTransformer( StyleTransformer** transformers, int32 count); virtual ~CompoundStyleTransformer(); // StyleTransformer interface virtual void transform(double* x, double* y) const; virtual void Invert(); virtual bool IsLinear(); private: StyleTransformer** fTransformers; int32 fCount; }; _END_ICON_NAMESPACE #endif // COMPOUND_STYLE_TRANSFORMER_H