library: libRGL
#include "TGLLogicalShape.h"

TGLLogicalShape


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

class TGLLogicalShape : public TGLDrawable

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


    public:
virtual ~TGLLogicalShape() void AddRef() const static TClass* Class() void InvokeContextMenu(TContextMenu& menu, UInt_t x, UInt_t y) const virtual TClass* IsA() 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:
TObject* fExternalObj UInt_t fRef ! physical instance ref counting protected:
Bool_t fRefStrong ! Strong ref (delete on 0 ref)

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()
 Destroy logical shape

void InvokeContextMenu(TContextMenu & menu, UInt_t x, UInt_t y) const
 Invoke popup menu or our bound external TObject (if any), using passed
 'menu' object, at location 'x' 'y'



Inline Functions


               void AddRef() const
             Bool_t SubRef() const
             UInt_t Ref() const
               void StrongRef(Bool_t strong) 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: TGLLogicalShape.cxx,v 1.9 2006/02/20 11:02:19 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.