ROOT logo
ROOT » GRAF3D » GL » TGLViewer

class TGLViewer: public TVirtualViewer3D, public TGLViewerBase, public TQObject


 Base GL viewer object - used by both standalone and embedded (in pad)
 GL. Contains core viewer objects :

 GL scene - collection of main drawn objects - see TGLStdScene
 Cameras (fXyzzCamera) - ortho and perspective cameras - see TGLCamera
 Clipping (fClipXyzz) - collection of clip objects - see TGLClip
 Manipulators (fXyzzManip) - collection of manipulators - see TGLManip

 It maintains the current active draw styles, clipping object,
 manipulator, camera etc.

 TGLViewer is 'GUI free' in that it does not derive from any ROOT GUI
 TGFrame etc - see TGLSAViewer for this. However it contains GUI
 GUI style methods HandleButton() etc to which GUI events can be
 directed from standalone frame or embedding pad to perform
 interaction.

 Also, the TGLWidget needs to be created externally. It is not owned
 by the viewer.

 For embedded (pad) GL this viewer is created directly by plugin
 manager. For standalone the derived TGLSAViewer is.

Function Members (Methods)

public:
TGLViewer(TVirtualPad* pad)
TGLViewer(TVirtualPad* pad, Int_t x, Int_t y, Int_t width, Int_t height)
virtual~TGLViewer()
voidTObject::AbstractMethod(const char* method) const
virtual voidActivated()SIGNAL
virtual voidAddCompositeOp(UInt_t)
virtual Int_tAddObject(const TBuffer3D&, Bool_t* = 0)
virtual Int_tAddObject(UInt_t, const TBuffer3D&, Bool_t* = 0)
virtual voidTGLViewerBase::AddOverlayElement(TGLOverlayElement* el)
TGLSceneInfo*TGLViewerBase::AddScene(TGLSceneBase* scene)
virtual voidTObject::AppendPad(Option_t* option = "")
voidApplySelection()
static Bool_tTQObject::AreAllSignalsBlocked()
Bool_tTQObject::AreSignalsBlocked() const
voidAutoFade(Float_t fade, Float_t time = 1, Int_t steps = 10)
virtual voidBeginScene()
static Bool_tTQObject::BlockAllSignals(Bool_t b)
Bool_tTQObject::BlockSignals(Bool_t b)
virtual voidTObject::Browse(TBrowser* b)
virtual Bool_tBuildingScene() const
virtual Bool_tCanLoopOnPrimitives() const
virtual voidTGLViewerBase::Changed()
virtual voidTQObject::ChangedBy(const char* method)SIGNAL
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
voidClearCurrentOvlElm()
virtual voidClicked(TObject* obj)SIGNAL
virtual voidClicked(TObject* obj, UInt_t button, UInt_t state)SIGNAL
TGLClip*TGLViewerBase::Clip() const
virtual TObject*TObject::Clone(const char* newname = "") const
virtual voidCloseComposite()
voidTQObject::CollectClassSignalLists(TList& list, TClass* cls)
TGLColorSet&ColorSet()
virtual Int_tTObject::Compare(const TObject* obj) const
Bool_tTQObject::Connect(const char* signal, const char* receiver_class, void* receiver, const char* slot)
static Bool_tTQObject::Connect(TQObject* sender, const char* signal, const char* receiver_class, void* receiver, const char* slot)
static Bool_tTQObject::Connect(const char* sender_class, const char* signal, const char* receiver_class, void* receiver, const char* slot)
virtual voidTQObject::Connected(const char*)
virtual voidTObject::Copy(TObject& object) const
virtual voidCreateGLWidget()
TGLCamera&CurrentCamera() const
TGLLockable::ELockTGLLockable::CurrentLock() const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual voidTGLViewerBase::DeleteOverlayAnnotations()
virtual voidTGLViewerBase::DeleteOverlayElements(TGLOverlayElement::ERole r)
virtual voidTQObject::Destroyed()SIGNAL
virtual voidDestroyGLWidget()
Bool_tTQObject::Disconnect(const char* signal = 0, void* receiver = 0, const char* slot = 0)
static Bool_tTQObject::Disconnect(TQObject* sender, const char* signal = 0, void* receiver = 0, const char* slot = 0)
static Bool_tTQObject::Disconnect(const char* class_name, const char* signal, void* receiver = 0, const char* slot = 0)
virtual voidTQObject::Disconnected(const char*)
virtual Int_tDistancetoPrimitive(Int_t px, Int_t py)
voidDoDraw(Bool_t swap_buffers = kTRUE)
voidDoDrawMono(Bool_t swap_buffers)
voidDoDrawStereo(Bool_t swap_buffers)
Bool_tDoOverlaySelect(Int_t x, Int_t y)
Bool_tDoSecondarySelect(Int_t x, Int_t y)
Bool_tDoSelect(Int_t x, Int_t y)
virtual voidDoubleClicked()SIGNAL
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
voidDrawDebugInfo()
voidDrawGuides()
virtual voidTVirtualViewer3D::DrawViewer()
virtual voidTObject::Dump() constMENU
voidTQObject::Emit(const char* signal)
voidTQObject::Emit(const char* signal, Long_t* paramArr)
voidTQObject::Emit(const char* signal, const char* params)
voidTQObject::Emit(const char* signal, Double_t param)
voidTQObject::Emit(const char* signal, Long_t param)
voidTQObject::Emit(const char* signal, Long64_t param)
voidTQObject::Emit(const char* signal, Bool_t param)
voidTQObject::Emit(const char* signal, Char_t param)
voidTQObject::Emit(const char* signal, UChar_t param)
voidTQObject::Emit(const char* signal, Short_t param)
voidTQObject::Emit(const char* signal, UShort_t param)
voidTQObject::Emit(const char* signal, Int_t param)
voidTQObject::Emit(const char* signal, UInt_t param)
voidTQObject::Emit(const char* signal, ULong_t param)
voidTQObject::Emit(const char* signal, ULong64_t param)
voidTQObject::Emit(const char* signal, Float_t param)
voidTQObject::EmitVA(const char* signal, Int_t nargs)
voidTQObject::EmitVA(const char* signal, Int_t nargs, va_list va)
virtual voidEndScene()
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
Bool_tTGLViewerBase::FindClosestOpaqueRecord(TGLSelectRecord& rec, Int_t& recIdx)
Bool_tTGLViewerBase::FindClosestOverlayRecord(TGLOvlSelectRecord& rec, Int_t& recIdx)
Bool_tTGLViewerBase::FindClosestRecord(TGLSelectRecord& rec, Int_t& recIdx)
TGLLogicalShape*TGLViewerBase::FindLogicalInScenes(TObject* id)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
TGLAutoRotator*GetAutoRotator()
TGLCameraOverlay*GetCameraOverlay() const
Bool_tGetClipAutoUpdate() const
TGLClipSet*GetClipSet() const
TGLOverlayElement*GetCurrentOvlElm() const
static TGLColorSet&GetDefaultColorSet()
Int_tGetDev() const
TGLViewer::EDragActionGetDragAction() const
Bool_tGetDrawCameraCenter()
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
TGEventHandler*GetEventHandler() const
Float_tGetFader() const
TGedEditor*GetGedEditor() const
TGLWidget*GetGLWidget()
voidGetGuideState(Int_t& axesType, Bool_t& axesDepthTest, Bool_t& referenceOn, Double_t* referencePos) const
virtual const char*TObject::GetIconName() const
Bool_tGetIgnoreSizesOnUpdate() const
TGLLightSet*GetLightSet() const
Float_tGetLineScale() const
TList*TQObject::GetListOfClassSignals() const
TList*TQObject::GetListOfConnections() const
TList*TQObject::GetListOfSignals() const
Float_tGetMaxSceneDrawTimeHQ() const
Float_tGetMaxSceneDrawTimeLQ() const
virtual const char*TObject::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
TGLOvlSelectRecord&GetOvlSelRec()
const char*GetPictureFileName() const
TImage*GetPictureUsingBB()
TImage*GetPictureUsingFBO(Int_t w, Int_t h, Float_t pixel_object_scale = 0)
Float_tGetPointScale() const
TGLViewer::EPushActionGetPushAction() const
Bool_tGetResetCamerasOnUpdate() const
TGLRnrCtx*TGLViewerBase::GetRnrCtx() const
TGLSceneInfo*TGLViewerBase::GetSceneInfo(TGLSceneBase* scene)
const TGLPhysicalShape*GetSelected() const
TGLSelectRecord&GetSelRec()
Bool_tGetSmartRefresh() const
Bool_tGetSmoothLines() const
Bool_tGetSmoothPoints() const
Bool_tGetStereo() const
Float_tGetStereoEyeOffsetFac() const
Float_tGetStereoFrustumAsymFac() const
Float_tGetStereoZeroParallax() const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual Bool_tTQObject::HasConnection(const char* signal_name) const
virtual ULong_tTObject::Hash() const
virtual voidTQObject::HighPriority(const char* signal_name, const char* slot_name = 0)
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTGLViewerBase::IsChanged() const
Bool_tIsColorSetDark() const
Bool_tTGLLockable::IsDrawOrSelectLock() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTGLLockable::IsLocked() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tIsUsingDefaultColorSet() const
static Bool_tIsUsingDefaultColorSetForNewViewers()
Bool_tTObject::IsZombie() const
static voidTQObject::LoadRQ_OBJECT()
virtual const char*TGLViewerBase::LockIdStr() const
static const char*TGLLockable::LockName(TGLLockable::ELock lock)
static Bool_tTGLLockable::LockValid(TGLLockable::ELock lock)
Short_tTGLViewerBase::LOD() const
virtual voidTQObject::LowPriority(const char* signal_name, const char* slot_name = 0)
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual voidTGLViewerBase::MergeSceneBBoxes(TGLBoundingBox& bbox)
virtual voidTQObject::Message(const char* msg)SIGNAL
virtual voidMouseIdle(TGLPhysicalShape*, UInt_t, UInt_t)SIGNAL
virtual voidMouseOver(TGLPhysicalShape*)SIGNAL
virtual voidMouseOver(TGLPhysicalShape*, UInt_t state)SIGNAL
virtual voidMouseOver(TObject* obj, UInt_t state)SIGNAL
virtual Bool_tTObject::Notify()
virtual Int_tTQObject::NumberOfConnections() const
virtual Int_tTQObject::NumberOfSignals() const
virtual voidTVirtualViewer3D::ObjectPaint(TObject*, Option_t* = "")
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
Float_tTGLViewerBase::OLLineW() const
virtual Bool_tOpenComposite(const TBuffer3D&, Bool_t* = 0)
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
virtual voidOverlayDragFinished()
virtual voidPadPaint(TVirtualPad* pad)
virtual voidTObject::Paint(Option_t* option = "")
voidPickAnnotate()
voidPickCameraCenter()
virtual voidTObject::Pop()
virtual voidPostRender()
virtual voidTGLViewerBase::PostRenderOverlaySelection()
virtual voidPostSceneBuildSetup(Bool_t resetCameras)
virtual Bool_tPreferLocalFrame() const
virtual voidPreRender()
virtual voidTGLViewerBase::PreRenderOverlaySelection()
virtual voidTObject::Print(Option_t* option = "") const
virtual voidPrintObjects()
virtual Int_tTObject::Read(const char* name)
virtual voidReClicked(TObject* obj, UInt_t button, UInt_t state)SIGNAL
virtual voidTObject::RecursiveRemove(TObject* obj)
TGLCamera&RefCamera(TGLViewer::ECameraType camera)
TGLColorSet&RefDarkColorSet()
TGLColorSet&RefLightColorSet()
virtual voidRefreshPadEditor(TObject* obj = 0)
const TGLRect&RefViewport() const
voidReinitializeCurrentCamera(const TGLVector3& hAxis, const TGLVector3& vAxis, Bool_t redraw = kTRUE)
Bool_tTGLLockable::ReleaseLock(TGLLockable::ELock lock) const
virtual voidReMouseOver(TObject* obj, UInt_t state)SIGNAL
voidTGLViewerBase::RemoveAllScenes()
virtual voidRemoveOverlayElement(TGLOverlayElement* el)
voidTGLViewerBase::RemoveScene(TGLSceneBase* scene)
virtual voidRender()
virtual voidTGLViewerBase::RenderNonSelected()
virtual voidTGLViewerBase::RenderOpaque(Bool_t rnr_non_selected = kTRUE, Bool_t rnr_selected = kTRUE)
virtual voidTGLViewerBase::RenderOverlay(Int_t state, Bool_t selection)
virtual voidTGLViewerBase::RenderSelected()
virtual voidTGLViewerBase::RenderSelectedForHighlight()
virtual voidTGLViewerBase::RenderTransparent(Bool_t rnr_non_selected = kTRUE, Bool_t rnr_selected = kTRUE)
voidRequestDraw(Short_t LOD = TGLRnrCtx::kLODMed)
Bool_tRequestOverlaySelect(Int_t x, Int_t y)
Bool_tRequestSecondarySelect(Int_t x, Int_t y)
Bool_tRequestSelect(Int_t x, Int_t y)
voidTObject::ResetBit(UInt_t f)
virtual voidResetCameras()
virtual voidResetCamerasAfterNextUpdate()
voidResetCurrentCamera()
virtual voidTGLViewerBase::ResetSceneInfos()
Bool_tTGLViewerBase::ResolveSelectRecord(TGLSelectRecord& rec, Int_t recIdx)
TGLRnrCtx&TGLViewerBase::RnrCtx() const
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
Bool_tSavePicture()
Bool_tSavePicture(const TString& fileName)
Bool_tSavePictureHeight(const TString& fileName, Int_t height, Bool_t pixel_object_scale = kTRUE)
Bool_tSavePictureScale(const TString& fileName, Float_t scale, Bool_t pixel_object_scale = kTRUE)
Bool_tSavePictureUsingBB(const TString& fileName)
Bool_tSavePictureUsingFBO(const TString& fileName, Int_t w, Int_t h, Float_t pixel_object_scale = 0)
Bool_tSavePictureWidth(const TString& fileName, Int_t width, Bool_t pixel_object_scale = kTRUE)
virtual voidTObject::SavePrimitive(ostream& out, Option_t* option = "")
voidTGLViewerBase::SceneDestructing(TGLSceneBase* scene)
virtual voidSelectionChanged()
virtual TObject*TVirtualViewer3D::SelectObject(Int_t, Int_t)
voidSetAutoRotator(TGLAutoRotator* ar)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidSetCameraOverlay(TGLCameraOverlay* m)
voidSetClearColor(Color_t col)
voidTGLViewerBase::SetClip(TGLClip* p)
voidSetClipAutoUpdate(Bool_t x)
voidSetCurrentCamera(TGLViewer::ECameraType camera)
voidSetDrawCameraCenter(Bool_t x)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
virtual voidSetEventHandler(TGEventHandler* handler)
voidSetFader(Float_t x)
virtual voidSetGedEditor(TGedEditor* ed)
voidSetGuideState(Int_t axesType, Bool_t axesDepthTest, Bool_t referenceOn, const Double_t* referencePos)
voidSetIgnoreSizesOnUpdate(Bool_t v)
voidSetLineScale(Float_t s)
voidTGLViewerBase::SetLOD(Short_t lod)
voidSetMaxSceneDrawTimeHQ(Float_t t)
voidSetMaxSceneDrawTimeLQ(Float_t t)
static voidTObject::SetObjectStat(Bool_t stat)
voidTGLViewerBase::SetOLLineW(Float_t w)
voidSetOrthoCamera(TGLViewer::ECameraType camera, Double_t zoom, Double_t dolly, Double_t* center, Double_t hRotate, Double_t vRotate)
voidSetPerspectiveCamera(TGLViewer::ECameraType camera, Double_t fov, Double_t dolly, Double_t* center, Double_t hRotate, Double_t vRotate)
voidSetPictureFileName(const TString& f)
voidSetPointScale(Float_t s)
voidSetResetCamerasOnUpdate(Bool_t v)
voidSetSmartRefresh(Bool_t smart_ref)
voidSetSmoothLines(Bool_t s)
voidSetSmoothPoints(Bool_t s)
voidSetStereo(Bool_t s)
voidSetStereoEyeOffsetFac(Float_t f)
voidSetStereoFrustumAsymFac(Float_t f)
voidSetStereoZeroParallax(Float_t f)
voidTGLViewerBase::SetStyle(Short_t st)
virtual voidTObject::SetUniqueID(UInt_t uid)
voidTGLViewerBase::SetWFLineW(Float_t w)
virtual voidShowMembers(TMemberInspector&)
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
Short_tTGLViewerBase::Style() const
voidSwitchColorSet()
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTGLLockable::TakeLock(TGLLockable::ELock lock) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidUnClicked(TObject* obj, UInt_t button, UInt_t state)SIGNAL
virtual voidUnMouseOver(TObject* obj, UInt_t state)SIGNAL
voidUpdateScene(Bool_t redraw = kTRUE)
virtual voidTObject::UseCurrentStyle()
voidUseDarkColorSet()
voidUseDefaultColorSet(Bool_t x)
static voidUseDefaultColorSetForNewViewers(Bool_t x)
voidUseLightColorSet()
static TVirtualViewer3D*TVirtualViewer3D::Viewer3D(TVirtualPad* pad = 0, Option_t* type = "")
Int_tViewportDiagonal() const
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
Float_tTGLViewerBase::WFLineW() const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
static Int_tTQObject::CheckConnectArgs(TQObject* sender, TClass* sender_class, const char* signal, TClass* receiver_class, const char* slot)
static Bool_tTQObject::ConnectToClass(TQObject* sender, const char* signal, TClass* receiver_class, void* receiver, const char* slot)
static Bool_tTQObject::ConnectToClass(const char* sender_class, const char* signal, TClass* receiver_class, void* receiver, const char* slot)
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidFadeView(Float_t alpha)
TGLViewerBase::SceneInfoList_iTGLViewerBase::FindScene(TGLSceneBase* scene)
virtual void*TQObject::GetSender()
virtual const char*TQObject::GetSenderClassName() const
voidInitGL()
voidMakeCurrent() const
voidTObject::MakeZombie()
voidPostDraw()
voidPreDraw()
voidSetupCameras(Bool_t reset)
virtual voidSetupClipObject()
voidSetViewport(const TGLRect& vp)
voidSetViewport(Int_t x, Int_t y, Int_t width, Int_t height)
voidTGLViewerBase::SubRenderScenes(TGLViewerBase::SubRender_foo render_foo)
voidSwapBuffers() const

Data Members

public:
enum ECameraType { kCameraPerspXOZ
kCameraPerspYOZ
kCameraPerspXOY
kCameraOrthoXOY
kCameraOrthoXOZ
kCameraOrthoZOY
kCameraOrthoXnOY
kCameraOrthoXnOZ
kCameraOrthoZnOY
};
enum ESecSelType { kOnRequest
kOnKeyMod1
};
enum EPushAction { kPushStd
kPushCamCenter
kPushAnnotate
};
enum EDragAction { kDragNone
kDragCameraRotate
kDragCameraTruck
kDragCameraDolly
kDragOverlay
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
enum TGLLockable::ELock { kUnlocked
kDrawLock
kSelectLock
kModifyLock
};
protected:
TGLAutoRotator*fAutoRotator!
Bool_tfAxesDepthTest! remove guides hidden-lines
Int_tfAxesType! axes type
TGLCamera*TGLViewerBase::fCameraCamera for rendering.
TGLCameraOverlay*fCameraOverlay! markup size of viewport in scene units
Bool_tTGLViewerBase::fChangedChange requiring redraw is pending.
TGLClip*TGLViewerBase::fClipViewer clipping-plane.
TGLClipSet*fClipSet!
TContextMenu*fContextMenu!
TGLCamera*fCurrentCamera!
TGLOverlayElement*fCurrentOvlElm! current overlay element
TGLSelectRecordfCurrentSelRec! select record in use as selected
TGLColorSetfDarkColorSet! color-set with dark background
Bool_tfDebugMode! debug mode (forced rebuild + draw scene/frustum/interest boxes)
TGLViewer::EDragActionfDragAction
Bool_tfDrawCameraCenter! reference marker on?
TGEventHandler*fEventHandler! event handler
Float_tfFader! fade the view (0 - no fade/default, 1 - full fade/no rendering done)
TGLContextIdentity*fGLCtxId!for embedded gl viewer
Int_tfGLDevice!for embedded gl viewer
TGLWidget*fGLWidget
TGedEditor*fGedEditor! GED editor
Bool_tfIgnoreSizesOnUpdateignore sizes of bounding-boxes on update
Bool_tfIsPrinting!
Short_tTGLViewerBase::fLODViewer-lod for rendering.
TGLColorSetfLightColorSet! color-set with light background
TGLLightSet*fLightSet!
Float_tfLineScale! width scale for lines
TList*TQObject::fListOfConnections! list of connections to this object
TList*TQObject::fListOfSignals! list of signals from this object
TGLLockable::ELockTGLLockable::fLockLock state.
Float_tfMaxSceneDrawTimeHQ! max time for scene rendering at high LOD (in ms)
Float_tfMaxSceneDrawTimeLQ! max time for scene rendering at high LOD (in ms)
Float_tTGLViewerBase::fOLLineWOptional override of scene outline line-width
TGLOrthoCamerafOrthoXOYCamera!
TGLOrthoCamerafOrthoXOZCamera!
TGLOrthoCamerafOrthoXnOYCamera!
TGLOrthoCamerafOrthoXnOZCamera!
TGLOrthoCamerafOrthoZOYCamera!
TGLOrthoCamerafOrthoZnOYCamera!
TGLBoundingBoxTGLViewerBase::fOverallBoundingBoxAxis-aligned union of scene bboxes.
vector<TGLOverlayElement*>TGLViewerBase::fOverlay
TGLOvlSelectRecordfOvlSelRec! select record from last overlay select
TGLPShapeObj*fPShapeWrap
TVirtualPad*fPad! external pad - remove replace with signal
TGLPerspectiveCamerafPerspectiveCameraXOY!
TGLPerspectiveCamerafPerspectiveCameraXOZ!
TGLPerspectiveCamerafPerspectiveCameraYOZ!
TStringfPictureFileName! default file-name for SavePicture()
Float_tfPointScale! size scale for points
TGLViewer::EPushActionfPushAction
TGLRedrawTimer*fRedrawTimer! timer for triggering redraws
Bool_tfReferenceOn! reference marker on?
TGLVertex3fReferencePos! reference position
Bool_tfResetCamerasOnNextUpdatereposition camera on next update
Bool_tfResetCamerasOnUpdatereposition camera on each update
Bool_tTGLViewerBase::fResetSceneInfosOnRenderRequest rebuild of view-specific scene data.
TGLRnrCtx*TGLViewerBase::fRnrCtx
list<TGLSceneInfo*>TGLViewerBase::fScenesRegistered scenes.
TGLSelectRecordfSecSelRec! select record from last secondary select (should go to context)
TGLSelectRecordfSelRec! select record from last select (should go to context)
TGLManipSet*fSelectedPShapeRef!
Bool_tTQObject::fSignalsBlocked! flag used for suppression of signals
Bool_tfSmartRefresh! cache logicals during scene rebuilds
Bool_tfSmoothLines! smooth line edge rendering
Bool_tfSmoothPoints! smooth point edge rendering
Bool_tfStereo! use stereo rendering
Float_tfStereoEyeOffsetFac!
Float_tfStereoFrustumAsymFac!
Float_tfStereoZeroParallax! position of zero-parallax plane: 0 - near clipping plane, 1 - far clipping plane
Short_tTGLViewerBase::fStyleViewer-style for rendering.
TGLRectfViewport! viewport - drawn area
vector<TGLSceneInfo*>TGLViewerBase::fVisScenesVisible scenes.
Float_tTGLViewerBase::fWFLineWOptional override of scene wire-frame line-width
static Bool_tTQObject::fgAllSignalsBlockedflag used for suppression of all signals
static TGLColorSetfgDefaultColorSet! a shared, default color-set
static Bool_tfgUseDefaultColorSetForNewViewers! name says it all

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

TGLViewer(TVirtualPad* pad, Int_t x, Int_t y, Int_t width, Int_t height)
 Construct the viewer object, with following arguments:
    'pad' - external pad viewer is bound to
    'x', 'y' - initial top left position
    'width', 'height' - initial width/height
TGLViewer(TVirtualPad* pad)
gl-embedded viewer's ctor
 Construct the viewer object, with following arguments:
    'pad' - external pad viewer is bound to
    'x', 'y' - initial top left position
    'width', 'height' - initial width/height
void InitSecondaryObjects()
 Common initialization.
~TGLViewer()
 Destroy viewer object.
void PadPaint(TVirtualPad* pad)
 Entry point for updating viewer contents via VirtualViewer3D
 interface.
 We search and forward the request to appropriate TGLScenePad.
 If it is not found we create a new TGLScenePad so this can
 potentially also be used for registration of new pads.
void UpdateScene(Bool_t redraw = kTRUE)
 Force update of pad-scenes. Eventually this could be generalized
 to all scene-types via a virtual function in TGLSceneBase.
void ResetCurrentCamera()
 Resets position/rotation of current camera to default values.
void SetupCameras(Bool_t reset)
 Setup cameras for current bounding box.
void PostSceneBuildSetup(Bool_t resetCameras)
 Perform post scene-build setup.
void InitGL()
 Initialise GL state.
void RequestDraw(Short_t LOD = TGLRnrCtx::kLODMed)
 Post request for redraw of viewer at level of detail 'LOD'
 Request is directed via cross thread gVirtualGL object.
void SetupClipObject()
 Setup clip-object. Protected virtual method.
void PreRender()
 Initialize objects that influence rendering.
 Called before every render.
void Render()
 Normal rendering, used by mono and stereo rendering.
void PostRender()
 Restore state set in PreRender().
 Called after every render.
void DoDraw(Bool_t swap_buffers = kTRUE)
 Draw out the viewer.
void DoDrawMono(Bool_t swap_buffers)
 Draw out in monoscopic mode.
void DoDrawStereo(Bool_t swap_buffers)
 Draw out in stereoscopic mode.
Bool_t SavePicture()
 Save current image using the default file name which can be set
 via SetPictureFileName() and defaults to "viewer.jpg".
 Really useful for the files ending with 'gif+'.
Bool_t SavePicture(const TString& fileName)
 Save current image in various formats (gif, gif+, jpg, png, eps, pdf).
 'gif+' will append image to an existng file (animated gif).
 'eps' and 'pdf' do not fully support transparency and texturing.
 The viewer window most be fully contained within the desktop but
 can be covered by other windows.
 Returns false if something obvious goes wrong, true otherwise.

 The mage is saved using a frame-buffer object if the GL implementation
 claims to support it -- this claim is not always true, especially when
 running over ssh with drastically different GL implementations on the
 client and server sides. Set this in .rootrc to enforce creation of
 pictures using the back-buffer:
   OpenGL.SavePicturesViaFBO: off
Bool_t SavePictureUsingBB(const TString& fileName)
 Save current image in various formats (gif, gif+, jpg, png).
 'gif+' will append image to an existng file (animated gif).
 Back-Buffer is used for capturing of the image.
 The viewer window most be fully contained within the desktop but
 can be covered by other windows.
 Returns false if something obvious goes wrong, true otherwise.
Bool_t SavePictureUsingFBO(const TString& fileName, Int_t w, Int_t h, Float_t pixel_object_scale = 0)
 Save current image in various formats (gif, gif+, jpg, png).
 'gif+' will append image to an existng file (animated gif).
 Frame-Buffer-Object is used for capturing of the image - OpenGL
 1.5 is required.
 The viewer window does not have to be visible at all.
 Returns false if something obvious goes wrong, true otherwise.

 pixel_object_scale is used to scale (as much as possible) the
 objects whose representation size is pixel based (point-sizes,
 line-widths, bitmap/pixmap font-sizes).
 If set to 0 (default) no scaling is applied.
TImage* GetPictureUsingBB()
 Returns current image.
 Back-Buffer is used for capturing of the image.
 The viewer window most be fully contained within the desktop but
 can be covered by other windows.
TImage* GetPictureUsingFBO(Int_t w, Int_t h, Float_t pixel_object_scale = 0)
 Returns current image.
 Frame-Buffer-Object is used for capturing of the image - OpenGL
 1.5 is required.
 The viewer window does not have to be visible at all.

 pixel_object_scale is used to scale (as much as possible) the
 objects whose representation size is pixel based (point-sizes,
 line-widths, bitmap/pixmap font-sizes).
 If set to 0 (default) no scaling is applied.
Bool_t SavePictureWidth(const TString& fileName, Int_t width, Bool_t pixel_object_scale = kTRUE)
 Save picture with given width (height scaled proportinally).
 If pixel_object_scale is true (default), the corresponding
 scaling gets calculated from the current window size.
Bool_t SavePictureHeight(const TString& fileName, Int_t height, Bool_t pixel_object_scale = kTRUE)
 Save picture with given height (width scaled proportinally).
 If pixel_object_scale is true (default), the corresponding
 scaling gets calculated from the current window size.
Bool_t SavePictureScale(const TString& fileName, Float_t scale, Bool_t pixel_object_scale = kTRUE)
 Save picture with given scale to current window size.
 If pixel_object_scale is true (default), the same scaling is
 used.
void DrawGuides()
 Draw reference marker and coordinate axes.
void DrawDebugInfo()
 If in debug mode draw camera aids and overall bounding box.
void PreDraw()
 Perform GL work which must be done before each draw.
void PostDraw()
 Perform GL work which must be done after each draw.
void FadeView(Float_t alpha)
 Draw a rectangle (background color and given alpha) across the
 whole viewport.
void MakeCurrent() const
 Make GL context current
void SwapBuffers() const
 Swap GL buffers
Bool_t RequestSelect(Int_t x, Int_t y)
 Post request for selection render pass viewer, picking objects
 around the window point (x,y).
Bool_t DoSelect(Int_t x, Int_t y)
 Perform GL selection, picking objects overlapping WINDOW
 area described by 'rect'. Return kTRUE if selection should be
 changed, kFALSE otherwise.
 Select lock should already been taken in other thread in
 TGLViewer::ReqSelect().
Bool_t RequestSecondarySelect(Int_t x, Int_t y)
 Request secondary select.
Bool_t DoSecondarySelect(Int_t x, Int_t y)
 Secondary selection.
void ApplySelection()
 Process result from last selection (in fSelRec) and
 extract a new current selection from it.
 Here we only use physical shape.
Bool_t RequestOverlaySelect(Int_t x, Int_t y)
 Post request for secondary selection rendering of selected object
 around the window point (x,y).
Bool_t DoOverlaySelect(Int_t x, Int_t y)
 Perform GL selection, picking overlay objects only.
 Return TRUE if the selected overlay-element has changed.
void AutoFade(Float_t fade, Float_t time = 1, Int_t steps = 10)
 Animate fading from curernt value to fade over given time (sec)
 and number of steps.
void UseDarkColorSet()
 Use the dark color-set.
void UseLightColorSet()
 Use the light color-set.
void SwitchColorSet()
 Swtich between dark and light colorsets.
void UseDefaultColorSet(Bool_t x)
 Set usage of the default color set.
Bool_t IsUsingDefaultColorSet() const
 Check if the viewer is using the default color set.
 If yes, some operations might be disabled.
void SetClearColor(Color_t col)
 Set background method.
 Deprecated method - set background color in the color-set.
TGLColorSet& GetDefaultColorSet()
 Returns reference to the default color-set.
 Static function.
void UseDefaultColorSetForNewViewers(Bool_t x)
 Sets static flag that determines if new viewers should use the
 default color-set.
 This is false at startup.
Bool_t IsUsingDefaultColorSetForNewViewers()
 Returns the value of the static flag that determines if new
 viewers should use the default color-set.
 This is false at startup.
Bool_t IsColorSetDark() const
 Returns true if curremt color set is dark.
void SetViewport(Int_t x, Int_t y, Int_t width, Int_t height)
 Set viewer viewport (window area) with bottom/left at (x,y), with
 dimensions 'width'/'height'
void SetViewport(const TGLRect& vp)
 Set viewr viewport from TGLRect.
TGLCamera& RefCamera(TGLViewer::ECameraType camera)
 Return camera reference by type.
void SetCurrentCamera(TGLViewer::ECameraType camera)
 Set current active camera - 'cameraType' one of:
   kCameraPerspX,    kCameraPerspY,    kCameraPerspZ,
   kCameraOrthoXOY,  kCameraOrthoXOZ,  kCameraOrthoZOY,
   kCameraOrthoXnOY, kCameraOrthoXnOZ, kCameraOrthoZnOY
void SetOrthoCamera(TGLViewer::ECameraType camera, Double_t zoom, Double_t dolly, Double_t* center, Double_t hRotate, Double_t vRotate)
 Set an orthographic camera to supplied configuration - note this
 does not need to be the current camera - though you will not see
 the effect if it is not.

 'camera' defines the ortho camera - one of kCameraOrthoXOY / XOZ / ZOY
 'left' / 'right' / 'top' / 'bottom' define the WORLD coordinates which
 corresepond with the left/right/top/bottom positions on the GL viewer viewport
 E.g. for kCameraOrthoXOY camera left/right are X world coords,
 top/bottom are Y world coords
 As this is an orthographic camera the other axis (in eye direction) is
 no relevant. The near/far clip planes are set automatically based in scene
 contents
void SetPerspectiveCamera(TGLViewer::ECameraType camera, Double_t fov, Double_t dolly, Double_t* center, Double_t hRotate, Double_t vRotate)
 Set a perspective camera to supplied configuration - note this
 does not need to be the current camera - though you will not see
 the effect if it is not.

 'camera' defines the persp camera - one of kCameraPerspXOZ, kCameraPerspYOZ, kCameraPerspXOY
 'fov' - field of view (lens angle) in degrees (clamped to 0.1 - 170.0)
 'dolly' - distance from 'center'
 'center' - world position from which dolly/hRotate/vRotate are measured
             camera rotates round this, always facing in (in center of viewport)
 'hRotate' - horizontal rotation from initial configuration in degrees
 'hRotate' - vertical rotation from initial configuration in degrees
void ReinitializeCurrentCamera(const TGLVector3& hAxis, const TGLVector3& vAxis, Bool_t redraw = kTRUE)
 Change base-vectors defining the camera-base transformation of current
 camera. hAxis and vAxis are the default directions for forward
 (inverted) and upwards.
TGLAutoRotator* GetAutoRotator()
 Get the auto-rotator for this viewer.
void SetAutoRotator(TGLAutoRotator* ar)
 Set the auto-rotator for this viewer. The old rotator is deleted.
void GetGuideState(Int_t& axesType, Bool_t& axesDepthTest, Bool_t& referenceOn, Double_t* referencePos) const
 Fetch the state of guides (axes & reference markers) into arguments
void SetGuideState(Int_t axesType, Bool_t axesDepthTest, Bool_t referenceOn, const Double_t* referencePos)
 Set the state of guides (axes & reference markers) from arguments.
void SetDrawCameraCenter(Bool_t x)
 Draw camera look at and rotation point.
const TGLPhysicalShape * GetSelected() const
 Return selected physical shape.
void MouseOver(TGLPhysicalShape* )
 Emit MouseOver signal.
void MouseOver(TGLPhysicalShape* , UInt_t state)
 Emit MouseOver signal.
void MouseOver(TObject* obj, UInt_t state)
 Emit MouseOver signal.
void ReMouseOver(TObject* obj, UInt_t state)
 Emit MouseOver signal.
void UnMouseOver(TObject* obj, UInt_t state)
 Emit UnMouseOver signal.
void Clicked(TObject* obj)
 Emit Clicked signal.
void Clicked(TObject* obj, UInt_t button, UInt_t state)
 Emit Clicked signal with button id and modifier state.
void ReClicked(TObject* obj, UInt_t button, UInt_t state)
 Emit ReClicked signal with button id and modifier state.
void UnClicked(TObject* obj, UInt_t button, UInt_t state)
 Emit UnClicked signal with button id and modifier state.
void MouseIdle(TGLPhysicalShape* , UInt_t , UInt_t )
 Emit MouseIdle signal.
Int_t DistancetoPrimitive(Int_t px, Int_t py)
 Calcaulate and return pixel distance to nearest viewer object from
 window location px, py
 This is provided for use when embedding GL viewer into pad
void ExecuteEvent(Int_t event, Int_t px, Int_t py)
 Process event of type 'event' - one of EEventType types,
 occuring at window location px, py
 This is provided for use when embedding GL viewer into pad
void PrintObjects()
 Pass viewer for print capture by TGLOutput.
void SelectionChanged()
 Update GUI components for embedded viewer selection change.
void OverlayDragFinished()
 An overlay operation can result in change to an object.
 Refresh geditor.
void RefreshPadEditor(TObject* obj = 0)
 Update GED editor if it is set.
void SetEventHandler(TGEventHandler* handler)
 Set the event-handler. The event-handler is owned by the viewer.
 If GLWidget is set, the handler is propagated to it.

 If called with handler=0, the current handler will be deleted
 (also from TGLWidget).
void RemoveOverlayElement(TGLOverlayElement* el)
 Remove overlay element.
void ClearCurrentOvlElm()
 Reset current overlay-element to zero, eventually notifying the
 old one that the mouse has left.
 Usually called when mouse leaves the window.
TGLViewer(const TGLViewer& )
TGLViewer & operator=(const TGLViewer& )
Bool_t CanLoopOnPrimitives() const
 TVirtualViewer3D interface ... mostly a facade
 Forward to TGLScenePad
{ return kTRUE; }
Bool_t PreferLocalFrame() const
 Only implemented because they're abstract ... should throw an
 exception or assert they are not called.
{ return kTRUE; }
void BeginScene()
{}
Bool_t BuildingScene() const
{ return kFALSE; }
void EndScene()
{}
Int_t AddObject(const TBuffer3D& , Bool_t* = 0)
{ return TBuffer3D::kNone; }
Int_t AddObject(UInt_t , const TBuffer3D& , Bool_t* = 0)
{ return TBuffer3D::kNone; }
Bool_t OpenComposite(const TBuffer3D& , Bool_t* = 0)
{ return kFALSE; }
void CloseComposite()
{}
void AddCompositeOp(UInt_t )
{}
void ResetCameras()
void ResetCamerasAfterNextUpdate()
TGLWidget* GetGLWidget()
{ return fGLWidget; }
void CreateGLWidget()
{}
void DestroyGLWidget()
{}
Int_t GetDev() const
{ return fGLDevice; }
Bool_t GetSmartRefresh() const
{ return fSmartRefresh; }
void SetSmartRefresh(Bool_t smart_ref)
{ fSmartRefresh = smart_ref; }
TGLColorSet& RefDarkColorSet()
{ return fDarkColorSet; }
TGLColorSet& RefLightColorSet()
{ return fLightColorSet; }
const TGLRect& RefViewport() const
{ return fViewport; }
Int_t ViewportDiagonal() const
{ return fViewport.Diagonal(); }
Float_t GetPointScale() const
{ return fPointScale; }
Float_t GetLineScale() const
{ return fLineScale; }
void SetPointScale(Float_t s)
{ fPointScale = s; }
void SetLineScale(Float_t s)
{ fLineScale = s; }
Bool_t GetSmoothPoints() const
{ return fSmoothPoints; }
Bool_t GetSmoothLines() const
{ return fSmoothLines; }
void SetSmoothPoints(Bool_t s)
{ fSmoothPoints = s; }
void SetSmoothLines(Bool_t s)
{ fSmoothLines = s; }
TGLLightSet* GetLightSet() const
{ return fLightSet; }
TGLClipSet * GetClipSet() const
{ return fClipSet; }
Bool_t GetClipAutoUpdate() const
{ return fClipSet->GetAutoUpdate(); }
void SetClipAutoUpdate(Bool_t x)
TGLCamera & CurrentCamera() const
 External GUI component interface
{ return *fCurrentCamera; }
Bool_t GetDrawCameraCenter()
{ return fDrawCameraCenter; }
void PickCameraCenter()
void PickAnnotate()
TGLCameraOverlay* GetCameraOverlay() const
{ return fCameraOverlay; }
void SetCameraOverlay(TGLCameraOverlay* m)
Bool_t GetStereo() const
 Stereo
{ return fStereo; }
Float_t GetStereoZeroParallax() const
Float_t GetStereoEyeOffsetFac() const
Float_t GetStereoFrustumAsymFac() const
void SetStereo(Bool_t s)
{ fStereo = s; }
void SetStereoZeroParallax(Float_t f)
void SetStereoEyeOffsetFac(Float_t f)
void SetStereoFrustumAsymFac(Float_t f)
EPushAction GetPushAction() const
 Push / drag action
{ return fPushAction; }
EDragAction GetDragAction() const
{ return fDragAction; }
Float_t GetMaxSceneDrawTimeHQ() const
 Draw and selection
 Scene rendering timeouts
Float_t GetMaxSceneDrawTimeLQ() const
void SetMaxSceneDrawTimeHQ(Float_t t)
void SetMaxSceneDrawTimeLQ(Float_t t)
const char* GetPictureFileName() const
{ return fPictureFileName.Data(); }
void SetPictureFileName(const TString& f)
Float_t GetFader() const
{ return fFader; }
void SetFader(Float_t x)
{ fFader = x; }
Bool_t GetIgnoreSizesOnUpdate() const
void SetIgnoreSizesOnUpdate(Bool_t v)
Bool_t GetResetCamerasOnUpdate() const
void SetResetCamerasOnUpdate(Bool_t v)
void Activated()
{ Emit("Activated()"); }
void DoubleClicked()
{ Emit("DoubleClicked()"); }
TGEventHandler * GetEventHandler() const
{ return fEventHandler; }
TGedEditor* GetGedEditor() const
{ return fGedEditor; }
void SetGedEditor(TGedEditor* ed)
{ fGedEditor = ed; }
TGLSelectRecord& GetSelRec()
{ return fSelRec; }
TGLOvlSelectRecord& GetOvlSelRec()
{ return fOvlSelRec; }
TGLOverlayElement* GetCurrentOvlElm() const
{ return fCurrentOvlElm; }