library: libRGL
#include "TGLLogicalShape.h"

TGLLogicalShape


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

class TGLLogicalShape : public TGLDrawable

Inheritance Chart:
TGLDrawable
<-
TGLLogicalShape
<-
TGLCylinder
TGLFaceSet
TGLObject
<-
TPointSet3DGL
TGLPolyLine
TGLPolyMarker
TGLSphere
 
    This is an abstract class, constructors will not be documented.
    Look at the header to check for available constructors.


    protected:
TGLLogicalShape& operator=(const TGLLogicalShape&) public:
virtual ~TGLLogicalShape() void AddRef() const static TClass* Class() TObject* GetExternal() const void InvokeContextMenu(TContextMenu& menu, UInt_t x, UInt_t y) const virtual TClass* IsA() const virtual Bool_t KeepDuringSmartRefresh() const UInt_t Ref() const virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b) void StrongRef(Bool_t strong) const Bool_t SubRef() const

Data Members

    private:
UInt_t fRef ! physical instance ref counting protected:
Bool_t fRefStrong ! Strong ref (delete on 0 ref) TObject* fExternalObj

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 AddRef()
 Physical shape ref counting
Bool_t SubRef()
UInt_t Ref()
void StrongRef(Bool_t strong)
Bool_t KeepDuringSmartRefresh()
 Override in sub-classes that do direct object rendering (e.g. TGLObject).

Author: Richard Maunder 25/05/2005
Last update: root/gl:$Name: $:$Id: TGLLogicalShape.cxx,v 1.13 2006/05/24 14:49:21 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.