library: libRGL
#include "TGLLogicalShape.h"

TGLLogicalShape


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

class TGLLogicalShape: public 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~TGLLogicalShape()
voidAddRef() const
const TGLBoundingBox&TGLDrawable::BoundingBox() const
static TClass*Class()
virtual voidTGLDrawable::Draw(const TGLDrawFlags& flags) const
TObject*GetExternal() const
ULong_tTGLDrawable::ID() const
virtual Bool_tIgnoreSizeForOfInterest() const
voidInvokeContextMenu(TContextMenu& menu, UInt_t x, UInt_t y) const
virtual TClass*IsA() const
virtual Bool_tKeepDuringSmartRefresh() const
virtual voidProcessSelection(UInt_t* ptr, TGLViewer*, TGLScene*)
virtual voidTGLDrawable::Purge()
UInt_tRef() const
Bool_tTGLDrawable::SetCached(Bool_t cached)
virtual Bool_tTGLDrawable::ShouldCache(const TGLDrawFlags& flags) const
virtual voidShowMembers(TMemberInspector& insp, char* parent)
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
voidStrongRef(Bool_t strong) const
Bool_tSubRef() const
virtual TGLDrawable::ELODAxesTGLDrawable::SupportedLODAxes() const
virtual Bool_tSupportsSecondarySelect() const
protected:
virtual voidTGLDrawable::DirectDraw(const TGLDrawFlags& flags) const
TGLLogicalShape&operator=(const TGLLogicalShape&)

Data Members

public:
enum TGLDrawable::ELODAxes { kLODAxesNone
kLODAxesX
kLODAxesY
kLODAxesZ
kLODAxesAll
};
protected:
Bool_tfRefStrong! Strong ref (delete on 0 ref)
TObject*fExternalObj
ULong_tTGLDrawable::fID! unique drawable ID
Bool_tTGLDrawable::fCached! use display list cached
TGLBoundingBoxTGLDrawable::fBoundingBox! the drawables bounding box
static TGLQuadricTGLDrawable::fgQuad! Single common quadric drawing object
private:
UInt_tfRef! physical instance ref counting

Class Description

                                                                      
 TGLLogicalShape                                                      
                                                                      
 Abstract logical shape - a GL 'drawable' - base for all shapes -     
 faceset sphere etc. Logical shapes are a unique piece of geometry,   
 described in it's local frame - e.g if we have three spheres in :    
 Sphere A - Radius r1, center v1                                      
 Sphere B - Radius r2, center v2                                      
 Sphere C - Radius r1, center v3                                      
                                                                      
 Spheres A and C can share a common logical sphere of radius r1 - and 
 place them with two physicals with translations of v1 & v2.  Sphere B
 requires a different logical (radius r2), placed with physical with  
 translation v2.                                                      
                                                                      
 Physical shapes know about and can share logicals. Logicals do not   
 about (aside from reference counting) physicals or share them.       
                                                                      
 This sharing of logical shapes greatly reduces memory consumption and
 scene (re)build times in typical detector geometries which have many 
 repeated objects placements.                                         
                                                                      
 TGLLogicalShapes have reference counting, performed by the client    
 physical shapes which are using it.                                  
                                                                      
 See base/src/TVirtualViewer3D for description of common external 3D  
 viewer architecture and how external viewer clients use it.          

TGLLogicalShape& operator=(const TGLLogicalShape& gls)
assignement operator
~TGLLogicalShape()
 Destroy logical shape
void InvokeContextMenu(TContextMenu & menu, UInt_t x, UInt_t y)
 Invoke popup menu or our bound external TObject (if any), using passed
 'menu' object, at location 'x' 'y'
void ProcessSelection(UInt_t* ptr, TGLViewer*, TGLScene*)
 Virtual method called-back after a secondary selection hit
 is recorded (see TGLViewer::HandleButton(), Ctrl-Button1).
 The ptr argument holds the GL pick-record of the closest hit.

 This base-class implementation simply prints out the result.
Bool_t SubRef()
______________________________________________________________________________
void AddRef()
 Physical shape ref counting
{ ++fRef; }
UInt_t Ref()
{ return fRef; }
void StrongRef(Bool_t strong)
{ fRefStrong = strong; }
TObject * GetExternal()
{return fExternalObj;}
Bool_t IgnoreSizeForOfInterest()
{ return kFALSE; }
Bool_t KeepDuringSmartRefresh()
 Override in sub-classes that do direct object rendering (e.g. TGLObject).
 Override in sub-classes that support secondary selection (e.g. TPointSet3DGL). 
{ return kFALSE; }
Bool_t SupportsSecondarySelect()
{ return kFALSE; }

Author: Richard Maunder 25/05/2005
Last update: root/gl:$Name: $:$Id: TGLLogicalShape.cxx,v 1.14 2006/08/23 14:39:40 brun Exp $


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.