107 fExternalObj (buffer.fID),
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);
374 Info(
"TGLLogicalShape::Draw",
"this %ld (class %s) LOD %d", (
Long_t)
this,
IsA()->GetName(), rnrCtx.
ShapeLOD());
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...
virtual Bool_t SupportsSecondarySelect() const
const UChar_t * CArr() const
The TGLRnrCtx class aggregates data for a given redering context as needed by various parts of the RO...
virtual void ProcessSelection(TGLRnrCtx &rnrCtx, TGLSelectRecord &rec)
Virtual method called-back after a secondary selection hit is recorded (see TGLViewer::HandleButton()...
void Set(const TGLVertex3 vertex[8])
Set a bounding box from provided 8 vertices.
virtual Bool_t IgnoreSizeForOfInterest() const
Return true if size of this shape should be ignored when determining if the object should be drawn...
ClassImp(TSeqCollection) Int_t TSeqCollection TIter next(this)
Return index of object in collection.
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
static Bool_t GetIgnoreSizeForCameraInterest()
Get state of static fgIgnoreSizeForCameraInterest flag.
void AddRef(TGLPhysicalShape *phys) const
Add reference to given physical shape.
virtual UInt_t DLOffset(Short_t) const
const TGLLogicalShape * fLogicalShape
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...
Concrete physical shape - a GL drawable.
Bool_t IsDLCaptureOpen() const
void SubRef(TGLPhysicalShape *phys) const
Remove reference to given physical shape, potentially deleting this object when hitting zero ref-coun...
TGLScene * fScene
Shape's bounding box.
virtual Bool_t ShouldDLCache(const TGLRnrCtx &rnrCtx) const
Returns kTRUE if draws should be display list cached kFALSE otherwise.
The TNamed class is the base class for all named ROOT classes.
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.
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
virtual void Draw(TGLRnrCtx &rnrCtx) const
Draw the GL drawable, using draw flags.
Generic 3D primitive description class.
Bool_t SecSelection() const
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'.
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.
UChar_t GetSelected() const
Bool_t fOwnExtObj
Strong ref (delete on 0 ref); not in scene.
void OpenDLCapture()
Start display-list capture.
void PurgeDLRange(UInt_t base, Int_t size) const
External object is a fake.
Bool_t fRefStrong
use display list caching
UInt_t GetItem(Int_t i) const
ClassImp(TMCParticle) void TMCParticle printf(": p=(%7.3f,%7.3f,%9.3f) ;", fPx, fPy, fPz)
Mother of all ROOT objects.
TGLColor & Selection(Int_t i)
ClassImp(TGLLogicalShape)
TGLBoundingBox fBoundingBox
Also plays the role of ID.
Bool_t fDLCache
display-list validity bit-field
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.
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.
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