12 #ifndef ROOT_TColorGradient
13 #define ROOT_TColorGradient
35 class TColorGradient :
public TColor {
37 typedef std::vector<Color_t>::size_type SizeType_t;
44 enum ECoordinateMode {
58 Point(Double_t x, Double_t y)
66 std::vector<Double_t> fColorPositions;
67 std::vector<Double_t> fColors;
70 ECoordinateMode fCoordinateMode;
75 TColorGradient(Color_t newColor, UInt_t nPoints,
const Double_t *points,
76 const Color_t *colorIndices, ECoordinateMode mode = kObjectBoundingMode);
77 TColorGradient(Color_t newColor, UInt_t nPoints,
const Double_t *points,
78 const Double_t *colors, ECoordinateMode mode = kObjectBoundingMode);
81 void ResetColor(UInt_t nPoints,
const Double_t *points,
82 const Color_t *colorIndices);
83 void ResetColor(UInt_t nPoints,
const Double_t *points,
84 const Double_t *colorIndices);
86 void SetCoordinateMode(ECoordinateMode mode);
87 ECoordinateMode GetCoordinateMode()
const;
89 SizeType_t GetNumberOfSteps()
const;
90 const Double_t *GetColorPositions()
const;
91 const Double_t *GetColors()
const;
94 void RegisterColor(Color_t colorIndex);
96 ClassDef(TColorGradient, 0);
99 class TLinearGradient :
public TColorGradient {
103 TLinearGradient(Color_t newColor, UInt_t nPoints,
const Double_t *points,
104 const Color_t *colorIndices, ECoordinateMode mode = kObjectBoundingMode);
105 TLinearGradient(Color_t newColor, UInt_t nPoints,
const Double_t *points,
106 const Double_t *colors, ECoordinateMode mode = kObjectBoundingMode);
109 void SetStartEnd(
const Point &p1,
const Point &p2);
110 const Point &GetStart()
const;
111 const Point &GetEnd()
const;
117 ClassDef(TLinearGradient, 0);
128 class TRadialGradient :
public TColorGradient {
138 TRadialGradient(Color_t newColor, UInt_t nPoints,
const Double_t *points,
139 const Color_t *colorIndices, ECoordinateMode mode = kObjectBoundingMode);
140 TRadialGradient(Color_t newColor, UInt_t nPoints,
const Double_t *points,
141 const Double_t *colors, ECoordinateMode mode = kObjectBoundingMode);
144 EGradientType GetGradientType()
const;
148 void SetStartEndR1R2(
const Point &p1, Double_t r1,
149 const Point &p2, Double_t r2);
150 const Point &GetStart()
const;
151 Double_t GetR1()
const;
152 const Point &GetEnd()
const;
153 Double_t GetR2()
const;
157 void SetRadialGradient(
const Point ¢er, Double_t radius);
158 const Point &GetCenter()
const;
159 Double_t GetRadius()
const;
167 EGradientType fType = kSimple;
169 ClassDef(TRadialGradient, 0);