library: libRGL #include "TGLLogicalShape.h" |
virtual | ~TGLLogicalShape() |
void | AddRef() const |
const TGLBoundingBox& | TGLDrawable::BoundingBox() const |
static TClass* | Class() |
virtual void | TGLDrawable::Draw(const TGLDrawFlags& flags) const |
TObject* | GetExternal() const |
ULong_t | TGLDrawable::ID() const |
virtual Bool_t | IgnoreSizeForOfInterest() const |
void | InvokeContextMenu(TContextMenu& menu, UInt_t x, UInt_t y) const |
virtual TClass* | IsA() const |
virtual Bool_t | KeepDuringSmartRefresh() const |
virtual void | ProcessSelection(UInt_t* ptr, TGLViewer*, TGLScene*) |
virtual void | TGLDrawable::Purge() |
UInt_t | Ref() const |
Bool_t | TGLDrawable::SetCached(Bool_t cached) |
virtual Bool_t | TGLDrawable::ShouldCache(const TGLDrawFlags& flags) 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 |
virtual TGLDrawable::ELODAxes | TGLDrawable::SupportedLODAxes() const |
virtual Bool_t | SupportsSecondarySelect() const |
virtual void | TGLDrawable::DirectDraw(const TGLDrawFlags& flags) const |
TGLLogicalShape& | operator=(const TGLLogicalShape&) |
enum TGLDrawable::ELODAxes { | kLODAxesNone | |
kLODAxesX | ||
kLODAxesY | ||
kLODAxesZ | ||
kLODAxesAll | ||
}; |
Bool_t | fRefStrong | ! Strong ref (delete on 0 ref) |
TObject* | fExternalObj | |
ULong_t | TGLDrawable::fID | ! unique drawable ID |
Bool_t | TGLDrawable::fCached | ! use display list cached |
TGLBoundingBox | TGLDrawable::fBoundingBox | ! the drawables bounding box |
static TGLQuadric | TGLDrawable::fgQuad | ! Single common quadric drawing object |
UInt_t | fRef | ! physical instance ref counting |
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.
Invoke popup menu or our bound external TObject (if any), using passed 'menu' object, at location 'x' 'y'
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.
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; }