Logo ROOT  
Reference Guide
 
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Loading...
Searching...
No Matches
eval.C File Reference

Detailed Description

View in nbviewer Open in SWAN
This macro produces the flowchart of TFormula::Eval.

void eval(){
TCanvas *c1 = new TCanvas("c1");
c1->Range(0,0,20,10);
TPaveLabel *pt1 = new TPaveLabel(0.2,4,3,6,"Eval");
pt1->SetTextSize(0.5);
pt1->SetFillColor(42);
pt1->Draw();
TPaveText *pt2 = new TPaveText(4.5,4,7.8,6);
pt2->Draw();
TText *t1 = pt2->AddText("Read Operator");
TText *t2 = pt2->AddText("number i");
TPaveText *pt3 = new TPaveText(9,3.5,17.5,6.5);
TText *t4 = pt3->AddText("Apply Operator to current stack values");
TText *t5 = pt3->AddText("Example: if operator +");
TText *t6 = pt3->AddText("value[i] += value[i-1]");
t4->SetTextAlign(22);
t5->SetTextAlign(22);
t6->SetTextAlign(22);
t5->SetTextColor(4);
t6->SetTextColor(2);
pt3->Draw();
TPaveLabel *pt4 = new TPaveLabel(4,0.5,12,2.5,"return result = value[i]");
pt4->Draw();
TArrow *ar1 = new TArrow(6,4,6,2.7,0.02,"|>");
ar1->Draw();
TText *t7 = new TText(6.56,2.7,"if i = number of stack elements");
t7->SetTextSize(0.04);
t7->Draw();
ar1->DrawArrow(6,8,6,6.2,0.02,"|>");
TLine *l1 = new TLine(12,6.6,12,8);
l1->Draw();
l1->DrawLine(12,8,6,8);
ar1->DrawArrow(3,5,4.4,5,0.02,"|>");
ar1->DrawArrow(7.8,5,8.9,5,0.02,"|>");
}
Draw all kinds of Arrows.
Definition TArrow.h:29
The Canvas class.
Definition TCanvas.h:23
Use the TLine constructor to create a simple line.
Definition TLine.h:22
A Pave (see TPave) with a text centered in the Pave.
Definition TPaveLabel.h:20
A Pave (see TPave) with text, lines or/and boxes inside.
Definition TPaveText.h:21
Base class for several text objects.
Definition TText.h:22
return c1
Definition legend1.C:41
auto * t1
Definition textangle.C:20
Author
Rene Brun

Definition in file eval.C.