annotation.C

Go to the documentation of this file.
00001 // @(#)root/eve:$Id: box.C 32549 2010-03-11 11:44:29Z matevz $
00002 // Author: Alja Mrak-Tadel
00003 
00004 // Demonstrates usage of TGLAnnotation class.
00005 
00006 #if defined(__CINT__) && !defined(__MAKECINT__)
00007 {
00008    gSystem->CompileMacro("annotation.C");
00009    annotation();
00010 }
00011 #else
00012 
00013 #include <TEveManager.h>
00014 #include <TGLViewer.h>
00015 #include <TGLAnnotation.h>
00016 #include <TEveBox.h>
00017 #include <TDatime.h>
00018 #include <TTimer.h>
00019 #include <TDatime.h>
00020 
00021 class MyTimer : public TTimer
00022 {
00023 private:
00024    TGLAnnotation* m_label;
00025 
00026 public:
00027    MyTimer(TGLAnnotation* x) : TTimer(1000), m_label(x)
00028    {
00029    }
00030 
00031    virtual Bool_t Notify()
00032    {
00033       // stop timer
00034       TurnOff();
00035 
00036       // so some action here
00037       TDatime d;
00038       m_label->SetText(d.AsString());
00039       gEve->GetDefaultGLViewer()->RequestDraw();
00040 
00041       // start timer
00042       SetTime(1000);
00043       Reset();
00044       TurnOn();
00045       return true;
00046    }
00047 
00048    ClassDef(MyTimer, 0);
00049 };
00050 
00051 void annotation(Float_t a=10, Float_t d=5, Float_t x=0, Float_t y=0, Float_t z=0)
00052 {
00053    TEveManager::Create();
00054 
00055    // add a box in scene
00056    TEveBox* b = new TEveBox("Box", "Test Title");
00057    b->SetMainColor(kCyan);
00058    b->SetMainTransparency(0);
00059    b->SetVertex(0, x - a, y - a, z - a);
00060    b->SetVertex(1, x - a, y + a, z - a);
00061    b->SetVertex(2, x + a, y + a, z - a);
00062    b->SetVertex(3, x + a, y - a, z - a);
00063    b->SetVertex(4, x - a, y - a, z + a);
00064    b->SetVertex(5, x - a, y + a, z + a);
00065    b->SetVertex(6, x + a, y + a, z + a);
00066    b->SetVertex(7, x + a, y - a, z + a);
00067    gEve->AddElement(b);
00068    gEve->Redraw3D(kTRUE);
00069   
00070    // add overlay text
00071    TGLViewer* v = gEve->GetDefaultGLViewer();
00072    TDatime time;
00073    TGLAnnotation* ann = new TGLAnnotation(v, time.AsString(), 0.1, 0.9);
00074    ann->SetTextSize(0.1);// % of window diagonal
00075 
00076    // set timer to update text every second
00077    MyTimer* timer = new MyTimer(ann); 
00078    timer->SetTime(1000);
00079    timer->Reset();
00080    timer->TurnOn();
00081 }
00082 #endif

Generated on Tue Jul 5 15:43:50 2011 for ROOT_528-00b_version by  doxygen 1.5.1