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