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

Detailed Description

Macro illustrating how to animate a geometry picture using a Timer.

Float_t theta = 0;
Float_t phi = 30;
void shapesAnim() {
TCanvas *c1 = new TCanvas("c1","Geometry Shapes",10,10,500,500);
// Define some volumes
TBRIK *brik = new TBRIK("BRIK","BRIK","void",200,150,150);
TTRD1 *trd1 = new TTRD1("TRD1","TRD1","void",200,50,100,100);
TTRD2 *trd2 = new TTRD2("TRD2","TRD2","void",200,50,200,50,100);
TTRAP *trap = new TTRAP("TRAP","TRAP","void",190,0,0,60,40,90,15,120,80,180,15);
TPARA *para = new TPARA("PARA","PARA","void",100,200,200,15,30,30);
TGTRA *gtra = new TGTRA("GTRA","GTRA","void",390,0,0,20,60,40,90,15,120,80,180,15);
TTUBE *tube = new TTUBE("TUBE","TUBE","void",150,200,400);
TTUBS *tubs = new TTUBS("TUBS","TUBS","void",80,100,100,90,235);
TCONE *cone = new TCONE("CONE","CONE","void",100,50,70,120,150);
TCONS *cons = new TCONS("CONS","CONS","void",50,100,100,200,300,90,270);
TSPHE *sphe = new TSPHE("SPHE","SPHE","void",25,340, 45,135, 0,270);
TSPHE *sphe1 = new TSPHE("SPHE1","SPHE1","void",0,140, 0,180, 0,360);
TSPHE *sphe2 = new TSPHE("SPHE2","SPHE2","void",0,200, 10,120, 45,145);
TPCON *pcon = new TPCON("PCON","PCON","void",180,270,4);
pcon->DefineSection(0,-200,50,100);
pcon->DefineSection(1,-50,50,80);
pcon->DefineSection(2,50,50,80);
pcon->DefineSection(3,200,50,100);
TPGON *pgon = new TPGON("PGON","PGON","void",180,270,8,4);
pgon->DefineSection(0,-200,50,100);
pgon->DefineSection(1,-50,50,80);
pgon->DefineSection(2,50,50,80);
pgon->DefineSection(3,200,50,100);
// Set shapes attributes
brik->SetLineColor(1);
trd1->SetLineColor(2);
trd2->SetLineColor(3);
trap->SetLineColor(4);
para->SetLineColor(5);
gtra->SetLineColor(7);
tube->SetLineColor(6);
tubs->SetLineColor(7);
cone->SetLineColor(2);
cons->SetLineColor(3);
pcon->SetLineColor(6);
pgon->SetLineColor(2);
sphe->SetLineColor(kRed);
sphe1->SetLineColor(kBlack);
sphe2->SetLineColor(kBlue);
// Build the geometry hierarchy
TNode *node1 = new TNode("NODE1","NODE1","BRIK");
node1->cd();
TNode *node2 = new TNode("NODE2","NODE2","TRD1",0,0,-1000);
TNode *node3 = new TNode("NODE3","NODE3","TRD2",0,0,1000);
TNode *node4 = new TNode("NODE4","NODE4","TRAP",0,-1000,0);
TNode *node5 = new TNode("NODE5","NODE5","PARA",0,1000,0);
TNode *node6 = new TNode("NODE6","NODE6","TUBE",-1000,0,0);
TNode *node7 = new TNode("NODE7","NODE7","TUBS",1000,0,0);
TNode *node8 = new TNode("NODE8","NODE8","CONE",-300,-300,0);
TNode *node9 = new TNode("NODE9","NODE9","CONS",300,300,0);
TNode *node10 = new TNode("NODE10","NODE10","PCON",0,-1000,-1000);
TNode *node11 = new TNode("NODE11","NODE11","PGON",0,1000,1000);
TNode *node12 = new TNode("NODE12","NODE12","GTRA",0,-400,700);
TNode *node13 = new TNode("NODE13","NODE13","SPHE",10,-400,500);
TNode *node14 = new TNode("NODE14","NODE14","SPHE1",10, 250,300);
TNode *node15 = new TNode("NODE15","NODE15","SPHE2",10,-100,-200);
// Draw this geometry in the current canvas
node1->cd();
node1->Draw();
c1->Update();
//start a Timer
TTimer *timer = new TTimer(20);
timer->SetCommand("Animate()");
timer->TurnOn();
}
void Animate()
{
theta += 2;
phi += 2;
gPad->GetView()->RotateView(theta,phi);
gPad->Modified();
gPad->Update();
}
float Float_t
Definition RtypesCore.h:57
double Double_t
Definition RtypesCore.h:59
@ kRed
Definition Rtypes.h:66
@ kBlack
Definition Rtypes.h:65
@ kBlue
Definition Rtypes.h:66
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
#define gPad
A box with faces perpendicular to the axes.
Definition TBRIK.h:26
A conical tube.
Definition TCONE.h:28
A segment of a conical tube.
Definition TCONS.h:27
The Canvas class.
Definition TCanvas.h:23
A general twisted trapezoid.
Definition TGTRA.h:27
TNode description.
Definition TNode.h:33
A parallelepiped.
Definition TPARA.h:30
A polycone.
Definition TPCON.h:33
A polygon.
Definition TPGON.h:30
A Sphere.
Definition TSPHE.h:28
A general trapezoid.
Definition TTRAP.h:33
A trapezoid with the x dimension varying along z.
Definition TTRD1.h:28
A trapezoid with both x and y dimensions varying along z.
Definition TTRD2.h:29
A tube.
Definition TTUBE.h:32
A segment of a tube.
Definition TTUBS.h:29
Handles synchronous and a-synchronous timer events.
Definition TTimer.h:51
return c1
Definition legend1.C:41
Author
Rene Brun

Definition in file shapesAnim.C.