ROOT logo
ROOT » GRAF3D » GL » TGLObject

class TGLObject: public TGLLogicalShape


 Base-class for direct OpenGL renderers.
 This allows classes to circumvent passing of TBuffer3D and
 use user-provided OpenGL code.
 By convention, if you want class TFoo : public TObject to have direct rendering
 you should also provide TFooGL : public TGLObject and implement
 abstract functions SetModel() and SetBBox().
 TAttBBox can be used to facilitate calculation of bounding-boxes.
 See TPointSet3D and TPointSet3DGL.

Function Members (Methods)

 
    This is an abstract class, constructors will not be documented.
    Look at the header to check for available constructors.

public:
virtual~TGLObject()
voidTGLLogicalShape::AddRef(TGLPhysicalShape* phys) const
virtual Bool_tTGLLogicalShape::AlwaysSecondarySelect() const
const TGLBoundingBox&TGLLogicalShape::BoundingBox() const
static TClass*Class()
voidTGLLogicalShape::DestroyPhysicals()
virtual voidTGLLogicalShape::DirectDraw(TGLRnrCtx& rnrCtx) const
virtual voidTGLLogicalShape::DLCacheClear()
virtual voidTGLLogicalShape::DLCacheDrop()
virtual voidTGLLogicalShape::DLCachePurge()
virtual UInt_tTGLLogicalShape::DLOffset(Short_t) const
virtual voidTGLLogicalShape::Draw(TGLRnrCtx& rnrCtx) const
virtual voidTGLLogicalShape::DrawHighlight(TGLRnrCtx& rnrCtx, const TGLPhysicalShape* pshp, Int_t lvl = -1) const
TObject*TGLLogicalShape::GetExternal() const
const TGLPhysicalShape*TGLLogicalShape::GetFirstPhysical() const
static TClass*GetGLRenderer(TClass* isa)
static Bool_tTGLLogicalShape::GetIgnoreSizeForCameraInterest()
TGLScene*TGLLogicalShape::GetScene() const
TObject*TGLLogicalShape::ID() const
virtual Bool_tTGLLogicalShape::IgnoreSizeForOfInterest() const
voidTGLLogicalShape::InvokeContextMenu(TContextMenu& menu, UInt_t x, UInt_t y) const
virtual TClass*IsA() const
virtual Bool_tKeepDuringSmartRefresh() const
virtual voidTGLLogicalShape::ProcessSelection(TGLRnrCtx& rnrCtx, TGLSelectRecord& rec)
virtual Short_tTGLLogicalShape::QuantizeShapeLOD(Short_t shapeLOD, Short_t combiLOD) const
UInt_tTGLLogicalShape::Ref() const
virtual voidSetBBox()
Bool_tTGLLogicalShape::SetDLCache(Bool_t cached)
static voidTGLLogicalShape::SetIgnoreSizeForCameraInterest(Bool_t isfci)
virtual Bool_tSetModel(TObject* obj, Option_t* opt = 0)
virtual Bool_tShouldDLCache(const TGLRnrCtx& rnrCtx) const
virtual voidShowMembers(TMemberInspector&)
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
voidTGLLogicalShape::StrongRef(Bool_t strong) const
voidTGLLogicalShape::SubRef(TGLPhysicalShape* phys) const
virtual TGLLogicalShape::ELODAxesTGLLogicalShape::SupportedLODAxes() const
virtual Bool_tTGLLogicalShape::SupportsSecondarySelect() const
UInt_tTGLLogicalShape::UnrefFirstPhysical()
virtual voidUpdateBoundingBox()
voidTGLLogicalShape::UpdateBoundingBoxesOfPhysicals()
protected:
voidTGLLogicalShape::PurgeDLRange(UInt_t base, Int_t size) const
voidSetAxisAlignedBBox(const Float_t* p)
voidSetAxisAlignedBBox(Float_t xmin, Float_t xmax, Float_t ymin, Float_t ymax, Float_t zmin, Float_t zmax)
Bool_tSetModelCheckClass(TObject* obj, TClass* cls)
private:
static TClass*SearchGLRenderer(TClass* cls)

Data Members

public:
enum TGLLogicalShape::ELODAxes { kLODAxesNone
kLODAxesX
kLODAxesY
kLODAxesZ
kLODAxesAll
};
protected:
TGLBoundingBoxTGLLogicalShape::fBoundingBox! Shape's bounding box.
UInt_tTGLLogicalShape::fDLBase! display-list id base
Bool_tTGLLogicalShape::fDLCache! use display list caching
Int_tTGLLogicalShape::fDLSize! display-list size for different LODs
UShort_tTGLLogicalShape::fDLValid! display-list validity bit-field
TObject*TGLLogicalShape::fExternalObj! Also plays the role of ID.
TGLPhysicalShape*TGLLogicalShape::fFirstPhysical! first replica
Bool_tfMultiColorAre multiple colors used for object rendering.
Bool_tTGLLogicalShape::fOwnExtObj! External object is a fake
UInt_tTGLLogicalShape::fRef! physical instance ref counting
Bool_tTGLLogicalShape::fRefStrong! Strong ref (delete on 0 ref); not in scene
TGLScene*TGLLogicalShape::fScene! scene where object is stored (can be zero!)
static Bool_tTGLLogicalShape::fgIgnoreSizeForCameraInterest
private:
static TMapfgGLClassMap

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

Bool_t ShouldDLCache(const TGLRnrCtx& rnrCtx) const
 Decide if display-list should be used for this pass rendering,
 as determined by rnrCtx.
void UpdateBoundingBox()
 Update bounding box from external source.
 We call abstract SetBBox() and propagate the change to all
 attached physicals.
Bool_t SetModelCheckClass(TObject* obj, TClass* cls)
 Checks if obj is of proper class and sets the model.
 Protected helper for subclasses.
 Most sub-classes use exception-throwing SetModelDynCast() instead.
void SetAxisAlignedBBox(Float_t xmin, Float_t xmax, Float_t ymin, Float_t ymax, Float_t zmin, Float_t zmax)
 Set axis-aligned bounding-box.
 Protected helper for subclasses.
void SetAxisAlignedBBox(const Float_t* p)
 Set axis-aligned bounding-box.
 Protected helper for subclasses.
TClass* SearchGLRenderer(TClass* cls)
 Recursively search cls and its base classes for a GL-renderer
 class.
TClass* GetGLRenderer(TClass* isa)
 Return direct-rendering GL class for class isa.
 Zero is a valid response.
virtual ~TGLObject()
{}
Bool_t KeepDuringSmartRefresh() const
 Kept from TGLLogicalShape
 virtual ELODAxes SupportedLODAxes() const { return kLODAxesNone; }
 Changed from TGLLogicalShape
{ return kTRUE; }
Bool_t SetModel(TObject* obj, Option_t* opt = 0)
 TGLObject virtuals
void SetBBox()
 Abstract method from TGLLogicalShape:
 virtual void DirectDraw(TGLRnrCtx & rnrCtx) const = 0;