"Fossies" - the Fresh Open Source Software archive

Member "root/graf2d/doc/v532/index.html" of archive root_v5.34.07.source.tar.gz:


<br/> 
<hr/> 
<a name="graf2d"></a> 
<h3>2D Graphics Libraries</h3>

<h4>TCanvas</h4>
<ul>
<li>The following sequence produced a <tt>SEG FAULT</tt>:
   <pre>
   root [0] TFile f("can.root")
   root [1] TCanvas* can = (TCanvas*)f.Get("can")
   root [2] gROOT->SetBatch(1)
   root [3] can->Draw()
   </pre>
</li>
<li>Make sure the inspector canvas background is white.</li>
</ul>

<h4>TGraphPainter</h4>
<ul>
<li> New option E5. It draws boxes for the errors like option E2 but in addition
   it allows to draw the border of the boxes.
   <center>
   <img alt="The new option E5" src="e5.gif"/>
   </center>
</li>
</ul>

<h4>TSVG - TPDF</h4>
<ul>
<li>When saving canvas as an svg image, the "times" character (i. e. in "x10^3"
statement above axis) was saved as utf "&#0772;" (combining macron) whereas it 
schould be "&#215;" (multiplication sign). It is now fixed.
</li>
<li> <tt>TSVG::Open</tt> and <tt>TPDF::Open</tt> now check if the output file 
was successfully opened.
</li>
</ul>

<h4>TText</h4>
<ul>
<li> <tt>TText::GetBoundingBox</tt> now returns 0 when the string is empty.
Previously it returned undefined numbers.
</li>
</ul>

<h4>TLegend</h4>
<ul>
<li> Rewrite <tt>TLegend::GetEntry()</tt> to take the number of columns in the
legend into account. The previous version considered there was always only one
column in a <tt>TLegend</tt>.
</li>
</ul>

<h4>TPaveLabel</h4>
<ul>
<li>The following macro entered an infinite loop: 
<pre>
   {
      int x[10], y[10]; int i;
      for(i = 0; i &lt; 10; i++) {x[i] = 10*i;y[i] = i;}
      TGraph *gr = new TGraph(10,x,y);
      gr->Draw("AL");  
      TPaveLabel *hello = new TPaveLabel(0.2,0.4,0.8,0.6,"Hello World");
      hello->Draw();
   }
</pre>
</li>
</ul>

<h4>iOS module</h4>
<ul>
<li>New module 'ios' was added into graf2d to make it possible to use ROOT's 
graphics on iOS devices (iPad, iPhone, iPod touch).
Among other things, it has the ROOT::iOS::Pad class, which is a version 
of TPad for iOS (pad with TF2 example below).<br/>
<center>
<img alt="TF2 object in a ROOT::iOS::Pad" title="TF2 object in a ROOT::iOS::Pad (painted with a transparency)" src="iospad.gif"/>
</center><br/>
Two applications, based on this module, were developed for iOS (currently, 
for iPad only): "Tutorials" and "RootBrowser".
They can be found in $ROOTSYS/test/ios.
</li>

<li>
   <b>"Tutorials" app</b><br/>
   Small application with several demos, "iOS version" of the $ROOTSYS/tutorlas/demos.C.<br/>
   <center>
   <img alt="Tutorials app" title="Tutorials app" src="tutorials.gif"/>
   </center><br/>
   <b>"Tutorials" application:</b><br/>
   <ul>
      <li>supports portrait and landscape orientation</li>
      <li>has several demos (can be selected by tapping on table's cells)</li>
      <li>supports different gestures (pinch, single and double tap, pan, etc. - active gestures are shown by hint icons)</li>
      <li>has "zoom" mode - pinch or double tap gesture will zoom in/out pad's contents</li>
      <li>has "selection" mode - with single tap user can select different objects inside pad - axes, histograms, pavestats etc.; 3D objects can be rotated.</li>
      <li>has a simple editor to modify pad's parameters : fill color, logarithmic scale, grid, ticks, etc.</li>
   </ul>
   <center>
   <img alt="Editor" title="Pad's editor" src="tut_editor.gif"/>
   </center>
</li>

<li>
   <b>"RootBrowser" app</b><br/>
   <p>This application is a simplified version of TBrowser and TCanvas 
      for iOS. User can open ROOT's file (application uses TWebFile) and
      browse file's contents.</p>
   <p>RootBrower registers *.root file extension in a system, so for 
      example, attached root files from a mail client can be opened by 
      RootBrowser.</p>
   <p>Application has several views. In a top level view, user can see
      opened files, open new files, close files (long press gesture on
      a file icon):</p>
   <img alt="Top level view" width="750" height="461" title="Top level view" src="top_level.gif"/>
   <br/>
   <p>Tap gesture on a file's icon will open "File contents" view. This
      view shows objects and nested directories. For objects small 
      previews are generated. Tapping on a directory's icon will open
      new view with directory's contents. Simple search is supported 
      (in the current TDirectoryFile).</p>
   <img alt="File contents view" width="750" height="461" title="File's contents view" src="file_contents.gif"/>
   <br/>
   <p>Tap on a object's preview will open detailed view for this object. 
      Using pinch gesture or double tap, you can zoom in/zoom out pad's 
      contents.</p>
   <p>If you have several objects in a file or directory, you can 
      navigate through directory contents by using swipe gesture, 
      scrolling your objects.</p>

   <img alt="Detail view" width="750" height="315" title="Detail view" src="detail_view.gif"/>

   <br/>
   <p>It's possible to modify properties of objects the same way you 
      can do it in TCanvas - RootBrowser has an editor. After you 
      press "Edit" button, you can pick histogram, axis, frame, 
      pavestats, etc. in a pad and modify its properties in the 
      editor (selected object is highlihgted in a pad).</p>
   <p>At the moment, there are editors for:</p>
   <ul>
   <li>TH1 objects</li>
   <li>TGraph objects</li>
   <li>Objects derived from TAttLine (line attributes)</li>
   <li>Objects derived from TAttFill (filled area attributes)</li>
   <li>Pad object (fill properties, log scales, ticks, grid)</li>
   <li>Markers</li>
   </ul>
   <img alt="Editors" width="750" height="264" title="Editors" src="editors.gif"/>
   <br/>
   <p>Using pan gesture along the selected axis, you can change the 
      axis range - "zoom".</p>
   <p>Modified object can be saved locally (in application's directory) 
      and sent as an e-mail attachment ("Save" functionality will be 
      improved soon).</p>
</li>
</ul>