113 if (px+py < 0)
return 1;
141 n =
InGray(x,y);
if (n >= 0)
return n;
162 static char info[50];
166 if (n < 0)
return info;
168 if (!color)
return info;
172 snprintf(info,50,
"col %d, %s, r=%3d, g=%3d, b=%3d",n,color->
GetName(),
r,
g,
b);
185 for (
Int_t i=0;i<15;i++) {
188 if (dx*dx+dy*dy < r2)
return coffset+i-10;
200 if (ang < 0) ang += 360;
201 if (ang < 60)
return kWhite;
202 if (ang < 120)
return kGray;
203 if (ang < 180)
return kGray+1;
204 if (ang < 240)
return kGray+2;
205 if (ang < 300)
return kGray+3;
218 if (u < fRmin || u >
fRmax)
return -1;
220 if (v > 0)
return coffset + div+1;
221 return coffset+div-9;
293 if (angle == 240) tangle = -30;
294 if (angle == 300) tangle = 30;
300 for (
Int_t i=0;i<15;i++) {
316 Rotate(rmax+0.62*dr,0,u,v,ang);
317 Rotate(rmax-dr,0.9*dy,u0,v0,ang);
324 if (angle == 30) tangle = -60;
325 if (angle == 90) tangle = 0;
326 if (angle == 150) tangle = 60;
327 if (angle == 210) tangle = -60;
328 if (angle == 270) tangle = 0;
336 for (
Int_t j=0;j<2;j++) {
337 for (
Int_t i=0;i<10;i++) {
339 Int_t colorn = coffset +
n;
340 color =
gROOT->GetColor(colorn);
341 Rotate(rmin+i*dr, 0,x[0],y[0],ang);
342 Rotate(rmin+i*dr, dy,x[1],y[1],ang);
343 Rotate(rmin+i*dr+dr,dy,x[2],y[2],ang);
344 Rotate(rmin+i*dr+dr, 0,x[3],y[3],ang);
347 Rotate(rmin+i*dr+0.5*dr,0.5*dy,x[0],y[0],ang);
354 if (angle > 180) tang -=180;
362 Rotate(rmin,-dy,x[0],y[0],ang);
363 Rotate(rmax,-dy,x[1],y[1],ang);
364 Rotate(rmax, dy,x[2],y[2],ang);
365 Rotate(rmin, dy,x[3],y[3],ang);
366 Rotate(rmin,-dy,x[4],y[4],ang);
371 Rotate(rmin+3*dr,-dy,x[0],y[0],ang);
372 Rotate(rmin+3*dr, dy,x[1],y[1],ang);
374 Rotate(rmin+6*dr,-dy,x[0],y[0],ang);
375 Rotate(rmin+6*dr, dy,x[1],y[1],ang);
377 Rotate(rmin+9*dr,-dy,x[0],y[0],ang);
378 Rotate(rmin+9*dr, dy,x[1],y[1],ang);
380 Rotate(rmin+7*dr,-dy,x[0],y[0],ang);
381 Rotate(rmin+7*dr, dy,x[1],y[1],ang);
383 Rotate(rmin+6*dr,0,x[0],y[0],ang);
384 Rotate(rmax, 0,x[1],y[1],ang);
virtual const char * GetName() const
Returns name of object.
virtual void SetLineWidth(Width_t lwidth)
Set the line width.
virtual void PaintEllipse(Double_t x1, Double_t y1, Double_t r1, Double_t r2, Double_t phimin, Double_t phimax, Double_t theta, Option_t *option="")
Draw this ellipse with new coordinates.
virtual void ToggleEventStatus()
Toggle event statusbar.
void PaintGraph(Int_t npoints, const Double_t *x, const Double_t *y, Option_t *chopt)
Draw the (x,y) as a graph.
virtual char * GetObjectInfo(Int_t px, Int_t py) const
Return the color number pointed by the mouse.
TLine * fLine
! pointer to utility line
virtual void SetBorderMode(Short_t bordermode)
Double_t fY[15]
Y coordinates of the center of circles.
void PaintGray() const
Draw the gray colors + white + black.
virtual ~TColorWheel()
destructor
Int_t InGray(Double_t x, Double_t y) const
Return the color number when the mouse point to the gray circle.
Double_t fRgray
Maximum radius of gray circle.
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
if object in a list can be deleted
virtual void AppendPad(Option_t *option="")
Append graphics object to current pad.
virtual void SetTextFont(Font_t tfont=62)
Set the text font.
void PaintCircle(Int_t coffset, Int_t n, Double_t x, Double_t y, Double_t ang) const
Draw one color of type circle.
virtual void Draw(Option_t *option="")
Paint the color wheel.
The TNamed class is the base class for all named ROOT classes.
constexpr Double_t DegToRad()
Conversion from degree to radian: .
Int_t 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.
Base class for several text objects.
Double_t ATan2(Double_t, Double_t)
TCanvas * fCanvas
! Canvas used to draw the Color Wheel
void 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.
virtual void SetTextAlign(Short_t align=11)
Set the text alignment.
virtual void PaintLine(Double_t x1, Double_t y1, Double_t x2, Double_t y2)
Draw this line with new coordinates.
virtual void SetLineColor(Color_t lcolor)
Set the line color.
Int_t 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.
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
void PaintRectangles(Int_t coffset, Double_t angle) const
Draw all colors of type rectangle.
void PaintCircles(Int_t coffset, Double_t angle) const
Draw all colors of type circle.
virtual void Range(Double_t x1, Double_t y1, Double_t x2, Double_t y2)
Set world coordinate system for the pad.
virtual void Paint(Option_t *option="")
Paint the color wheel.
virtual void SetTextAngle(Float_t tangle=0)
Set the text angle.
Double_t fRmin
Minimum radius for rectangles.
char * Form(const char *fmt,...)
static Int_t GetColor(const char *hexcolor)
Static method returning color number for color specified by hex color string of form: "#rrggbb"...
virtual Int_t GetColor(Int_t px, Int_t py) const
Return the color number pointed by the mouse.
Double_t fRmax
Maximum radius for rectangles.
The color creation and management class.
Double_t fR0
Minimum radius for circles.
constexpr Double_t RadToDeg()
Conversion from radian to degree: .
A Graph is a graphics object made of two arrays X and Y with npoints each.
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py)
always return the color wheel
TGraph * fGraph
! pointer to utility graph
you should not use this method at all Int_t Int_t Double_t Double_t Double_t Int_t Double_t Double_t Double_t Double_t b
Double_t AbsPixeltoX(Int_t px)
virtual void SetTextColor(Color_t tcolor=1)
Set the text color.
Double_t fDr
Circles radius.
TArc * fArc
! pointer to utility arc
virtual void SetTextSize(Float_t tsize=1)
Set the text size.
Double_t AbsPixeltoY(Int_t py)
virtual void PaintText(Double_t x, Double_t y, const char *text)
Draw this text with new coordinates.
Draw the ROOT Color Wheel.
Double_t fX[15]
X coordinates of the center of circles.
TText * fText
! pointer to utility text