library: libRGL #include "TViewerOpenGL.h"

# TViewerOpenGL

class description - source file - inheritance tree (.pdf)

## class TViewerOpenGL : public TVirtualViewer3D, public TGMainFrame

| Inheritance Chart:

`TVirtualViewer3D`

`TObject`

<-

`TGObject`

<-

`TGWindow`

`TQObject`

<-

`TGFrame`

<-

`TGCompositeFrame`

<-

`TGMainFrame`

<-

`TViewerOpenGL`

        private:

                          TViewerOpenGL(const TViewerOpenGL&)
                     void CalculateViewports()
                     void CalculateViewvolumes()
             virtual void CloseWindow()
                     void CreateCameras()
                     void CreateViewer()
                     void DrawObjects() const
                     void MakeCurrent() const
                     void MoveCenter(Int_t key)
           TViewerOpenGL& operator=(const TViewerOpenGL&)
           virtual Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2)
                     void Show()
                     void SwapBuffers() const
          TGLSceneObject* TestSelection(Event_t*)
                     void UpdateRange(const TGLSelection* box)

        public:

                          TViewerOpenGL(TVirtualPad* pad)
                          ~TViewerOpenGL()
           static TClass* Class()
             virtual void CreateScene(Option_t*)
                   Bool_t HandleContainerButton(Event_t* ev)
                   Bool_t HandleContainerConfigure(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 void ShowMembers(TMemberInspector& insp, char* parent)
             virtual void Streamer(TBuffer& b)
                     void StreamerNVirtual(TBuffer& b)
             virtual void UpdateScene(Option_t*)

### Data Members

        private:

               TGCompositeFrame* fMainFrame
                TGVerticalFrame* fV1
                TGVerticalFrame* fV2
                 TGLColorEditor* fColorEditor
              TGLGeometryEditor* fGeomEditor
                 TGLSceneEditor* fSceneEditor
                 TGLLightEditor* fLightEditor
                       TGCanvas* fCanvasWindow
                  TGLRenderArea* fCanvasContainer
                      TGLRender* fRender
                      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
                      TGLCamera* fCamera[4]
                        Double_t fViewVolume[4]
                        Double_t fZoom[4]
                           Int_t fActiveViewport[4]
                           Int_t fLightMask
             pair<double,double> fRangeX
             pair<double,double> fRangeY
             pair<double,double> fRangeZ
             pair<double,double> fLastPosRot
                        Double_t fXc
                        Double_t fYc
                        Double_t fZc
                        Double_t fRad
                          Bool_t fPressed
                       TArcBall* fArcBall
                          UInt_t fNbShapes
                          TPoint fLastPos
           TViewerOpenGL::EViews fConf
                   TContextMenu* fContextMenu
                 TGLSceneObject* fSelectedObj
          TViewerOpenGL::EAction fAction
              static const Int_t fgInitX
              static const Int_t fgInitY
              static const Int_t fgInitW
              static const Int_t fgInitH

        public:

           static const TViewerOpenGL::EViews kXOY
           static const TViewerOpenGL::EViews kXOZ
           static const TViewerOpenGL::EViews kYOZ
           static const TViewerOpenGL::EViews kPERSP
          static const TViewerOpenGL::EAction kNoAction
          static const TViewerOpenGL::EAction kRotating
          static const TViewerOpenGL::EAction kPicking
          static const TViewerOpenGL::EAction kZooming

## Class Description

TViewerOpenGL(TVirtualPad * vp) :TVirtualViewer3D(vp), TGMainFrame(gClient->GetDefaultRoot(), fgInitW, fgInitH), fCamera(), fViewVolume(), fZoom(), fActiveViewport()

     Create OpenGL viewer.

void CreateViewer()

     Menus creation

~TViewerOpenGL()

void MakeCurrent()const

void SwapBuffers()const

Bool_t HandleContainerButton(Event_t *event)

     Handle mouse button events.
     Buttons 4 and 5 are from the mouse scroll wheel

Bool_t HandleContainerConfigure(Event_t *event)

Bool_t HandleContainerKey(Event_t *event)

Bool_t HandleContainerMotion(Event_t *event)

Bool_t HandleContainerExpose(Event_t *)

void CreateScene(Option_t *)

void UpdateScene(Option_t *)

void Show()

void CloseWindow()

void DrawObjects()const

void UpdateRange(const TGLSelection *box)

Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t)

TGLSceneObject* TestSelection(Event_t *event)

void CalculateViewports()

void CalculateViewvolumes()

void CreateCameras()

void ModifyScene(Int_t wid)

void MoveCenter(Int_t key)

### Inline Functions

             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.44 2004/12/14 16:09:50 brun Exp $
Copyright (C) 1995-2004, Rene Brun and Fons Rademakers. *