Logo ROOT  
Reference Guide
TGLPlotCamera.h
Go to the documentation of this file.
1// @(#)root/gl:$Id$
2// Author: Timur Pocheptsov
3
4/*************************************************************************
5 * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12#ifndef ROOT_TGLPlotCamera
13#define ROOT_TGLPlotCamera
14
15#include "TGLUtil.h"
16#include "TArcBall.h"
17#include "TPoint.h"
18
19class TGLPaintDevice;
20
22{
23private:
24 TGLPlotCamera(const TGLPlotCamera&); // Not implemented
25 TGLPlotCamera& operator=(const TGLPlotCamera&); // Not implemented
26
27protected:
37
38public:
40 virtual ~TGLPlotCamera() {}
41
42 void SetViewport(const TGLRect &vp);
43
44 void SetViewVolume(const TGLVertex3 *box);
45 void StartRotation(Int_t px, Int_t py);
46 void RotateCamera(Int_t px, Int_t py);
47 void StartPan(Int_t px, Int_t py);
48 void Pan(Int_t px, Int_t py);
49 void ZoomIn();
50 void ZoomOut();
51 void SetCamera()const;
52 void Apply(Double_t phi, Double_t theta)const;
54 Int_t GetX()const;
55 Int_t GetY()const;
56 Int_t GetWidth()const;
57 Int_t GetHeight()const;
58
59 ClassDef(TGLPlotCamera, 0); // Camera for plot-painters.
60};
61
62#endif
int Int_t
Definition: RtypesCore.h:43
double Double_t
Definition: RtypesCore.h:57
#define ClassDef(name, id)
Definition: Rtypes.h:322
Implements the arc-ball rotation manipulator.
Definition: TArcBall.h:19
Camera for TGLPlotPainter and sub-classes.
Definition: TGLPlotCamera.h:22
TGLPlotCamera(const TGLPlotCamera &)
Int_t GetY() const
viewport[1]
Double_t fOrthoBox[4]
Definition: TGLPlotCamera.h:31
TGLPlotCamera & operator=(const TGLPlotCamera &)
Double_t fZoom
Definition: TGLPlotCamera.h:29
TGLPlotCamera()
Construct camera for plot painters.
Double_t fShift
Definition: TGLPlotCamera.h:30
void StartPan(Int_t px, Int_t py)
User clicks somewhere (px, py).
Bool_t ViewportChanged() const
Definition: TGLPlotCamera.h:53
virtual ~TGLPlotCamera()
Definition: TGLPlotCamera.h:40
void Apply(Double_t phi, Double_t theta) const
Applies rotations and translations before drawing.
TGLVertex3 fCenter
Definition: TGLPlotCamera.h:32
void SetViewport(const TGLRect &vp)
Setup viewport, if it was changed, plus reset arcball.
Int_t GetX() const
viewport[0]
void RotateCamera(Int_t px, Int_t py)
Mouse movement.
void SetCamera() const
Viewport and projection.
void ZoomIn()
Zoom in.
Bool_t fVpChanged
Definition: TGLPlotCamera.h:36
Int_t GetWidth() const
viewport[2]
void Pan(Int_t px, Int_t py)
Pan camera.
TGLRect fViewport
Definition: TGLPlotCamera.h:28
void ZoomOut()
Zoom out.
Int_t GetHeight() const
viewport[3]
TGLVector3 fTruck
Definition: TGLPlotCamera.h:33
TArcBall fArcBall
Definition: TGLPlotCamera.h:34
void StartRotation(Int_t px, Int_t py)
User clicks somewhere (px, py).
void SetViewVolume(const TGLVertex3 *box)
'box' is the TGLPlotPainter's back box's coordinates.
TPoint fMousePos
Definition: TGLPlotCamera.h:35
Viewport (pixel base) 2D rectangle class.
Definition: TGLUtil.h:421
3 component (x/y/z) vector class.
Definition: TGLUtil.h:247
3 component (x/y/z) vertex class.
Definition: TGLUtil.h:83
Definition: TPoint.h:31
void box(Int_t pat, Double_t x1, Double_t y1, Double_t x2, Double_t y2)
Definition: fillpatterns.C:1