1/* 2 * Copyright 2023, Haiku. 3 * Distributed under the terms of the MIT License. 4 * 5 * Authors: 6 * Zardshard 7 */ 8#ifndef COMPOUND_STYLE_TRANSFORMER_H 9#define COMPOUND_STYLE_TRANSFORMER_H 10 11 12#include <SupportDefs.h> 13 14#include "IconBuild.h" 15#include "StyleTransformer.h" 16 17 18_BEGIN_ICON_NAMESPACE 19 20class VertexSource; 21class StyleTransformer; 22 23 24/*! Allows turning an array of StyleTransformers into a single StyleTransformer. 25 26 \note This class is not meant to be exposed to the GUI or saved in a file. It 27 is currently only used for rendering. 28*/ 29class CompoundStyleTransformer : public StyleTransformer { 30public: 31 CompoundStyleTransformer( 32 StyleTransformer** transformers, 33 int32 count); 34 virtual ~CompoundStyleTransformer(); 35 36 // StyleTransformer interface 37 virtual void transform(double* x, double* y) const; 38 virtual void Invert(); 39 40 virtual bool IsLinear(); 41 42private: 43 StyleTransformer** fTransformers; 44 int32 fCount; 45}; 46 47 48_END_ICON_NAMESPACE 49 50 51#endif // COMPOUND_STYLE_TRANSFORMER_H 52