Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TEveBoxSetGL.h
Go to the documentation of this file.
1// @(#)root/eve:$Id$
2// Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007
3
4/*************************************************************************
5 * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12#ifndef ROOT_TEveBoxSetGL
13#define ROOT_TEveBoxSetGL
14
15#include "TEveDigitSetGL.h"
16#include "TEveBoxSet.h"
17
19{
20 TEveBoxSetGL(const TEveBoxSetGL&); // Not implemented
21 TEveBoxSetGL& operator=(const TEveBoxSetGL&); // Not implemented
22
23protected:
24 TEveBoxSet *fM; // Model object.
25
26 mutable UInt_t fBoxDL; // Display-list id for a box atom.
27
28 Int_t PrimitiveType() const;
29 void MakeOriginBox(Float_t p[8][3], Float_t dx, Float_t dy, Float_t dz) const;
30 void RenderBoxStdNorm(const Float_t p[8][3]) const;
31 void RenderBoxAutoNorm(const Float_t p[8][3]) const;
32 void MakeDisplayList() const;
33
34 void RenderBoxes(TGLRnrCtx& rnrCtx) const;
35
36public:
38 ~TEveBoxSetGL() override;
39
40 Bool_t ShouldDLCache(const TGLRnrCtx& rnrCtx) const override;
41 void DLCacheDrop() override;
42 void DLCachePurge() override;
43
44 Bool_t SetModel(TObject* obj, const Option_t *opt = nullptr) override;
45 void DirectDraw(TGLRnrCtx& rnrCtx) const override;
46
47 virtual void Render(TGLRnrCtx& rnrCtx);
48
49 ClassDefOverride(TEveBoxSetGL, 0); // GL-renderer for TEveBoxSet class.
50};
51
52#endif
float Float_t
Definition RtypesCore.h:57
const char Option_t
Definition RtypesCore.h:66
#define ClassDefOverride(name, id)
Definition Rtypes.h:346
winID h TVirtualViewer3D TVirtualGLPainter p
A GL rendering class for TEveBoxSet.
TEveBoxSetGL()
Default constructor.
Bool_t SetModel(TObject *obj, const Option_t *opt=nullptr) override
Set model object.
TEveBoxSetGL & operator=(const TEveBoxSetGL &)
void MakeDisplayList() const
Create a display-list for rendering a single box, based on the current box-type.
void DLCacheDrop() override
Called when display lists have been destroyed externally and the internal display-list data needs to ...
TEveBoxSetGL(const TEveBoxSetGL &)
void RenderBoxAutoNorm(const Float_t p[8][3]) const
Render box, calculate normals on the fly from first three points.
virtual void Render(TGLRnrCtx &rnrCtx)
Interface for direct rendering from classes that include TEveBoxSet as a member.
void RenderBoxes(TGLRnrCtx &rnrCtx) const
GL rendering for all box-types.
void DLCachePurge() override
Called when display-lists need to be returned to the system.
TEveBoxSet * fM
~TEveBoxSetGL() override
Destructor.
Int_t PrimitiveType() const
Return GL primitive used to render the boxes, based on the render-mode specified in the model object.
void MakeOriginBox(Float_t p[8][3], Float_t dx, Float_t dy, Float_t dz) const
Fill array p to represent a box (0,0,0) - (dx,dy,dz).
Bool_t ShouldDLCache(const TGLRnrCtx &rnrCtx) const override
Determines if display-list will be used for rendering.
void DirectDraw(TGLRnrCtx &rnrCtx) const override
Actual rendering code.
void RenderBoxStdNorm(const Float_t p[8][3]) const
Render a box specified by points in array p with standard axis-aligned normals.
Collection of 3D primitives (fixed-size boxes, boxes of different sizes, or arbitrary sexto-epipeds,...
Definition TEveBoxSet.h:22
OpenGL renderer class for TEveDigitSet.
The TGLRnrCtx class aggregates data for a given redering context as needed by various parts of the RO...
Definition TGLRnrCtx.h:41
Mother of all ROOT objects.
Definition TObject.h:41