mp3player.C: Drawing a mp3 type music player, using ROOT geometry class. | Geometry package | rootgeom.C: Definition of a simple geometry (the 4 ROOT characters) |
#include "TGeoManager.h" void robot() { // Drawing a famous Korean robot, TaekwonV, using ROOT geometry class. // Name: robot.C // Author: Jin Hui Hwang, Dept. of Physics, Univ. of Seoul // Reviewed by Sunman Kim (sunman98@hanmail.net) // Supervisor: Prof. Inkyu Park (icpark@physics.uos.ac.kr) // // How to run: .x robot.C in ROOT terminal, then use OpenGL // // This macro was created for the evaluation of Computational Physics course in 2006. // We thank to Prof. Inkyu Park for his special lecture on ROOT and to all of ROOT team // TGeoManager *Robot = new TGeoManager("Robot","This is Taegwon V"); TGeoMaterial *vacuum=new TGeoMaterial("vacuum",0,0,0); TGeoMaterial *Fe=new TGeoMaterial("Fe",55.845,26,7.87); TGeoMedium *Air=new TGeoMedium("Vacuum",0,vacuum); TGeoMedium *Iron=new TGeoMedium("Iron",1,Fe); // create volume TGeoVolume *top=Robot->MakeBox("top",Air,1000,1000,1000); Robot->SetTopVolume(top); Robot->SetTopVisible(0); // If you want to see the boundary, please input the number, 1 instead of 0. // Like this, geom->SetTopVisible(1); // head TGeoVolume *Band=Robot->MakeEltu("Band",Iron,20,20,2.5); Band->SetLineColor(12); Band->SetFillColor(12); TGeoVolume *Band_b=Robot->MakeSphere("Band_b",Iron,0,2,0,180,180,360); Band_b->SetLineColor(2); Band_b->SetFillColor(2); TGeoVolume *Head=Robot->MakeSphere("Head",Iron,0,19,0,180,180,360); Head->SetLineColor(17); Head->SetFillColor(17); TGeoVolume *Horn=Robot->MakeSphere("Horn",Iron,0,10,60,180,240,300); // drawing head top->AddNodeOverlap(Band,1,new TGeoTranslation(0,0,90)); float Phi = 3.14; int N = 10; for (int i=0; i<=N;i++){ top->AddNodeOverlap(Band_b,1,new TGeoCombiTrans(sin(2*Phi/N*i)*19,-cos(2*Phi/N*i)*19,90, new TGeoRotation("R1",-90+(360/N*i),-90,90))); } top->AddNodeOverlap(Head,1,new TGeoCombiTrans(0,0,87.5,new TGeoRotation("R2",0,-90,0))); char name[50]; float pcs = 30; for (int i=1; i<pcs; i++){ sprintf(name,"Horn%d",i); Horn=Robot->MakeSphere(name,Iron, 10- 10/pcs*i ,10,180-(120/pcs)*i,180-((120/pcs) * (i-1)),240,300); Horn->SetLineColor(2); Horn->SetFillColor(2); top->AddNodeOverlap(Horn,1,new TGeoCombiTrans(0,8,102,new TGeoRotation("R2",0,140,0))); top->AddNodeOverlap(Horn,1,new TGeoCombiTrans(0,-8,102,new TGeoRotation("R2",180,140,0))); } // face TGeoVolume *Migan=Robot->MakeGtra("Migan",Iron,3,0,0,0,3,2,11,0,3,3,11,0); Migan->SetLineColor(17); Migan->SetFillColor(17); TGeoVolume *Ko=Robot->MakeGtra("Ko",Iron,7,0,0,0,3,1,5,0,3,2,5,0); Ko->SetLineColor(17); Ko->SetFillColor(17); TGeoVolume *Ko_m=Robot->MakeBox("Ko_m",Iron,2,8,4); Ko_m->SetLineColor(17); Ko_m->SetFillColor(17); TGeoVolume *Bol_1=Robot->MakeBox("Bol_1",Iron,7,5.5,7); Bol_1->SetLineColor(17); Bol_1->SetFillColor(17); TGeoVolume *Bol_2=Robot->MakeGtra("Bol_2",Iron,1,0,0,0,7,0,9,0,7,0,9,0); Bol_2->SetLineColor(17); Bol_2->SetFillColor(17); TGeoVolume *Noon=Robot->MakeBox("Noon",Iron,1,10,5); Noon->SetLineColor(12); Noon->SetFillColor(12); TGeoVolume *Tuck=Robot->MakeBox("Tuck",Iron,2,10,5.5); Tuck->SetLineColor(2); Tuck->SetFillColor(2); TGeoVolume *Tuck_1=Robot->MakeBox("Tuck_1",Iron,2,9,1); Tuck_1->SetLineColor(2); Tuck_1->SetFillColor(2); TGeoVolume *Tuck_2=Robot->MakeBox("Tuck_2",Iron,3,1,14); Tuck_2->SetLineColor(2); Tuck_2->SetFillColor(2); TGeoVolume *Tuck_j=Robot->MakeSphere("Tuck_j",Iron,0,3.5,0,180,0,360); Tuck_j->SetLineColor(5); Tuck_j->SetFillColor(5); TGeoVolume *Ear=Robot->MakeCons("Ear",Iron,1,0,3,0,3,0,360); Ear->SetLineColor(5); Ear->SetFillColor(5); TGeoVolume *Ear_2=Robot->MakeCone("Ear_2",Iron,5,0,0,0,3); Ear_2->SetLineColor(5); Ear_2->SetFillColor(5); // drawing face top->AddNodeOverlap(Migan,1,new TGeoCombiTrans(-15,0,88,new TGeoRotation("R2",-90,40,0))); top->AddNodeOverlap(Ko,1,new TGeoCombiTrans(-15,0,76.5,new TGeoRotation("R2",-90,-20,0))); top->AddNodeOverlap(Ko_m,1,new TGeoTranslation(-9,0,68)); top->AddNodeOverlap(Bol_1,1,new TGeoCombiTrans(-7,2,76,new TGeoRotation("R2",-30,-10,0))); top->AddNodeOverlap(Bol_1,1,new TGeoCombiTrans(-7,-2,76,new TGeoRotation("R2",30,10,0))); top->AddNodeOverlap(Bol_2,1,new TGeoCombiTrans(-6.5,-10.5,76,new TGeoRotation("R2",-15,-90,-30))); top->AddNodeOverlap(Bol_2,1,new TGeoCombiTrans(-4,-12.5,82.5,new TGeoRotation("R2",-20,-90,-95))); top->AddNodeOverlap(Bol_2,1,new TGeoCombiTrans(-7.5,10.5,76,new TGeoRotation("R2",20,-90,-30))); top->AddNodeOverlap(Bol_2,1,new TGeoCombiTrans(-4,12.5,82.5,new TGeoRotation("R2",20,-90,-95))); top->AddNodeOverlap(Noon,1,new TGeoCombiTrans(-5,-7,86,new TGeoRotation("R2",60,0,0))); top->AddNodeOverlap(Noon,1,new TGeoCombiTrans(-5,7,86,new TGeoRotation("R2",-60,0,0))); top->AddNodeOverlap(Tuck,1,new TGeoTranslation(-12,0,62.5)); for (int i=0; i<10;i++) { top->AddNodeOverlap(Tuck_1,1,new TGeoCombiTrans(-4.2,11,61+i,new TGeoRotation("R2",90,-20,20))); top->AddNodeOverlap(Tuck_1,1,new TGeoCombiTrans(-4.2,-11,61+i,new TGeoRotation("R2",90,-20,-20))); } top->AddNodeOverlap(Tuck_2,1,new TGeoTranslation(2,-15.1,76)); top->AddNodeOverlap(Tuck_2,1,new TGeoTranslation(2,15.1,76)); top->AddNodeOverlap(Tuck_j,1,new TGeoTranslation(-13,0,62.5)); top->AddNodeOverlap(Ear,1,new TGeoCombiTrans(2,-16.5,80,new TGeoRotation("R2",0,-90,0))); top->AddNodeOverlap(Ear,1,new TGeoCombiTrans(2,16.5,80,new TGeoRotation("R2",0,90,0))); top->AddNodeOverlap(Ear_2,1,new TGeoCombiTrans(2,-20,80,new TGeoRotation("R2",0,-90,0))); top->AddNodeOverlap(Ear_2,1,new TGeoCombiTrans(2,20,80,new TGeoRotation("R2",0,90,0))); for (int i=1; i<28; i+=1) { float a=i*0.2; TGeoVolume *Hear=Robot->MakeCons("Hear",Iron,3,13+a,16+a,13+a,16+a,-60-a,60+a); if (i<27) { Hear->SetLineColor(12); Hear->SetFillColor(12); } else { Hear->SetLineColor(2); Hear->SetFillColor(2); } top->AddNodeOverlap(Hear,1,new TGeoTranslation(0,0,89-i)); } for (int i=1; i<28; i+=1) { float a=i*0.2; TGeoVolume *Hear=Robot->MakeCons("Hear",Iron,3,13+a,16+a,13+a,16+a,-70-a,-60-a); Hear->SetLineColor(2); Hear->SetFillColor(2); top->AddNodeOverlap(Hear,1,new TGeoTranslation(0,0,89-i)); } for (int i=1; i<28; i+=1) { float a=i*0.2; TGeoVolume *Hear=Robot->MakeCons("Hear",Iron,3,13+a,16+a,13+a,16+a,60+a,70+a); Hear->SetLineColor(2); Hear->SetFillColor(2); top->AddNodeOverlap(Hear,1,new TGeoTranslation(0,0,89-i)); } // neck TGeoVolume *Mock=Robot->MakeTrd2("Mock",Iron,1,1,7,6.5,20); Mock->SetLineColor(17); Mock->SetFillColor(17); TGeoVolume *Mock_1=Robot->MakeTrd2("Mock_1",Iron,1,1,6,5,20); Mock_1->SetLineColor(17); Mock_1->SetFillColor(17); TGeoVolume *Mock_s=Robot->MakeTrd2("Mock_s",Iron,1,1,5,4.5,20); Mock_s->SetLineColor(17); Mock_s->SetFillColor(17); // drawing neck top->AddNodeOverlap(Mock,1,new TGeoCombiTrans(-5,4.7,50,new TGeoRotation("R2",-30,0,-10))); top->AddNodeOverlap(Mock,1,new TGeoCombiTrans(-5,-4.7,50,new TGeoRotation("R2",30,0,10))); top->AddNodeOverlap(Mock_1,1,new TGeoCombiTrans(11,-4,50,new TGeoRotation("R2",130,-8,10))); top->AddNodeOverlap(Mock_1,1,new TGeoCombiTrans(11,4,50,new TGeoRotation("R2",-130,8,-10))); top->AddNodeOverlap(Mock_s,1,new TGeoCombiTrans(2.5,9,50,new TGeoRotation("R2",90,0,0))); top->AddNodeOverlap(Mock_s,1,new TGeoCombiTrans(2.5,-9,50,new TGeoRotation("R2",90,0,0))); // chest TGeoVolume *Gasem=Robot->MakeBox("Gasem",Iron,16,50,20); Gasem->SetLineColor(12); Gasem->SetFillColor(12); TGeoVolume *Gasem_b1=Robot->MakeSphere("Gasem_b1",Iron,0,15,0,180,0,360); Gasem_b1->SetLineColor(12); Gasem_b1->SetFillColor(12); TGeoVolume *Gasem_b2=Robot->MakeSphere("Gasem_b2",Iron,0,13,0,180,0,360); Gasem_b2->SetLineColor(12); Gasem_b2->SetFillColor(12); TGeoVolume *Gasem_1=Robot->MakeEltu("Gasem_1",Iron,13,13,20); Gasem_1->SetLineColor(12); Gasem_1->SetFillColor(12); TGeoVolume *Gasem_2=Robot->MakeEltu("Gasem_2",Iron,13,13,19); Gasem_2->SetLineColor(12); Gasem_2->SetFillColor(12); TGeoVolume *Gasem_3=Robot->MakeCone("Gasem_3",Iron,19,0,13,0,15); Gasem_3->SetLineColor(12); Gasem_3->SetFillColor(12); TGeoVolume *Gasem_4=Robot->MakeEltu("Gasem_4",Iron,15,15,16); Gasem_4->SetLineColor(12); Gasem_4->SetFillColor(12); TGeoVolume *Gasem_5=Robot->MakeEltu("Gasem_5",Iron,13,13,16); Gasem_5->SetLineColor(12); Gasem_5->SetFillColor(12); TGeoVolume *Gasem_m1=Robot->MakeBox("Gasem_m1",Iron,19,19,5); Gasem_m1->SetLineColor(12); Gasem_m1->SetFillColor(12); TGeoVolume *Gasem_m2=Robot->MakeTrd2("Gasem_m2",Iron,13,15,2,2,19); Gasem_m2->SetLineColor(12); Gasem_m2->SetFillColor(12); TGeoVolume *V=Robot->MakeTrd2("V",Iron,2,2,22,30,4); V->SetLineColor(2); V->SetFillColor(2); TGeoVolume *V_m=Robot->MakeBox("V_m",Iron,2,7,1); V_m->SetLineColor(2); V_m->SetFillColor(2); // drawing chest top->AddNodeOverlap(Gasem,1,new TGeoTranslation(4,0,19)); top->AddNodeOverlap(Gasem_b1,1,new TGeoTranslation(-12,50,35)); top->AddNodeOverlap(Gasem_b1,1,new TGeoTranslation(-12,-50,35)); top->AddNodeOverlap(Gasem_b1,1,new TGeoTranslation(20,50,35)); top->AddNodeOverlap(Gasem_b1,1,new TGeoTranslation(20,-50,35)); top->AddNodeOverlap(Gasem_b2,1,new TGeoTranslation(-12,50,-5)); top->AddNodeOverlap(Gasem_b2,1,new TGeoTranslation(-12,-50,-5)); top->AddNodeOverlap(Gasem_b2,1,new TGeoTranslation(20,50,-5)); top->AddNodeOverlap(Gasem_b2,1,new TGeoTranslation(20,-50,-5)); top->AddNodeOverlap(Gasem_b2,1,new TGeoTranslation(20,10,-5)); top->AddNodeOverlap(Gasem_b2,1,new TGeoTranslation(20,-10,-5)); top->AddNodeOverlap(Gasem_b2,1,new TGeoTranslation(-12,10,-5)); top->AddNodeOverlap(Gasem_b2,1,new TGeoTranslation(-12,-10,-5)); top->AddNodeOverlap(Gasem_b2,1,new TGeoTranslation(20,10,35)); top->AddNodeOverlap(Gasem_b2,1,new TGeoTranslation(20,-10,35)); top->AddNodeOverlap(Gasem_b2,1,new TGeoTranslation(-12,10,35)); top->AddNodeOverlap(Gasem_b2,1,new TGeoTranslation(-12,-10,35)); top->AddNodeOverlap(Gasem_1,1,new TGeoCombiTrans(20,31,-5,new TGeoRotation("R2",0,90,0))); top->AddNodeOverlap(Gasem_1,1,new TGeoCombiTrans(20,-31,-5,new TGeoRotation("R2",0,90,0))); top->AddNodeOverlap(Gasem_1,1,new TGeoCombiTrans(-12,31,-5,new TGeoRotation("R2",0,90,0))); top->AddNodeOverlap(Gasem_1,1,new TGeoCombiTrans(-12,-31,-5,new TGeoRotation("R2",0,90,0))); top->AddNodeOverlap(Gasem_2,1,new TGeoCombiTrans(20,10,13,new TGeoRotation("R2",0,0,0))); top->AddNodeOverlap(Gasem_2,1,new TGeoCombiTrans(20,-10,13,new TGeoRotation("R2",0,0,0))); top->AddNodeOverlap(Gasem_2,1,new TGeoCombiTrans(-12,10,13,new TGeoRotation("R2",0,0,0))); top->AddNodeOverlap(Gasem_2,1,new TGeoCombiTrans(-12,-10,13,new TGeoRotation("R2",0,0,0))); top->AddNodeOverlap(Gasem_3,1,new TGeoCombiTrans(-12,50,16,new TGeoRotation("R2",0,0,0))); top->AddNodeOverlap(Gasem_3,1,new TGeoCombiTrans(-12,-50,16,new TGeoRotation("R2",0,0,0))); top->AddNodeOverlap(Gasem_3,1,new TGeoCombiTrans(20,50,16,new TGeoRotation("R2",0,0,0))); top->AddNodeOverlap(Gasem_3,1,new TGeoCombiTrans(20,-50,16,new TGeoRotation("R2",0,0,0))); top->AddNodeOverlap(Gasem_3,1,new TGeoCombiTrans(-12,31,35,new TGeoRotation("R2",0,-90,0))); top->AddNodeOverlap(Gasem_3,1,new TGeoCombiTrans(-12,-31,35,new TGeoRotation("R2",0,90,0))); top->AddNodeOverlap(Gasem_3,1,new TGeoCombiTrans(20,31,35,new TGeoRotation("R2",0,-90,0))); top->AddNodeOverlap(Gasem_3,1,new TGeoCombiTrans(20,-31,35,new TGeoRotation("R2",0,90,0))); top->AddNodeOverlap(Gasem_4,1,new TGeoCombiTrans(4,-50,35,new TGeoRotation("R2",90,90,0))); top->AddNodeOverlap(Gasem_4,1,new TGeoCombiTrans(4,50,35,new TGeoRotation("R2",90,90,0))); top->AddNodeOverlap(Gasem_5,1,new TGeoCombiTrans(4,-50,-5,new TGeoRotation("R2",90,90,0))); top->AddNodeOverlap(Gasem_5,1,new TGeoCombiTrans(4,50,-5,new TGeoRotation("R2",90,90,0))); top->AddNodeOverlap(Gasem_m1,1,new TGeoCombiTrans(-22,30,16,new TGeoRotation("R2",90,88,0))); top->AddNodeOverlap(Gasem_m1,1,new TGeoCombiTrans(-22,-30,16,new TGeoRotation("R2",90,88,0))); top->AddNodeOverlap(Gasem_m1,1,new TGeoCombiTrans(29,30,16,new TGeoRotation("R2",90,92,0))); top->AddNodeOverlap(Gasem_m1,1,new TGeoCombiTrans(29,-30,16,new TGeoRotation("R2",90,92,0))); top->AddNodeOverlap(Gasem_m2,1,new TGeoCombiTrans(2,-62,16,new TGeoRotation("R2",0,3,0))); top->AddNodeOverlap(Gasem_m2,1,new TGeoCombiTrans(2,62,16,new TGeoRotation("R2",0,-3,0))); top->AddNodeOverlap(Gasem_m2,1,new TGeoCombiTrans(2,-30,47.5,new TGeoRotation("R2",0,87,0))); top->AddNodeOverlap(Gasem_m2,1,new TGeoCombiTrans(2,30,47.5,new TGeoRotation("R2",0,-87,0))); top->AddNodeOverlap(Gasem_m2,1,new TGeoCombiTrans(2,-30,-16,new TGeoRotation("R2",0,90,0))); top->AddNodeOverlap(Gasem_m2,1,new TGeoCombiTrans(2,30,-16,new TGeoRotation("R2",0,-90,0))); top->AddNodeOverlap(V,1,new TGeoCombiTrans(-30,18.3,16,new TGeoRotation("R2",0,-135,0))); top->AddNodeOverlap(V,1,new TGeoCombiTrans(-30,-18.3,16,new TGeoRotation("R2",0,135,0))); top->AddNodeOverlap(V_m,1,new TGeoTranslation(-30,-37,35)); top->AddNodeOverlap(V_m,1,new TGeoTranslation(-30,37,35)); // abdomen TGeoVolume *Bea=Robot->MakeEltu("Bea",Iron,20,37,25); Bea->SetLineColor(17); Bea->SetFillColor(17); TGeoVolume *Bea_d=Robot->MakeEltu("Bea_d",Iron,21,36,5); Bea_d->SetLineColor(12); Bea_d->SetFillColor(12); TGeoVolume *Beakop=Robot->MakeEltu("Beakop",Iron,15,25,5); Beakop->SetLineColor(10); Beakop->SetFillColor(10); // drawing abdomen top->AddNodeOverlap(Bea,1,new TGeoTranslation(3,0,-30)); top->AddNodeOverlap(Bea_d,1,new TGeoTranslation(3,0,-10)); top->AddNodeOverlap(Beakop,1,new TGeoCombiTrans(-12.1,0,-50, new TGeoRotation("R2",90,90,0))); // Gungdi TGeoVolume *Gungdi=Robot->MakeEltu("Gungdi",Iron,25,50,18); Gungdi->SetLineColor(12); Gungdi->SetFillColor(12); TGeoVolume *Gungdi_d=Robot->MakeEltu("Gungdi_d",Iron,5,5,5); Gungdi_d->SetLineColor(2); Gungdi_d->SetFillColor(2); // drawing Gungdi top->AddNodeOverlap(Gungdi,1,new TGeoTranslation(3,0,-70)); for (int i=0; i<30; i++) { TGeoVolume *Gungdi_j=Robot->MakeEltu("Gungdi_j",Iron,24-0.2*i,49-0.5*i,1); Gungdi_j->SetLineColor(12); Gungdi_j->SetFillColor(12); top->AddNodeOverlap(Gungdi_j,1,new TGeoTranslation(3,0,-51+0.5*i)); } for (int i=0; i<40; i++) { if (i<16) { TGeoVolume *Gungdi_h=Robot->MakeEltu("Gungdi_h",Iron,24-0.1*i,49-0.3*i,1); Gungdi_h->SetLineColor(12); Gungdi_h->SetFillColor(12); top->AddNodeOverlap(Gungdi_h,1,new TGeoTranslation(3,0,-88-0.5*i)); } else { TGeoVolume *Gungdi_h=Robot->MakeEltu("Gungdi_h",Iron,27-0.3*i,52-0.5*i,1); Gungdi_h->SetLineColor(12); Gungdi_h->SetFillColor(12); top->AddNodeOverlap(Gungdi_h,1,new TGeoTranslation(3,0,-89-0.5*i)); } } top->AddNodeOverlap(Gungdi_d,1,new TGeoCombiTrans(3,-45,-62,new TGeoRotation("R2",0,90,0))); top->AddNodeOverlap(Gungdi_d,1,new TGeoCombiTrans(3,-45,-78,new TGeoRotation("R2",0,90,0))); top->AddNodeOverlap(Gungdi_d,1,new TGeoCombiTrans(3,45,-62,new TGeoRotation("R2",0,90,0))); top->AddNodeOverlap(Gungdi_d,1,new TGeoCombiTrans(3,45,-78,new TGeoRotation("R2",0,90,0))); // feet TGeoVolume *Jang=Robot->MakeEltu("Jang",Iron,18,18,50); Jang->SetLineColor(17); Jang->SetFillColor(17); TGeoVolume *Jong=Robot->MakeEltu("Jong",Iron,22,22,50); Jong->SetLineColor(12); Jong->SetFillColor(12); TGeoVolume *Bal=Robot->MakeSphere("Bal",Iron,0,22,0,180,180,360); Bal->SetLineColor(12); Bal->SetFillColor(12); // drawing Dary top->AddNodeOverlap(Jang,1,new TGeoCombiTrans(3,-25,-120,new TGeoRotation("R2",0,0,0))); top->AddNodeOverlap(Jang,1,new TGeoCombiTrans(3,25,-120,new TGeoRotation("R2",0,0,0))); top->AddNodeOverlap(Jong,1,new TGeoCombiTrans(3,-25,-220,new TGeoRotation("R2",0,0,0))); top->AddNodeOverlap(Jong,1,new TGeoCombiTrans(3,25,-220,new TGeoRotation("R2",0,0,0))); for (int i=0; i<30; i++) { TGeoVolume *Mu=Robot->MakeCons("Mu",Iron,1,0,22.1,0,22.1,120+2*i,-120-2*i); Mu->SetLineColor(4); Mu->SetFillColor(4); top->AddNodeOverlap(Mu,1,new TGeoTranslation(3,-25,-171-i)); top->AddNodeOverlap(Mu,1,new TGeoTranslation(3,25,-171-i)); } top->AddNodeOverlap(Bal,1,new TGeoCombiTrans(-10,-25,-270,new TGeoRotation("R2",270,-90,0))); top->AddNodeOverlap(Bal,1,new TGeoCombiTrans(-10,25,-270,new TGeoRotation("R2",270,-90,0))); // arms TGeoVolume *S=Robot->MakeSphere("S",Iron,0,25,0,180,180,360); S->SetLineColor(17); S->SetFillColor(17); TGeoVolume *S_1=Robot->MakeSphere("S_1",Iron,0,15,0,180,0,360); S_1->SetLineColor(17); S_1->SetFillColor(17); TGeoVolume *Pal=Robot->MakeEltu("Pal",Iron,15,15,30); Pal->SetLineColor(17); Pal->SetFillColor(17); TGeoVolume *Fal=Robot->MakeEltu("Fal",Iron,17,17,30); Fal->SetLineColor(4); Fal->SetFillColor(4); TGeoVolume *Bbul=Robot->MakeCone("Bbul",Iron,8,0,0,0,5); Bbul->SetLineColor(17); Bbul->SetFillColor(17); // drawing arms top->AddNodeOverlap(S,1,new TGeoCombiTrans(3,73,30,new TGeoRotation("R2",0,-30,0))); top->AddNodeOverlap(S,1,new TGeoCombiTrans(3,-73,30,new TGeoRotation("R2",0,210,0))); top->AddNodeOverlap(S_1,1,new TGeoCombiTrans(3,-73,27,new TGeoRotation("R2",0,0,0))); top->AddNodeOverlap(S_1,1,new TGeoCombiTrans(3,73,27,new TGeoRotation("R2",0,0,0))); top->AddNodeOverlap(Pal,1,new TGeoCombiTrans(3,-73,-5,new TGeoRotation("R2",0,0,0))); top->AddNodeOverlap(Pal,1,new TGeoCombiTrans(3,73,-5,new TGeoRotation("R2",0,0,0))); top->AddNodeOverlap(Fal,1,new TGeoCombiTrans(3,-73,-60,new TGeoRotation("R2",0,0,0))); top->AddNodeOverlap(Fal,1,new TGeoCombiTrans(3,73,-60,new TGeoRotation("R2",0,0,0))); top->AddNodeOverlap(Bbul,1,new TGeoCombiTrans(3,-97,-72,new TGeoRotation("R2",0,-90,0))); top->AddNodeOverlap(Bbul,1,new TGeoCombiTrans(3,-97,-48,new TGeoRotation("R2",0,-90,0))); top->AddNodeOverlap(Bbul,1,new TGeoCombiTrans(3,97,-72,new TGeoRotation("R2",0,90,0))); top->AddNodeOverlap(Bbul,1,new TGeoCombiTrans(3,97,-48,new TGeoRotation("R2",0,90,0))); // hands TGeoVolume *Son_d=Robot->MakeBox("Son_d",Iron,15,15,7); Son_d->SetLineColor(4); Son_d->SetFillColor(4); TGeoVolume *Son_g=Robot->MakeBox("Son_g",Iron,4,10,4); Son_g->SetLineColor(4); Son_g->SetFillColor(4); TGeoVolume *Son_g1=Robot->MakeBox("Son_g1",Iron,6,6,6); Son_g1->SetLineColor(4); Son_g1->SetFillColor(4); TGeoVolume *Son_g2=Robot->MakeBox("Son_g2",Iron,8,3,3); Son_g2->SetLineColor(4); Son_g2->SetFillColor(4); TGeoVolume *Last_b=Robot->MakeCone("Last_b",Iron,10,0,0,0,4); Last_b->SetLineColor(17); Last_b->SetFillColor(17); TGeoVolume *Last=Robot->MakeSphere("Last",Iron,0,3,0,180,0,360); Last->SetLineColor(2); Last->SetFillColor(2); //drawing hands top->AddNodeOverlap(Son_d,1,new TGeoCombiTrans(3,-80,-105,new TGeoRotation("R2",0,90,0))); for (int i=0; i<4; i++) { top->AddNodeOverlap(Son_g,1,new TGeoCombiTrans(-6+6*i,-72,-118,new TGeoRotation("R2",0,-10,0))); } for (int i=0; i<4; i++) { top->AddNodeOverlap(Son_g,1,new TGeoCombiTrans(-6+6*i,-67,-113,new TGeoRotation("R2",0,110,0))); } top->AddNodeOverlap(Son_g1,1,new TGeoCombiTrans(-5,-70,-98,new TGeoRotation("R2",0,0,0))); top->AddNodeOverlap(Son_g2,1,new TGeoCombiTrans(-5,-65,-102,new TGeoRotation("R2",0,60,0))); top->AddNodeOverlap(Son_d,1,new TGeoCombiTrans(3,80,-105,new TGeoRotation("R2",0,90,0))); for (int i=0; i<4; i++) { top->AddNodeOverlap(Son_g,1,new TGeoCombiTrans(-6+6*i,72,-118,new TGeoRotation("R2",0,10,0))); } for (int i=0; i<4; i++) { top->AddNodeOverlap(Son_g,1,new TGeoCombiTrans(-6+6*i,67,-113,new TGeoRotation("R2",0,70,0))); } top->AddNodeOverlap(Son_g1,1,new TGeoCombiTrans(-5,70,-98,new TGeoRotation("R2",0,0,0))); top->AddNodeOverlap(Son_g2,1,new TGeoCombiTrans(-5,65,-102,new TGeoRotation("R2",0,60,0))); top->AddNodeOverlap(Last_b,1,new TGeoCombiTrans(3,-88,-103,new TGeoRotation("R2",0,180,0))); top->AddNodeOverlap(Last_b,1,new TGeoCombiTrans(12,-88,-103,new TGeoRotation("R2",0,180,0))); top->AddNodeOverlap(Last_b,1,new TGeoCombiTrans(-7,-88,-103,new TGeoRotation("R2",0,180,0))); top->AddNodeOverlap(Last_b,1,new TGeoCombiTrans(3,88,-103,new TGeoRotation("R2",0,180,0))); top->AddNodeOverlap(Last_b,1,new TGeoCombiTrans(12,88,-103,new TGeoRotation("R2",0,180,0))); top->AddNodeOverlap(Last_b,1,new TGeoCombiTrans(-7,88,-103,new TGeoRotation("R2",0,180,0))); top->AddNodeOverlap(Last,1,new TGeoCombiTrans(3,-88,-112,new TGeoRotation("R2",0,180,0))); top->AddNodeOverlap(Last,1,new TGeoCombiTrans(12,-88,-112,new TGeoRotation("R2",0,180,0))); top->AddNodeOverlap(Last,1,new TGeoCombiTrans(-7,-88,-112,new TGeoRotation("R2",0,180,0))); top->AddNodeOverlap(Last,1,new TGeoCombiTrans(3,88,-112,new TGeoRotation("R2",0,180,0))); top->AddNodeOverlap(Last,1,new TGeoCombiTrans(12,88,-112,new TGeoRotation("R2",0,180,0))); top->AddNodeOverlap(Last,1,new TGeoCombiTrans(-7,88,-112,new TGeoRotation("R2",0,180,0))); for (int i=1; i<20; i+=1) { if (i<7) { TGeoVolume *Effect=Robot->MakeCons("Effect",Iron,3,20/sin(i),21/sin(i),20/sin(i),21/sin(i),0,70); Effect->SetLineColor(9); Effect->SetFillColor(9); top->AddNodeOverlap(Effect,1,new TGeoTranslation(3,0,-280)); } if (6<i<10) { TGeoVolume *Effect=Robot->MakeCons("Effect",Iron,5,20/sin(i),21/sin(i),20/sin(i),21/sin(i),50,120); Effect->SetLineColor(38); Effect->SetFillColor(38); top->AddNodeOverlap(Effect,1,new TGeoTranslation(3,0,-280)); } if (9<i<20) { TGeoVolume *Effect=Robot->MakeCons("Effect",Iron,4,20/sin(i),21/sin(i),20/sin(i),21/sin(i),200,330); Effect->SetLineColor(33); Effect->SetFillColor(33); top->AddNodeOverlap(Effect,1,new TGeoTranslation(3,0,-280)); } } //close geometry top->SetVisibility(0); Robot->CloseGeometry(); // in GL viewer top->Draw("ogl"); } robot.C:1 robot.C:2 robot.C:3 robot.C:4 robot.C:5 robot.C:6 robot.C:7 robot.C:8 robot.C:9 robot.C:10 robot.C:11 robot.C:12 robot.C:13 robot.C:14 robot.C:15 robot.C:16 robot.C:17 robot.C:18 robot.C:19 robot.C:20 robot.C:21 robot.C:22 robot.C:23 robot.C:24 robot.C:25 robot.C:26 robot.C:27 robot.C:28 robot.C:29 robot.C:30 robot.C:31 robot.C:32 robot.C:33 robot.C:34 robot.C:35 robot.C:36 robot.C:37 robot.C:38 robot.C:39 robot.C:40 robot.C:41 robot.C:42 robot.C:43 robot.C:44 robot.C:45 robot.C:46 robot.C:47 robot.C:48 robot.C:49 robot.C:50 robot.C:51 robot.C:52 robot.C:53 robot.C:54 robot.C:55 robot.C:56 robot.C:57 robot.C:58 robot.C:59 robot.C:60 robot.C:61 robot.C:62 robot.C:63 robot.C:64 robot.C:65 robot.C:66 robot.C:67 robot.C:68 robot.C:69 robot.C:70 robot.C:71 robot.C:72 robot.C:73 robot.C:74 robot.C:75 robot.C:76 robot.C:77 robot.C:78 robot.C:79 robot.C:80 robot.C:81 robot.C:82 robot.C:83 robot.C:84 robot.C:85 robot.C:86 robot.C:87 robot.C:88 robot.C:89 robot.C:90 robot.C:91 robot.C:92 robot.C:93 robot.C:94 robot.C:95 robot.C:96 robot.C:97 robot.C:98 robot.C:99 robot.C:100 robot.C:101 robot.C:102 robot.C:103 robot.C:104 robot.C:105 robot.C:106 robot.C:107 robot.C:108 robot.C:109 robot.C:110 robot.C:111 robot.C:112 robot.C:113 robot.C:114 robot.C:115 robot.C:116 robot.C:117 robot.C:118 robot.C:119 robot.C:120 robot.C:121 robot.C:122 robot.C:123 robot.C:124 robot.C:125 robot.C:126 robot.C:127 robot.C:128 robot.C:129 robot.C:130 robot.C:131 robot.C:132 robot.C:133 robot.C:134 robot.C:135 robot.C:136 robot.C:137 robot.C:138 robot.C:139 robot.C:140 robot.C:141 robot.C:142 robot.C:143 robot.C:144 robot.C:145 robot.C:146 robot.C:147 robot.C:148 robot.C:149 robot.C:150 robot.C:151 robot.C:152 robot.C:153 robot.C:154 robot.C:155 robot.C:156 robot.C:157 robot.C:158 robot.C:159 robot.C:160 robot.C:161 robot.C:162 robot.C:163 robot.C:164 robot.C:165 robot.C:166 robot.C:167 robot.C:168 robot.C:169 robot.C:170 robot.C:171 robot.C:172 robot.C:173 robot.C:174 robot.C:175 robot.C:176 robot.C:177 robot.C:178 robot.C:179 robot.C:180 robot.C:181 robot.C:182 robot.C:183 robot.C:184 robot.C:185 robot.C:186 robot.C:187 robot.C:188 robot.C:189 robot.C:190 robot.C:191 robot.C:192 robot.C:193 robot.C:194 robot.C:195 robot.C:196 robot.C:197 robot.C:198 robot.C:199 robot.C:200 robot.C:201 robot.C:202 robot.C:203 robot.C:204 robot.C:205 robot.C:206 robot.C:207 robot.C:208 robot.C:209 robot.C:210 robot.C:211 robot.C:212 robot.C:213 robot.C:214 robot.C:215 robot.C:216 robot.C:217 robot.C:218 robot.C:219 robot.C:220 robot.C:221 robot.C:222 robot.C:223 robot.C:224 robot.C:225 robot.C:226 robot.C:227 robot.C:228 robot.C:229 robot.C:230 robot.C:231 robot.C:232 robot.C:233 robot.C:234 robot.C:235 robot.C:236 robot.C:237 robot.C:238 robot.C:239 robot.C:240 robot.C:241 robot.C:242 robot.C:243 robot.C:244 robot.C:245 robot.C:246 robot.C:247 robot.C:248 robot.C:249 robot.C:250 robot.C:251 robot.C:252 robot.C:253 robot.C:254 robot.C:255 robot.C:256 robot.C:257 robot.C:258 robot.C:259 robot.C:260 robot.C:261 robot.C:262 robot.C:263 robot.C:264 robot.C:265 robot.C:266 robot.C:267 robot.C:268 robot.C:269 robot.C:270 robot.C:271 robot.C:272 robot.C:273 robot.C:274 robot.C:275 robot.C:276 robot.C:277 robot.C:278 robot.C:279 robot.C:280 robot.C:281 robot.C:282 robot.C:283 robot.C:284 robot.C:285 robot.C:286 robot.C:287 robot.C:288 robot.C:289 robot.C:290 robot.C:291 robot.C:292 robot.C:293 robot.C:294 robot.C:295 robot.C:296 robot.C:297 robot.C:298 robot.C:299 robot.C:300 robot.C:301 robot.C:302 robot.C:303 robot.C:304 robot.C:305 robot.C:306 robot.C:307 robot.C:308 robot.C:309 robot.C:310 robot.C:311 robot.C:312 robot.C:313 robot.C:314 robot.C:315 robot.C:316 robot.C:317 robot.C:318 robot.C:319 robot.C:320 robot.C:321 robot.C:322 robot.C:323 robot.C:324 robot.C:325 robot.C:326 robot.C:327 robot.C:328 robot.C:329 robot.C:330 robot.C:331 robot.C:332 robot.C:333 robot.C:334 robot.C:335 robot.C:336 robot.C:337 robot.C:338 robot.C:339 robot.C:340 robot.C:341 robot.C:342 robot.C:343 robot.C:344 robot.C:345 robot.C:346 robot.C:347 robot.C:348 robot.C:349 robot.C:350 robot.C:351 robot.C:352 robot.C:353 robot.C:354 robot.C:355 robot.C:356 robot.C:357 robot.C:358 robot.C:359 robot.C:360 robot.C:361 robot.C:362 robot.C:363 robot.C:364 robot.C:365 robot.C:366 robot.C:367 robot.C:368 robot.C:369 robot.C:370 robot.C:371 robot.C:372 robot.C:373 robot.C:374 robot.C:375 robot.C:376 robot.C:377 robot.C:378 robot.C:379 robot.C:380 robot.C:381 robot.C:382 robot.C:383 robot.C:384 robot.C:385 robot.C:386 robot.C:387 robot.C:388 robot.C:389 robot.C:390 robot.C:391 robot.C:392 robot.C:393 robot.C:394 robot.C:395 robot.C:396 robot.C:397 robot.C:398 robot.C:399 robot.C:400 robot.C:401 robot.C:402 robot.C:403 robot.C:404 robot.C:405 robot.C:406 robot.C:407 robot.C:408 robot.C:409 robot.C:410 robot.C:411 robot.C:412 robot.C:413 robot.C:414 robot.C:415 robot.C:416 robot.C:417 robot.C:418 robot.C:419 robot.C:420 robot.C:421 robot.C:422 robot.C:423 robot.C:424 robot.C:425 robot.C:426 robot.C:427 robot.C:428 robot.C:429 robot.C:430 robot.C:431 robot.C:432 robot.C:433 robot.C:434 robot.C:435 robot.C:436 robot.C:437 robot.C:438 robot.C:439 robot.C:440 robot.C:441 robot.C:442 robot.C:443 robot.C:444 robot.C:445 robot.C:446 robot.C:447 robot.C:448 robot.C:449 robot.C:450 robot.C:451 robot.C:452 robot.C:453 robot.C:454 robot.C:455 robot.C:456 robot.C:457 robot.C:458 robot.C:459 robot.C:460 robot.C:461 robot.C:462 robot.C:463 |
|