136 fPadPointer =
nullptr;
137 fPrimitives =
nullptr;
152 fPadView3D =
nullptr;
182 fFixedAspectRatio =
kFALSE;
185 fNumPaletteColor = 0;
186 fNextPaletteColor = 0;
200 fUxmin = fUymin = fUxmax = fUymax = 0;
332 Error(
"TPad",
"You must create a TCanvas before creating a TPad");
341 if ((xlow < 0) || (xlow > 1) || (ylow < 0) || (ylow > 1)) {
342 Error(
"TPad",
"illegal bottom left position: x=%f, y=%f", xlow, ylow);
344 }
else if ((xup < 0) || (xup > 1) || (yup < 0) || (yup > 1)) {
345 Error(
"TPad",
"illegal top right position: x=%f, y=%f", xup, yup);
347 }
else if (xup-xlow <= 0) {
348 Error(
"TPad",
"illegal width: %f", xup-xlow);
350 }
else if (yup-ylow <= 0) {
351 Error(
"TPad",
"illegal height: %f", yup-ylow);
516 while (
auto exec = (
TExec*)next())
559 if (!
lop)
return nullptr;
578 leg->AddEntry(obj,
mes.Data(),
"lpf");
582 while(
auto o = next()) {
590 else if (
strlen(o->GetName()))
593 mes = o->ClassName();
606 lof = ((
TH1 *)o)->GetListOfFunctions();
610 lof = ((
TGraph *)o)->GetListOfFunctions();
631 leg->AddEntry(obj,
mes.Data(), opt);
652 leg->AddEntry( obj,
mes.Data(), opt );
661 Info(
"BuildLegend",
"No object(s) to build a TLegend.");
704 while (
auto obj = next()) {
708 return ((
TPad*)obj)->
cd();
773 for (
Int_t i=0;i<2;i++) {
835 for (
Int_t i=0;i<2;i++) {
904 if (
x <
xcl1) code = code | 0x1;
905 if (
x >
xcl2) code = code | 0x2;
906 if (
y <
ycl1) code = code | 0x4;
907 if (
y >
ycl2) code = code | 0x8;
955 std::vector<Double_t>
xc2(nn),
yc2(nn);
961 for (i=0; i<
n; i++) {
986 for (i=0; i<
nc2; i++) {
1013 for (i=0; i<nc; i++) {
1038 for (i=0; i<
nc2; i++) {
1098 if (!
gROOT->GetListOfCanvases())
return;
1100 gROOT->GetListOfCanvases()->Remove(
this);
1122 if (
gROOT->GetSelectedPad() ==
this)
1123 gROOT->SetSelectedPad(
nullptr);
1147 while (
auto obj = next()) {
1149 ((
TPad*)obj)->CopyPixmap();
1150 ((
TPad*)obj)->CopyPixmaps();
1181 if (px1 < px2) {
pxl = px1;
pxt = px2;}
1182 else {
pxl = px2;
pxt = px1;}
1183 if (py1 < py2) {
pyl = py1;
pyt = py2;}
1184 else {
pyl = py2;
pyt = py1;}
1188 if ( (px >
pxl && px <
pxt) && (py >
pyl && py <
pyt) ) {
1263 if (
nx <= 0)
nx = 1;
1264 if (
ny <= 0)
ny = 1;
1275 for (iy=0;iy<
ny;iy++) {
1279 if (
y1 >
y2)
continue;
1280 for (ix=0;ix<
nx;ix++) {
1283 if (
x1 >
x2)
continue;
1312 if (i ==
nx-1)
x2 = 1-
xr;
1314 number =
j*
nx + i +1;
1317 if (
j == 0)
y2 = 1-
yt;
1318 if (
j ==
ny-1)
y1 = 0;
1322 pad->SetNumber(number);
1323 pad->SetBorderMode(0);
1324 if (i == 0)
pad->SetLeftMargin(
xl*
nx);
1325 else pad->SetLeftMargin(0);
1326 pad->SetRightMargin(0);
1327 pad->SetTopMargin(0);
1329 else pad->SetBottomMargin(0);
1345 Error(
"DivideSquare",
"No canvas associated with this pad.");
1368 gROOT->MakeDefCanvas();
1449 nc = (
nelem/50) + 1;
1459 if (
dx < 1.3)
dx = 1.3;
1470 nc = (
nelem/50) + 1;
1503 if (
box)
box->SetFillColor(17);
1517 else { i++;
y -=
dy; }
1521 Int_t dim =
d->GetArrayDim();
1525 while (
indx < dim ){
1560 else { i++;
y -=
dy; }
1568 ptext->SetTextColor(15);
1619 px =
cpad->GetEventX();
1620 py =
cpad->GetEventY()+1;
1684 Warning(
"DrawFrame",
"Must be called for the current pad only");
1699 std::vector<Double_t> xbins(nbins+1);
1701 for (
Int_t i=1;i<=nbins;i++) {
1704 hframe =
new TH1F(
"hframe",title,nbins,xbins.data());
1713 hframe->SetDirectory(
nullptr);
1732 gPad->SetFillColor(0);
1737 text.SetTextFont(61);
1738 text.SetTextSize(0.07);
1739 text.SetTextAlign(22);
1746 for (i=0;i<10;i++) {
1753 box.SetFillStyle(1001);
1754 box.SetFillColor(color);
1755 box.DrawBox(xlow, ylow, xup, yup);
1756 box.SetFillStyle(0);
1757 box.SetLineColor(1);
1758 box.DrawBox(xlow, ylow, xup, yup);
1759 if (color == 1)
text.SetTextColor(0);
1760 else text.SetTextColor(1);
2152 px1 +=
dx; py1 +=
dy; px2 +=
dx; py2 +=
dy;
2229 if (
pTop)
gPad->ShowGuidelines(
this, event,
't',
true);
2230 if (
pBot)
gPad->ShowGuidelines(
this, event,
'b',
true);
2231 if (
pL)
gPad->ShowGuidelines(
this, event,
'l',
true);
2232 if (
pR)
gPad->ShowGuidelines(
this, event,
'r',
true);
2233 if (
pA)
gPad->ShowGuidelines(
this, event,
'1',
true);
2234 if (
pB)
gPad->ShowGuidelines(
this, event,
'2',
true);
2235 if (
pC)
gPad->ShowGuidelines(
this, event,
'3',
true);
2236 if (
pD)
gPad->ShowGuidelines(
this, event,
'4',
true);
2245 if (
gROOT->IsEscaped()) {
2329 event =
gVirtualX->RequestLocator(1, 1, px, py);
2374 static std::unique_ptr<TBox>
zoombox;
2382 if (
strstr(opt,
"cont4")) {
2535 if (
gROOT->IsEscaped()) {
2636 if (
hobj1->GetDimension() == 1) {
2637 if (
hobj1->GetNormFactor() != 0) {
2652 while ((obj= next())) {
2661 if (
hobj->GetDimension() == 1) {
2664 if (
hobj->GetNormFactor() != 0) {
2704 if (found)
return found;
2706 while (
auto cur = next()) {
2709 if (found)
return found;
2724 if (found)
return found;
2726 while (
auto cur = next()) {
2729 if (found)
return found;
2804 if (
fCanvas ==
this)
return nullptr;
2813 if (
fCanvas ==
this)
return nullptr;
2822 if (
fCanvas ==
this)
return nullptr;
2988 while ((obj=next())) {
2992 if (found)
return found;
3009 while ((obj = next())) {
3059 if (color <= 0)
return;
3077 gROOT->SetSelectedPad(
this);
3106 if (opt.
Index(
"pfc")>=0 || opt.
Index(
"plc")>=0 || opt.
Index(
"pmc")>=0) {
3124 if (i>=ncolors) i = ncolors-1;
3136 Int_t const cellSize = 10;
3143 for (
int i = 0; i <
fCGnx; i++)
3150 while(
auto o = iter()) {
3181 for (
int r = i;
r <
w + i;
r++) {
3182 for (
int c =
j;
c <
h +
j;
c++) {
3220 for (std::size_t i = 0;
option[i] !=
'\0'; ++i) {
3269#define NotFree(i, j) fCollideGrid[TMath::Max(TMath::Min(i+j*fCGnx,fCGnx*fCGny),0)] = kFALSE;
3298 for (i=
x1+1; i<
x2; i++) {
3328 for (
int i =
x1; i<=
x2; i++) {
3347 for (i =
x1; i<=
x2; i++) {
3352 for (i =
y1; i<=
y2; i++) {
3370 for (
Int_t i=s; i<
n; i=i+s) {
3372 g->GetPoint(i ,
x2,
y2);
3399 if (
name.Index(
"hframe") >= 0)
return;
3418 for (i = 1; i<
nx; i++) {
3420 x1l =
h->GetBinCenter(i);
3426 y1l =
h->GetBinContent(i)-
h->GetBinErrorLow(i);
3432 y2l =
h->GetBinContent(i)+
h->GetBinErrorUp(i);
3442 x1l =
h->GetBinLowEdge(i);
3448 y1l =
h->GetBinContent(i);
3455 x1l =
h->GetBinLowEdge(i)+
h->GetBinWidth(i);
3480 box.SetFillColorAlpha(
kRed,0.5);
3491 for (
int i = 0; i<
fCGnx; i++) {
3513 box.SetFillColorAlpha(
kRed,t);
3518 if (t==0.15) t = 0.1;
3658 if (color < 0) color = -color;
3803 glist->AddFirst(frame);
3822 auto obj =
lnk->GetObject();
3824 ((
TPad*)obj)->PaintModified();
3857 ((
TPad*)obj)->PaintModified();
3995 TIter next(start->GetListOfPrimitives());
3996 while ((obj = next())) {
3998 if (obj == stop)
break;
3999 ((
TPad*)obj)->CopyBackgroundPixmap(
x,
y);
4000 ((
TPad*)obj)->CopyBackgroundPixmaps((
TPad*)obj, stop,
x,
y);
4019 Warning(
"TPad::PaintFillArea",
"Float_t signature is obsolete. Use Double_t signature.");
4037 std::vector<Double_t>
x(nc, 0.);
4038 std::vector<Double_t>
y(nc, 0.);
4067 std::vector<Double_t>
xw(
n),
yw(
n);
4068 for (
int i=0; i<
n; i++) {
4110 static Double_t ang1[10] = { 0., 10., 20., 30., 45.,5., 60., 70., 80., 89.99};
4111 static Double_t ang2[10] = {180.,170.,160.,150.,135.,5.,120.,110.,100., 89.99};
4170 Double_t ll,
x,
y,
x1,
x2,
y1,
y2,
a,
b, xi,
xip,
xin,
yi,
yip;
4199 for (i=1; i<=nn; i++) {
4210 for (i=2; i<=nn+1; i++) {
4213 if (i == nn+1)
i2=1;
4277 for (i=1; i<=
m; i++) {
4292 if (
nbi%2 != 0)
continue;
4294 for (i=1; i<=
nbi; i=i+2) {
4364 for (i=0;i<3;i++) temp[i] =
p1[i];
4366 for (i=0;i<3;i++) temp[i] =
p2[i];
4382 for (i=0;i<3;i++) temp[i] =
p1[i];
4384 for (i=0;i<3;i++) temp[i] =
p2[i];
4403 for (i=0; i<
n-1; i++) {
4415 if (
iclip == 0 && i <
n-2)
continue;
4454 for (i=0; i <
n-1; i++) {
4468 if (
iclip == 0 && i <
n-2)
continue;
4498 std::vector<Double_t>
xw(
n),
yw(
n);
4499 for (
Int_t i=0; i<
n; i++) {
4516 for (
Int_t i = 1; i <
n; i++)
4535 for (i=0; i<
n; i++) {
4539 if (i <
n-1)
continue;
4541 if (
np == 0)
continue;
4566 for (i=0; i<
n; i++) {
4570 if (i <
n-1)
continue;
4572 if (
np == 0)
continue;
4662 if (!
gPad)
return nullptr;
4669 if (
this !=
gPad->GetCanvas()) {
4717 }
else if (!
gROOT->GetEditorMode()) {
4724 if (dist == 0)
break;
4786 while (
auto obj = next())
4811 while (
auto obj = next()) {
4988 if (
fs1.EndsWith(
"[")) {
4989 fs1.Replace((
fs1.Length()-1),1,
" ");
4991 fs1.Replace((
fs1.Length()-1),1,
"[");
4992 }
else if (
fs1.EndsWith(
"]")) {
4993 fs1.Replace((
fs1.Length()-1),1,
" ");
4995 fs1.Replace((
fs1.Length()-1),1,
"]");
5006 if (!
fs1.Length()) {
5014 if (
psname.BeginsWith(
'.') && (
psname.Contains(
'/') == 0)) {
5023 if (
strstr(opt,
"gif+")) {
5026 }
else if (
strstr(opt,
"gif")) {
5029 }
else if (
strstr(opt,
"png")) {
5032 }
else if (
strstr(opt,
"jpg")) {
5035 }
else if (
strstr(opt,
"tiff")) {
5038 }
else if (
strstr(opt,
"xpm")) {
5041 }
else if (
strstr(opt,
"bmp")) {
5060 gPad->GetCanvas()->SetHighLightColor(-1);
5068 Info(
"Print",
"GIF file %s has been created",
psname.Data());
5070 gPad->GetCanvas()->SetHighLightColor(
hc);
5075 gPad->GetCanvas()->SetHighLightColor(-1);
5082 Info(
"Print",
"file %s has been created",
psname.Data());
5084 gPad->GetCanvas()->SetHighLightColor(
hc);
5086 Warning(
"Print",
"Unsupported image format %s",
psname.Data());
5098 if (
strstr(opt,
"root")) {
5111 if (
strstr(opt,
"json")) {
5130 if (
auto h =
gROOT->GetPluginManager()->FindHandler(
"TVirtualPS",
"svg")) {
5131 if (
h->LoadPlugin() == -1)
5149 Info(
"Print",
"SVG file %s has been created",
psname.Data());
5171 if (
auto h =
gROOT->GetPluginManager()->FindHandler(
"TVirtualPS",
"tex")) {
5172 if (
h->LoadPlugin() == -1)
5194 Info(
"Print",
"Standalone TeX file %s has been created",
psname.Data());
5196 Info(
"Print",
"TeX file %s has been created",
psname.Data());
5234 if (ratio < 1)
pstype = 112;
5251 if (
auto h =
gROOT->GetPluginManager()->FindHandler(
"TVirtualPS",
pluginName)) {
5252 if (
h->LoadPlugin() == -1)
5289 else Info(
"Print",
"%s file %s has been created using the current canvas", opt.
Data(),
psname.Data());
5305 if (
cclose)
Info(
"Print",
"Current canvas added to %s file %s and file closed", opt.
Data(),
psname.Data());
5306 else Info(
"Print",
"%s file %s has been closed", opt.
Data(),
psname.Data());
5311 Info(
"Print",
"Current canvas added to %s file %s", opt.
Data(),
psname.Data());
5316 if (
strstr(opt,
"Preview"))
5318 if (
strstr(opt,
"EmbedFonts")) {
5319 gSystem->
Exec(
TString::Format(
"gs -quiet -dSAFER -dNOPLATFONTS -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/printer -dCompatibilityLevel=1.4 -dMaxSubsetPct=100 -dSubsetFonts=true -dEmbedAllFonts=true -sOutputFile=pdf_temp.pdf -f %s",
5334 Error(
"Range",
"illegal world coordinates range: x1=%f, y1=%f, x2=%f, y2=%f",
x1,
y1,
x2,
y2);
5372 Error(
"RangeAxis",
"illegal axis coordinates range: xmin=%f, ymin=%f, xmax=%f, ymax=%f",
5463 while ((obj = next())) {
5475 if (
g)
hobj =
g->GetHistogram();
5487 else hobj->DrawCopy(
"sameaxis");
5492 gPad->GetUxmax(),
gPad->GetUymax());
5494 b->SetLineStyle(
gPad->GetFrameLineStyle());
5495 b->SetLineWidth(
gPad->GetFrameLineWidth());
5496 b->SetLineColor(
gPad->GetFrameLineColor());
5628 Error(
"ResizePad",
"Cannot resize pad. No current pad available.");
5631 if (
gPad->GetWw()==0.0||
gPad->GetWh()==0.0) {
5632 Warning(
"ResizePad",
"gPad has at least one zero dimension.");
5636 Warning(
"ResizePad",
"The pad has at least one zero dimension.");
5641 if (
this ==
gPad->GetCanvas()) {
5649 Warning(
"ResizePad",
"The parent pad has at least one zero dimension.");
5698 while ((obj = next())) {
5704 if (
gPad->IsBatch())
5723 Warning(
"ResizePad",
"Inf/NaN propagated to the pad. Check drawn objects.");
5725 Warning(
"ResizePad",
"%s width changed from %d to %d\n",
GetName(),
w,10);
5729 Warning(
"ResizePad",
"%s height changed from %d to %d\n",
GetName(),
h,10);
5793 if (
psname.BeginsWith(
'.') && (
psname.Contains(
'/') == 0)) {
5800 if (
psname.EndsWith(
".gif"))
5802 else if (
psname.Contains(
".gif+"))
5806 else if (
psname.EndsWith(
".root"))
5808 else if (
psname.EndsWith(
".xml"))
5810 else if (
psname.EndsWith(
".json"))
5812 else if (
psname.EndsWith(
".eps"))
5814 else if (
psname.EndsWith(
".pdf"))
5816 else if (
psname.EndsWith(
".pdf["))
5818 else if (
psname.EndsWith(
".pdf]"))
5820 else if (
psname.EndsWith(
".pdf("))
5822 else if (
psname.EndsWith(
".pdf)"))
5824 else if (
psname.EndsWith(
".svg"))
5826 else if (
psname.EndsWith(
".tex"))
5828 else if (
psname.EndsWith(
".xpm"))
5830 else if (
psname.EndsWith(
".png"))
5832 else if (
psname.EndsWith(
".jpg"))
5834 else if (
psname.EndsWith(
".jpeg"))
5836 else if (
psname.EndsWith(
".bmp"))
5838 else if (
psname.EndsWith(
".tiff"))
5871 if (
this ==
gPad->GetCanvas())
5878 if (
this !=
gPad->GetCanvas()) {
5879 out <<
" "<<std::endl;
5880 out <<
"// ------------>Primitives in pad: "<<
GetName()<<std::endl;
5888 out<<
" "<<
cname<<
"->Draw();"<<std::endl;
5889 out<<
" "<<
cname<<
"->cd();"<<std::endl;
5891 out<<
" "<<
cname<<
"->Range("<<
fX1<<
","<<
fY1<<
","<<
fX2<<
","<<
fY2<<
");"<<std::endl;
5897 out<<
" TView *view"<<++
viewNumber<<
" = TView::CreateView(1);"<<std::endl;
5899 <<
rmax[0]<<
","<<
rmax[1]<<
","<<
rmax[2]<<
");"<<std::endl;
5911 out<<
" "<<
cname<<
"->SetLogx();"<<std::endl;
5914 out<<
" "<<
cname<<
"->SetLogy();"<<std::endl;
5917 out<<
" "<<
cname<<
"->SetLogz();"<<std::endl;
5920 out<<
" "<<
cname<<
"->SetGridx();"<<std::endl;
5923 out<<
" "<<
cname<<
"->SetGridy();"<<std::endl;
5926 out<<
" "<<
cname<<
"->SetTickx("<<
GetTickx()<<
");"<<std::endl;
5929 out<<
" "<<
cname<<
"->SetTicky("<<
GetTicky()<<
");"<<std::endl;
5932 out<<
" "<<
cname<<
"->SetTheta("<<
GetTheta()<<
");"<<std::endl;
5935 out<<
" "<<
cname<<
"->SetPhi("<<
GetPhi()<<
");"<<std::endl;
5952 out<<
" "<<
cname<<
"->SetFrameFillColor(ci);" << std::endl;
5964 out<<
" "<<
cname<<
"->SetFrameLineColor(ci);" << std::endl;
5983 out<<
" "<<
cname<<
"->SetFrameFillColor(ci);" << std::endl;
5985 out<<
" "<<
cname<<
"->SetFrameFillColor("<<frame->
GetFillColor()<<
");"<<std::endl;
5988 out<<
" "<<
cname<<
"->SetFrameFillStyle("<<frame->
GetFillStyle()<<
");"<<std::endl;
5991 out<<
" "<<
cname<<
"->SetFrameLineStyle("<<frame->
GetLineStyle()<<
");"<<std::endl;
5995 out<<
" "<<
cname<<
"->SetFrameLineColor(ci);" << std::endl;
5997 out<<
" "<<
cname<<
"->SetFrameLineColor("<<frame->
GetLineColor()<<
");"<<std::endl;
6000 out<<
" "<<
cname<<
"->SetFrameLineWidth("<<frame->
GetLineWidth()<<
");"<<std::endl;
6013 while (
auto obj = next()) {
6015 if (!
strcmp(obj->GetName(),
"Graph"))
6020 out<<
" "<<
pname<<
"->cd();"<<std::endl;
6022 out<<
" "<<
cname<<
"->cd();"<<std::endl;
6025 out<<
" "<<
cname<<
"->Modified();"<<std::endl;
6038 Error(
"SetAspectRatio",
"cannot fix aspect ratio, height of pad is 0");
6062 while ((obj = next())) {
6139 if ((xlow < 0) || (xlow > 1) || (ylow < 0) || (ylow > 1)) {
6140 Error(
"TPad",
"illegal bottom left position: x=%f, y=%f", xlow, ylow);
6143 if ((xup < 0) || (xup > 1) || (yup < 0) || (yup > 1)) {
6144 Error(
"TPad",
"illegal top right position: x=%f, y=%f", xup, yup);
6147 if (xup-xlow <= 0) {
6148 Error(
"TPad",
"illegal width: %f", xup-xlow);
6151 if (yup-ylow <= 0) {
6152 Error(
"TPad",
"illegal height: %f", yup-ylow);
6189 SetPad(xlow, ylow, xup, yup);
6197 if (!view)
delete fView;
6288 else if (
mode ==
'y') {
6373 if (
mode !=
'i') resize =
true;
6380 is_pad->GetMother()->cd();
6431 if (cling && (!resize)) {
6432 cur->SetBBoxCenterX(
pMX);
6433 center =
cur->GetBBoxCenter();
6434 BBox =
cur->GetBBox();
6435 center =
cur->GetBBoxCenter();
6443 if (cling && (!resize)) {
6444 cur->SetBBoxCenterY(
pMY);
6445 center =
cur->GetBBoxCenter();
6446 BBox =
cur->GetBBox();
6447 center =
cur->GetBBoxCenter();
6455 for (
UInt_t i = 0; i<
n; i++) {
6461 if (cling && (!resize)) {
6463 BBox =
cur->GetBBox();
6464 center =
cur->GetBBoxCenter();
6473 if (cling && (!resize)) {
6475 BBox =
cur->GetBBox();
6476 center =
cur->GetBBoxCenter();
6488 for (
UInt_t i = 0; i<
n; i++) {
6523 if (cling && (!
movedX) && (!resize)) {
6524 if ((
cur->GetBBoxCenter().fX <
curDist[i].fb->GetBBoxCenter().fX)||(
cur->GetBBoxCenter().fX <
curDist[i].fa->GetBBoxCenter().fX))
6533 if (cling && (!
movedY) && (!resize)) {
6534 if ((
cur->GetBBoxCenter().fY <
curDist[i].fb->GetBBoxCenter().fY)||(
cur->GetBBoxCenter().fY <
curDist[i].fa->GetBBoxCenter().fY))
6546 if (cling && (!
movedX) && (!resize)) {
6547 if ((
cur->GetBBoxCenter().fX <
curDist[i].fb->GetBBoxCenter().fX)||(
cur->GetBBoxCenter().fX <
curDist[i].fa->GetBBoxCenter().fX))
6549 else cur->SetBBoxCenterX(
cur->GetBBoxCenter().fX + floor(0.5*(
curDist[
j].fdist -
curDist[i].fdist)));
6556 if (cling && (!
movedY) && (!resize)) {
6557 if ((
cur->GetBBoxCenter().fY <
curDist[i].fb->GetBBoxCenter().fY)||(
cur->GetBBoxCenter().fY <
curDist[i].fa->GetBBoxCenter().fY))
6559 else cur->SetBBoxCenterY(
cur->GetBBoxCenter().fY + floor(0.5*(
curDist[
j].fdist -
curDist[i].fdist)));
6569 for (
UInt_t i = 0; i<
n; i++) {
6571 if (
a && (
cur !=
a)) {
6580 BBox =
cur->GetBBox();
6603 BBox =
cur->GetBBox();
6719 if (
b.IsReading()) {
6738 while ((obj = next())) {
6965 while ((obj = next())) {
7064 if (
gROOT->GetEditorMode() == 0) {
7067 if (obj)
return obj;
7070 if (!
gPad->GetListOfPrimitives())
return nullptr;
7071 obj =
gPad->GetListOfPrimitives()->Last();
7072 if (obj !=
oldlast)
return obj;
7093 if (
gPad->IsBatch())
return nullptr;
7117 (
size_t)
tip,(
size_t)
this).Data());
7135 ::Info(
"TPad::x3d()",
"This function is deprecated. Use %s->GetViewer3D(\"x3d\") instead",this->
GetName());
7138 if (!type || !
type[0]) {
7183 Warning(
"GetViewer3D",
"Cannot create 3D viewer of type: %s",
type);
7294 p.SetX(
gPad->XtoPixel(
x));
7295 p.SetY(
gPad->YtoPixel(
y));
const Int_t kMaxPixel
Max value for an int.
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
winID h TVirtualViewer3D TVirtualGLPainter p
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t cursor
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 filename
Option_t Option_t SetFillStyle
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 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 np
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 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 cname
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void value
Option_t Option_t TPoint TPoint const char x2
Option_t Option_t TPoint TPoint const char x1
Option_t Option_t TPoint TPoint angle
Option_t Option_t TPoint TPoint const char mode
Option_t Option_t TPoint TPoint const char y2
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void SetCursor
Option_t Option_t SetFillColor
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 Atom_t Atom_t Time_t type
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t button
Option_t Option_t TPoint TPoint const char text
Option_t Option_t TPoint TPoint const char y1
static Bool_t ContainsTImage(TList *li)
Auxiliary function.
R__EXTERN TPluginManager * gPluginMgr
R__EXTERN TVirtualMutex * gROOTMutex
R__EXTERN TStyle * gStyle
R__EXTERN TSystem * gSystem
#define R__LOCKGUARD(mutex)
R__EXTERN TVirtualPS * gVirtualPS
R__EXTERN Int_t(* gThreadXAR)(const char *xact, Int_t nb, void **ar, Int_t *iret)
Draw all kinds of Arrows.
void Draw(Option_t *option="") override
Draw this arrow with its current attributes.
Abstract base class for elements drawn in the editor.
virtual void Streamer(TBuffer &)
virtual Color_t GetFillColor() const
Return the fill area color.
virtual Style_t GetFillStyle() const
Return the fill area style.
virtual void Modify()
Change current fill area attributes if necessary.
Style_t fFillStyle
Fill area style.
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
virtual Bool_t IsTransparent() const
virtual void SetFillStyle(Style_t fstyle)
Set the fill area style.
virtual void SaveFillAttributes(std::ostream &out, const char *name, Int_t coldef=1, Int_t stydef=1001)
Save fill attributes as C++ statement(s) on output stream out.
virtual void Streamer(TBuffer &)
virtual Color_t GetLineColor() const
Return the line color.
virtual void SetLineStyle(Style_t lstyle)
Set the line style.
virtual Width_t GetLineWidth() const
Return the line width.
virtual void SetLineWidth(Width_t lwidth)
Set the line width.
Width_t fLineWidth
Line width.
virtual void SetLineColor(Color_t lcolor)
Set the line color.
virtual Style_t GetLineStyle() const
Return the line style.
virtual void Modify()
Change current line attributes if necessary.
virtual void SetMarkerColor(Color_t mcolor=1)
Set the marker color.
virtual void SetMarkerStyle(Style_t mstyle=1)
Set the marker style.
virtual void SetMarkerSize(Size_t msize=1)
Set the marker size.
virtual void SetBottomMargin(Float_t bottommargin)
Set Pad bottom margin in fraction of the pad height.
Color_t GetFrameFillColor() const
virtual void SetLeftMargin(Float_t leftmargin)
Set Pad left margin in fraction of the pad width.
Color_t GetFrameLineColor() const
Style_t GetFrameLineStyle() const
Float_t fRightMargin
RightMargin.
Style_t GetFrameFillStyle() const
Float_t fLeftMargin
LeftMargin.
Float_t fTopMargin
TopMargin.
Float_t GetLeftMargin() const
Width_t GetFrameLineWidth() const
Float_t GetBottomMargin() const
virtual void SetRightMargin(Float_t rightmargin)
Set Pad right margin in fraction of the pad width.
Float_t GetRightMargin() const
Int_t GetFrameBorderMode() const
virtual void SetTopMargin(Float_t topmargin)
Set Pad top margin in fraction of the pad height.
Width_t GetFrameBorderSize() const
Float_t fBottomMargin
BottomMargin.
Float_t GetTopMargin() const
virtual void Streamer(TBuffer &)
Stream an object of class TAttPad.
virtual Float_t GetTextSize() const
Return the text size.
virtual void SetTextAlign(Short_t align=11)
Set the text alignment.
virtual Short_t GetTextAlign() const
Return the text alignment.
virtual Font_t GetTextFont() const
Return the text font.
virtual Color_t GetTextColor() const
Return the text color.
virtual void SetTextAngle(Float_t tangle=0)
Set the text angle.
virtual Float_t GetTextAngle() const
Return 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.
Class to manage histogram axis.
virtual Double_t GetBinLowEdge(Int_t bin) const
Return low edge of bin.
virtual Int_t FindFixBin(Double_t x) const
Find bin number corresponding to abscissa x.
Int_t GetLast() const
Return last bin on the axis i.e.
virtual TObject * GetParent() const
virtual void SetRange(Int_t first=0, Int_t last=0)
Set the viewing range for the axis using bin numbers.
virtual Double_t GetBinUpEdge(Int_t bin) const
Return up edge of bin.
Int_t GetFirst() const
Return first bin on the axis i.e.
Each class (see TClass) has a linked list of its base class(es).
TClass * GetClassPointer(Bool_t load=kTRUE)
Get pointer to the base class TClass.
virtual void SetY2(Double_t y2)
virtual void SetX1(Double_t x1)
virtual void SetX2(Double_t x2)
virtual void SetY1(Double_t y1)
Using a TBrowser one can browse all ROOT objects.
Buffer base class used for serializing objects.
ABC describing GUI independent main window (with menubar, scrollbars and a drawing area).
UInt_t GetWindowHeight() const
TObject * GetClickSelected() const
TVirtualPad * GetClickSelectedPad() const
void SetClickSelectedPad(TPad *pad)
void SetSelectedPad(TPad *pad)
void SetDoubleBuffer(Int_t mode=1) override
Set Double Buffer On/Off.
TCanvasImp * GetCanvasImp() const override
Bool_t IsRetained() const override
static Bool_t SupportAlpha()
Static function returning "true" if transparency is supported.
Int_t GetEventY() const override
Bool_t IsBatch() const override
TVirtualPadPainter * GetCanvasPainter()
Access and (probably) creation of pad painter.
Color_t GetHighLightColor() const override
Bool_t IsGrayscale()
Check whether this canvas is to be drawn in grayscale mode.
void SaveSource(const char *filename="", Option_t *option="")
Save primitives in this canvas as a C++ macro file.
virtual void HandleInput(EEventType button, Int_t x, Int_t y)
Handle Input Events.
void UpdateAsync() override
Asynchronous pad update.
TObject * GetSelected() const override
Int_t GetEventX() const override
void SetCanvasSize(UInt_t ww, UInt_t wh) override
Set Width and Height of canvas to ww and wh respectively.
TVirtualPad * GetSelectedPad() const override
void SetCursor(ECursor cursor) override
Set cursor.
Int_t GetCanvasID() const override
UInt_t GetWindowWidth() const
void FeedbackMode(Bool_t set)
Turn rubberband feedback mode on or off.
void SetClickSelected(TObject *obj)
TVirtualPad * GetPadSave() const override
void Update() override
Update canvas pad buffers.
virtual void Cleared(TVirtualPad *pad)
Emit pad Cleared signal.
UInt_t GetWw() const override
Bool_t OpaqueMoving() const override
UInt_t GetWh() const override
void SetSelected(TObject *obj) override
Set selected canvas.
Int_t GetEvent() const override
Bool_t IsWeb() const override
Is web canvas.
void SetBatch(Bool_t batch=kTRUE) override
Toggle batch mode.
Bool_t OpaqueResizing() const override
TClass instances represent classes, structs and namespaces in the ROOT type system.
TList * GetListOfMethods(Bool_t load=kTRUE)
Return list containing the TMethods of a class.
Int_t GetNmethods()
Return the number of methods of this class Note that in case the list of methods is not yet created,...
Int_t GetNdata()
Return the number of data members of this class Note that in case the list of data members is not yet...
TList * GetListOfDataMembers(Bool_t load=kTRUE)
Return list containing the TDataMembers of a class.
TList * GetListOfBases()
Return list containing the TBaseClass(es) of a class.
void ls(Option_t *option="") const override
List (ls) all objects in this collection.
void Browse(TBrowser *b) override
Browse this collection (called by TBrowser).
virtual Int_t GetSize() const
Return the capacity of the collection, i.e.
The color creation and management class.
static Bool_t SaveColor(std::ostream &out, Int_t ci)
Save a color with index > 228 as a C++ statement(s) on output stream out.
static Int_t GetColor(const char *hexcolor)
Static method returning color number for color specified by hex color string of form: "#rrggbb",...
static Int_t GetColorBright(Int_t color)
Static function: Returns the bright color number corresponding to n If the TColor object does not exi...
static Int_t GetColorDark(Int_t color)
Static function: Returns the dark color number corresponding to n If the TColor object does not exist...
static void SetGrayscale(Bool_t set=kTRUE)
Set whether all colors should return grayscale values.
static void Pave(Int_t event, Int_t px, Int_t py, Int_t mode)
Create a new pavetext in gPad.
static void Line(Int_t event, Int_t px, Int_t py, Int_t mode)
Create a new line/arrow in this gPad.
static void PolyLine(Int_t event, Int_t px, Int_t py, Int_t mode)
Create a new PolyLine in gPad.
static void Text(Int_t event, Int_t px, Int_t py, Int_t mode)
Create a new TLatex at the cursor position in gPad.
static void Ellipse(Int_t event, Int_t px, Int_t py, Int_t mode)
Create a new arc/ellipse in this gPad.
static void Pad(Int_t event, Int_t px, Int_t py, Int_t)
Create a new pad in gPad.
All ROOT classes may have RTTI (run time type identification) support added.
This class stores the date and time with a precision of one second in an unsigned 32 bit word (950130...
virtual Int_t GetValue(const char *name, Int_t dflt) const
Returns the integer value for a resource.
TExec is a utility class that can be used to execute a C++ command when some event happens in a pad.
void Paint(Option_t *option="") override
Paint this wbox with its current attributes.
void UseCurrentStyle() override
Replace current frame attributes by current style.
A TGraph is an object made of two arrays X and Y with npoints each.
@ kClipFrame
Clip to the frame boundary.
1-D histogram with a float per channel (see TH1 documentation)
TH1 is the base class of all histogram classes in ROOT.
@ kNoStats
Don't draw stats box.
@ kIsZoomed
Bit set when zooming on Y axis.
The Histogram stack class.
Option_t * GetOption() const
This class displays a legend box (TPaveText) containing several legend entries.
Use the TLine constructor to create a simple line.
Option_t * GetOption() const override
Returns the object option stored in the list.
void Clear(Option_t *option="") override
Remove all objects from the list.
virtual TObjLink * LastLink() const
TObject * FindObject(const char *name) const override
Find an object in this list using its name.
void RecursiveRemove(TObject *obj) override
Remove object from this collection and recursively remove the object from all other objects (and coll...
void Add(TObject *obj) override
TObject * Remove(TObject *obj) override
Remove object from the list.
void AddLast(TObject *obj) override
Add object at the end of the list.
TObject * Last() const override
Return the last object in the list. Returns 0 when list is empty.
virtual TObjLink * FirstLink() const
void AddFirst(TObject *obj) override
Add object at the beginning of the list.
Each ROOT class (see TClass) has a linked list of methods.
A TMultiGraph is a collection of TGraph (or derived) objects.
TH1F * GetHistogram()
Returns a pointer to the histogram used to draw the axis.
virtual void SetTitle(const char *title="")
Set the title of the TNamed.
const char * GetName() const override
Returns name of object.
const char * GetTitle() const override
Returns title of object.
virtual void SetName(const char *name)
Set the name of the TNamed.
Wrapper around a TObject so it can be stored in a TList.
Mother of all ROOT objects.
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py)
Computes distance from point (px,py) to the object.
virtual const char * GetName() const
Returns name of object.
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
virtual void Streamer(TBuffer &)
Stream an object of class TObject.
virtual const char * ClassName() const
Returns name of class to which the object belongs.
virtual void UseCurrentStyle()
Set current style settings in this object This function is called when either TCanvas::UseCurrentStyl...
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
virtual TObject * FindObject(const char *name) const
Must be redefined in derived classes.
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
virtual const char * GetTitle() const
Returns title of object.
virtual void Draw(Option_t *option="")
Default Draw method for all objects.
virtual void Paint(Option_t *option="")
This method must be overridden if a class wants to paint itself.
@ kCannotPick
if object in a pad cannot be picked
@ kCanDelete
if object in a list can be deleted
@ kMustCleanup
if object destructor must call RecursiveRemove()
The most important graphics class in the ROOT system.
Short_t GetBorderMode() const override
Bool_t OpaqueMoving() const override
Is pad moving in opaque mode ?
void PaintTextNDC(Double_t u, Double_t v, const char *text) override
Paint text in CurrentPad NDC coordinates.
Int_t GetTicky() const override
virtual Int_t Clip(Float_t *x, Float_t *y, Float_t xclipl, Float_t yclipb, Float_t xclipr, Float_t yclipt)
Clipping routine: Cohen Sutherland algorithm.
virtual void HideToolTip(Int_t event)
Hide tool tip depending on the event type.
Double_t fAbsYlowNDC
Absolute Y top left corner of pad in NDC [0,1].
Double_t fXtoAbsPixelk
Conversion coefficient for X World to absolute pixel.
void SetAttMarkerPS(Color_t color, Style_t style, Size_t msize) override
Set postscript marker attributes.
virtual void DivideSquare(Int_t n, Float_t xmargin=0.01, Float_t ymargin=0.01, Int_t color=0)
"n" is the total number of sub-pads.
void AbsCoordinates(Bool_t set) override
Double_t AbsPixeltoY(Int_t py) override
Bool_t IsBatch() const override
Is pad in batch mode ?
Double_t GetUymax() const override
Returns the maximum y-coordinate value visible on the pad. If log axis the returned value is in decad...
void AddExec(const char *name, const char *command) override
Add a new TExec object to the list of Execs.
Double_t fWNDC
Width of pad along X in Normalized Coordinates (NDC)
Int_t NextPaletteColor() override
Get the next autocolor in the pad.
Int_t VtoPixel(Double_t v) const override
Convert Y NDC to pixel.
void PaintBorder(Color_t color, Bool_t tops)
Paint the pad border.
Double_t GetPhi() const override
Bool_t IsEditable() const override
void FillCollideGrid(TObject *o)
Initialise the grid used to find empty space when adding a box (Legend) in a pad.
void SetView(TView *view=nullptr) override
Set the current TView. Delete previous view if view=0.
TVirtualViewer3D * GetViewer3D(Option_t *type="") override
Create/obtain handle to 3D viewer.
Double_t fPixeltoYk
Conversion coefficient for pixel to Y World.
void PaintHatches(Double_t dy, Double_t angle, Int_t nn, Double_t *xx, Double_t *yy)
This routine draw hatches inclined with the angle "angle" and spaced of "dy" in normalized device coo...
void PaintLine3D(Float_t *p1, Float_t *p2) override
Paint 3-D line in the CurrentPad.
static Int_t fgMaxPickDistance
Maximum Pick Distance.
void ResizePad(Option_t *option="") override
Compute pad conversion coefficients.
void PaintPolyMarker(Int_t n, Float_t *x, Float_t *y, Option_t *option="") override
Paint polymarker in CurrentPad World coordinates.
Double_t fPhi
phi angle to view as lego/surface
Double_t fPixeltoY
yworld = fPixeltoYk + fPixeltoY*ypixel
virtual void RecordLatex(const TObject *obj)
Emit RecordLatex() signal.
Double_t fAbsXlowNDC
Absolute X top left corner of pad in NDC [0,1].
Double_t fVtoPixelk
Conversion coefficient for V NDC to pixel.
Bool_t fGridx
Set to true if grid along X.
TObject * fPadView3D
! 3D View of this TPad
void CopyBackgroundPixmaps(TPad *start, TPad *stop, Int_t x, Int_t y)
Copy pixmaps of pads laying below pad "stop" into pad "stop".
Double_t GetUxmax() const override
Returns the maximum x-coordinate value visible on the pad. If log axis the returned value is in decad...
void Divide(Int_t nx=1, Int_t ny=1, Float_t xmargin=0.01, Float_t ymargin=0.01, Int_t color=0) override
Automatic pad generation by division.
void SavePrimitive(std::ostream &out, Option_t *option="") override
Save primitives in this pad on the C++ source file out.
Double_t fXtoPixel
xpixel = fXtoPixelk + fXtoPixel*xworld
TList * fExecs
List of commands to be executed when a pad event occurs.
Double_t PadtoY(Double_t y) const override
Convert y from pad to Y.
Int_t fTickx
Set to 1 if tick marks along X.
void SetBBoxY1(const Int_t y) override
Set top of BoundingBox to a value (resize in y direction on top)
Int_t fTicky
Set to 1 if tick marks along Y.
Int_t GetPixmapID() const override
virtual void XYtoAbsPixel(Double_t x, Double_t y, Int_t &xpixel, Int_t &ypixel) const
Convert X/Y into absolute pixel coordinates.
Bool_t GetGridx() const override
Double_t fX2
X of upper X coordinate.
Bool_t PlaceBox(TObject *o, Double_t w, Double_t h, Double_t &xl, Double_t &yb, Option_t *option="lb") override
Place a box in NDC space.
void SetLogz(Int_t value=1) override
Set Lin/Log scale for Z.
Int_t UtoAbsPixel(Double_t u) const override
Convert X NDC to absolute pixel.
void Browse(TBrowser *b) override
Browse pad.
Int_t XtoPixel(Double_t x) const override
Convert X coordinate to pixel.
void SetAttFillPS(Color_t color, Style_t style) override
Set postscript fill area attributes.
Int_t fCGnx
! Size of the collide grid along x
void SetBBoxCenterY(const Int_t y) override
Set Y coordinate of the center of the Pad.
Double_t fPixeltoX
xworld = fPixeltoXk + fPixeltoX*xpixel
void CopyBackgroundPixmap(Int_t x, Int_t y)
Copy pixmap of this pad as background of the current pad.
~TPad() override
Pad destructor.
Double_t fYtoPixel
ypixel = fYtoPixelk + fYtoPixel*yworld
void DeleteToolTip(TObject *tip) override
Delete tool tip object.
void Close(Option_t *option="") override
Delete all primitives in pad and pad itself.
Double_t fAbsWNDC
Absolute Width of pad along X in NDC.
TObject * Remove(TObject *obj, Bool_t modified=kTRUE) override
Remove object from list of primitives When.
UInt_t GetWw() const override
Get Ww.
void PaintModified() override
Traverse pad hierarchy and (re)paint only modified pads.
void SetEditable(Bool_t mode=kTRUE) override
Set pad editable yes/no If a pad is not editable:
const char * GetTitle() const override
Returns title of object.
void PaintDate()
Paint the current date and time if the option Date is set on via gStyle->SetOptDate() Paint the curre...
static void SetMaxPickDistance(Int_t maxPick=5)
static function to set the maximum Pick Distance fgMaxPickDistance This parameter is used in TPad::Pi...
void SetBBoxX2(const Int_t x) override
Set right hand side of BoundingBox to a value (resize in x direction on right)
void SetBBoxX1(const Int_t x) override
Set lefthandside of BoundingBox to a value (resize in x direction on left)
virtual Int_t ClippingCode(Double_t x, Double_t y, Double_t xcl1, Double_t ycl1, Double_t xcl2, Double_t ycl2)
Compute the endpoint codes for TPad::Clip.
Double_t GetUymin() const override
Returns the minimum y-coordinate value visible on the pad. If log axis the returned value is in decad...
Double_t fX1
X of lower X coordinate.
TList * GetListOfPrimitives() const override
void SetFillStyle(Style_t fstyle) override
Override TAttFill::FillStyle for TPad because we want to handle style=0 as style 4000.
TH1F * DrawFrame(Double_t xmin, Double_t ymin, Double_t xmax, Double_t ymax, const char *title="") override
Draw an empty pad frame with X and Y axis.
Double_t fVtoPixel
ypixel = fVtoPixelk + fVtoPixel*vndc
TCanvasImp * GetCanvasImp() const override
Get canvas implementation pointer if any.
Int_t GetEvent() const override
Get Event.
Double_t PadtoX(Double_t x) const override
Convert x from pad to X.
virtual void PixeltoXY(Int_t xpixel, Int_t ypixel, Double_t &x, Double_t &y)
Convert pixel to X/Y coordinates.
virtual void DrawCrosshair()
Function called to draw a crosshair in the canvas.
Double_t YtoPad(Double_t y) const override
Convert y from Y to pad.
virtual void RangeChanged()
Double_t fUymin
Minimum value on the Y axis.
void SetPad(const char *name, const char *title, Double_t xlow, Double_t ylow, Double_t xup, Double_t yup, Color_t color=35, Short_t bordersize=5, Short_t bordermode=-1) override
Set all pad parameters.
void SetCursor(ECursor cursor) override
Set cursor type.
Int_t GetCanvasID() const override
Get canvas identifier.
Int_t fLogz
(=0 if Z linear scale, =1 if log scale)
Double_t fYtoPixelk
Conversion coefficient for Y World to pixel.
void UpdateAsync() override
Asynchronous pad update.
TPad()
Pad default constructor.
Double_t AbsPixeltoX(Int_t px) override
void UseCurrentStyle() override
Force a copy of current style for all objects in pad.
static Int_t GetMaxPickDistance()
Static function (see also TPad::SetMaxPickDistance)
Int_t VtoAbsPixel(Double_t v) const override
Convert Y NDC to absolute pixel.
void Range(Double_t x1, Double_t y1, Double_t x2, Double_t y2) override
Set world coordinate system for the pad.
Double_t fUtoPixelk
Conversion coefficient for U NDC to pixel.
Double_t fPixeltoXk
Conversion coefficient for pixel to X World.
Bool_t IsModified() const override
Double_t fY1
Y of lower Y coordinate.
Int_t GetEventY() const override
Get Y event.
Int_t fGLDevice
! OpenGL off-screen pixmap identifier
Double_t fYlowNDC
Y bottom left corner of pad in NDC [0,1].
TObject * WaitPrimitive(const char *pname="", const char *emode="") override
Loop and sleep until a primitive with name=pname is found in the pad.
void SetAttTextPS(Int_t align, Float_t angle, Color_t color, Style_t font, Float_t tsize) override
Set postscript text attributes.
Bool_t fModified
Set to true when pad is modified.
TLegend * BuildLegend(Double_t x1=0.3, Double_t y1=0.21, Double_t x2=0.3, Double_t y2=0.21, const char *title="", Option_t *option="") override
Build a legend from the graphical objects in the pad.
virtual TPad * Pick(Int_t px, Int_t py, TObjLink *&pickobj)
Search for an object at pixel position px,py.
void Update() override
Update pad.
Int_t fNumber
pad number identifier
void PaintFillAreaNDC(Int_t n, Double_t *x, Double_t *y, Option_t *option="") override
Paint fill area in CurrentPad NDC coordinates.
Double_t PixeltoX(Int_t px) override
Convert pixel to X coordinate.
Double_t fAbsPixeltoXk
Conversion coefficient for absolute pixel to X World.
void Clear(Option_t *option="") override
Delete all pad primitives.
Int_t YtoPixel(Double_t y) const override
Convert Y coordinate to pixel.
Int_t GetTickx() const override
void PaintLine(Double_t x1, Double_t y1, Double_t x2, Double_t y2) override
Paint line in CurrentPad World coordinates.
Int_t GetGLDevice() override
Get GL device.
Double_t fAspectRatio
ratio of w/h in case of fixed ratio
virtual void RecordPave(const TObject *obj)
Emit RecordPave() signal.
void PaintBorderPS(Double_t xl, Double_t yl, Double_t xt, Double_t yt, Int_t bmode, Int_t bsize, Int_t dark, Int_t light) override
Paint a frame border with Postscript.
Double_t fUymax
Maximum value on the Y axis.
void SetLogy(Int_t value=1) override
Set Lin/Log scale for Y.
virtual Int_t ClipPolygon(Int_t n, Double_t *x, Double_t *y, Int_t nn, Double_t *xc, Double_t *yc, Double_t xclipl, Double_t yclipb, Double_t xclipr, Double_t yclipt)
Clip polygon using the Sutherland-Hodgman algorithm.
void ExecuteEventAxis(Int_t event, Int_t px, Int_t py, TAxis *axis) override
Execute action corresponding to one event for a TAxis object (called by TAxis::ExecuteEvent....
void HighLight(Color_t col=kRed, Bool_t set=kTRUE) override
Highlight pad.
void SetBatch(Bool_t batch=kTRUE) override
Set pad in batch mode.
TCanvas * fCanvas
! Pointer to mother canvas
TVirtualPad * GetMother() const override
TVirtualViewer3D * fViewer3D
! Current 3D viewer
virtual void x3d(Option_t *type="")
Deprecated: use TPad::GetViewer3D() instead.
Bool_t HasCrosshair() const override
Return kTRUE if the crosshair has been activated (via SetCrosshair).
Bool_t IsRetained() const override
Is pad retained ?
Bool_t Collide(Int_t i, Int_t j, Int_t w, Int_t h)
Check if a box of size w and h collide some primitives in the pad at position i,j.
Int_t DistancetoPrimitive(Int_t px, Int_t py) override
Compute distance from point px,py to a box.
Bool_t fFixedAspectRatio
True if fixed aspect ratio.
void PaintFillArea(Int_t n, Float_t *x, Float_t *y, Option_t *option="") override
void Modified(Bool_t flag=true) override
Mark pad modified Will be repainted when TCanvas::Update() will be called next time.
void RecursiveRemove(TObject *obj) override
Recursively remove object from a pad and its sub-pads.
Bool_t HasFixedAspectRatio() const override
void CloseToolTip(TObject *tip) override
Hide tool tip.
Double_t GetUxmin() const override
Returns the minimum x-coordinate value visible on the pad. If log axis the returned value is in decad...
void SetToolTipText(const char *text, Long_t delayms=1000) override
Set tool tip text associated with this pad.
void PaintPolyLine(Int_t n, Float_t *x, Float_t *y, Option_t *option="") override
Paint polyline in CurrentPad World coordinates.
void ls(Option_t *option="") const override
List all primitives in pad.
TView * GetView() const override
void ModifiedUpdate() override
Short cut to call Modified() and Update() in a single call.
Double_t fVtoAbsPixelk
Conversion coefficient for V NDC to absolute pixel.
TVirtualPad * GetPadSave() const override
Get save pad.
void SetAttLinePS(Color_t color, Style_t style, Width_t lwidth) override
Set postscript line attributes.
TClass * IsA() const override
TVirtualPad * GetVirtCanvas() const override
Get virtual canvas.
void DeleteExec(const char *name) override
Remove TExec name from the list of Execs.
void Streamer(TBuffer &) override
Stream a class object.
void CopyPixmaps() override
Copy the sub-pixmaps of the pad to the canvas.
void CopyPixmap() override
Copy the pixmap of the pad to the canvas.
Double_t GetY1() const override
Int_t UtoPixel(Double_t u) const override
Convert X NDC to pixel.
TPoint GetBBoxCenter() override
Return the center of the Pad as TPoint in pixels.
void FillCollideGridTFrame(TObject *o)
Bool_t GetGridy() const override
void LineNotFree(Int_t x1, Int_t x2, Int_t y1, Int_t y2)
Mark as "not free" the cells along a line.
virtual void AbsPixeltoXY(Int_t xpixel, Int_t ypixel, Double_t &x, Double_t &y)
Convert absolute pixel into X/Y coordinates.
Double_t fAbsHNDC
Absolute Height of pad along Y in NDC.
void ExecuteEvent(Int_t event, Int_t px, Int_t py) override
Execute action corresponding to one event.
TObject * fTip
! tool tip associated with box
void SetCanvasSize(UInt_t ww, UInt_t wh) override
Set canvas size.
Int_t GetLogz() const override
virtual void XYtoPixel(Double_t x, Double_t y, Int_t &xpixel, Int_t &ypixel) const
Convert X/Y into pixel coordinates.
virtual void AutoExec()
Execute the list of Execs when a pad event occurs.
Bool_t fAbsCoord
Use absolute coordinates.
Int_t fNumPaletteColor
Number of objects with an automatic color.
Int_t fCrosshairPos
Position of crosshair.
void FillCollideGridTGraph(TObject *o)
void SetFixedAspectRatio(Bool_t fixed=kTRUE) override
Fix pad aspect ratio to current value if fixed is true.
Short_t GetBorderSize() const override
void RedrawAxis(Option_t *option="") override
Redraw the frame axis.
void DrawDist(Rectangle_t aBBox, Rectangle_t bBBox, char mode)
Draw Arrows to indicated equal distances of Objects with given BBoxes.
Int_t fLogx
(=0 if X linear scale, =1 if log scale)
Double_t GetAbsWNDC() const override
Int_t YtoAbsPixel(Double_t y) const override
Convert Y coordinate to absolute pixel.
Double_t fUtoPixel
xpixel = fUtoPixelk + fUtoPixel*undc
Int_t fCrosshair
Crosshair type (0 if no crosshair requested)
void PaintFillAreaHatches(Int_t n, Double_t *x, Double_t *y, Int_t FillStyle)
This function paints hatched fill area according to the FillStyle value The convention for the Hatch ...
void RangeAxis(Double_t xmin, Double_t ymin, Double_t xmax, Double_t ymax) override
Set axis coordinate system for the pad.
Double_t fUtoAbsPixelk
Conversion coefficient for U NDC to absolute pixel.
void ResetToolTip(TObject *tip) override
Reset tool tip, i.e.
Double_t GetTheta() const override
TList * fPrimitives
->List of primitives (subpads)
UInt_t GetWh() const override
Get Wh.
TCanvas * GetCanvas() const override
Short_t fBorderSize
pad bordersize in pixels
void Add(TObject *obj, Option_t *opt="", Bool_t modified=kTRUE) override
Add an object to list of primitives with speicified draw option When.
TView * fView
! Pointer to 3-D view (if one exists)
Rectangle_t GetBBox() override
Return the bounding Box of the Pad.
void Paint(Option_t *option="") override
Paint all primitives in pad.
void FillCollideGridTBox(TObject *o)
Double_t fTheta
theta angle to view as lego/surface
void DrawCollideGrid()
This method draws the collide grid on top of the canvas.
void SetVertical(Bool_t vert=kTRUE) override
Set pad vertical (default) or horizontal.
void FillCollideGridTH1(TObject *o)
void GetPadPar(Double_t &xlow, Double_t &ylow, Double_t &xup, Double_t &yup) override
Return lower and upper bounds of the pad in NDC coordinates.
void PaintText(Double_t x, Double_t y, const char *text) override
Paint text in CurrentPad World coordinates.
Int_t fPadPaint
Set to 1 while painting the pad.
static void DrawColorTable()
Static function to Display Color Table in a pad.
Double_t GetXlowNDC() const override
void SaveAs(const char *filename="", Option_t *option="") const override
Save the pad content in a file.
Int_t fPixmapID
! Off-screen pixmap identifier
Bool_t fEditable
True if canvas is editable.
Double_t GetYlowNDC() const override
TObject * FindObject(const char *name) const override
Search if object named name is inside this pad or in pads inside this pad.
Color_t GetHighLightColor() const override
Get highlight color.
Bool_t OpaqueResizing() const override
Is pad resizing in opaque mode ?
std::vector< Bool_t > fCollideGrid
! Grid used to find empty space when adding a box (Legend) in a pad
TVirtualPad * cd(Int_t subpadnumber=0) override
Set Current pad.
Int_t GetLogy() const override
void PaintLineNDC(Double_t u1, Double_t v1, Double_t u2, Double_t v2) override
Paint line in normalized coordinates.
Double_t PixeltoY(Int_t py) override
Convert pixel to Y coordinate.
void Print(const char *filename="") const override
This method is equivalent to SaveAs("filename"). See TPad::SaveAs for details.
Int_t GetEventX() const override
Get X event.
TFrame * GetFrame() override
Get frame.
Double_t fYtoAbsPixelk
Conversion coefficient for Y World to absolute pixel.
Double_t fXtoPixelk
Conversion coefficient for X World to pixel.
Int_t fLogy
(=0 if Y linear scale, =1 if log scale)
TFrame * fFrame
! Pointer to 2-D frame (if one exists)
TVirtualPadPainter * GetPainter() override
Get pad painter from TCanvas.
void Draw(Option_t *option="") override
Draw Pad in Current pad (re-parent pad if necessary).
Double_t fHNDC
Height of pad along Y in Normalized Coordinates (NDC)
void ShowGuidelines(TObject *object, const Int_t event, const char mode='i', const bool cling=true) override
Shows lines to indicate if a TAttBBox2D object is aligned to the center or to another object,...
Int_t GetCrosshair() const
Return the crosshair type (from the mother canvas) crosshair type = 0 means no crosshair.
void GetRangeAxis(Double_t &xmin, Double_t &ymin, Double_t &xmax, Double_t &ymax) override
Return pad axis coordinates range.
void PaintBox(Double_t x1, Double_t y1, Double_t x2, Double_t y2, Option_t *option="") override
Paint box in CurrentPad World coordinates.
void DrawClassObject(const TObject *obj, Option_t *option="") override
Draw class inheritance tree of the class to which obj belongs.
Int_t fCGny
! Size of the collide grid along y
Double_t fXlowNDC
X bottom left corner of pad in NDC [0,1].
TObject * GetPrimitive(const char *name) const override
Get primitive.
Double_t fUxmin
Minimum value on the X axis.
Double_t GetAbsHNDC() const override
void SetBBoxCenter(const TPoint &p) override
Set center of the Pad.
Bool_t IsWeb() const override
Is web ?
void SetSelected(TObject *obj) override
Set selected.
TObject * GetSelected() const override
Get selected.
void GetRange(Double_t &x1, Double_t &y1, Double_t &x2, Double_t &y2) override
Return pad world coordinates range.
void PaintPolyLineNDC(Int_t n, Double_t *x, Double_t *y, Option_t *option="") override
Paint polyline in CurrentPad NDC coordinates.
Bool_t IsVertical() const override
Int_t IncrementPaletteColor(Int_t i, TString opt) override
Increment (i==1) or set (i>1) the number of autocolor in the pad.
void PaintPadFrame(Double_t xmin, Double_t ymin, Double_t xmax, Double_t ymax) override
Paint histogram/graph frame.
Double_t GetAbsYlowNDC() const override
Double_t fUxmax
Maximum value on the X axis.
void AddFirst(TObject *obj, Option_t *opt="", Bool_t modified=kTRUE) override
Add an object as first in list of primitives with speicified draw option When.
Double_t fY2
Y of upper Y coordinate.
Double_t fAbsPixeltoYk
Conversion coefficient for absolute pixel to Y World.
TVirtualPad * GetSelectedPad() const override
Get selected pad.
void PaintPolyLine3D(Int_t n, Double_t *p) override
Paint 3-D polyline in the CurrentPad.
TVirtualPad * GetPad(Int_t subpadnumber) const override
Get a pointer to subpadnumber of this pad.
Short_t fBorderMode
Bordermode (-1=down, 0 = no border, 1=up)
void SetLogx(Int_t value=1) override
Set Lin/Log scale for X.
void ReleaseViewer3D(Option_t *type="") override
Release current (external) viewer.
void SetCrosshair(Int_t crhair=1) override
Set crosshair active/inactive.
void SetDoubleBuffer(Int_t mode=1) override
Set double buffer mode ON or OFF.
Int_t fNextPaletteColor
Next automatic color.
void SetBBoxCenterX(const Int_t x) override
Set X coordinate of the center of the Pad.
Int_t GetLogx() const override
TObject * fPadPointer
! free pointer
Double_t GetX2() const override
TObject * CreateToolTip(const TBox *b, const char *text, Long_t delayms) override
Create a tool tip and return its pointer.
@ kCannotMove
Fixed position.
@ kClearAfterCR
Clear after CR.
@ kHori
Pad is horizontal.
@ kPrintingPS
PS Printing.
@ kFraming
Frame is requested.
Double_t GetWNDC() const override
Get width of pad along X in Normalized Coordinates (NDC)
void Pop() override
Pop pad to the top of the stack.
Double_t GetAbsXlowNDC() const override
Double_t GetHNDC() const override
Get height of pad along Y in Normalized Coordinates (NDC)
TPad * fMother
! pointer to mother of the list
const char * GetName() const override
Returns name of object.
Int_t XtoAbsPixel(Double_t x) const override
Convert X coordinate to absolute pixel.
Bool_t fGridy
Set to true if grid along Y.
void SetBBoxY2(const Int_t y) override
Set bottom of BoundingBox to a value (resize in y direction on bottom)
Double_t XtoPad(Double_t x) const override
Convert x from X to pad.
The histogram statistics painter class.
A Pave (see TPave) with text, lines or/and boxes inside.
virtual TText * AddText(Double_t x1, Double_t y1, const char *label)
Add a new Text line to this pavetext at given coordinates.
virtual TLine * AddLine(Double_t x1=0, Double_t y1=0, Double_t x2=0, Double_t y2=0)
Add a new graphics line to this pavetext.
virtual TBox * AddBox(Double_t x1, Double_t y1, Double_t x2, Double_t y2)
Add a new graphics box to this pavetext.
void Draw(Option_t *option="") override
Draw this pavetext with its current attributes.
Int_t GetBorderSize() const
virtual void SetBorderSize(Int_t bordersize=4)
Sets the border size of the TPave box and shadow.
TPluginHandler * FindHandler(const char *base, const char *uri=nullptr)
Returns the handler if there exists a handler for the specified URI.
void Emit(const char *signal, const T &arg)
Activate signal with single parameter.
static Int_t IncreaseDirLevel()
Increase the indentation level for ls().
static void IndentLevel()
Functions used by ls() to indent an object hierarchy.
static Int_t DecreaseDirLevel()
Decrease the indentation level for ls().
void ToLower()
Change string to lower-case.
TString & Replace(Ssiz_t pos, Ssiz_t n, const char *s)
const char * Data() const
virtual void Streamer(TBuffer &)
Stream a string object.
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
void Form(const char *fmt,...)
Formats a string using a printf style format descriptor.
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
Ssiz_t Index(const char *pat, Ssiz_t i=0, ECaseCompare cmp=kExact) const
void SetPadBorderMode(Int_t mode=1)
void SetPadTopMargin(Float_t margin=0.1)
void SetOptLogx(Int_t logx=1)
void SetPadBottomMargin(Float_t margin=0.1)
Int_t GetOptTitle() const
Int_t GetPadTickX() const
Color_t GetPadColor() const
void SetPadRightMargin(Float_t margin=0.1)
void SetTitleFont(Style_t font=62, Option_t *axis="X")
Float_t GetPadRightMargin() const
void SetTitleBorderSize(Width_t size=2)
Style_t GetTitleFont(Option_t *axis="X") const
Return title font.
void SetPadTickY(Int_t ticky)
Color_t GetTitleFillColor() const
void SetPadTickX(Int_t tickx)
Bool_t GetPadGridY() const
void SetPadGridX(Bool_t gridx)
void SetTitleTextColor(Color_t color=1)
Float_t GetPadLeftMargin() const
Double_t GetHatchesSpacing() const
Bool_t GetPadGridX() const
void SetPadLeftMargin(Float_t margin=0.1)
void SetPadGridY(Bool_t gridy)
void SetOptLogy(Int_t logy=1)
Int_t GetPadTickY() const
Width_t GetPadBorderSize() const
Width_t GetTitleBorderSize() const
Int_t GetColorPalette(Int_t i) const
Return color number i in current palette.
void SetTitleFillColor(Color_t color=1)
Float_t GetPadBottomMargin() const
void SetOptLogz(Int_t logz=1)
void SetPadColor(Color_t color=19)
Color_t GetTitleTextColor() const
Int_t GetPadBorderMode() const
Int_t GetNumberOfColors() const
Return number of colors in the color palette.
void SetPadBorderSize(Width_t size=1)
Int_t GetHatchesLineWidth() const
Float_t GetPadTopMargin() const
virtual Bool_t ExpandPathName(TString &path)
Expand a pathname getting rid of special shell characters like ~.
virtual Int_t Exec(const char *shellcmd)
Execute a command.
virtual Bool_t AccessPathName(const char *path, EAccessMode mode=kFileExists)
Returns FALSE if one can access a file using the specified access mode.
virtual int Rename(const char *from, const char *to)
Rename a file.
virtual void Sleep(UInt_t milliSec)
Sleep milliSec milli seconds.
virtual Bool_t ProcessEvents()
Process pending events (GUI, timers, sockets).
Base class for several text objects.
void Paint(Option_t *option="") override
Paint this text with its current attributes.
virtual void SetNDC(Bool_t isNDC=kTRUE)
Set NDC mode on if isNDC = kTRUE, off otherwise.
virtual void WCtoNDC(const Float_t *pw, Float_t *pn)=0
virtual Int_t GetDistancetoAxis(Int_t axis, Int_t px, Int_t py, Double_t &ratio)=0
virtual void ResizePad()=0
virtual void GetRange(Float_t *min, Float_t *max)=0
Provides 3D viewer interface (TVirtualViewer3D) support on a pad.
TVirtualPS is an abstract interface to Postscript, PDF, SVG.
virtual void Text(Double_t x, Double_t y, const char *string)=0
virtual void DrawPS(Int_t n, Float_t *xw, Float_t *yw)=0
virtual void DrawBox(Double_t x1, Double_t y1, Double_t x2, Double_t y2)=0
virtual void DrawPolyMarker(Int_t n, Float_t *x, Float_t *y)=0
virtual void Open(const char *filename, Int_t type=-111)=0
virtual void DrawFrame(Double_t xl, Double_t yl, Double_t xt, Double_t yt, Int_t mode, Int_t border, Int_t dark, Int_t light)=0
To make it possible to use GL for 2D graphic in a TPad/TCanvas.
virtual void DrawBox(Double_t x1, Double_t y1, Double_t x2, Double_t y2, EBoxMode mode)=0
virtual void ClearDrawable()=0
virtual void SetOpacity(Int_t percent)=0
virtual void DrawPolyLine(Int_t n, const Double_t *x, const Double_t *y)=0
virtual Color_t GetLineColor() const =0
virtual void SetLineStyle(Style_t lstyle)=0
virtual void SetFillColor(Color_t fcolor)=0
virtual void DestroyDrawable(Int_t device)=0
virtual void CopyDrawable(Int_t device, Int_t px, Int_t py)=0
virtual void DrawLine(Double_t x1, Double_t y1, Double_t x2, Double_t y2)=0
virtual void DrawFillArea(Int_t n, const Double_t *x, const Double_t *y)=0
virtual Int_t CreateDrawable(UInt_t w, UInt_t h)=0
virtual void SetLineColor(Color_t lcolor)=0
virtual Style_t GetLineStyle() const =0
virtual void SaveImage(TVirtualPad *pad, const char *fileName, Int_t type) const =0
virtual void DrawLineNDC(Double_t u1, Double_t v1, Double_t u2, Double_t v2)=0
virtual void SetFillStyle(Style_t fstyle)=0
virtual void SetTextSize(Float_t tsize=1)=0
virtual void SetLineWidth(Width_t lwidth)=0
virtual void DrawPolyLineNDC(Int_t n, const Double_t *u, const Double_t *v)=0
virtual void DrawTextNDC(Double_t u, Double_t v, const char *text, ETextMode mode)=0
virtual Width_t GetLineWidth() const =0
virtual void SelectDrawable(Int_t device)=0
virtual void DrawPolyMarker(Int_t n, const Double_t *x, const Double_t *y)=0
virtual void DrawText(Double_t x, Double_t y, const char *text, ETextMode mode)=0
virtual Style_t GetFillStyle() const =0
virtual void InvalidateCS()
Empty definition.
small helper class to store/restore gPad context in TPad methods
TVirtualPad is an abstract base class for the Pad and Canvas classes.
virtual Int_t YtoAbsPixel(Double_t y) const =0
virtual Double_t GetX2() const =0
virtual Int_t XtoAbsPixel(Double_t x) const =0
virtual Double_t GetY1() const =0
void Streamer(TBuffer &) override
Stream an object of class TVirtualPad.
virtual Int_t VtoPixel(Double_t v) const =0
virtual Int_t VtoAbsPixel(Double_t v) const =0
virtual void RangeAxisChanged()
virtual Double_t GetY2() const =0
virtual Int_t UtoPixel(Double_t u) const =0
virtual Short_t GetBorderSize() const =0
virtual Bool_t IsEditable() const =0
virtual Double_t GetX1() const =0
Abstract 3D shapes viewer.
virtual Bool_t BuildingScene() const =0
virtual void EndScene()=0
static TVirtualViewer3D * Viewer3D(TVirtualPad *pad=nullptr, Option_t *type="")
Create a Viewer 3D of specified type.
virtual void PadPaint(TVirtualPad *)
virtual void BeginScene()=0
virtual Bool_t CanLoopOnPrimitives() const
Short_t GetBorderSize() const
Short_t GetBorderMode() const
virtual void SetBorderMode(Short_t bordermode)
virtual void SetBorderSize(Short_t bordersize)
void box(Int_t pat, Double_t x1, Double_t y1, Double_t x2, Double_t y2)
R__ALWAYS_INLINE bool HasBeenDeleted(const TObject *obj)
Check if the TObject's memory has been deleted.
void CallRecursiveRemoveIfNeeded(TObject &obj)
call RecursiveRemove for obj if gROOT is valid and obj.TestBit(kMustCleanup) is true.
Int_t Nint(T x)
Round to nearest integer. Rounds half integers to the nearest even integer.
Short_t Max(Short_t a, Short_t b)
Returns the largest of a and b.
Double_t Exp(Double_t x)
Returns the base-e exponential function of x, which is e raised to the power x.
Double_t Floor(Double_t x)
Rounds x downward, returning the largest integral value that is not greater than x.
Double_t Ceil(Double_t x)
Rounds x upward, returning the smallest integral value that is not less than x.
Int_t Finite(Double_t x)
Check if it is finite with a mask in order to be consistent in presence of fast math.
Double_t Log(Double_t x)
Returns the natural logarithm of x.
Double_t Sqrt(Double_t x)
Returns the square root of x.
LongDouble_t Power(LongDouble_t x, LongDouble_t y)
Returns x raised to the power y.
Short_t Min(Short_t a, Short_t b)
Returns the smallest of a and b.
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.
Double_t Log10(Double_t x)
Returns the common (base-10) logarithm of x.
Short_t Abs(Short_t d)
Returns the absolute value of parameter Short_t d.
void inv(rsa_NUMBER *, rsa_NUMBER *, rsa_NUMBER *)
Rectangle structure (maps to the X11 XRectangle structure)
struct used by ShowGuidelines to store the distance Field between objects in the canvas.
dField(TAttBBox2D *a, TAttBBox2D *b, Int_t dist, char direction)