ROOT
master
Reference Guide
Loading...
Searching...
No Matches
shapesAnim.C File Reference
Tutorials
»
Legacy tutorials
»
Legacy g3d tutorials
Detailed Description
Macro illustrating how to animate a geometry picture using a
Timer
.
Double_t
pi;
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;
if
(
gPad
->GetView())
gPad
->GetView()->RotateView(theta, phi);
gPad
->Modified();
gPad
->Update();
}
Float_t
float Float_t
Definition
RtypesCore.h:57
Double_t
double Double_t
Definition
RtypesCore.h:59
kRed
@ kRed
Definition
Rtypes.h:66
kBlack
@ kBlack
Definition
Rtypes.h:65
kBlue
@ kBlue
Definition
Rtypes.h:66
TRangeDynCast
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Definition
TCollection.h:358
gPad
#define gPad
Definition
TVirtualPad.h:308
ROOT::Detail::TRangeCast
Definition
TCollection.h:311
TBRIK
A box with faces perpendicular to the axes.
Definition
TBRIK.h:26
TCONE
A conical tube.
Definition
TCONE.h:28
TCONS
A segment of a conical tube.
Definition
TCONS.h:27
TCanvas
The Canvas class.
Definition
TCanvas.h:23
TGTRA
A general twisted trapezoid.
Definition
TGTRA.h:27
TNode
TNode description.
Definition
TNode.h:33
TPARA
A parallelepiped.
Definition
TPARA.h:30
TPCON
A polycone.
Definition
TPCON.h:33
TPGON
A polygon.
Definition
TPGON.h:30
TSPHE
A Sphere.
Definition
TSPHE.h:28
TTRAP
A general trapezoid.
Definition
TTRAP.h:33
TTRD1
A trapezoid with the x dimension varying along z.
Definition
TTRD1.h:28
TTRD2
A trapezoid with both x and y dimensions varying along z.
Definition
TTRD2.h:29
TTUBE
A tube.
Definition
TTUBE.h:32
TTUBS
A segment of a tube.
Definition
TTUBS.h:29
TTimer
Handles synchronous and a-synchronous timer events.
Definition
TTimer.h:51
c1
return c1
Definition
legend1.C:41
Author
Rene Brun
Definition in file
shapesAnim.C
.
tutorials
legacy
g3d
shapesAnim.C
ROOT master - Reference Guide Generated on Thu Feb 20 2025 04:20:00 (GVA Time) using Doxygen 1.10.0