89 TList *list =
fVar->GetParallel()->GetSelectList();
100 fVar->GetRanges()->Remove(
this);
101 fVar->GetParallel()->CleanUpSelections(
this);
112 xx =
gPad->AbsPixeltoX(px);
113 yy =
gPad->AbsPixeltoY(
py);
114 fVar->GetXYfromValue(
fMin,thisx,thisy);
117 if(xx > thisx-2*
fSize && xx < thisx && yy > thisy-
fSize && yy<thisy+
fSize) dist = 0;
118 fVar->GetXYfromValue(
fMax,thisx,thisy);
119 if(xx > thisx-2*
fSize && xx < thisx && yy > thisy-
fSize && yy<thisy+
fSize) dist = 0;
121 if(yy > thisy-2*
fSize && yy < thisy && xx > thisx-
fSize && xx<thisx+
fSize) dist = 0;
122 fVar->GetXYfromValue(
fMax,thisx,thisy);
123 if(yy > thisy-2*
fSize && yy < thisy && xx > thisx-
fSize && xx<thisx+
fSize) dist = 0;
145 bool vert =
fVar->GetVert();
146 static Int_t pxold, pyold;
147 static Int_t mindragged = -1;
148 Int_t plx1,plx2,ply1,ply2;
150 Double_t xx,yy,txxmin=0,txxmax=0,tyymin=0,tyymax=0;
152 xx =
gPad->AbsPixeltoX(px);
153 yy =
gPad->AbsPixeltoY(
py);
154 fVar->GetXYfromValue(
fMin,txxmin,tyymin);
155 fVar->GetXYfromValue(
fMax,txxmax,tyymax);
157 plx1 =
gPad->XtoAbsPixel(txxmin-2*
fSize);
158 plx2 =
gPad->XtoAbsPixel(txxmax-2*
fSize);
164 ply1 =
gPad->YtoAbsPixel(tyymin-2*
fSize);
165 ply2 =
gPad->YtoAbsPixel(tyymax-2*
fSize);
176 if ((vert && yy<tyymax-
fSize) || (!vert && xx < txxmax-
fSize)) {
187 gVirtualX->DrawLine(plx1,ply1,plx2,ply2);
191 if (mindragged == 1) min =
fVar->GetValuefromXY(xx,yy);
192 if (mindragged == 0) max =
fVar->GetValuefromXY(xx,yy);
211 if((vert && yy > frame->
GetY1() && yy < frame->GetY2()) ||
212 (!vert && xx > frame->
GetX1() && xx < frame->GetX2())){
231 if (mindragged == 1) min =
fVar->GetValuefromXY(xx,yy);
232 if (mindragged == 0) max =
fVar->GetValuefromXY(xx,yy);
261 if (
fVar->GetVert()){
263 tyy =
gPad->AbsPixeltoY(pos);
266 txx =
gPad->AbsPixeltoX(pos);
268 if (mindragged==1)
fVar->GetXYfromValue(
fMax,txxo,tyyo);
269 else fVar->GetXYfromValue(
fMin,txxo,tyyo);
272 if (
fVar->GetVert()) {
301 if (
fVar->GetVert()) {
302 tx[0]=
gPad->XtoAbsPixel(txx);
303 tx[1]=tx[4]=
gPad->XtoAbsPixel(txx-
fSize);
304 ty[0]=ty[1]=ty[4]=
gPad->YtoAbsPixel(tyy);
305 tx[2]=tx[3]=
gPad->XtoAbsPixel(txx-2*
fSize);
309 ty[0]=
gPad->YtoAbsPixel(tyy);
310 ty[1]=ty[4]=
gPad->YtoAbsPixel(tyy-
fSize);
311 tx[0]=tx[1]=tx[4]=
gPad->XtoAbsPixel(txx);
312 ty[2]=ty[3]=
gPad->YtoAbsPixel(tyy-2*
fSize);
317 for(
UInt_t ui=0;ui<5;++ui) slider[ui] =
TPoint(tx[ui],ty[ui]);
327 if (
fVar->GetVert()){
329 tyy =
gPad->AbsPixeltoY(pos);
332 txx =
gPad->AbsPixeltoX(pos);
337 if (
fVar->GetVert()) {
338 tx[0]=
gPad->XtoAbsPixel(txx);
339 tx[1]=tx[4]=
gPad->XtoAbsPixel(txx-
fSize);
340 ty[0]=ty[1]=ty[4]=
gPad->YtoAbsPixel(tyy);
341 tx[2]=tx[3]=
gPad->XtoAbsPixel(txx-2*
fSize);
345 ty[0]=
gPad->YtoAbsPixel(tyy);
346 ty[1]=ty[4]=
gPad->YtoAbsPixel(tyy-
fSize);
347 tx[0]=tx[1]=tx[4]=
gPad->XtoAbsPixel(txx);
348 ty[2]=ty[3]=
gPad->YtoAbsPixel(tyy-2*
fSize);
353 for(
UInt_t ui=0;ui<5;++ui) slider[ui] =
TPoint(tx[ui],ty[ui]);
362 return evtval>=
fMin && evtval<=
fMax;
421 printf(
"On \"%s\" : min = %f, max = %f\n",
fVar->GetTitle(),
fMin,
fMax);
429 TList *list =
fVar->GetParallel()->GetSelectList();
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 Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t sel
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize wid
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void on
Option_t Option_t SetLineColor
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void value
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
virtual void SetFillStyle(Style_t fstyle)
Set the fill area style.
virtual Color_t GetLineColor() const
Return the line color.
virtual void SetLineStyle(Style_t lstyle)
Set the line style.
virtual void SetLineWidth(Width_t lwidth)
Set the line width.
TAttLine()
AttLine default constructor.
virtual void SetLineColor(Color_t lcolor)
Set the line color.
TList(const TList &)=delete
TObject * Remove(TObject *obj) override
Remove object from the list.
void Delete(Option_t *option="") override
Remove all objects from the list AND delete all heap based objects.
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
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.
A TParallelCoordRange is a range used for parallel coordinates plots.
void SetLineWidth(Width_t wid) override
Set the selection line width.
void Draw(Option_t *options="") override
Draw a TParallelCoordRange.
void SetLineColor(Color_t col) override
Set the selection line color.
void Paint(Option_t *options) override
Paint a TParallelCoordRange.
TParallelCoordSelect * fSelect
Selection owning the range.
TParallelCoordVar * GetVar()
TParallelCoordVar * fVar
Variable owning the range.
virtual void SendToBack()
Make the selection which owns the range to be drawn under all the others.
virtual void BringOnTop()
Make the selection which owns the range to be drawn on top of the others.
Int_t DistancetoPrimitive(Int_t px, Int_t py) override
Compute the distance to the primitive.
~TParallelCoordRange() override
Destructor.
const Double_t fSize
Size of the painted range.
void PaintSlider(Double_t value, bool fill=false)
Paint a slider.
TPoint * GetBindingLinePoints(Int_t pos, Int_t mindragged)
Return the points of the line binding the two needles of the range.
void Print(Option_t *options) const override
Print info about the range.
void Delete(const Option_t *options="") override
Delete the range.
Double_t fMin
Min value for the range.
void ExecuteEvent(Int_t entry, Int_t px, Int_t py) override
Execute the entry.
Double_t fMax
Max value for the range.
bool IsIn(Double_t evtval)
Evaluate if the given value is within the range or not.
TParallelCoordRange()
Default constructor.
TPoint * GetSliderPoints(Double_t value)
Return the points to paint the needles at "value".
A TParallelCoordSelect is a specialised TList to hold TParallelCoordRanges used by TParallelCoord.
void SetShowRanges(bool s)
Show the ranges needles.
~TParallelCoordSelect() override
Destructor.
TParallelCoordSelect()
Default constructor.
void SetActivated(bool on)
Activate the selection.
Double_t GetCurrentMax() const
TParallelCoord * GetParallel()
Double_t GetCurrentMin() const
TParallelCoordSelect * GetCurrentSelection()
Return the selection currently being edited.
@ kLiveUpdate
To paint the entries when being modified.
Defined by an array on N points in a 2-D space.
virtual void PaintPolyLine(Int_t n, Double_t *x, Double_t *y, Option_t *option="")
Draw this polyline with new coordinates.