shapes.C: The old geometry shapes (see script geodemo.C) | Geometry package | south_gate.C: Drawing a famous Korean gate, the South gate, called Namdeamoon in Korean, using ROOT geometry class. |
//macro illustrating how to animate a geometry picture using a Timer //Author: Rene Brun 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; gPad->GetView()->RotateView(theta,phi); gPad->Modified(); gPad->Update(); } shapesAnim.C:1 shapesAnim.C:2 shapesAnim.C:3 shapesAnim.C:4 shapesAnim.C:5 shapesAnim.C:6 shapesAnim.C:7 shapesAnim.C:8 shapesAnim.C:9 shapesAnim.C:10 shapesAnim.C:11 shapesAnim.C:12 shapesAnim.C:13 shapesAnim.C:14 shapesAnim.C:15 shapesAnim.C:16 shapesAnim.C:17 shapesAnim.C:18 shapesAnim.C:19 shapesAnim.C:20 shapesAnim.C:21 shapesAnim.C:22 shapesAnim.C:23 shapesAnim.C:24 shapesAnim.C:25 shapesAnim.C:26 shapesAnim.C:27 shapesAnim.C:28 shapesAnim.C:29 shapesAnim.C:30 shapesAnim.C:31 shapesAnim.C:32 shapesAnim.C:33 shapesAnim.C:34 shapesAnim.C:35 shapesAnim.C:36 shapesAnim.C:37 shapesAnim.C:38 shapesAnim.C:39 shapesAnim.C:40 shapesAnim.C:41 shapesAnim.C:42 shapesAnim.C:43 shapesAnim.C:44 shapesAnim.C:45 shapesAnim.C:46 shapesAnim.C:47 shapesAnim.C:48 shapesAnim.C:49 shapesAnim.C:50 shapesAnim.C:51 shapesAnim.C:52 shapesAnim.C:53 shapesAnim.C:54 shapesAnim.C:55 shapesAnim.C:56 shapesAnim.C:57 shapesAnim.C:58 shapesAnim.C:59 shapesAnim.C:60 shapesAnim.C:61 shapesAnim.C:62 shapesAnim.C:63 shapesAnim.C:64 shapesAnim.C:65 shapesAnim.C:66 shapesAnim.C:67 shapesAnim.C:68 shapesAnim.C:69 shapesAnim.C:70 shapesAnim.C:71 shapesAnim.C:72 shapesAnim.C:73 shapesAnim.C:74 shapesAnim.C:75 shapesAnim.C:76 shapesAnim.C:77 shapesAnim.C:78 shapesAnim.C:79 shapesAnim.C:80 shapesAnim.C:81 shapesAnim.C:82 shapesAnim.C:83 shapesAnim.C:84 shapesAnim.C:85 shapesAnim.C:86 shapesAnim.C:87 shapesAnim.C:88 shapesAnim.C:89 shapesAnim.C:90 shapesAnim.C:91 shapesAnim.C:92 shapesAnim.C:93 |
|