| library: libCore #include "TView.h"
 | 
TView
class description - source file - inheritance tree (.pdf)
    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)
    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  
*-*-*-*-*-*-*-*-*-*-*-*-*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)
 Set to side view.
void FrontView(TVirtualPad *pad)
 Set to front view.
void TopView(TVirtualPad *pad)
 Set to top view.
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()
 Zoom in.
void ZoomOut()
 Zoom out.
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.30 2005/11/16 20:04:11 pcanal 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.