#include "TViewerOpenGL.h" |
TViewerOpenGL
class description - source file - inheritance tree (.pdf)
private:
TViewerOpenGL(const TViewerOpenGL&)
RootCsg::BaseMesh* BuildComposite()
virtual void CloseWindow()
TGLLogicalShape* CreateNewLogical(const TBuffer3D& buffer) const
TGLPhysicalShape* CreateNewPhysical(UInt_t physicalID, const TBuffer3D& buffer, const TGLLogicalShape& logical) const
void CreateViewer()
virtual void DoRedraw()
void DoSelect(Event_t* event, Bool_t invokeContext)
virtual void InitGL()
virtual void Invalidate(UInt_t redrawLOD = kMed)
virtual void MakeCurrent() const
TViewerOpenGL& operator=(const TViewerOpenGL&)
void PrintObjects()
virtual Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2)
virtual Bool_t RebuildScene()
void Show()
virtual void SwapBuffers() const
Int_t ValidateObjectBuffer(const TBuffer3D& buffer, Bool_t logical) const
public:
TViewerOpenGL(TVirtualPad* pad)
~TViewerOpenGL()
virtual void AddCompositeOp(UInt_t operation)
virtual Int_t AddObject(const TBuffer3D& buffer, Bool_t* addChildren = 0)
virtual Int_t AddObject(UInt_t physicalID, const TBuffer3D& buffer, Bool_t* addChildren = 0)
virtual void BeginScene()
virtual Bool_t BuildingScene() const
static TClass* Class()
virtual void CloseComposite()
virtual void EndScene()
Bool_t HandleContainerButton(Event_t* ev)
Bool_t HandleContainerConfigure(Event_t* ev)
Bool_t HandleContainerDoubleClick(Event_t* ev)
Bool_t HandleContainerEvent(Event_t* ev)
Bool_t HandleContainerExpose(Event_t* ev)
Bool_t HandleContainerKey(Event_t* ev)
Bool_t HandleContainerMotion(Event_t* ev)
virtual TClass* IsA() const
void ModifyScene(Int_t id)
virtual Bool_t OpenComposite(const TBuffer3D& buffer, Bool_t* addChildren = 0)
virtual Bool_t PreferLocalFrame() const
virtual void ShowMembers(TMemberInspector& insp, char* parent)
virtual void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
private:
TGCompositeFrame* fMainFrame
TGVerticalFrame* fV1
TGVerticalFrame* fV2
TGShutter* fShutter
TGShutterItem* fShutItem1
TGShutterItem* fShutItem2
TGShutterItem* fShutItem3
TGShutterItem* fShutItem4
TGLayoutHints* fL1
TGLayoutHints* fL2
TGLayoutHints* fL3
TGLayoutHints* fL4
TGLayoutHints* fCanvasLayout
TGMenuBar* fMenuBar
TGPopupMenu* fFileMenu
TGPopupMenu* fViewMenu
TGPopupMenu* fHelpMenu
TGLayoutHints* fMenuBarLayout
TGLayoutHints* fMenuBarItemLayout
TGLayoutHints* fMenuBarHelpLayout
TContextMenu* fContextMenu
TGCanvas* fCanvasWindow
TGLRenderArea* fCanvasContainer
TGLColorEditor* fColorEditor
TGLGeometryEditor* fGeomEditor
TGLSceneEditor* fSceneEditor
TGLLightEditor* fLightEditor
TViewerOpenGL::EAction fAction
TPoint fStartPos
TPoint fLastPos
UInt_t fActiveButtonID
Bool_t fInternalRebuild ! internal scene rebuild in progress?
Bool_t fAcceptedAllPhysicals ! did we take all physicals offered in AddObject()
Bool_t fInternalPIDs ! using internal physical IDs
UInt_t fNextInternalPID ! next internal physical ID (from 1 - 0 reserved)
Int_t fLightMask
TVirtualPad* fPad
TGLFaceSet* fComposite ! Paritally created composite
UInt_t fCSLevel
vector<CSPART_t> fCSTokens
UInt_t fAcceptedPhysicals
UInt_t fRejectedPhysicals
static const Int_t fgInitX
static const Int_t fgInitY
static const Int_t fgInitW
static const Int_t fgInitH
public:
static const TViewerOpenGL::EAction kNone
static const TViewerOpenGL::EAction kRotate
static const TViewerOpenGL::EAction kTruck
static const TViewerOpenGL::EAction kDolly
static const TViewerOpenGL::EAction kDrag
TViewerOpenGL(TVirtualPad * pad) :
TGMainFrame(gClient->GetDefaultRoot(), fgInitW, fgInitH),
fMainFrame(0), fV1(0), fV2(0), fShutter(0), fShutItem1(0), fShutItem2(0),
fShutItem3(0), fShutItem4(0), fL1(0), fL2(0), fL3(0), fL4(0),
fCanvasLayout(0), fMenuBar(0), fFileMenu(0), fViewMenu(0), fHelpMenu(0),
fMenuBarLayout(0), fMenuBarItemLayout(0), fMenuBarHelpLayout(0),
fContextMenu(0), fCanvasWindow(0), fCanvasContainer(0),
fColorEditor(0), fGeomEditor(0), fSceneEditor(0), fLightEditor(0),
fAction(kNone), fStartPos(0,0), fLastPos(0,0), fActiveButtonID(0),
fInternalRebuild(kFALSE), fAcceptedAllPhysicals(kTRUE),
fInternalPIDs(kFALSE), fNextInternalPID(1), // 0 reserved
fLightMask(0x1b), fPad(pad), fComposite(0), fCSLevel(0),
fAcceptedPhysicals(0), fRejectedPhysicals(0)
Create OpenGL viewer.
void CreateViewer()
Menus creation
~TViewerOpenGL()
void InitGL()
Actual GL window/context creation should have already been done in CreateViewer()
void Invalidate(UInt_t redrawLOD)
void MakeCurrent() const
void SwapBuffers() const
Bool_t HandleContainerEvent(Event_t *event)
Bool_t HandleContainerButton(Event_t *event)
Bool_t HandleContainerDoubleClick(Event_t *event)
Bool_t HandleContainerConfigure(Event_t *event)
Bool_t HandleContainerKey(Event_t *event)
Bool_t HandleContainerMotion(Event_t *event)
Bool_t HandleContainerExpose(Event_t *)
void DoSelect(Event_t *event, Bool_t invokeContext)
Take select lock on scene immediately we enter here - it is released
in the other (drawing) thread - see TGLViewer::Select()
Removed when gVirtualGL removed
void Show()
void CloseWindow()
void DoRedraw()
Take draw lock on scene immediately we enter here - it is released
in the other (drawing) drawing thread - see TGLViewer::Draw()
Removed when gVirtualGL removed
void PrintObjects()
Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t)
void ModifyScene(Int_t wid)
Bool_t PreferLocalFrame() const
void BeginScene()
void EndScene()
Bool_t RebuildScene()
If we accepted all offered physicals into the scene no point in
rebuilding it
Int_t AddObject(const TBuffer3D & buffer, Bool_t * addChildren)
Add an object to the viewer, using internal physical IDs
Int_t AddObject(UInt_t physicalID, const TBuffer3D & buffer, Bool_t * addChildren)
Add an object to the viewer, using an external physical ID.
Int_t ValidateObjectBuffer(const TBuffer3D & buffer, Bool_t logical) const
kCore: Should always be filled
TGLLogicalShape* CreateNewLogical(const TBuffer3D & buffer) const
Buffer should now be correctly filled
TGLPhysicalShape* CreateNewPhysical(UInt_t ID,
const TBuffer3D & buffer,
const TGLLogicalShape & logical) const
Extract indexed color from buffer
TODO: Still required? Better use proper color triplet in buffer?
Bool_t OpenComposite(const TBuffer3D & buffer, Bool_t * addChildren)
void CloseComposite()
If we have a partially complete composite build it now
void AddCompositeOp(UInt_t operation)
RootCsg::BaseMesh* BuildComposite()
Inline Functions
Bool_t BuildingScene() const
TViewerOpenGL TViewerOpenGL(const TViewerOpenGL&)
TViewerOpenGL& operator=(const TViewerOpenGL&)
TClass* Class()
TClass* IsA() const
void ShowMembers(TMemberInspector& insp, char* parent)
void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
Author: Timur Pocheptsov 03/08/2004
Last update: root/gl:$Name: $:$Id: TViewerOpenGL.cxx,v 1.69 2005/07/14 19:13:04 brun Exp $
Copyright (C) 1995-2004, Rene Brun and Fons Rademakers. *
ROOT page - Class index - Class Hierarchy - Top of the page
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.