library: libRGL
#include "TGLDrawable.h"

TGLDrawable


class description - header file - source file
viewCVS header - viewCVS source

class TGLDrawable

Inheritance Inherited Members Includes Libraries
Class Charts

Function Members (Methods)

Display options:
Show inherited
Show non-public
 
    This is an abstract class, constructors will not be documented.
    Look at the header to check for available constructors.

public:
virtual~TGLDrawable()
const TGLBoundingBox&BoundingBox() const
static TClass*Class()
virtual voidDraw(const TGLDrawFlags& flags) const
ULong_tID() const
virtual TClass*IsA() const
virtual voidPurge()
Bool_tSetCached(Bool_t cached)
virtual Bool_tShouldCache(const TGLDrawFlags& flags) const
virtual voidShowMembers(TMemberInspector& insp, char* parent)
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
virtual TGLDrawable::ELODAxesSupportedLODAxes() const
protected:
virtual voidDirectDraw(const TGLDrawFlags& flags) const
const TGLDrawable&operator=(const TGLDrawable&)

Data Members

public:
enum ELODAxes { kLODAxesNone
kLODAxesX
kLODAxesY
kLODAxesZ
kLODAxesAll
};
protected:
ULong_tfID! unique drawable ID
Bool_tfCached! use display list cached
TGLBoundingBoxfBoundingBox! the drawables bounding box
static TGLQuadricfgQuad! Single common quadric drawing object

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.                                       

const TGLDrawable& operator=(const TGLDrawable& gld)
assignement operator
~TGLDrawable()
 Destroy the GL drawable.
Bool_t SetCached(Bool_t cached)
 Modify capture of draws into display list cache
 kTRUE - capture, kFALSE direct draw
 Return kTRUE is state changed, kFALSE if not
Bool_t ShouldCache(const TGLDrawFlags & flags)
 Returns kTRUE if draws should be display list cache
 kFALSE otherwise

 Default is to ignore flags and use internal bool. In some cases
 shapes may want to override and constrain caching to certain
 styles/LOD found in flags. If secondary selection is enabled
 return false as different render-path is usually taken by the
 rendering object.
void Draw(const TGLDrawFlags & flags)
 Draw the GL drawable, using draw flags. If DL caching is enabled
 (see SetCached) 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.
void DirectDraw(const TGLDrawFlags & flags)
 Methods
ULong_t ID()
{ return fID; }
const TGLBoundingBox & BoundingBox()
{ return fBoundingBox; }
ELODAxes SupportedLODAxes()

Author: Richard Maunder 25/05/2005
Last update: root/gl:$Name: $:$Id: TGLDrawable.cxx,v 1.16 2006/12/09 23:01:54 rdm 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.