00001
00002
00003
00004
00005
00006 TEveBoxSet* boxset(Float_t x=0, Float_t y=0, Float_t z=0,
00007 Int_t num=100, Bool_t register=kTRUE)
00008 {
00009 TEveManager::Create();
00010
00011 TRandom r(0);
00012 gStyle->SetPalette(1, 0);
00013
00014 TEveRGBAPalette* pal = new TEveRGBAPalette(0, 130);
00015
00016 TEveFrameBox* frm = new TEveFrameBox();
00017 frm->SetAABoxCenterHalfSize(0, 0, 0, 12, 12, 12);
00018 frm->SetFrameColor(kCyan);
00019 frm->SetBackColorRGBA(120,120,120,20);
00020 frm->SetDrawBack(kTRUE);
00021
00022 TEveBoxSet* q = new TEveBoxSet("BoxSet");
00023 q->SetPalette(pal);
00024 q->SetFrame(frm);
00025 q->Reset(TEveBoxSet::kBT_AABox, kFALSE, 64);
00026 for (Int_t i=0; i<num; ++i) {
00027 q->AddBox(r.Uniform(-10, 10), r.Uniform(-10, 10), r.Uniform(-10, 10),
00028 r.Uniform(0.2, 1), r.Uniform(0.2, 1), r.Uniform(0.2, 1));
00029 q->DigitValue(r.Uniform(0, 130));
00030 }
00031 q->RefitPlex();
00032
00033 TEveTrans& t = q->RefMainTrans();
00034 t.SetPos(x, y, z);
00035
00036
00037
00038
00039
00040 if (register)
00041 {
00042 gEve->AddElement(q);
00043 gEve->Redraw3D(kTRUE);
00044 }
00045
00046 return q;
00047 }
00048
00049 TEveBoxSet* boxset_colisval(Float_t x=0, Float_t y=0, Float_t z=0,
00050 Int_t num=100, Bool_t register=kTRUE)
00051 {
00052 TEveManager::Create();
00053
00054 TRandom r(0);
00055
00056 TEveBoxSet* q = new TEveBoxSet("BoxSet");
00057 q->Reset(TEveBoxSet::kBT_AABox, kTRUE, 64);
00058 for (Int_t i=0; i<num; ++i) {
00059 q->AddBox(r.Uniform(-10, 10), r.Uniform(-10, 10), r.Uniform(-10, 10),
00060 r.Uniform(0.2, 1), r.Uniform(0.2, 1), r.Uniform(0.2, 1));
00061 q->DigitColor(r.Uniform(20, 255), r.Uniform(20, 255),
00062 r.Uniform(20, 255), r.Uniform(20, 255));
00063 }
00064 q->RefitPlex();
00065
00066 TEveTrans& t = q->RefMainTrans();
00067 t.SetPos(x, y, z);
00068
00069 if (register)
00070 {
00071 gEve->AddElement(q);
00072 gEve->Redraw3D(kTRUE);
00073 }
00074
00075 return q;
00076 }
00077
00078 TEveBoxSet* boxset_single_color(Float_t x=0, Float_t y=0, Float_t z=0,
00079 Int_t num=100, Bool_t register=kTRUE)
00080 {
00081 TEveManager::Create();
00082
00083 TRandom r(0);
00084
00085 TEveBoxSet* q = new TEveBoxSet("BoxSet");
00086 q->UseSingleColor();
00087 q->SetMainColor(kCyan-2);
00088 q->SetMainTransparency(50);
00089 q->Reset(TEveBoxSet::kBT_AABox, kFALSE, 64);
00090 for (Int_t i=0; i<num; ++i) {
00091 q->AddBox(r.Uniform(-10, 10), r.Uniform(-10, 10), r.Uniform(-10, 10),
00092 r.Uniform(0.2, 1), r.Uniform(0.2, 1), r.Uniform(0.2, 1));
00093 }
00094 q->RefitPlex();
00095
00096 TEveTrans& t = q->RefMainTrans();
00097 t.SetPos(x, y, z);
00098
00099 if (register)
00100 {
00101 gEve->AddElement(q);
00102 gEve->Redraw3D(kTRUE);
00103 }
00104
00105 return q;
00106 }
00107
00108 TEveBoxSet* boxset_freebox(Int_t num=100, Bool_t register=kTRUE)
00109 {
00110 TEveManager::Create();
00111
00112 TRandom r(0);
00113 gStyle->SetPalette(1, 0);
00114
00115 TEveRGBAPalette* pal = new TEveRGBAPalette(0, 130);
00116
00117 TEveBoxSet* q = new TEveBoxSet("BoxSet");
00118 q->SetPalette(pal);
00119 q->Reset(TEveBoxSet::kBT_FreeBox, kFALSE, 64);
00120
00121 #define RND_BOX(x) r.Uniform(-(x), (x))
00122
00123 Float_t verts[24];
00124 for (Int_t i=0; i<num; ++i) {
00125 Float_t x = RND_BOX(10);
00126 Float_t y = RND_BOX(10);
00127 Float_t z = RND_BOX(10);
00128 Float_t a = r.Uniform(0.2, 0.5);
00129 Float_t d = 0.05;
00130 Float_t verts[24] = {
00131 x - a + RND_BOX(d), y - a + RND_BOX(d), z - a + RND_BOX(d),
00132 x - a + RND_BOX(d), y + a + RND_BOX(d), z - a + RND_BOX(d),
00133 x + a + RND_BOX(d), y + a + RND_BOX(d), z - a + RND_BOX(d),
00134 x + a + RND_BOX(d), y - a + RND_BOX(d), z - a + RND_BOX(d),
00135 x - a + RND_BOX(d), y - a + RND_BOX(d), z + a + RND_BOX(d),
00136 x - a + RND_BOX(d), y + a + RND_BOX(d), z + a + RND_BOX(d),
00137 x + a + RND_BOX(d), y + a + RND_BOX(d), z + a + RND_BOX(d),
00138 x + a + RND_BOX(d), y - a + RND_BOX(d), z + a + RND_BOX(d) };
00139 q->AddBox(verts);
00140 q->DigitValue(r.Uniform(0, 130));
00141 }
00142 q->RefitPlex();
00143
00144 #undef RND_BOX
00145
00146
00147
00148
00149
00150 if (register)
00151 {
00152 gEve->AddElement(q);
00153 gEve->Redraw3D(kTRUE);
00154 }
00155
00156 return q;
00157 }