2 * Copyright 2006-2007, Haiku. All rights reserved.
3 * Distributed under the terms of the MIT License.
6 * Stephan Aßmus <superstippi@gmx.de>
8 #ifndef SVG_GRADIENTS_H
9 #define SVG_GRADIENTS_H
12 #include <agg_color_rgba.h>
13 #include <agg_trans_affine.h>
18 #include "IconBuild.h"
28 class SVGGradient
: public BMessage
{
31 virtual ~SVGGradient();
33 void SetID(const char* id
);
34 const char* ID() const;
36 virtual void AddStop(float offset
, rgba8 color
);
37 void SetTransformation(const trans_affine
& transform
);
39 Gradient
* GetGradient(BRect objectBounds
);
42 virtual Gradient
* MakeGradient() const = 0;
43 void IdentifyGradientUnits();
55 uint32 fGradientUnits
;
58 class SVGLinearGradient
: public SVGGradient
{
61 virtual ~SVGLinearGradient();
64 virtual Gradient
* MakeGradient() const;
68 class SVGRadialGradient
: public SVGGradient
{
71 virtual ~SVGRadialGradient();
74 virtual Gradient
* MakeGradient() const;
81 #endif // SVG_GRADIENTS_H