108 if (px+py < 0)
return 1;
157 static char info[50];
161 if (
n < 0)
return info;
163 if (!color)
return info;
167 int res =
snprintf(info,
sizeof(info),
"col %d, %s, r=%3d, g=%3d, b=%3d",
n,color->
GetName(),
r,
g,
b);
169 if ((res < 0) || (res >= (
int)
sizeof(info)))
183 for (
Int_t i=0;i<15;i++) {
186 if (dx*dx+dy*dy < r2)
return coffset+i-10;
198 if (ang < 0) ang += 360;
199 if (ang < 60)
return kWhite;
200 if (ang < 120)
return kGray;
201 if (ang < 180)
return kGray+1;
202 if (ang < 240)
return kGray+2;
203 if (ang < 300)
return kGray+3;
216 if (u < fRmin || u >
fRmax)
return -1;
218 if (
v > 0)
return coffset + div+1;
219 return coffset+div-9;
291 if (
angle == 240) tangle = -30;
292 if (
angle == 300) tangle = 30;
298 for (
Int_t i=0;i<15;i++) {
314 Rotate(rmax+0.62*dr,0,u,
v,ang);
322 if (
angle == 30) tangle = -60;
323 if (
angle == 90) tangle = 0;
324 if (
angle == 150) tangle = 60;
325 if (
angle == 210) tangle = -60;
326 if (
angle == 270) tangle = 0;
334 for (
Int_t j=0;j<2;j++) {
335 for (
Int_t i=0;i<10;i++) {
337 Int_t colorn = coffset +
n;
340 Rotate(rmin+i*dr, dy,
x[1],
y[1],ang);
341 Rotate(rmin+i*dr+dr,dy,
x[2],
y[2],ang);
342 Rotate(rmin+i*dr+dr, 0,
x[3],
y[3],ang);
345 Rotate(rmin+i*dr+0.5*dr,0.5*dy,
x[0],
y[0],ang);
352 if (
angle > 180) tang -=180;
369 Rotate(rmin+3*dr,-dy,
x[0],
y[0],ang);
370 Rotate(rmin+3*dr, dy,
x[1],
y[1],ang);
372 Rotate(rmin+6*dr,-dy,
x[0],
y[0],ang);
373 Rotate(rmin+6*dr, dy,
x[1],
y[1],ang);
375 Rotate(rmin+9*dr,-dy,
x[0],
y[0],ang);
376 Rotate(rmin+9*dr, dy,
x[1],
y[1],ang);
378 Rotate(rmin+7*dr,-dy,
x[0],
y[0],ang);
379 Rotate(rmin+7*dr, dy,
x[1],
y[1],ang);
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
Option_t Option_t TPoint TPoint angle
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
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.
Double_t fR0
Minimum radius for circles.
Double_t fY[15]
Y coordinates of the center of circles.
Int_t InGray(Double_t x, Double_t y) const
Return the color number when the mouse point to the gray circle.
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.
TText * fText
! pointer to utility text
Double_t fRmax
Maximum radius for rectangles.
void PaintGray() const
Draw the gray colors + white + black.
char * GetObjectInfo(Int_t px, Int_t py) const override
Return the color number pointed by the mouse.
void Paint(Option_t *option="") override
Paint the color wheel.
void PaintCircles(Int_t coffset, Double_t angle) const
Draw all colors of type circle.
void Draw(Option_t *option="") override
Paint the color wheel.
Double_t fDr
Circles radius.
void PaintRectangles(Int_t coffset, Double_t angle) const
Draw all colors of type rectangle.
Int_t DistancetoPrimitive(Int_t px, Int_t py) override
always return 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.
TGraph * fGraph
! pointer to utility graph
~TColorWheel() override
destructor
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 TGraph is an 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.
Use the TLine constructor to create a simple line.
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.
const char * GetName() const override
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) override
Double_t AbsPixeltoX(Int_t px) override
void Range(Double_t x1, Double_t y1, Double_t x2, Double_t y2) override
Set world coordinate system for the pad.
void SetBorderMode(Short_t bordermode) override
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 y, Double_t x)
Returns the principal value of the arc tangent of y/x, expressed in radians.
constexpr Double_t DegToRad()
Conversion from degree to radian: .
Double_t Cos(Double_t)
Returns the cosine of an angle of x radians.
Double_t Sin(Double_t)
Returns the sine of an angle of x radians.
constexpr Double_t RadToDeg()
Conversion from radian to degree: .
Short_t Abs(Short_t d)
Returns the absolute value of parameter Short_t d.