library: libRGL
#include "TGLDrawable.h"

TGLDrawable


class description - source file - inheritance tree (.pdf)

class TGLDrawable

Inheritance Chart:
TGLDrawable
<-
TGLLogicalShape
<-
TGLSceneObject
<-
TGLCylinder
TGLFaceSet
TGLPolyLine
TGLPolyMarker
TGLSphere
TGLPhysicalShape
<-
TGLClip
<-
TGLClipBox
 [more...]
 
    This is an abstract class, constructors will not be documented.
    Look at the header to check for available constructors.

    private:
const TGLDrawable& operator=(const TGLDrawable&) const protected:
virtual void DirectDraw(UInt_t LOD) const public:
virtual ~TGLDrawable() const TGLBoundingBox& BoundingBox() const static TClass* Class() virtual void Draw(UInt_t LOD) const virtual void DrawOutline(UInt_t lod) const virtual void DrawWireFrame(UInt_t lod) const ULong_t ID() const virtual TClass* IsA() const virtual void Purge() bool SetDLCache(bool DLCache) virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b) virtual bool UseDLCache(UInt_t LOD) const

Data Members

    private:
ULong_t fID ! unique drawable ID protected:
Bool_t fDLCache ! potentially DL cached TGLBoundingBox fBoundingBox ! the drawables bounding box

Class Description

                                                                      
 TGLDrawable                                                          
                                                                      
 Abstract base class for all GL drawable objects - TGLPhysicalShape & 
 TGLLogicalShape hierarchy. Provides hooks for using the display list 
 cache in TGLDrawable::Draw() - the external draw method for all      
 shapes.                                                              
                                                                      
 Defines pure virtual TGLDrawable::DirectDraw() which derived classes 
 must implement with actual GL drawing.                               
                                                                      
 Display list caching can occur at either the physical or logical     
 level (with or without translation). Currently we cache only certain 
 derived logical shapes as not all logicals can respect the LOD draw  
 flag which is used in caching.                                       


~TGLDrawable()
 Destroy the GL drawable.

Bool_t UseDLCache(UInt_t /*LOD*/) const
 Returns kTRUE if draw should used display list cache
 KFALSE otherwise

Bool_t SetDLCache(Bool_t DLCache)
 Modify capture of draws into display list cache.
 kTRUE - capture, kFALSE direct draw.

void Draw(UInt_t LOD) const
 Draw the GL drawable, using LOD draw flags. If DL caching is enabled
 (see SetDLCache) then attempt to draw from the cache, if not found
 attempt to capture the draw - done by DirectDraw() - into a new cache entry.
 If not cached just call DirectDraw() for normal non DL cached drawing.

void Purge()
 Purge all entries for all LODs for this drawable from the display list cache.

 Note: This does nothing at present as per drawable purging is not implemented
 in TGLDisplayListCache.



Inline Functions


           const TGLDrawable& operator=(const TGLDrawable&) const
                         void DirectDraw(UInt_t LOD) const
                      ULong_t ID() const
        const TGLBoundingBox& BoundingBox() const
                         void DrawWireFrame(UInt_t lod) const
                         void DrawOutline(UInt_t lod) const
                      TClass* Class()
                      TClass* IsA() const
                         void ShowMembers(TMemberInspector& insp, char* parent)
                         void Streamer(TBuffer& b)
                         void StreamerNVirtual(TBuffer& b)


Author: Richard Maunder 25/05/2005
Last update: root/gl:$Name: $:$Id: TGLDrawable.cxx,v 1.9 2005/11/22 18:05:46 brun Exp $
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *


ROOT page - Class index - Class Hierarchy - Top of the page

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.