library: libCore
#include "TView.h"

TView


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

class TView : public TObject, public TAttLine

Inheritance Chart:
TObject
TAttLine
<-
TView

    protected:
void ResetView(Double_t longitude, Double_t latitude, Double_t psi, Int_t& irep) public:
TView() TView(Int_t system) TView(const Float_t* rmin, const Float_t* rmax, Int_t system = 1) TView(const Double_t* rmin, const Double_t* rmax, Int_t system = 1) TView(const TView&) virtual ~TView() static void AdjustPad(TVirtualPad* pad = 0) virtual void AdjustScales(TVirtualPad* pad = 0) virtual void AxisVertex(Double_t ang, Double_t* av, Int_t& ix1, Int_t& ix2, Int_t& iy1, Int_t& iy2, Int_t& iz1, Int_t& iz2) virtual void Centered() virtual void Centered3DImages(TVirtualPad* pad = 0) static TClass* Class() virtual void DefinePerspectiveView() virtual void DefineViewDirection(const Double_t* s, const Double_t* c, Double_t cosphi, Double_t sinphi, Double_t costhe, Double_t sinthe, Double_t cospsi, Double_t sinpsi, Double_t* tnorm, Double_t* tback) virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py) virtual void ExecuteRotateView(Int_t event, Int_t px, Int_t py) virtual void FindNormal(Double_t x, Double_t y, Double_t z, Double_t& zn) virtual void FindPhiSectors(Int_t iopt, Int_t& kphi, Double_t* aphi, Int_t& iphi1, Int_t& iphi2) virtual void FindScope(Double_t* scale, Double_t* center, Int_t& irep) virtual void FindThetaSectors(Int_t iopt, Double_t phi, Int_t& kth, Double_t* ath, Int_t& ith1, Int_t& ith2) virtual void Front() virtual void FrontView(TVirtualPad* pad = 0) Bool_t GetAutoRange() virtual Int_t GetDistancetoAxis(Int_t axis, Int_t px, Int_t py, Double_t& ratio) Double_t GetDproj() const Double_t GetDview() const Double_t GetExtent() const Double_t GetLatitude() Double_t GetLongitude() TSeqCollection* GetOutline() Double_t GetPsi() virtual void GetRange(Float_t* min, Float_t* max) virtual void GetRange(Double_t* min, Double_t* max) Double_t* GetRmax() Double_t* GetRmin() Int_t GetSystem() Double_t* GetTback() Double_t* GetTN() Double_t* GetTnorm() void GetWindow(Double_t& u0, Double_t& v0, Double_t& du, Double_t& dv) const Double_t GetWindowHeight() const Double_t GetWindowWidth() const virtual TClass* IsA() const Bool_t IsClippedNDC(Double_t* p) const Bool_t IsPerspective() const Bool_t IsViewChanged() const void MoveFocus(Double_t* center, Double_t dx, Double_t dy, Double_t dz, Int_t nsteps = 10, Double_t dlong = 0, Double_t dlat = 0, Double_t dpsi = 0) virtual void MoveViewCommand(Char_t chCode, Int_t count = 1) void MoveWindow(Char_t option) virtual void NDCtoWC(const Float_t* pn, Float_t* pw) virtual void NDCtoWC(const Double_t* pn, Double_t* pw) virtual void NormalWCtoNDC(const Float_t* pw, Float_t* pn) virtual void NormalWCtoNDC(const Double_t* pw, Double_t* pn) TView& operator=(const TView&) virtual void PadRange(Int_t rback) void ResizePad() virtual void RotateView(Double_t phi, Double_t theta, TVirtualPad* pad = 0) virtual void SetAutoRange(Bool_t autorange = kTRUE) virtual void SetAxisNDC(const Double_t* x1, const Double_t* x2, const Double_t* y1, const Double_t* y2, const Double_t* z1, const Double_t* z2) void SetDefaultWindow() void SetDproj(Double_t dproj) void SetDview(Double_t dview) void SetLatitude(Double_t latitude) void SetLongitude(Double_t longitude) virtual void SetOutlineToCube() virtual void SetParallel() virtual void SetPerspective() void SetPsi(Double_t psi) virtual void SetRange(const Double_t* min, const Double_t* max) virtual void SetRange(Double_t x0, Double_t y0, Double_t z0, Double_t x1, Double_t y1, Double_t z1, Int_t flag = 0) virtual void SetSystem(Int_t system) virtual void SetView(Double_t longitude, Double_t latitude, Double_t psi, Int_t& irep) void SetViewChanged(Bool_t flag = kTRUE) void SetWindow(Double_t u0, Double_t v0, Double_t du, Double_t dv) virtual void ShowAxis() virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Side() virtual void SideView(TVirtualPad* pad = 0) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b) virtual void ToggleRulers(TVirtualPad* pad = 0) virtual void ToggleZoom(TVirtualPad* pad = 0) virtual void Top() virtual void TopView(TVirtualPad* pad = 0) virtual void UnZoom() virtual void UnzoomView(TVirtualPad* pad = 0, Double_t unZoomFactor = 1.25) virtual void WCtoNDC(const Float_t* pw, Float_t* pn) virtual void WCtoNDC(const Double_t* pw, Double_t* pn) virtual void Zoom() virtual void ZoomIn() virtual void ZoomMove() virtual void ZoomOut() virtual void ZoomView(TVirtualPad* pad = 0, Double_t zoomFactor = 1.25)

Data Members


    protected:
Double_t fLatitude View angle latitude Double_t fLongitude View angle longitude Double_t fPsi View angle psi Double_t fDview Distance from COP to COV Double_t fDproj Distance from COP to projection plane Double_t fUpix pad X size in pixels Double_t fVpix pad Y size in pixels Double_t fTN[16] Double_t fTB[16] Double_t fRmax[3] Upper limits of object Double_t fRmin[3] Lower limits of object Double_t fUVcoord[4] Viewing window limits Double_t fTnorm[16] Transformation matrix Double_t fTback[16] Back transformation matrix Double_t fX1[3] First coordinate of X axis Double_t fX2[3] Second coordinate of X axis Double_t fY1[3] First coordinate of Y axis Double_t fY2[3] Second coordinate of Y axis Double_t fZ1[3] First coordinate of Z axis Double_t fZ2[3] Second coordinate of Z axis Int_t fSystem Coordinate system TSeqCollection* fOutline Collection of outline's objects Bool_t fDefaultOutline Set to TRUE if outline is default cube Bool_t fAutoRange Set to TRUE if range computed automatically Bool_t fChanged ! Set to TRUE after ExecuteRotateView public:
static const enum TView:: kPerspective

Class Description

*-*-*-*-*-*-*-*-*-*-*-*-*The V I E W class*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
*-*                      =================                              *
*-*                                                                     *
*-*   This package was originally written by Evgueni Tcherniaev         *
*-*   from IHEP/Protvino.                                               *
*-*                                                                     *
*-*   The original Fortran implementation was adapted to HIGZ/PAW       *
*-*   by Olivier Couet and  Evgueni Tcherniaev.                         *
*-*                                                                     *
*-*   This View class is a subset of the original system                *
*-*   It has been converted to a C++ class  by Rene Brun                *
*-*                                                                     *
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

TView()
*-*-*-*-*-*-*-*-*-*-*-*-*-*View default constructor*-*-*-*-*-*-*-*-*-*-*-*-*
*-*                        ========================

~TView()
*-*-*-*-*-*-*-*-*-*-*-*-*-*View default destructor*-*-*-*-*-*-*-*-*-*-*-*-*
*-*                        =======================

TView(Int_t system)
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*View constructor*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
*-*                            ================
*-*    Creates a 3-D view in the current pad
*-*    By default pad range in 3-D view is (-1,-1,1,1), so ...
*-*
*-*    Before drawing a 3-D object in a pad, a 3-D view must be created.
*-*    Note that a view is automatically created when drawing legos or surfaces.
*-*
*-*   The coordinate system is selected via system:
*-*    system = 1  Cartesian
*-*    system = 2  Polar
*-*    system = 3  Cylindrical
*-*    system = 4  Spherical
*-*    system = 5  PseudoRapidity/Phi
*-*    system = 11 Perspective view
*-*
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

TView(const Float_t *rmin, const Float_t *rmax, Int_t system)
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*View constructor*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
*-*                            ================
*-*    Creates a 3-D view in the current pad
*-*  rmin[3], rmax[3] are the limits of the object depending on
*-*  the selected coordinate system
*-*
*-*   Before drawing a 3-D object in a pad, a 3-D view must be created.
*-*   Note that a view is automatically created when drawing legos or surfaces.
*-*
*-*   The coordinate system is selected via system:
*-*    system = 1  Cartesian
*-*    system = 2  Polar
*-*    system = 3  Cylindrical
*-*    system = 4  Spherical
*-*    system = 5  PseudoRapidity/Phi
*-*
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

TView(const Double_t *rmin, const Double_t *rmax, Int_t system)
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*View constructor*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
*-*                            ================
*-*    Creates a 3-D view in the current pad
*-*  rmin[3], rmax[3] are the limits of the object depending on
*-*  the selected coordinate system
*-*
*-*   Before drawing a 3-D object in a pad, a 3-D view must be created.
*-*   Note that a view is automatically created when drawing legos or surfaces.
*-*
*-*   The coordinate system is selected via system:
*-*    system = 1  Cartesian
*-*    system = 2  Polar
*-*    system = 3  Cylindrical
*-*    system = 4  Spherical
*-*    system = 5  PseudoRapidity/Phi
*-*
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

void AxisVertex(Double_t ang, Double_t *av, Int_t &ix1, Int_t &ix2, Int_t &iy1, Int_t &iy2, Int_t &iz1, Int_t &iz2)
*-*-*-*-*-*-*-*-*-*-*-*-*Define axis  vertices*-*-*-*-*-*-*-*-*-*-*-*-*-*
*-*                      =====================                          *
*-*                                                                     *
*-*    Input  ANG     - angle between X and Y axis                      *
*-*                                                                     *
*-*    Output: AV(3,8) - axis vertixes                                  *
*-*            IX1     - 1st point of X-axis                            *
*-*            IX2     - 2nd point of X-axis                            *
*-*            IY1     - 1st point of Y-axis                            *
*-*            IY2     - 2nd point of Y-axis                            *
*-*            IZ1     - 1st point of Z-axis                            *
*-*            IZ2     - 2nd point of Z-axis                            *
*-*                                                                     *
*-*                 8                        6                          *
*-*                / \                      /|\                         *
*-*             5 /   \ 7                5 / | \ 7                      *
*-*              |\   /|                  |  |  |                       *
*-*  THETA < 90  | \6/ |     THETA > 90   | /2\ |                       *
*-*  (Top view)  |  |  |   (Bottom view)  |/   \|                       *
*-*             1 \ | /3                 1 \   /3                       *
*-*                \|/                      \ /                         *
*-*                 2                        4                          *
*-*                                                                     *
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

void DefinePerspectiveView()
*-*-*-*-*-*-*-*-*-*-*-*-*-*Define perspective view  *-*-*-*-*-*-*-*-*-*-*
*-*              ================================================       *
*-*                                                                     *
*-*              Compute transformation matrix from world coordinates   *
*-*              to normalised coordinates (-1 to +1)                   *
   Input :
      theta, phi - spherical angles giving the direction of projection
      psi - screen rotation angle
      cov[3] - center of view
      dview - distance from COV to COP (center of projection)
      umin, umax, vmin, vmax - view window in projection plane
      dproj - distance from COP to projection plane
      bcut, fcut - backward/forward range w.r.t projection plane (fcut<=0)
   Output :
      nper[16] - normalizing transformation
 compute tr+rot to get COV in origin, view vector parallel to -Z axis, up vector
 parallel to Y.
                      ^Yv   UP ^  proj. plane
                     |        |   /|
                    |        |  /  |
                   |   dproj  /  x--- center of window (COW)
              COV |----------|--x--|------------> Zv
		             /           | VRP'z
	              /   --->      |  
             /     VPN       |
            Xv

   1 - translate COP to origin of MARS : Tper = T(-copx, -copy, -copz)
   2 - rotate VPN : R = Rz(-psi)*Rx(-theta)*Rz(-phi) (inverse Euler)
   3 - left-handed screen reference to right-handed one of MARS : Trl

   T12 = Tper*R*Trl


void DefineViewDirection(const Double_t *s, const Double_t *c, Double_t cosphi, Double_t sinphi, Double_t costhe, Double_t sinthe, Double_t cospsi, Double_t sinpsi, Double_t *tnorm, Double_t *tback)
*-*-*-*-*-*-*-*-*Define view direction (in spherical coordinates)-*-*-*-*
*-*              ================================================       *
*-*                                                                     *
*-*              Compute transformation matrix from world coordinates   *
*-*              to normalised coordinates (-1 to +1)                   *
*-*                                                                     *
*-*    Input: S(3)    - scale factors                                   *
*-*           C(3)    - centre of scope                                 *
*-*           COSPHI  - longitude COS                                   *
*-*           SINPHI  - longitude SIN                                   *
*-*           COSTHE  - latitude COS (angle between +Z and view direc.) *
*-*           SINTHE  - latitude SIN                                    *
*-*           COSPSI  - screen plane rotation angle COS                 *
*-*           SINPSI  - screen plane rotation angle SIN                 *
*-*                                                                     *
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

void ExecuteEvent(Int_t event, Int_t px, Int_t py)
*-*-*-*-*-*-*-*-*Execute action corresponding to one event*-*-*-*-*-*-*-*-*

void ExecuteRotateView(Int_t event, Int_t px, Int_t py)
*-*-*-*-*-*-*-*-*Execute action corresponding to one event*-*-*-*-*-*-*-*-*-*
*-*              =========================================                    *
*-*  This member function is called when a object is clicked with the locator *
*-*                                                                           *
*-*  If Left button clicked in the object area, while the button is kept down *
*-*  the cube representing the surrounding frame for the corresponding        *
*-*  new latitude and longitude position is drawn.                                         *
*-*                                                                           *
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

void FindNormal(Double_t x, Double_t y, Double_t z, Double_t &zn)
*-*-*-*-*-*-*Find Z component of NORMAL in normalized coordinates-*-*-*-*
*-*          ====================================================       *
*-*                                                                     *
*-*    Input: X - X-component of NORMAL                                 *
*-*           Y - Y-component of NORMAL                                 *
*-*           Z - Z-component of NORMAL                                 *
*-*                                                                     *
*-*    Output: ZN - Z-component of NORMAL in normalized coordinates     *
*-*                                                                     *
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

void FindPhiSectors(Int_t iopt, Int_t &kphi, Double_t *aphi, Int_t &iphi1, Int_t &iphi2)
*-*-*-*-*-*-*-*-*-*-*-*-*Find critical PHI sectors*-*-*-*-*-*-*-*-*-*-*-*
*-*                      =========================                      *
*-*                                                                     *
*-*    Input: IOPT    - options: 1 - from BACK to FRONT 'BF'            *
*-*                              2 - from FRONT to BACK 'FB'            *
*-*           KPHI    - number of phi sectors                           *
*-*           APHI(*) - PHI separators (modified internally)            *
*-*                                                                     *
*-*    Output: IPHI1  - initial sector                                  *
*-*            IPHI2  - final sector                                    *
*-*                                                                     *
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

void FindThetaSectors(Int_t iopt, Double_t phi, Int_t &kth, Double_t *ath, Int_t &ith1, Int_t &ith2)
*-*-*-*-*-*-*-Find critical THETA sectors for given PHI sector*-*-*-*-*-*
*-*           ================================================          *
*-*                                                                     *
*-*    Input: IOPT        - options: 1 - from BACK to FRONT 'BF'        *
*-*                                  2 - from FRONT to BACK 'FB'        *
*-*           PHI         - PHI sector                                  *
*-*           KTH         - number of THETA sectors                     *
*-*           ATH(*)      - THETA separators (modified internally)      *
*-*                                                                     *
*-*    Output: ITH1  - initial sector                                   *
*-*            ITH2  - final sector                                     *
*-*                                                                     *
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

void FindScope(Double_t *scale, Double_t *center, Int_t &irep)
*-*-*-*-*-*-*-*Find centre of a MIN-MAX scope and scale factors-*-*-*-*-*
*-*            ================================================         *
*-*                                                                     *
*-*    Output: SCALE(3)  - scale factors                                *
*-*            CENTER(3) - centre                                       *
*-*            IREP      - reply (-1 if error in min-max)               *
*-*                                                                     *
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

Int_t GetDistancetoAxis(Int_t axis, Int_t px, Int_t py, Double_t &ratio)
*-*-*-*-*-*-*-*-*-*-*-*-*Return distance to axis from point px,py*-*-*-*
*-*                      ========================================
*-*
*-*
*-*  Algorithm:
*-*
*-*    A(x1,y1)         P                             B(x2,y2)
*-*    ------------------------------------------------
*-*                     I
*-*                     I
*-*                     I
*-*                     I
*-*                    M(x,y)
*-*
*-*  Let us call  a = distance AM     A=a**2
*-*               b = distance BM     B=b**2
*-*               c = distance AB     C=c**2
*-*               d = distance PM     D=d**2
*-*               u = distance AP     U=u**2
*-*               v = distance BP     V=v**2     c = u + v
*-*
*-*  D = A - U
*-*  D = B - V  = B -(c-u)**2
*-*     ==> u = (A -B +C)/2c
*-*
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

Double_t GetExtent() const
*-*-*-*-*-*-*-*-*-*-*-*-*-*Get maximum view extent-*-*-*-*-*-*-*-*-*-*-*-*-*
*-*                        =======================
*-*

void GetRange(Float_t *min, Float_t *max)
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*Get Range function-*-*-*-*-*-*-*-*-*-*-*-*-*
*-*                            ==================
*-*

void GetRange(Double_t *min, Double_t *max)
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*Get Range function-*-*-*-*-*-*-*-*-*-*-*-*-*
*-*                            ==================
*-*

void GetWindow(Double_t &u0, Double_t &v0, Double_t &du, Double_t &dv) const
 Get current window extent.

Bool_t IsClippedNDC(Double_t *p) const
*-*-*-*-*-*-*Check if point is clipped in perspective view-*-*-*-*-*-*-*-*
*-*          =============================================
*-*

void NDCtoWC(const Float_t* pn, Float_t* pw)
*-*-*-*-*-*-*Transfer point from normalized to world coordinates*-*-*-*-*
*-*          ===================================================        *
*-*                                                                     *
*-*    Input: PN(3) - point in world coordinate system                  *
*-*           PW(3) - point in normalized coordinate system             *
*-*                                                                     *
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

void NDCtoWC(const Double_t* pn, Double_t* pw)
*-*-*-*-*-*-*Transfer point from normalized to world coordinates*-*-*-*-*
*-*          ===================================================        *
*-*                                                                     *
*-*    Input: PN(3) - point in world coordinate system                  *
*-*           PW(3) - point in normalized coordinate system             *
*-*                                                                     *
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

void NormalWCtoNDC(const Float_t *pw, Float_t *pn)
*-*-*Transfer vector of NORMAL from word to normalized coodinates-*-*-*-*
*-*  ============================================================
*-*
*-*    Input: PW(3) - vector of NORMAL in word coordinate system
*-*           PN(3) - vector of NORMAL in normalized coordinate system
*-*
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

void NormalWCtoNDC(const Double_t *pw, Double_t *pn)
*-*-*Transfer vector of NORMAL from word to normalized coodinates-*-*-*-*
*-*  ============================================================
*-*
*-*    Input: PW(3) - vector of NORMAL in word coordinate system
*-*           PN(3) - vector of NORMAL in normalized coordinate system
*-*
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

void PadRange(Int_t rback)
*-*-*-*-*Set the correct window size for lego and surface plots*-*-*-*-*
*-*      ======================================================
*-*
*-*  Set the correct window size for lego and surface plots.
*-*  And draw the background if necessary.
*-*
*-*    Input parameters:
*-*
*-*   RBACK : Background colour
*-*
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

void SetAxisNDC(const Double_t *x1, const Double_t *x2, const Double_t *y1, const Double_t *y2, const Double_t *z1, const Double_t *z2)
*-*-*-*-*-*-*-*-*-*-*-*-*Store axis coordinates in the NDC system*-*-*-*
*-*                      ========================================
*-*

void SetDefaultWindow()
 Set default viewing window

void SetOutlineToCube()
*-*-*-*-*-*-*This is a function which creates default outline*-*-*-*-*-*
*-*          ================================================          *
*-*                                                                    *
*-*      x = fRmin[0]        X = fRmax[0]                              *
*-*      y = fRmin[1]        Y = fRmax[1]                              *
*-*      z = fRmin[2]        Z = fRmax[2]                              *
*-*                                                                    *
*-*                                                                    *
*-*            (x,Y,Z) +---------+ (X,Y,Z)                             *
*-*                   /         /|                                     *
*-*                  /         / |                                     *
*-*                 /         /  |                                     *
*-*        (x,y,Z) +---------+   |                                     *
*-*                |         |   + (X,Y,z)                             *
*-*                |         |  /                                      *
*-*                |         | /                                       *
*-*                |         |/                                        *
*-*                +---------+                                         *
*-*             (x,y,z)   (X,y,z)                                      *
*-*                                                                    *
*-*                                                                    *
*-*                                                                    *
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**

void SetParallel()

void SetPerspective()

void SetRange(const Double_t *min, const Double_t *max)
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*Set Range function-*-*-*-*-*-*-*-*-*-*-*-*-*
*-*                            ==================
*-*

void SetRange(Double_t x0, Double_t y0, Double_t z0, Double_t x1, Double_t y1, Double_t z1, Int_t flag)
*-*-*-*-*-*-*-*-*-*-*-*Set 3-D View range*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
*-*                    ==================
*-*
*-* Input:  x0, y0, z0 are minimum coordinates
*-*         x1, y1, z1 are maximum coordinates
*-*
*-*         flag values are: 0 (set always) <- default
*-*                          1 (shrink view)
*-*                          2 (expand view)
*-*

void SetWindow(Double_t u0, Double_t v0, Double_t du, Double_t dv)
 Set viewing window.

void SetView(Double_t longitude, Double_t latitude, Double_t psi, Int_t &irep)

void ResizePad()
 Recompute window for perspective view

void ResetView(Double_t longitude, Double_t latitude, Double_t psi, Int_t &irep)
*-*-*-*-*-*-*-*-*Set view direction (in spherical coordinates)*-*-*-*-*-*
*-*              =============================================          *
*-*                                                                     *
*-*    Input  PHI     - longitude                                       *
*-*           THETA   - latitude (angle between +Z and view direction)  *
*-*           PSI     - rotation in screen plane                        *
*-*                                                                     *
*-*    Output: IREP   - reply (-1 if error in min-max)                  *
*-*                                                                     *
*-*    Errors: error in min-max scope                                   *
*-*                                                                     *
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

void WCtoNDC(const Float_t *pw, Float_t *pn)
*-*-*-*-*-*-*Transfer point from world to normalized coordinates*-*-*-*-*
*-*          ===================================================        *
*-*                                                                     *
*-*    Input: PW(3) - point in world coordinate system                  *
*-*           PN(3) - point in normalized coordinate system             *
*-*                                                                     *
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

void WCtoNDC(const Double_t *pw, Double_t *pn)
*-*-*-*-*-*-*Transfer point from world to normalized coordinates*-*-*-*-*
*-*          ===================================================        *
*-*                                                                     *
*-*    Input: PW(3) - point in world coordinate system                  *
*-*           PN(3) - point in normalized coordinate system             *
*-*                                                                     *
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

void AdjustPad(TVirtualPad *pad)
 Force the current pad to be updated

void RotateView(Double_t phi, Double_t theta, TVirtualPad *pad)
 API to rotate view and adjust the pad provided it the current one.

void SideView(TVirtualPad *pad)

void FrontView(TVirtualPad *pad)

void TopView(TVirtualPad *pad)

void ToggleRulers(TVirtualPad *pad)
 Turn on /off 3D axis

void ToggleZoom(TVirtualPad *pad)
 Turn on /off the interactive option to
  Zoom / Move / Change attributes of 3D axis correspond this view

void AdjustScales(TVirtualPad *pad)
 Adjust all sides of view in respect of the biggest one

void Centered3DImages(TVirtualPad *pad)
 Move view into the center of the scene

void UnzoomView(TVirtualPad *pad,Double_t unZoomFactor )
 unZOOM this view

void ZoomView(TVirtualPad *pad,Double_t zoomFactor)
 ZOOM this view

void MoveFocus(Double_t *cov, Double_t dx, Double_t dy, Double_t dz, Int_t nsteps, Double_t dlong, Double_t dlat, Double_t dpsi)
 Move focus to a different box position and extent in nsteps. Perform rotation
 with dlat,dlong,dpsi at each step.

void MoveViewCommand(Char_t option, Int_t count)
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
*-*          'a' //*-*  increase  scale factor (clip cube borders)
*-*          's' //*-*  decrease  scale factor (clip cube borders)
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

void MoveWindow(Char_t option)
 Move view window :
 l,L - left
 h,H - right
 u,U - down
 i,I - up

void ZoomIn()

void ZoomOut()

void Streamer(TBuffer &R__b)
 Stream an object of class TView.



Inline Functions


               Double_t GetDview() const
               Double_t GetDproj() const
                 Bool_t GetAutoRange()
               Double_t GetLatitude()
               Double_t GetLongitude()
               Double_t GetPsi()
              Double_t* GetRmax()
              Double_t* GetRmin()
        TSeqCollection* GetOutline()
              Double_t* GetTback()
              Double_t* GetTN()
              Double_t* GetTnorm()
                  Int_t GetSystem()
               Double_t GetWindowWidth() const
               Double_t GetWindowHeight() const
                 Bool_t IsPerspective() const
                 Bool_t IsViewChanged() const
                   void SetAutoRange(Bool_t autorange = kTRUE)
                   void SetDview(Double_t dview)
                   void SetDproj(Double_t dproj)
                   void SetLatitude(Double_t latitude)
                   void SetLongitude(Double_t longitude)
                   void SetPsi(Double_t psi)
                   void SetSystem(Int_t system)
                   void SetViewChanged(Bool_t flag = kTRUE)
                   void Centered()
                   void Front()
                   void Side()
                   void Top()
                   void ShowAxis()
                   void ZoomMove()
                   void Zoom()
                   void UnZoom()
                TClass* Class()
                TClass* IsA() const
                   void ShowMembers(TMemberInspector& insp, char* parent)
                   void StreamerNVirtual(TBuffer& b)
                  TView TView(const TView&)
                 TView& operator=(const TView&)


Author: Rene Brun, Nenad Buncic, Evgueni Tcherniaev, Olivier Couet 18/08/95
Last update: root/base:$Name: $:$Id: TView.cxx,v 1.29 2005/09/02 07:51:51 brun Exp $
Copyright (C) 1995-2000, 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.