220 Error(
"GetContourList",
"Contour level (%g) outside the Z scope [%g,%g]",
242 std::vector<Double_t>
xs0(
fNdt);
243 std::vector<Double_t>
ys0(
fNdt);
244 std::vector<Double_t>
xs1(
fNdt);
245 std::vector<Double_t>
ys1(
fNdt);
246 for (i=0;i<
fNdt;i++) {
259 for(it=0; it<
fNdt; it++) {
277 if (
i0==0 &&
i2==0) {
278 Error(
"GetContourList",
"wrong vertices ordering");
293 if(contour >= z0 && contour <=
z2) {
294 r20 = (contour-z0)/(
z2-z0);
297 if(contour >=
z1 && contour <=
z2) {
302 r10 = (contour-z0)/(
z1-z0);
335 if (
i0==0 &&
i2==0) {
336 Error(
"GetContourList",
"wrong vertices ordering");
351 if(contour >= z0 && contour <=
z2) {
352 r20 = (contour-z0)/(
z2-z0);
355 if(contour >=
z1 && contour <=
z2) {
360 r10 = (contour-z0)/(
z1-z0);
396 if (
is==
js)
continue;
410 list->Add(graph);
npg = 0;
446 list->Add(graph);
npg = 0;
487 list->Add(graph);
npg = 0;
536 first =
yaxis->GetFirst();
570 for (
Int_t k=0; k<ndiv; k++) {
574 while (
auto obj = next()) {
598 Error(
"PaintErrors",
"No TView in current pad");
724 if (zmin==-1111 && zmax==-1111) {
733 if (
fZ[
p[1]]<=z0) {z0=
fZ[
p[1]]; x0=
x[1];
y0=
y[1];
i0=1;}
735 if (
fZ[
p[2]]<=z0) {z0=
fZ[
p[2]]; x0=
x[2];
y0=
y[2];
i0=2;}
742 if (z0>zmax) z0 = zmax;
743 if (
z2>zmax)
z2 = zmax;
744 if (z0<zmin) z0 = zmin;
745 if (
z2<zmin)
z2 = zmin;
746 if (
z1>zmax)
z1 = zmax;
747 if (
z1<zmin)
z1 = zmin;
787 gPad->PaintFillArea(3,
x,
y);
795 zi = (((
ci+1)*(zmax-zmin))/(ncolors-1))+zmin;
829 zi = (((
ci+1)*(zmax-zmin))/(ncolors-1))+zmin;
868 for(i=0; i<
nblev; i++){
901 Error(
"PaintPolyMarker",
"No TView in current pad");
972 for (it=0; it<
npd; it++) {
976 gPad->PaintPolyMarker(1,
xm.data()+it,
ym.data()+it);
998 Error(
"PaintPolyLine",
"No TView in current pad");
1046 for (
Int_t i=0; i<
n; i++) {
1050 gPad->PaintPolyMarker(1,&
x[i],&
y[i]);
1054 gPad->PaintPolyMarker(1,&
x[i],&
y[i]);
1079 std::vector<Int_t> order;
1080 std::vector<Double_t> dist;
1084 Error(
"PaintTriangles",
"No TView in current pad");
1099 std::vector<Double_t>
glev;
1103 Double_t binLow = 0, binHigh = 0, binWidth = 0;
1108 if (!
r0 || !
r1)
return;
1112 binLow, binHigh, nbins, binWidth,
" ");
1117 binWidth = (binHigh-binLow)/nbins;
1146 for (it=0; it<
fNdt; it++) {
1152 if ((
cp >= 0) && (
sp >= 0.)) {
1154 }
else if ((
cp <= 0) && (
sp >= 0.)) {
1157 }
else if ((
cp <= 0) && (
sp <= 0.)) {
1176 for (it=0; it<
fNdt; it++) {
1180 for (
Int_t k=0; k<3; k++) {
1183 if(
fZ[t[k]-1] < zmin ||
fZ[t[k]-1] > zmax)
goto endloop;
1202 gPad->PaintFillArea(3,
x,
y);
1214 gPad->PaintPolyMarker(3,
x,
y);
1238 Error(
"PaintTriangles",
"No TView in current pad");
1253 std::vector<Double_t>
glev;
1257 Double_t binLow = 0, binHigh = 0, binWidth = 0;
1262 if (!
r0 || !
r1)
return;
1266 binLow, binHigh, nbins, binWidth,
" ");
1271 binWidth = (binHigh-binLow)/nbins;
1299 if ((
cp >= 0) && (
sp >= 0.)) {
1301 }
else if ((
cp <= 0) && (
sp >= 0.)) {
1304 }
else if ((
cp <= 0) && (
sp <= 0.)) {
1311 typedef std::pair<Double_t, TGraphDelaunay2D::Triangles::const_iterator>
DistEntry;
1312 std::vector<DistEntry> dist;
1318 dist.emplace_back(fDist(
xd,
yd), it);
1321 std::sort(dist.begin(), dist.end(),
1322 [&](
const DistEntry &
a,
const DistEntry &
b){ return !reverse ? (a.first < b.first) : (b.first < a .first); });
1334 for (
const auto & it : dist) {
1335 p[0] = it.second->idx[0];
1336 p[1] = it.second->idx[1];
1337 p[2] = it.second->idx[2];
1338 for (
Int_t k=0; k<3; k++) {
1360 gPad->PaintFillArea(3,
x,
y);
1372 gPad->PaintPolyMarker(3,
x,
y);
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 x2
Option_t Option_t TPoint TPoint const char x1
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 fs
Option_t Option_t TPoint TPoint const char y1
R__EXTERN TH1 * gCurrentHist
R__EXTERN Hoption_t Hoption
R__EXTERN TStyle * gStyle
virtual Int_t GetNdivisions() const
virtual Color_t GetFillColor() const
Return the fill area color.
virtual Style_t GetFillStyle() const
Return the fill area style.
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 Width_t GetLineWidth() const
Return the line width.
virtual void SetLineWidth(Width_t lwidth)
Set the line width.
virtual void SetLineColor(Color_t lcolor)
Set the line color.
virtual Style_t GetLineStyle() const
Return the line style.
virtual Style_t GetMarkerStyle() const
Return the marker style.
virtual void SetMarkerColor(Color_t mcolor=1)
Set the marker color.
virtual Color_t GetMarkerColor() const
Return the marker color.
virtual Size_t GetMarkerSize() const
Return the marker size.
virtual void SetMarkerStyle(Style_t mstyle=1)
Set the marker style.
virtual void SetMarkerSize(Size_t msize=1)
Set the marker size.
Class to manage histogram axis.
The TGraphDelaunay painting class.
void PaintContour(Option_t *option)
Paints the 2D graph as a contour plot.
Int_t * fNTried
! Pointer to fDelaunay->fNTried
Double_t * fYN
! Pointer to fDelaunay->fYN
TGraphDelaunay * fDelaunay
! Pointer to the TGraphDelaunay2D to be painted
void Paint(Option_t *option) override
Paint a TGraphDelaunay according to the value of "option":
Double_t fYmin
! fGraph2D->fHistogram Ymin
Double_t * fZ
! Pointer to fGraph2D->fZ
void PaintLevels(Int_t *v, Double_t *x, Double_t *y, Int_t nblev=0, Double_t *glev=nullptr)
Paints one triangle.
TGraphDelaunay2D * fDelaunay2D
! Pointer to the TGraphDelaunay2D to be painted
TGraph2D * fGraph2D
! Pointer to the TGraph2D in fDelaunay
void PaintErrors(Option_t *option)
Paints the 2D graph as error bars.
Double_t * fXN
! Pointer to fDelaunay->fXN
Int_t * fMTried
! Pointer to fDelaunay->fMTried
void FindTriangles()
Find triangles in fDelaunay and initialise the TGraph2DPainter values needed to paint triangles or fi...
Int_t * fPTried
! Pointer to fDelaunay->fPTried
Double_t fXNmin
! Equal to fDelaunay->fXNmin
Double_t fXmax
! fGraph2D->fHistogram Xmax
Double_t * fEZhigh
! Pointer to fGraph2D->fZEhigh
Int_t fNpoints
! Equal to fGraph2D->fNpoints
Double_t fZmin
! fGraph2D->fHistogram Zmin
Int_t fNdt
! Equal to fDelaunay->fNdt
Double_t * fEYlow
! Pointer to fGraph2D->fYElow
TList * GetContourList(Double_t contour)
Returns the X and Y graphs building a contour.
Double_t * fX
! Pointer to fGraph2D->fX
Double_t fYmax
! fGraph2D->fHistogram Ymax
Double_t * fEXhigh
! Pointer to fGraph2D->fXEhigh
void PaintPolyMarker0(Int_t n, Double_t *x, Double_t *y)
Paints a circle at each vertex. Each circle background is white.
void PaintTriangles(Option_t *option)
Paints the 2D graph as triangles.
void PaintPolyMarker(Option_t *option)
Paints the 2D graph as PaintPolyMarker.
Double_t * fY
! Pointer to fGraph2D->fY
Double_t fYNmin
! Equal to fDelaunay->fYNmin
Double_t * fEXlow
! Pointer to fGraph2D->fXElow
void PaintPolyLine(Option_t *option)
Paints the 2D graph as PaintPolyLine.
Double_t * fEYhigh
! Pointer to fGraph2D->fYEhigh
TGraph2DPainter()
TGraph2DPainter default constructor.
Double_t fZmax
! fGraph2D->fHistogram Zmax
void PaintTriangles_old(Option_t *option)
Paints the 2D graph as triangles (old implementation)
void GetGraph2dProperties()
Protected method to get all TGraph2D properties.
~TGraph2DPainter() override
TGraph2DPainter destructor.
Double_t fYNmax
! Equal to fDelaunay->fYNmax
Double_t * fEZlow
! Pointer to fGraph2D->fZElow
Double_t fXmin
! fGraph2D->fHistogram Xmin
Double_t fXNmax
! Equal to fDelaunay->fXNmax
void PaintTriangles_new(Option_t *option)
Paints the 2D graph as triangles (new implementation)
virtual Double_t * GetEZhigh() const
Double_t GetMaximum() const
virtual Double_t GetZminE() const
Double_t GetMinimum() const
virtual Double_t GetZmaxE() const
virtual Double_t * GetEZ() const
Double_t GetZmax() const
Returns the Z maximum.
virtual Double_t * GetEYhigh() const
virtual Double_t * GetEY() const
virtual Double_t * GetEXhigh() const
virtual Double_t * GetEXlow() const
virtual Double_t * GetEX() const
virtual Double_t * GetEZlow() const
virtual Double_t * GetEYlow() const
TGraphDelaunay2D generates a Delaunay triangulation of a TGraph2D.
Triangles::const_iterator begin() const
Double_t GetXNmax() const
TGraph2D * GetGraph2D() const
Triangles::const_iterator end() const
Double_t GetXNmin() const
Double_t GetYNmax() const
Double_t GetYNmin() const
TGraphDelaunay generates a Delaunay triangulation of a TGraph2D.
Double_t GetYNmax() const
Int_t * GetMTried() const
Double_t GetXNmin() const
TGraph2D * GetGraph2D() const
Double_t GetXNmax() const
void FindAllTriangles()
Attempt to find all the Delaunay triangles of the point set.
Int_t * GetPTried() const
Int_t * GetNTried() const
Double_t GetYNmin() const
A TGraph is an object made of two arrays X and Y with npoints each.
virtual void SetPoint(Int_t i, Double_t x, Double_t y)
Set x and y values for point number i.
TH1 is the base class of all histogram classes in ROOT.
virtual Double_t GetContourLevelPad(Int_t level) const
Return the value of contour number "level" in Pad coordinates.
@ kUserContour
User specified contour levels.
virtual Double_t GetMaximum(Double_t maxval=FLT_MAX) const
Return maximum value smaller than maxval of bins in the range, unless the value has been overridden b...
virtual Int_t GetContour(Double_t *levels=nullptr)
Return contour values into array levels if pointer levels is non zero.
virtual void SetContour(Int_t nlevels, const Double_t *levels=nullptr)
Set the number and values of contour levels.
virtual Double_t GetMinimum(Double_t minval=-FLT_MAX) const
Return minimum value larger than minval of bins in the range, unless the value has been overridden by...
static void Optimize(Double_t A1, Double_t A2, Int_t nold, Double_t &BinLow, Double_t &BinHigh, Int_t &nbins, Double_t &BWID, Option_t *option="")
Static function to compute reasonable axis limits.
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
virtual void Delete(Option_t *option="")
Delete this object.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
void ToLower()
Change string to lower-case.
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
Int_t GetColorPalette(Int_t i) const
Return color number i in current palette.
Int_t GetNumberOfColors() const
Return number of colors in the color palette.
Int_t GetNumberContours() const
virtual Double_t * GetRmax()=0
virtual Double_t * GetRmin()=0
virtual Double_t GetLongitude()=0
virtual void WCtoNDC(const Float_t *pw, Float_t *pn)=0
Short_t Max(Short_t a, Short_t b)
Returns the largest of a and b.
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.
void Sort(Index n, const Element *a, Index *index, Bool_t down=kTRUE)
Sort the n elements of the array a of generic templated type Element.
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.
Histograms' drawing options structure.
int Logx
log scale in X. Also set by histogram option
int Logz
log scale in Z. Also set by histogram option
int Logy
log scale in Y. Also set by histogram option