ROOT logo
// @(#)root/eve:$Id: TEvePlot3DGL.cxx 29526 2009-07-20 17:41:53Z matevz $
// Author: Matevz Tadel, 2009

/*************************************************************************
 * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

#include "TEvePlot3DGL.h"
#include "TEvePlot3D.h"
#include "TGLPlot3D.h"

#include "TGLRnrCtx.h"
#include "TGLIncludes.h"

//______________________________________________________________________________
// OpenGL renderer class for TEvePlot3D.
//

ClassImp(TEvePlot3DGL);

//______________________________________________________________________________
TEvePlot3DGL::TEvePlot3DGL() :
   TGLObject(), fM(0), fPlotLogical(0)
{
   // Constructor.

   fDLCache = kFALSE; // Disable display list.
}

/******************************************************************************/

//______________________________________________________________________________
Bool_t TEvePlot3DGL::SetModel(TObject* obj, const Option_t* /*opt*/)
{
   // Set model object.

   if (SetModelCheckClass(obj, TEvePlot3D::Class())) {
      fM = dynamic_cast<TEvePlot3D*>(obj);
      fPlotLogical = TGLPlot3D::CreatePlot(fM->fPlot, fM->fPlotOption, fM->fLogX, fM->fLogY, fM->fLogZ);
      return kTRUE;
   }
   return kFALSE;
}

//______________________________________________________________________________
void TEvePlot3DGL::SetBBox()
{
   // Set bounding box.

   // !! This ok if master sub-classed from TAttBBox
   //SetAxisAlignedBBox(((TEvePlot3D*)fExternalObj)->AssertBBox());
   fBoundingBox = fPlotLogical->BoundingBox();
}

/******************************************************************************/

//______________________________________________________________________________
void TEvePlot3DGL::DirectDraw(TGLRnrCtx & rnrCtx) const
{
   // Render with OpenGL.

   // printf("TEvePlot3DGL::DirectDraw LOD %d\n", rnrCtx.CombiLOD());
   if (fPlotLogical)
   {
      fPlotLogical->DirectDraw(rnrCtx);
   }
}
 TEvePlot3DGL.cxx:1
 TEvePlot3DGL.cxx:2
 TEvePlot3DGL.cxx:3
 TEvePlot3DGL.cxx:4
 TEvePlot3DGL.cxx:5
 TEvePlot3DGL.cxx:6
 TEvePlot3DGL.cxx:7
 TEvePlot3DGL.cxx:8
 TEvePlot3DGL.cxx:9
 TEvePlot3DGL.cxx:10
 TEvePlot3DGL.cxx:11
 TEvePlot3DGL.cxx:12
 TEvePlot3DGL.cxx:13
 TEvePlot3DGL.cxx:14
 TEvePlot3DGL.cxx:15
 TEvePlot3DGL.cxx:16
 TEvePlot3DGL.cxx:17
 TEvePlot3DGL.cxx:18
 TEvePlot3DGL.cxx:19
 TEvePlot3DGL.cxx:20
 TEvePlot3DGL.cxx:21
 TEvePlot3DGL.cxx:22
 TEvePlot3DGL.cxx:23
 TEvePlot3DGL.cxx:24
 TEvePlot3DGL.cxx:25
 TEvePlot3DGL.cxx:26
 TEvePlot3DGL.cxx:27
 TEvePlot3DGL.cxx:28
 TEvePlot3DGL.cxx:29
 TEvePlot3DGL.cxx:30
 TEvePlot3DGL.cxx:31
 TEvePlot3DGL.cxx:32
 TEvePlot3DGL.cxx:33
 TEvePlot3DGL.cxx:34
 TEvePlot3DGL.cxx:35
 TEvePlot3DGL.cxx:36
 TEvePlot3DGL.cxx:37
 TEvePlot3DGL.cxx:38
 TEvePlot3DGL.cxx:39
 TEvePlot3DGL.cxx:40
 TEvePlot3DGL.cxx:41
 TEvePlot3DGL.cxx:42
 TEvePlot3DGL.cxx:43
 TEvePlot3DGL.cxx:44
 TEvePlot3DGL.cxx:45
 TEvePlot3DGL.cxx:46
 TEvePlot3DGL.cxx:47
 TEvePlot3DGL.cxx:48
 TEvePlot3DGL.cxx:49
 TEvePlot3DGL.cxx:50
 TEvePlot3DGL.cxx:51
 TEvePlot3DGL.cxx:52
 TEvePlot3DGL.cxx:53
 TEvePlot3DGL.cxx:54
 TEvePlot3DGL.cxx:55
 TEvePlot3DGL.cxx:56
 TEvePlot3DGL.cxx:57
 TEvePlot3DGL.cxx:58
 TEvePlot3DGL.cxx:59
 TEvePlot3DGL.cxx:60
 TEvePlot3DGL.cxx:61
 TEvePlot3DGL.cxx:62
 TEvePlot3DGL.cxx:63
 TEvePlot3DGL.cxx:64
 TEvePlot3DGL.cxx:65
 TEvePlot3DGL.cxx:66
 TEvePlot3DGL.cxx:67
 TEvePlot3DGL.cxx:68
 TEvePlot3DGL.cxx:69
 TEvePlot3DGL.cxx:70
 TEvePlot3DGL.cxx:71