// @(#)root/gpad:$Id$
// Author: Rene Brun   10/03/2007

/*************************************************************************
 * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

#include "Riostream.h"
#include "TROOT.h"
#include "TColorWheel.h"
#include "TCanvas.h"
#include "TText.h"
#include "TGraph.h"
#include "TArc.h"
#include "TLine.h"
#include "TColor.h"
#include "TMath.h"

ClassImp(TColorWheel)

//______________________________________________________________________________
/* Begin_Html
<center><h2>TColorWheel : Draw the ROOT Color Wheel.</h2></center>
The wheel contains the recommended 216 colors to be used in web applications.
The colors in the Color Wheel are created by TColor::CreateColorWheel.
<p>Using this color set for your text, background or graphics will give your
application a consistent appearance across different platforms and browsers.
<p>Colors are grouped by hue, the aspect most important in human perception.
Touching color chips have the same hue, but with different brightness and vividness.
<p>Colors of slightly different hues <b>clash</b>. If you intend to display
colors of the same hue together, you should pick them from the same group.
<p>Each color chip is identified by a mnemonic (e.g. kYellow) and a number.
The keywords, kRed, kBlue, kYellow, kPink, etc are defined in the header file <b>Rtypes.h</b>
that is included in all ROOT other header files. We strongly recommend to use these keywords
in your code instead of hardcoded color numbers, e.g.:
<pre>
   myObject.SetFillColor(kRed);
   myObject.SetFillColor(kYellow-10);
   myLine.SetLineColor(kMagenta+2);
</pre>

End_Html
Begin_Macro(source)
{
   TColorWheel *w = new TColorWheel();
   w->Draw();
   return w->GetCanvas();
}
End_Macro */

//______________________________________________________________________________
TColorWheel::TColorWheel() :TNamed("wheel","ROOT Color Wheel")
{
   // constructor

   fCanvas = 0;
   fArc    = 0;
   fLine   = 0;
   fText   = 0;
   fGraph  = 0;
   fRmin   = 2.1;
   fRmax   = 9.5;
   fR0     = 4;
   fDr     = 1;
   fRgray  = 1.8;
   fX[ 0]  = fR0-0.2*fDr; fY[ 0] =  0;
   fX[ 1]  = fR0+fDr;     fY[ 1] =  0.75*fDr;
   fX[ 2]  = fR0+fDr;     fY[ 2] = -0.75*fDr;
   fX[ 3]  = fR0+2.2*fDr; fY[ 3] =  1.5*fDr;
   fX[ 4]  = fR0+2.2*fDr; fY[ 4] =  0;
   fX[ 5]  = fR0+2.2*fDr; fY[ 5] = -1.5*fDr;
   fX[ 6]  = fR0+3.4*fDr; fY[ 6] =  2.2*fDr;
   fX[ 7]  = fR0+3.4*fDr; fY[ 7] =  0.7*fDr;
   fX[ 8]  = fR0+3.4*fDr; fY[ 8] = -0.7*fDr;
   fX[ 9]  = fR0+3.4*fDr; fY[ 9] = -2.2*fDr;
   fX[10]  = fR0+4.6*fDr; fY[10] =  2.8*fDr;
   fX[11]  = fR0+4.6*fDr; fY[11] =  1.4*fDr;
   fX[12]  = fR0+4.6*fDr; fY[12] =  0;
   fX[13]  = fR0+4.6*fDr; fY[13] = -1.4*fDr;
   fX[14]  = fR0+4.6*fDr; fY[14] = -2.8*fDr;

   SetBit(kCanDelete);
}

//______________________________________________________________________________
TColorWheel::~TColorWheel()
{
   // destructor

   //delete fCanvas;  please don't do that
   delete fArc;
   delete fLine;
   delete fText;
   delete fGraph;
}

//______________________________________________________________________________
Int_t TColorWheel::DistancetoPrimitive(Int_t px, Int_t py)
{
   // always return the color wheel

   if (px+py < 0) return 1;
   return 0;
}


//______________________________________________________________________________
void TColorWheel::Draw(Option_t *option)
{
   // Paint the color wheel

   if (!fCanvas) {
      fCanvas = new TCanvas("wheel","ROOT Color Wheel",10,10,400,400);
      fCanvas->ToggleEventStatus();
   }
   fCanvas->Range(-10.5,-10.5,10.5,10.5);
   fCanvas->SetBorderMode(0);
   fCanvas->SetFillColor(TColor::GetColor(243,241,174));
   AppendPad(option);
}

//______________________________________________________________________________
Int_t TColorWheel::GetColor(Int_t px, Int_t py) const
{
   // Return the color number pointed by the mouse

   Double_t x = fCanvas->AbsPixeltoX(px);
   Double_t y = fCanvas->AbsPixeltoY(py);
   Int_t n = 0;

   n = InGray(x,y);                   if (n >= 0) return n;
   n = InCircles   (x,y,kMagenta, 0); if (n >= 0) return n;
   n = InRectangles(x,y,kPink,   30); if (n >= 0) return n;
   n = InCircles   (x,y,kRed,    60); if (n >= 0) return n;
   n = InRectangles(x,y,kOrange, 90); if (n >= 0) return n;
   n = InCircles   (x,y,kYellow,120); if (n >= 0) return n;
   n = InRectangles(x,y,kSpring,150); if (n >= 0) return n;
   n = InCircles   (x,y,kGreen, 180); if (n >= 0) return n;
   n = InRectangles(x,y,kTeal,  210); if (n >= 0) return n;
   n = InCircles   (x,y,kCyan,  240); if (n >= 0) return n;
   n = InRectangles(x,y,kAzure, 270); if (n >= 0) return n;
   n = InCircles   (x,y,kBlue,  300); if (n >= 0) return n;
   n = InRectangles(x,y,kViolet,330); if (n >= 0) return n;
   return -1;
}

//______________________________________________________________________________
char  *TColorWheel::GetObjectInfo(Int_t px, Int_t py) const
{
   // Return the color number pointed by the mouse

   static char info[50];
   info[0] = 0;

   Int_t n = GetColor(px,py);
   if (n < 0) return info;
   TColor *color = gROOT->GetColor(n);
   if (!color) return info;
   Int_t r = (Int_t)(255.01*color->GetRed());
   Int_t g = (Int_t)(255.01*color->GetGreen());
   Int_t b = (Int_t)(255.01*color->GetBlue());
   snprintf(info,50,"col %d, %s, r=%3d, g=%3d, b=%3d",n,color->GetName(),r,g,b);
   return info;
}

//______________________________________________________________________________
Int_t TColorWheel::InCircles(Double_t x, Double_t y, Int_t coffset, Double_t angle) const
{
   // Return the color number when the mouse point to a circle

   Double_t ang = angle*TMath::DegToRad();
   Double_t u,v;
   Rotate(x,y,u,v,ang);
   Double_t r2 = 0.7*0.7*fDr*fDr;
   for (Int_t i=0;i<15;i++) {
      Double_t dx = u-fX[i];
      Double_t dy = v-fY[i];
      if (dx*dx+dy*dy < r2) return coffset+i-10;
   }
   return -1;
}

//______________________________________________________________________________
Int_t TColorWheel::InGray(Double_t x, Double_t y) const
{
   // Return the color number when the mouse point to the gray circle

   if (x*x+y*y > fRgray*fRgray) return -1;
   Double_t ang = TMath::ATan2(y,x)*TMath::RadToDeg();
   if (ang < 0) ang += 360;
   if (ang <  60) return kWhite;
   if (ang < 120) return kGray;
   if (ang < 180) return kGray+1;
   if (ang < 240) return kGray+2;
   if (ang < 300) return kGray+3;
   return kBlack;
}

//______________________________________________________________________________
Int_t TColorWheel::InRectangles(Double_t x, Double_t y, Int_t coffset, Double_t angle) const
{
   // Return the color number when the mouse point to a rectangle

   Double_t ang = angle*TMath::DegToRad();
   Double_t u,v;
   Rotate(x,y,u,v,ang);
   if (TMath::Abs(v) > 1) return -1;
   if (u < fRmin || u > fRmax) return -1;
   Int_t div = (Int_t)(10*(u-fRmin)/(fRmax-fRmin));
   if (v > 0) return coffset + div+1;
   return coffset+div-9;
}

//______________________________________________________________________________
void TColorWheel::Paint(Option_t * /*option*/)
{
   // Paint the color wheel

   if (!fArc) {
      fArc   = new TArc;
      fLine  = new TLine;
      fText  = new TText();
      fGraph = new TGraph();
   }
   PaintGray();
   PaintCircles   (kMagenta, 0);
   PaintRectangles(kPink,   30);
   PaintCircles   (kRed,    60);
   PaintRectangles(kOrange, 90);
   PaintCircles   (kYellow,120);
   PaintRectangles(kSpring,150);
   PaintCircles   (kGreen, 180);
   PaintRectangles(kTeal,  210);
   PaintCircles   (kCyan,  240);
   PaintRectangles(kAzure, 270);
   PaintCircles   (kBlue,  300);
   PaintRectangles(kViolet,330);

   fText->SetTextFont(72);
   fText->SetTextColor(kBlue);
   fText->SetTextAlign(11);
   fText->SetTextSize(0.03);
   fText->SetTextAngle(0);
   fText->PaintText(-10.2,-10.2,"ROOT Color Wheel");
}

//______________________________________________________________________________
void TColorWheel::PaintCircle(Int_t coffset,Int_t n, Double_t x, Double_t y, Double_t ang) const
{
   // Draw one color of type circle

   Double_t u,v;
   Rotate(x,y,u,v,ang);
   Int_t colorn = coffset+n;
   TColor *color = gROOT->GetColor(colorn);
   if (!color) return;
   fArc->SetFillColor(colorn);
   fArc->SetLineColor(14);
   Double_t r = 0.7*fDr;
   fArc->PaintEllipse(u,v,r,r,0,360,0);
   fText->SetTextSize(0.03);
   fText->SetTextAlign(22);
   if (255*color->GetLight() <150 && n != 0) fText->SetTextColor(0);
   if (n>0) fText->PaintText(u,v,Form("+%d",n));
   else     fText->PaintText(u,v,Form("%d", n));
}

//______________________________________________________________________________
void TColorWheel::PaintCircles(Int_t coffset, Double_t angle) const
{
   // Draw all colors of type circle

   Double_t ang = TMath::DegToRad()*angle;
   Double_t u,v,u0,v0;
   Rotate(fR0+4.6*fDr,2.8*fDr,u0,v0,ang);
   Rotate(fR0+5.8*fDr,2.1*fDr,u,v,ang);
   fLine->PaintLine(u,v,u0,v0);
   fText->SetTextAlign(22);
   fText->SetTextFont(72);
   fText->SetTextColor(1);
   fText->SetTextSize(0.03);
   Double_t tangle = angle-90;
   if (angle == 240) tangle = -30;
   if (angle == 300) tangle =  30;
   TColor *col = gROOT->GetColor(coffset);
   if (!col) return;
   fText->SetTextAngle(tangle);
   fText->PaintText(u,v,col->GetName());

   for (Int_t i=0;i<15;i++) {
      PaintCircle(coffset,i-10, fX[i], fY[i],    ang);
   }
}

//______________________________________________________________________________
void TColorWheel::PaintRectangles(Int_t coffset, Double_t angle) const
{
   // Draw all colors of type rectangle

   Double_t ang = TMath::DegToRad()*angle;
   Double_t rmin = fRmin, rmax=fRmax;
   Double_t dr = (rmax-rmin)/10;
   Double_t dy = -1.0;

   Double_t u,v,u0,v0;
   Rotate(rmax+0.62*dr,0,u,v,ang);
   Rotate(rmax-dr,0.9*dy,u0,v0,ang);
   fLine->PaintLine(u,v,u0,v0);
   fText->SetTextAlign(22);
   fText->SetTextFont(72);
   fText->SetTextColor(1);
   fText->SetTextSize(0.03);
   Double_t tangle = angle+90;
   if (angle == 30)  tangle = -60;
   if (angle == 90)  tangle = 0;
   if (angle == 150) tangle = 60;
   if (angle == 210) tangle = -60;
   if (angle == 270) tangle = 0;
   fText->SetTextAngle(tangle);
   TColor *color = gROOT->GetColor(coffset);
   if (!color) return;
   fText->PaintText(u,v,color->GetName());

   Double_t x[5],y[5];
   Int_t n=-10;
   for (Int_t j=0;j<2;j++) {
      for (Int_t i=0;i<10;i++) {
         n++;
         Int_t colorn = coffset +n;
         color = gROOT->GetColor(colorn);
         Rotate(rmin+i*dr,    0,x[0],y[0],ang);
         Rotate(rmin+i*dr,   dy,x[1],y[1],ang);
         Rotate(rmin+i*dr+dr,dy,x[2],y[2],ang);
         Rotate(rmin+i*dr+dr, 0,x[3],y[3],ang);
         fGraph->SetFillColor(colorn);
         fGraph->PaintGraph(4,x,y,"f");
         Rotate(rmin+i*dr+0.5*dr,0.5*dy,x[0],y[0],ang);
         fText->SetTextSize(0.03);
         fText->SetTextAlign(22);
         if (color) {
            if (255*color->GetLight() <110) fText->SetTextColor(0);
         }
         Double_t tang = angle-90;
         if (angle > 180) tang -=180;
         fText->SetTextAngle(tang);
         if (n > 0) fText->PaintText(x[0],y[0],Form("+%d",n));
         else       fText->PaintText(x[0],y[0],Form("%d",n));
      }
      dy=1;
   }

   Rotate(rmin,-dy,x[0],y[0],ang);
   Rotate(rmax,-dy,x[1],y[1],ang);
   Rotate(rmax, dy,x[2],y[2],ang);
   Rotate(rmin, dy,x[3],y[3],ang);
   Rotate(rmin,-dy,x[4],y[4],ang);
   fGraph->SetLineColor(1);
   fGraph->SetLineWidth(1);
   fGraph->PaintGraph(5,x,y,"l");
   fLine->SetLineWidth(1);
   Rotate(rmin+3*dr,-dy,x[0],y[0],ang);
   Rotate(rmin+3*dr, dy,x[1],y[1],ang);
   fLine->PaintLine(x[0],y[0],x[1],y[1]);
   Rotate(rmin+6*dr,-dy,x[0],y[0],ang);
   Rotate(rmin+6*dr, dy,x[1],y[1],ang);
   fLine->PaintLine(x[0],y[0],x[1],y[1]);
   Rotate(rmin+9*dr,-dy,x[0],y[0],ang);
   Rotate(rmin+9*dr, dy,x[1],y[1],ang);
   fLine->PaintLine(x[0],y[0],x[1],y[1]);
   Rotate(rmin+7*dr,-dy,x[0],y[0],ang);
   Rotate(rmin+7*dr, dy,x[1],y[1],ang);
   fLine->PaintLine(x[0],y[0],x[1],y[1]);
   Rotate(rmin+6*dr,0,x[0],y[0],ang);
   Rotate(rmax, 0,x[1],y[1],ang);
   fLine->PaintLine(x[0],y[0],x[1],y[1]);
}

//______________________________________________________________________________
void TColorWheel::PaintGray() const
{
   // Draw the gray colors + white + black

   Double_t r = fRgray;
   fArc->SetFillColor(kWhite);
   fArc->PaintEllipse(0,0,r,r,0,60,0);
   fArc->SetFillColor(kGray);
   fArc->PaintEllipse(0,0,r,r,60,120,0);
   fArc->SetFillColor(kGray+1);
   fArc->PaintEllipse(0,0,r,r,120,180,0);
   fArc->SetFillColor(kGray+2);
   fArc->PaintEllipse(0,0,r,r,180,240,0);
   fArc->SetFillColor(kGray+3);
   fArc->PaintEllipse(0,0,r,r,240,300,0);
   fArc->SetFillColor(kBlack);
   fArc->PaintEllipse(0,0,r,r,300,360,0);

   fText->SetTextAlign(22);
   fText->SetTextFont(62);
   fText->SetTextColor(1);
   fText->SetTextSize(0.02);
   fText->SetTextAngle(40);
   fText->PaintText(0.5*r,0.3*r,"kWhite");
   fText->SetTextAngle(0);
   fText->PaintText(0,0.8*r,"kGray");
   fText->SetTextColor(10);
   fText->SetTextFont(72);
   fText->SetTextSize(0.03);
   fText->PaintText(-0.6*r, 0.3*r,"+1");
   fText->PaintText(-0.6*r,-0.3*r,"+2");
   fText->PaintText(0,-0.6*r,"+3");
   fText->SetTextAngle(-40);
   fText->SetTextSize(0.02);
   fText->SetTextFont(62);
   fText->PaintText(0.5*r,-0.35*r,"kBlack");
}

//______________________________________________________________________________
void TColorWheel::Rotate(Double_t x, Double_t y, Double_t &u, Double_t &v, Double_t ang) const
{
   // Rotate point x,y with an angle=ang

   u = x*TMath::Cos(ang)  + y*TMath::Sin(ang);
   v = x*TMath::Sin(ang)  - y*TMath::Cos(ang);
}
 TColorWheel.cxx:1
 TColorWheel.cxx:2
 TColorWheel.cxx:3
 TColorWheel.cxx:4
 TColorWheel.cxx:5
 TColorWheel.cxx:6
 TColorWheel.cxx:7
 TColorWheel.cxx:8
 TColorWheel.cxx:9
 TColorWheel.cxx:10
 TColorWheel.cxx:11
 TColorWheel.cxx:12
 TColorWheel.cxx:13
 TColorWheel.cxx:14
 TColorWheel.cxx:15
 TColorWheel.cxx:16
 TColorWheel.cxx:17
 TColorWheel.cxx:18
 TColorWheel.cxx:19
 TColorWheel.cxx:20
 TColorWheel.cxx:21
 TColorWheel.cxx:22
 TColorWheel.cxx:23
 TColorWheel.cxx:24
 TColorWheel.cxx:25
 TColorWheel.cxx:26
 TColorWheel.cxx:27
 TColorWheel.cxx:28
 TColorWheel.cxx:29
 TColorWheel.cxx:30
 TColorWheel.cxx:31
 TColorWheel.cxx:32
 TColorWheel.cxx:33
 TColorWheel.cxx:34
 TColorWheel.cxx:35
 TColorWheel.cxx:36
 TColorWheel.cxx:37
 TColorWheel.cxx:38
 TColorWheel.cxx:39
 TColorWheel.cxx:40
 TColorWheel.cxx:41
 TColorWheel.cxx:42
 TColorWheel.cxx:43
 TColorWheel.cxx:44
 TColorWheel.cxx:45
 TColorWheel.cxx:46
 TColorWheel.cxx:47
 TColorWheel.cxx:48
 TColorWheel.cxx:49
 TColorWheel.cxx:50
 TColorWheel.cxx:51
 TColorWheel.cxx:52
 TColorWheel.cxx:53
 TColorWheel.cxx:54
 TColorWheel.cxx:55
 TColorWheel.cxx:56
 TColorWheel.cxx:57
 TColorWheel.cxx:58
 TColorWheel.cxx:59
 TColorWheel.cxx:60
 TColorWheel.cxx:61
 TColorWheel.cxx:62
 TColorWheel.cxx:63
 TColorWheel.cxx:64
 TColorWheel.cxx:65
 TColorWheel.cxx:66
 TColorWheel.cxx:67
 TColorWheel.cxx:68
 TColorWheel.cxx:69
 TColorWheel.cxx:70
 TColorWheel.cxx:71
 TColorWheel.cxx:72
 TColorWheel.cxx:73
 TColorWheel.cxx:74
 TColorWheel.cxx:75
 TColorWheel.cxx:76
 TColorWheel.cxx:77
 TColorWheel.cxx:78
 TColorWheel.cxx:79
 TColorWheel.cxx:80
 TColorWheel.cxx:81
 TColorWheel.cxx:82
 TColorWheel.cxx:83
 TColorWheel.cxx:84
 TColorWheel.cxx:85
 TColorWheel.cxx:86
 TColorWheel.cxx:87
 TColorWheel.cxx:88
 TColorWheel.cxx:89
 TColorWheel.cxx:90
 TColorWheel.cxx:91
 TColorWheel.cxx:92
 TColorWheel.cxx:93
 TColorWheel.cxx:94
 TColorWheel.cxx:95
 TColorWheel.cxx:96
 TColorWheel.cxx:97
 TColorWheel.cxx:98
 TColorWheel.cxx:99
 TColorWheel.cxx:100
 TColorWheel.cxx:101
 TColorWheel.cxx:102
 TColorWheel.cxx:103
 TColorWheel.cxx:104
 TColorWheel.cxx:105
 TColorWheel.cxx:106
 TColorWheel.cxx:107
 TColorWheel.cxx:108
 TColorWheel.cxx:109
 TColorWheel.cxx:110
 TColorWheel.cxx:111
 TColorWheel.cxx:112
 TColorWheel.cxx:113
 TColorWheel.cxx:114
 TColorWheel.cxx:115
 TColorWheel.cxx:116
 TColorWheel.cxx:117
 TColorWheel.cxx:118
 TColorWheel.cxx:119
 TColorWheel.cxx:120
 TColorWheel.cxx:121
 TColorWheel.cxx:122
 TColorWheel.cxx:123
 TColorWheel.cxx:124
 TColorWheel.cxx:125
 TColorWheel.cxx:126
 TColorWheel.cxx:127
 TColorWheel.cxx:128
 TColorWheel.cxx:129
 TColorWheel.cxx:130
 TColorWheel.cxx:131
 TColorWheel.cxx:132
 TColorWheel.cxx:133
 TColorWheel.cxx:134
 TColorWheel.cxx:135
 TColorWheel.cxx:136
 TColorWheel.cxx:137
 TColorWheel.cxx:138
 TColorWheel.cxx:139
 TColorWheel.cxx:140
 TColorWheel.cxx:141
 TColorWheel.cxx:142
 TColorWheel.cxx:143
 TColorWheel.cxx:144
 TColorWheel.cxx:145
 TColorWheel.cxx:146
 TColorWheel.cxx:147
 TColorWheel.cxx:148
 TColorWheel.cxx:149
 TColorWheel.cxx:150
 TColorWheel.cxx:151
 TColorWheel.cxx:152
 TColorWheel.cxx:153
 TColorWheel.cxx:154
 TColorWheel.cxx:155
 TColorWheel.cxx:156
 TColorWheel.cxx:157
 TColorWheel.cxx:158
 TColorWheel.cxx:159
 TColorWheel.cxx:160
 TColorWheel.cxx:161
 TColorWheel.cxx:162
 TColorWheel.cxx:163
 TColorWheel.cxx:164
 TColorWheel.cxx:165
 TColorWheel.cxx:166
 TColorWheel.cxx:167
 TColorWheel.cxx:168
 TColorWheel.cxx:169
 TColorWheel.cxx:170
 TColorWheel.cxx:171
 TColorWheel.cxx:172
 TColorWheel.cxx:173
 TColorWheel.cxx:174
 TColorWheel.cxx:175
 TColorWheel.cxx:176
 TColorWheel.cxx:177
 TColorWheel.cxx:178
 TColorWheel.cxx:179
 TColorWheel.cxx:180
 TColorWheel.cxx:181
 TColorWheel.cxx:182
 TColorWheel.cxx:183
 TColorWheel.cxx:184
 TColorWheel.cxx:185
 TColorWheel.cxx:186
 TColorWheel.cxx:187
 TColorWheel.cxx:188
 TColorWheel.cxx:189
 TColorWheel.cxx:190
 TColorWheel.cxx:191
 TColorWheel.cxx:192
 TColorWheel.cxx:193
 TColorWheel.cxx:194
 TColorWheel.cxx:195
 TColorWheel.cxx:196
 TColorWheel.cxx:197
 TColorWheel.cxx:198
 TColorWheel.cxx:199
 TColorWheel.cxx:200
 TColorWheel.cxx:201
 TColorWheel.cxx:202
 TColorWheel.cxx:203
 TColorWheel.cxx:204
 TColorWheel.cxx:205
 TColorWheel.cxx:206
 TColorWheel.cxx:207
 TColorWheel.cxx:208
 TColorWheel.cxx:209
 TColorWheel.cxx:210
 TColorWheel.cxx:211
 TColorWheel.cxx:212
 TColorWheel.cxx:213
 TColorWheel.cxx:214
 TColorWheel.cxx:215
 TColorWheel.cxx:216
 TColorWheel.cxx:217
 TColorWheel.cxx:218
 TColorWheel.cxx:219
 TColorWheel.cxx:220
 TColorWheel.cxx:221
 TColorWheel.cxx:222
 TColorWheel.cxx:223
 TColorWheel.cxx:224
 TColorWheel.cxx:225
 TColorWheel.cxx:226
 TColorWheel.cxx:227
 TColorWheel.cxx:228
 TColorWheel.cxx:229
 TColorWheel.cxx:230
 TColorWheel.cxx:231
 TColorWheel.cxx:232
 TColorWheel.cxx:233
 TColorWheel.cxx:234
 TColorWheel.cxx:235
 TColorWheel.cxx:236
 TColorWheel.cxx:237
 TColorWheel.cxx:238
 TColorWheel.cxx:239
 TColorWheel.cxx:240
 TColorWheel.cxx:241
 TColorWheel.cxx:242
 TColorWheel.cxx:243
 TColorWheel.cxx:244
 TColorWheel.cxx:245
 TColorWheel.cxx:246
 TColorWheel.cxx:247
 TColorWheel.cxx:248
 TColorWheel.cxx:249
 TColorWheel.cxx:250
 TColorWheel.cxx:251
 TColorWheel.cxx:252
 TColorWheel.cxx:253
 TColorWheel.cxx:254
 TColorWheel.cxx:255
 TColorWheel.cxx:256
 TColorWheel.cxx:257
 TColorWheel.cxx:258
 TColorWheel.cxx:259
 TColorWheel.cxx:260
 TColorWheel.cxx:261
 TColorWheel.cxx:262
 TColorWheel.cxx:263
 TColorWheel.cxx:264
 TColorWheel.cxx:265
 TColorWheel.cxx:266
 TColorWheel.cxx:267
 TColorWheel.cxx:268
 TColorWheel.cxx:269
 TColorWheel.cxx:270
 TColorWheel.cxx:271
 TColorWheel.cxx:272
 TColorWheel.cxx:273
 TColorWheel.cxx:274
 TColorWheel.cxx:275
 TColorWheel.cxx:276
 TColorWheel.cxx:277
 TColorWheel.cxx:278
 TColorWheel.cxx:279
 TColorWheel.cxx:280
 TColorWheel.cxx:281
 TColorWheel.cxx:282
 TColorWheel.cxx:283
 TColorWheel.cxx:284
 TColorWheel.cxx:285
 TColorWheel.cxx:286
 TColorWheel.cxx:287
 TColorWheel.cxx:288
 TColorWheel.cxx:289
 TColorWheel.cxx:290
 TColorWheel.cxx:291
 TColorWheel.cxx:292
 TColorWheel.cxx:293
 TColorWheel.cxx:294
 TColorWheel.cxx:295
 TColorWheel.cxx:296
 TColorWheel.cxx:297
 TColorWheel.cxx:298
 TColorWheel.cxx:299
 TColorWheel.cxx:300
 TColorWheel.cxx:301
 TColorWheel.cxx:302
 TColorWheel.cxx:303
 TColorWheel.cxx:304
 TColorWheel.cxx:305
 TColorWheel.cxx:306
 TColorWheel.cxx:307
 TColorWheel.cxx:308
 TColorWheel.cxx:309
 TColorWheel.cxx:310
 TColorWheel.cxx:311
 TColorWheel.cxx:312
 TColorWheel.cxx:313
 TColorWheel.cxx:314
 TColorWheel.cxx:315
 TColorWheel.cxx:316
 TColorWheel.cxx:317
 TColorWheel.cxx:318
 TColorWheel.cxx:319
 TColorWheel.cxx:320
 TColorWheel.cxx:321
 TColorWheel.cxx:322
 TColorWheel.cxx:323
 TColorWheel.cxx:324
 TColorWheel.cxx:325
 TColorWheel.cxx:326
 TColorWheel.cxx:327
 TColorWheel.cxx:328
 TColorWheel.cxx:329
 TColorWheel.cxx:330
 TColorWheel.cxx:331
 TColorWheel.cxx:332
 TColorWheel.cxx:333
 TColorWheel.cxx:334
 TColorWheel.cxx:335
 TColorWheel.cxx:336
 TColorWheel.cxx:337
 TColorWheel.cxx:338
 TColorWheel.cxx:339
 TColorWheel.cxx:340
 TColorWheel.cxx:341
 TColorWheel.cxx:342
 TColorWheel.cxx:343
 TColorWheel.cxx:344
 TColorWheel.cxx:345
 TColorWheel.cxx:346
 TColorWheel.cxx:347
 TColorWheel.cxx:348
 TColorWheel.cxx:349
 TColorWheel.cxx:350
 TColorWheel.cxx:351
 TColorWheel.cxx:352
 TColorWheel.cxx:353
 TColorWheel.cxx:354
 TColorWheel.cxx:355
 TColorWheel.cxx:356
 TColorWheel.cxx:357
 TColorWheel.cxx:358
 TColorWheel.cxx:359
 TColorWheel.cxx:360
 TColorWheel.cxx:361
 TColorWheel.cxx:362
 TColorWheel.cxx:363
 TColorWheel.cxx:364
 TColorWheel.cxx:365
 TColorWheel.cxx:366
 TColorWheel.cxx:367
 TColorWheel.cxx:368
 TColorWheel.cxx:369
 TColorWheel.cxx:370
 TColorWheel.cxx:371
 TColorWheel.cxx:372
 TColorWheel.cxx:373
 TColorWheel.cxx:374
 TColorWheel.cxx:375
 TColorWheel.cxx:376
 TColorWheel.cxx:377
 TColorWheel.cxx:378
 TColorWheel.cxx:379
 TColorWheel.cxx:380
 TColorWheel.cxx:381
 TColorWheel.cxx:382
 TColorWheel.cxx:383
 TColorWheel.cxx:384
 TColorWheel.cxx:385
 TColorWheel.cxx:386
 TColorWheel.cxx:387
 TColorWheel.cxx:388
 TColorWheel.cxx:389
 TColorWheel.cxx:390
 TColorWheel.cxx:391
 TColorWheel.cxx:392
 TColorWheel.cxx:393
 TColorWheel.cxx:394
 TColorWheel.cxx:395
 TColorWheel.cxx:396
 TColorWheel.cxx:397
 TColorWheel.cxx:398
 TColorWheel.cxx:399
 TColorWheel.cxx:400
 TColorWheel.cxx:401
 TColorWheel.cxx:402
 TColorWheel.cxx:403
 TColorWheel.cxx:404
 TColorWheel.cxx:405
 TColorWheel.cxx:406
 TColorWheel.cxx:407
 TColorWheel.cxx:408
 TColorWheel.cxx:409
 TColorWheel.cxx:410
 TColorWheel.cxx:411
 TColorWheel.cxx:412
 TColorWheel.cxx:413
 TColorWheel.cxx:414
 TColorWheel.cxx:415
 TColorWheel.cxx:416
 TColorWheel.cxx:417
 TColorWheel.cxx:418
 TColorWheel.cxx:419
 TColorWheel.cxx:420
 TColorWheel.cxx:421
 TColorWheel.cxx:422
 TColorWheel.cxx:423
 TColorWheel.cxx:424
 TColorWheel.cxx:425
 TColorWheel.cxx:426
 TColorWheel.cxx:427
 TColorWheel.cxx:428