128 fExternalObj =
new TNamed(
"Generic object",
"Internal object created for bookkeeping.");
141 Warning(
"TGLLogicalShape::~TGLLogicalShape",
"some physicals still lurking around.");
191 Error(
"TGLLogicalShape::SubRef",
"Attempt to un-ref an unregistered physical.");
347 Warning(
"TGLLogicalShape::PurgeDLRange",
"Scene unknown, attempting direct deletion.");
348 glDeleteLists(base, size);
396 Warning(
"TGLLogicalShape::Draw",
"display-list registration failed.");
411 glNewList(
fDLBase + off, GL_COMPILE_AND_EXECUTE);
415 fDLValid |= (1<<off);
443 printf(
"TGLLogicalShape::ProcessSelection %d names on the stack (z1=%g, z2=%g).\n",
void SetAligned(const TGLVertex3 &lowVertex, const TGLVertex3 &highVertex)
Set ALIGNED box from two low/high vertices.
virtual void DLCacheDrop()
Drop all entries for all LODs for this drawable from the display list cache, WITHOUT returning the re...
std::string GetName(const std::string &scope_name)
The TGLRnrCtx class aggregates data for a given redering context as needed by various parts of the RO...
Bool_t SecSelection() const
virtual void ProcessSelection(TGLRnrCtx &rnrCtx, TGLSelectRecord &rec)
Virtual method called-back after a secondary selection hit is recorded (see TGLViewer::HandleButton()...
virtual Short_t QuantizeShapeLOD(Short_t shapeLOD, Short_t combiLOD) const
Logical shapes usually support only discreet LOD values, especially in view of display-list caching...
void Set(const TGLVertex3 vertex[8])
Set a bounding box from provided 8 vertices.
UInt_t fDLBase
scene where object is stored (can be zero!)
void UpdateBoundingBoxesOfPhysicals()
Update bounding-boxed of all dependent physicals.
Int_t fDLSize
display-list id base
UShort_t fDLValid
display-list size for different LODs
void DestroyPhysicals()
Destroy all physicals attached to this logical.
void UpdateBoundingBox()
cache
void AddRef(TGLPhysicalShape *phys) const
Add reference to given physical shape.
static Bool_t GetIgnoreSizeForCameraInterest()
Get state of static fgIgnoreSizeForCameraInterest flag.
virtual Bool_t SupportsSecondarySelect() const
UChar_t GetSelected() const
const TGLLogicalShape * fLogicalShape
Concrete physical shape - a GL drawable.
TGLScene * fScene
Shape's bounding box.
void SubRef(TGLPhysicalShape *phys) const
Remove reference to given physical shape, potentially deleting this object when hitting zero ref-coun...
Bool_t IsDLCaptureOpen() const
The TNamed class is the base class for all named ROOT classes.
virtual UInt_t DLOffset(Short_t) const
const UChar_t * CArr() const
static void SetIgnoreSizeForCameraInterest(Bool_t isfci)
Set state of static fgIgnoreSizeForCameraInterest flag.
void Info(const char *location, const char *msgfmt,...)
virtual ~TGLLogicalShape()
Destroy logical shape.
static UInt_t LockColor()
Prevent further color changes.
static UInt_t UnlockColor()
Allow color changes.
void Error(const char *location, const char *msgfmt,...)
virtual void DLCachePurge()
Purge all entries for all LODs for this drawable from the display list cache, returning the reserved ...
TObject * fExternalObj
first replica
void CloseDLCapture()
End display list capture.
Bool_t SectionsValid(UInt_t mask) const
virtual void DrawHighlight(TGLRnrCtx &rnrCtx, const TGLPhysicalShape *pshp, Int_t lvl=-1) const
Draw the logical shape in highlight mode.
TGLPhysicalShape * fFirstPhysical
physical instance ref counting
TGLPhysicalShape * fNextPhysical
the associated logical shape
Standard selection record including information about containing scene and details ob out selected ob...
UInt_t UnrefFirstPhysical()
Unreferenced first physical in the list, returning its id and making it fit for destruction somewhere...
TGLContextIdentity * GetGLCtxIdentity() const
Generic 3D primitive description class.
Bool_t SetDLCache(Bool_t cached)
Modify capture of draws into display list cache kTRUE - capture, kFALSE direct draw.
void Warning(const char *location, const char *msgfmt,...)
TGLLogicalShape()
Constructor.
virtual void DirectDraw(TGLRnrCtx &rnrCtx) const =0
Abstract logical shape - a GL 'drawable' - base for all shapes - faceset sphere etc.
Bool_t fOwnExtObj
Strong ref (delete on 0 ref); not in scene.
void OpenDLCapture()
Start display-list capture.
Bool_t fRefStrong
use display list caching
UInt_t GetItem(Int_t i) const
Mother of all ROOT objects.
virtual void Draw(TGLRnrCtx &rnrCtx) const
Draw the GL drawable, using draw flags.
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'.
TGLColor & Selection(Int_t i)
void PurgeDLRange(UInt_t base, Int_t size) const
External object is a fake.
TGLBoundingBox fBoundingBox
Also plays the role of ID.
virtual Bool_t IgnoreSizeForOfInterest() const
Return true if size of this shape should be ignored when determining if the object should be drawn...
Bool_t fDLCache
display-list validity bit-field
virtual Bool_t ShouldDLCache(const TGLRnrCtx &rnrCtx) const
Returns kTRUE if draws should be display list cached kFALSE otherwise.
TGLColorSet & ColorSet()
Return reference to current color-set (top of the stack).
void RegisterDLNameRangeToWipe(UInt_t base, Int_t size)
Remember dl range for deletion in next MakeCurrent or dtor execution.
virtual void DLCacheClear()
Clear all entries for all LODs for this drawable from the display list cache but keeping the reserved...
static Bool_t fgIgnoreSizeForCameraInterest