]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVE/macros/reve_quad_test.C
Added function demonstrating use of per-quad object-ref.
[u/mrichter/AliRoot.git] / EVE / macros / reve_quad_test.C
index ce1293f383ae39ffd1af5ef4c3fa06eaf4d3f822..c99cc051d7f531f529e25398c2fd3a8c7db56247 100644 (file)
@@ -1,6 +1,7 @@
 // $Header$
 
-Reve::QuadSet* reve_quad_test(Float_t x=0, Float_t y=0, Float_t z=0)
+Reve::QuadSet* reve_quad_test(Float_t x=0, Float_t y=0, Float_t z=0,
+                             Int_t num=100)
 {
   TRandom r(0);
 
@@ -8,7 +9,7 @@ Reve::QuadSet* reve_quad_test(Float_t x=0, Float_t y=0, Float_t z=0)
 
   Reve::QuadSet* q = new Reve::QuadSet("RectangleXY");
   q->Reset(Reve::QuadSet::QT_RectangleXY, kFALSE, 32);
-  for (Int_t i=0; i<100; ++i) {
+  for (Int_t i=0; i<num; ++i) {
     q->AddQuad(r.Uniform(-10, 10), r.Uniform(-10, 10), r.Uniform(-10, 10),
               r.Uniform(0.2, 1), r.Uniform(0.2, 1));
     q->QuadValue(r.Uniform(0, 130));
@@ -51,7 +52,8 @@ Reve::QuadSet* reve_quad_test_circ()
   return q;
 }
 
-Reve::QuadSet* reve_quad_test_hex(Float_t x=0, Float_t y=0, Float_t z=0)
+Reve::QuadSet* reve_quad_test_hex(Float_t x=0, Float_t y=0, Float_t z=0,
+                                 Int_t num=100)
 {
   TRandom r(0);
 
@@ -60,7 +62,7 @@ Reve::QuadSet* reve_quad_test_hex(Float_t x=0, Float_t y=0, Float_t z=0)
   {
     Reve::QuadSet* q = new Reve::QuadSet("HexagonXY");
     q->Reset(Reve::QuadSet::QT_HexagonXY, kFALSE, 32);
-    for (Int_t i=0; i<100; ++i) {
+    for (Int_t i=0; i<num; ++i) {
       q->AddHexagon(r.Uniform(-10, 10), r.Uniform(-10, 10), r.Uniform(-10, 10),
                    r.Uniform(0.2, 1));
       q->QuadValue(r.Uniform(0, 120));
@@ -77,7 +79,7 @@ Reve::QuadSet* reve_quad_test_hex(Float_t x=0, Float_t y=0, Float_t z=0)
   {
     Reve::QuadSet* q = new Reve::QuadSet("HexagonYX");
     q->Reset(Reve::QuadSet::QT_HexagonYX, kFALSE, 32);
-    for (Int_t i=0; i<100; ++i) {
+    for (Int_t i=0; i<num; ++i) {
       q->AddHexagon(r.Uniform(-10, 10), r.Uniform(-10, 10), r.Uniform(-10, 10),
                    r.Uniform(0.2, 1));
       q->QuadValue(r.Uniform(0, 120));
@@ -93,3 +95,32 @@ Reve::QuadSet* reve_quad_test_hex(Float_t x=0, Float_t y=0, Float_t z=0)
 
   return q;
 }
+
+Reve::QuadSet* reve_quad_test_hexid(Float_t x=0, Float_t y=0, Float_t z=0,
+                                   Int_t num=100)
+{
+  TRandom r(0);
+
+  gStyle->SetPalette(1, 0);
+
+  {
+    Reve::QuadSet* q = new Reve::QuadSet("HexagonXY");
+    q->SetOwnIds(kTRUE);
+    q->Reset(Reve::QuadSet::QT_HexagonXY, kFALSE, 32);
+    for (Int_t i=0; i<num; ++i) {
+      q->AddHexagon(r.Uniform(-10, 10), r.Uniform(-10, 10), r.Uniform(-10, 10),
+                   r.Uniform(0.2, 1));
+      q->QuadValue(r.Uniform(0, 120));
+      q->QuadId(new TNamed(Form("Quad with idx=%d", i), "This title is not confusing."));
+    }
+    q->RefitPlex();
+
+    Reve::ZTrans& t = q->RefHMTrans();
+    t.SetPos(x, y, z);
+
+    gReve->AddRenderElement(q);
+    gReve->Redraw3D();
+  }
+
+  return q;
+}