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());
176 Info(
"TGLSceneBase::UpdateSceneInfo",
240 std::vector<TGLPlane> planeSet;
244 std::vector<TGLPlane>::iterator it = planeSet.begin();
245 while (it != planeSet.end())
290 Info(
"TGLSceneBase::LodifySceneInfo",
291 "'%s' timestamp=%u lod=%d",
314 Error(
"TGLSceneBase::FullRender",
"expected Draw or Select Lock");
340 if (sInfo.
Clip() !=
nullptr) clip = sInfo.
Clip();
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 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...
void SetSceneOLLineW(Float_t w)
Float_t ViewerWFLineW() const
void SetSceneLOD(Short_t LOD)
Short_t ViewerStyle() const
void SetSceneWFLineW(Float_t w)
TGLClip * ViewerClip() const
Short_t ViewerLOD() const
void SetSceneStyle(Short_t sty)
Float_t ViewerOLLineW() const
void SetCombiLOD(Short_t LOD)
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.
UInt_t SceneStamp() const
void SetLastClip(TGLClip *p)
Short_t LastStyle() const
void SetLastWFLineW(Float_t w)
void SetCameraStamp(UInt_t ts)
TGLClip * LastClip() const
void SetLastLOD(Short_t ld)
UInt_t CameraStamp() const
void SetLastCamera(TGLCamera *p)
void SetSceneStamp(UInt_t ts)
TGLCamera * LastCamera() const
Float_t LastWFLineW() const
Bool_t HasUpdateTimeouted() const
std::vector< TGLPlane > & ClipPlanes()
void SetLastStyle(Short_t st)
Float_t LastOLLineW() const
void SetClipStamp(UInt_t ts)
std::vector< TGLPlane > & FrustumPlanes()
void SetLastOLLineW(Float_t w)
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.