80 likes | 258 Views
Graphics Work Package ROOT release 5.28 Review Root meeting 11/06/2010. Savannah reports.
E N D
Graphics Work Package ROOT release 5.28 Review Root meeting 11/06/2010
Savannah reports Kerning not respected in PostScript (and PDF). DONE It has been implemented in a such way that the kerning mechanism is activated only when needed. If not needed the old way of text rendering is used. It was done that way because most of the time kerning is not needed and text rendered using the kerning mechanism takes more space in the PS/PDF files. Inverted histograms' axis. PENDING Horizontal TPaletteAxis (now the palette is always vertical). PENDING y-axis label alignment (now right aligned only, need left). PENDING TGraphPolar logarithmic radial axis. PENDING #it and #bf in TLatex DONE it and bf are LaTex commands. They allow to write text in italic and boldface. Improved control over character placement in TLatex (#kern #lower) DONE kern and lower are LaTex commands. They allow to move individuals characters in a string. Add fontconfig support (in order to load fonts from a standard directory). Has been closed because a new way to load TTF fonts in PS and PDF has been prototyped. It uses fontconfig. Palette not redrawn properly. PENDING TPad::SetTheta() and TPad::SetPhi() do not cause the Canvas to be redrawn. PENDING
Graphviz (pending) • An interface to the graphviz package is now available in ROOT. It uses graphviz to compute the graphs layout and the ROOT 2D graphics to render them. Now, it needs to be used in ROOT. THML and gviz3d are the first packages which should make use of it. Transparency (pending) Transparency has been a missing attribute for a long time. It is quite difficult to implement it using X11. It is very easy using OpenGL in pad to implement the transparency. This can be a very good opportunity to promote the use of GL in Pad. A first test have been done with Parallel Coordinates and the results look very promising. Graphics workshop 2nd week of July :Timur will be here. I propose at the ROOT meeting time. So I propose: Friday 16th(Timur will be here). The list of items to be discussed in the Graphics workshop is here: http://root.cern.ch/drupal/content/root-graphics-workshop
Not previously foreseen but implemented (1/4) • PostScript and PDF • The marker size between the screen output and the output file formats was not consistent. • Very long text strings made wrong PS files. • PDF also allows to define table of contents. Now, this facility can be used in ROOT. • TPostScript::Text: Inside a string, the backslash itself is now escaped. • Small fix regarding line width in TPDF. • SVG • The character #pm was not correct. • TASImage • Wrong margins with histogram drawing. • Improve the palette placement in TASImage::Paint() • GetWidth() and GetHeight() returned the size of the scaled image instead of the real size of the image. • Fix a long standing problem with THtml: Without this fix all the embeded macros generating GUI output did not work in THtml.
Not previously foreseen but implemented (2/4) • Graphics Primitives • A new text font "Symbol Italic" has been implemented. It is working for all possible outputs: screen, PS, PDF,SVG, gif etc ... It has the font number 15. • Three new marker's styles are now available (32, 33, 34). They complement the markers' list making sure each marker has a solid and an hollow version. This was implemented on screen, TAsimage, PDF, PS … • In TLatex #int and #sum symbols had wrong limits placement if the character just before started with "#". • New method TText::GetTextAdvance to return the text advance for string text taking the kerning into account or not. • In TGaxis, in case of horizontal axis with the font size in pixel (font precision = 3) the labels were not visible. • The stats painting assumed that the stats position was always defined with Y2>Y1 and X2>X1. This is true when the stats is created automatically but might not true if the stats position is given by user. This is now protected. The stats are correctly drawn whatever the orders of X and Y coordinates are. • In case of Canvas.MoveOpaque the rubberband was not visible during the zooming along axis. • TPad::SaveAs now takes care of the extensions .pdf], .pdf[, .pad( and .pdf) to avoid the PS and PDF mixing when a multiple pages PDF files is generated
Not previously foreseen but implemented (3/4) • TGraphDelaunay • New version of the method TGraphDelaunay::Enclose(). This method decides if a point is inside a triangle or not. The way it was implemented produced infinite numbers and generated wrong peaks. It was visible on some machines only (for instance MacOsX). Now this method uses TMath::IsInside(). It is much safer, it runs faster, and the code is simpler. • The X and Y vectors are normalized in order to compute the triangles. The scale factor used was the same for the X and Y axis. This generated problems (very long triangles instead of the obvious ones) in some cases when the X and Y axis had very different ranges. Having two scale factors, one for the X axis and one for the Y axis, cures the problem. • TGraph2D • In case all the points are in the same Z-plane Z0 (zmin = zmax), the graph minimum is set to Z0-0.01*Z0 and the maximum to Z0+0.01*Z0. • TGraph2DPainter • When a TGraph2D was painted with the option TRI1 the color distribution in case of log scale along the Z axis was wrong.
Not previously foreseen but implemented (4/4) • THistPainter • In some cases zooming the X axis interactively generated the error message: • Error in <TGraphPainter::PaintGraphHist>: X must have N+1 values with option N • In somes cases, because of a precision problem the filled bin was not drawn. • With option bar, in some cases, the histogram was drawn out of the frame. • gStyle->SetHistMinimumZero() now works for horizontal plots produced with the option HBAR. • In the case of profile histograms it is possible to print the number of entries instead of the bin content. It is enough to combine the option "E" (for entries) with the option "TEXT”. • In some cases (font precision 3) an empty stats box was drawn. • PaintAxis does not redraw the axis labels and the axis title in case of axis redrawing. Only the tick marks are redrawn. Redrawing the labels and title made them appear a bit thicker • (cf gPad->RedrawAxis() ) • TGraphPainter • When painted with option "2" (errors represented with boxes) the graph with error bars were not clipped if the boxes were outside the frame limits. • In PaintGraphBentErrors the fill style was not set for the boxes. • It was not possible to interactively move a graph with many points close to each other. • PaintGrapHist: improvements with the option "][”. • In some cases the TGraph axis title was not displayed. • THStack • The color index used to erase the background while drawing a stack of 1D histogram was wrong.
New items to be implemented THPoly (or THP) is a new type of histogram having bins of any shapes. The bins are TGraphs. Some prototype has been done. It is working: histograms can be booked, filled and plot as shown on the picture. But the filling is still very slow. It takes 13 seconds to fill this 3324 bins histogram with 25000 entries. Improving the filling speed will be the summer student work. The algorithm is known already. LibAfterimage uses the new jpeg library. We should import it also. A first try showed it is not straight forward as some files have been removed and some added. It should be done carefully and tested. Loading TTF fonts in PS and PDF. We have some prototype but it needs to be tested. Note for he next production release.