18#include "TGLIncludes.h"
61 fBoundingBoxValid (
kFALSE),
62 fDoFrustumCheck (
kTRUE),
79 (*i)->SceneDestructing(
this);
92 Warning(
"TGLSceneBase::AddViewer",
"viewer already in the list.");
106 Warning(
"TGLSceneBase::RemoveViewer",
"viewer not found in the list.");
111 Info(
"TGLSceneBase::RemoveViewer",
"scene '%s' not used - autodestructing.",
GetName());
158 sinfo->SetLastClip(
nullptr);
159 sinfo->SetLastCamera(
nullptr);
176 Info(
"TGLSceneBase::UpdateSceneInfo",
209 sinfo->SetLastClip(
nullptr);
210 sinfo->FrustumPlanes().clear();
211 sinfo->ClipPlanes().clear();
224 sinfo->FrustumPlanes().push_back(
p);
253 sinfo->ClipPlanes().push_back(*it);
268 sinfo->ClipPlanes().clear();
290 Info(
"TGLSceneBase::LodifySceneInfo",
291 "'%s' timestamp=%u lod=%d",
314 Error(
"TGLSceneBase::FullRender",
"expected Draw or Select Lock");
331 sInfo.ResetCameraStamp();
334 else if (
rnrCtx.GetCamera()->TimeStamp() >
sInfo.CameraStamp())
340 if (
sInfo.Clip() !=
nullptr) clip =
sInfo.Clip();
342 else clip =
rnrCtx.ViewerClip();
343 if (clip !=
sInfo.LastClip())
345 sInfo.ResetClipStamp();
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
void Info(const char *location, const char *msgfmt,...)
Use this function for informational messages.
void Error(const char *location, const char *msgfmt,...)
Use this function in case an error occurred.
void Warning(const char *location, const char *msgfmt,...)
Use this function in warning situations.
winID h TVirtualViewer3D TVirtualGLPainter p
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
const_iterator begin() const
const_iterator end() const
const TGLPlane & FrustumPlane(EFrustumPlane plane) const
Abstract clipping shape - derives from TGLPhysicalShape Adds clip mode (inside/outside) and pure virt...
virtual void PlaneSet(TGLPlaneSet_t &set) const =0
Simple locking interface used by viewer and scene.
Bool_t IsDrawOrSelectLock() const
3D plane class - of format Ax + By + Cz + D = 0
The TGLRnrCtx class aggregates data for a given redering context as needed by various parts of the RO...
TGLSceneInfo * GetSceneInfo()
Scene base-class – provides basic interface expected by the TGLViewer or its sub-classes:
virtual const char * GetName() const
virtual void PostDraw(TGLRnrCtx &rnrCtx)
Finalize drawing.
const TGLBoundingBox & BoundingBox() const
virtual void RenderSelOpaque(TGLRnrCtx &rnrCtx)
Render selected opaque elements.
virtual void PostRender(TGLRnrCtx &rnrCtx)
Perform post-render clean-up.
static UInt_t fgSceneIDSrc
virtual TGLSceneInfo * CreateSceneInfo(TGLViewerBase *view)
Create a scene-info instance appropriate for this scene class.
void RemoveViewer(TGLViewerBase *viewer)
Remove viewer from the list.
virtual void LodifySceneInfo(TGLRnrCtx &ctx)
Setup LOD-dependant values in scene-info.
virtual void RenderSelTransp(TGLRnrCtx &rnrCtx)
Render selected transparent elements for highlight.
virtual void PreRender(TGLRnrCtx &rnrCtx)
Perform pre-render initialization - fill rnrCtx with values stored during PreDraw().
virtual Bool_t ResolveSelectRecord(TGLSelectRecord &rec, Int_t curIdx)
Process selection record rec.
virtual void RenderTransp(TGLRnrCtx &rnrCtx)
Render transparent elements.
const char * LockIdStr() const override
Name printed on locking info messages.
virtual void RenderSelTranspForHighlight(TGLRnrCtx &rnrCtx)
Render selected transparent elements.
std::list< TGLViewerBase * >::iterator ViewerList_i
virtual void PreDraw(TGLRnrCtx &rnrCtx)
Perform basic pre-render initialization:
virtual void RebuildSceneInfo(TGLRnrCtx &ctx)
Fill scene-info with very basic information that is practically view independent.
void AddViewer(TGLViewerBase *viewer)
Add viewer to the list.
virtual void RenderOpaque(TGLRnrCtx &rnrCtx)
Render opaque elements.
virtual void RenderSelOpaqueForHighlight(TGLRnrCtx &rnrCtx)
Render selected opaque elements for highlight.
virtual void UpdateSceneInfo(TGLRnrCtx &ctx)
Fill scene-info with information needed for rendering, take into account the render-context (viewer s...
void TagViewersChanged()
Tag all viewers as changed.
~TGLSceneBase() override
Destructor.
virtual void Render(TGLRnrCtx &rnrCtx)
This function does rendering of all stages, the shapes are rendered in the following order: opaque,...
Base class for extended scene context.
Standard selection record including information about containing scene and details ob out selected ob...
Base class for GL viewers.
const char * Data() const
Short_t Min(Short_t a, Short_t b)
Returns the smallest of a and b.