ROOT logo

From $ROOTSYS/tutorials/eve/annotation.C

// @(#)root/eve:$Id: box.C 32549 2010-03-11 11:44:29Z matevz $
// Author: Alja Mrak-Tadel

// Demonstrates usage of TGLAnnotation class.

#if defined(__CINT__) && !defined(__MAKECINT__)
{
   gSystem->CompileMacro("annotation.C");
   annotation();
}
#else

#include <TEveManager.h>
#include <TGLViewer.h>
#include <TGLAnnotation.h>
#include <TEveBox.h>
#include <TDatime.h>
#include <TTimer.h>
#include <TDatime.h>

class MyTimer : public TTimer
{
private:
   TGLAnnotation* m_label;

public:
   MyTimer(TGLAnnotation* x) : TTimer(1000), m_label(x)
   {
   }

   virtual Bool_t Notify()
   {
      // stop timer
      TurnOff();

      // so some action here
      TDatime d;
      m_label->SetText(d.AsString());
      gEve->GetDefaultGLViewer()->RequestDraw();

      // start timer
      SetTime(1000);
      Reset();
      TurnOn();
      return true;
   }

   ClassDef(MyTimer, 0);
};

void annotation(Float_t a=10, Float_t d=5, Float_t x=0, Float_t y=0, Float_t z=0)
{
   TEveManager::Create();

   // add a box in scene
   TEveBox* b = new TEveBox("Box", "Test Title");
   b->SetMainColor(kCyan);
   b->SetMainTransparency(0);
   b->SetVertex(0, x - a, y - a, z - a);
   b->SetVertex(1, x - a, y + a, z - a);
   b->SetVertex(2, x + a, y + a, z - a);
   b->SetVertex(3, x + a, y - a, z - a);
   b->SetVertex(4, x - a, y - a, z + a);
   b->SetVertex(5, x - a, y + a, z + a);
   b->SetVertex(6, x + a, y + a, z + a);
   b->SetVertex(7, x + a, y - a, z + a);
   gEve->AddElement(b);
   gEve->Redraw3D(kTRUE);
  
   // add overlay text
   TGLViewer* v = gEve->GetDefaultGLViewer();
   TDatime time;
   TGLAnnotation* ann = new TGLAnnotation(v, time.AsString(), 0.1, 0.9);
   ann->SetTextSize(0.1);// % of window diagonal

   // set timer to update text every second
   MyTimer* timer = new MyTimer(ann); 
   timer->SetTime(1000);
   timer->Reset();
   timer->TurnOn();
}
#endif
 annotation.C:1
 annotation.C:2
 annotation.C:3
 annotation.C:4
 annotation.C:5
 annotation.C:6
 annotation.C:7
 annotation.C:8
 annotation.C:9
 annotation.C:10
 annotation.C:11
 annotation.C:12
 annotation.C:13
 annotation.C:14
 annotation.C:15
 annotation.C:16
 annotation.C:17
 annotation.C:18
 annotation.C:19
 annotation.C:20
 annotation.C:21
 annotation.C:22
 annotation.C:23
 annotation.C:24
 annotation.C:25
 annotation.C:26
 annotation.C:27
 annotation.C:28
 annotation.C:29
 annotation.C:30
 annotation.C:31
 annotation.C:32
 annotation.C:33
 annotation.C:34
 annotation.C:35
 annotation.C:36
 annotation.C:37
 annotation.C:38
 annotation.C:39
 annotation.C:40
 annotation.C:41
 annotation.C:42
 annotation.C:43
 annotation.C:44
 annotation.C:45
 annotation.C:46
 annotation.C:47
 annotation.C:48
 annotation.C:49
 annotation.C:50
 annotation.C:51
 annotation.C:52
 annotation.C:53
 annotation.C:54
 annotation.C:55
 annotation.C:56
 annotation.C:57
 annotation.C:58
 annotation.C:59
 annotation.C:60
 annotation.C:61
 annotation.C:62
 annotation.C:63
 annotation.C:64
 annotation.C:65
 annotation.C:66
 annotation.C:67
 annotation.C:68
 annotation.C:69
 annotation.C:70
 annotation.C:71
 annotation.C:72
 annotation.C:73
 annotation.C:74
 annotation.C:75
 annotation.C:76
 annotation.C:77
 annotation.C:78
 annotation.C:79
 annotation.C:80
 annotation.C:81
 annotation.C:82
 annotation.C:83
thumb