TView.h

Go to the documentation of this file.
00001 // @(#)root/gpad:$Id: TView.h 20882 2007-11-19 11:31:26Z rdm $
00002 // Author: Rene Brun, Nenad Buncic, Evgueni Tcherniaev, Olivier Couet   18/08/95
00003 
00004 /*************************************************************************
00005  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
00006  * All rights reserved.                                                  *
00007  *                                                                       *
00008  * For the licensing terms see $ROOTSYS/LICENSE.                         *
00009  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
00010  *************************************************************************/
00011 
00012 
00013 #ifndef ROOT_TView
00014 #define ROOT_TView
00015 
00016 
00017 /////////////////////////////////////////////////////////////////////////
00018 //                                                                     //
00019 // TView  abstract interface for 3-D views                             //
00020 //                                                                     //
00021 /////////////////////////////////////////////////////////////////////////
00022 
00023 
00024 #ifndef ROOT_TObject
00025 #include "TObject.h"
00026 #endif
00027 
00028 #ifndef ROOT_TAttLine
00029 #include "TAttLine.h"
00030 #endif
00031 
00032 class TList;
00033 class TSeqCollection;
00034 class TVirtualPad;
00035 
00036 class TView : public TObject, public TAttLine {
00037 
00038 public:
00039 
00040    TView() {}
00041    TView(const TView &);
00042    virtual ~TView() {}
00043 
00044    virtual void          DefinePerspectiveView() = 0;
00045    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) = 0;
00046    virtual void          DefineViewDirection(const Double_t *s, const Double_t *c,
00047                                     Double_t cosphi, Double_t sinphi,
00048                                     Double_t costhe, Double_t sinthe,
00049                                     Double_t cospsi, Double_t sinpsi,
00050                                     Double_t *tnorm, Double_t *tback) = 0;
00051    virtual void          DrawOutlineCube(TList *outline, Double_t *rmin, Double_t *rmax) = 0;
00052    virtual void          ExecuteEvent(Int_t event, Int_t px, Int_t py) = 0;
00053    virtual void          ExecuteRotateView(Int_t event, Int_t px, Int_t py) = 0;
00054    virtual void          FindScope(Double_t *scale, Double_t *center, Int_t &irep) = 0;
00055    virtual Int_t         GetDistancetoAxis(Int_t axis, Int_t px, Int_t py, Double_t &ratio) = 0;
00056    virtual Double_t      GetDview() const = 0;
00057    virtual Double_t      GetDproj() const = 0;
00058    virtual Double_t      GetExtent() const = 0;
00059    virtual Bool_t        GetAutoRange() = 0;
00060    virtual Double_t      GetLatitude() = 0;
00061    virtual Double_t      GetLongitude() = 0;
00062    virtual Double_t      GetPsi() = 0;
00063    virtual void          GetRange (Float_t *min, Float_t *max) = 0;
00064    virtual void          GetRange (Double_t *min, Double_t *max) = 0;
00065    virtual Double_t     *GetRmax() = 0;
00066    virtual Double_t     *GetRmin() = 0;
00067    virtual TSeqCollection *GetOutline() = 0;
00068    virtual Double_t     *GetTback() = 0;
00069    virtual Double_t     *GetTN() = 0;
00070    virtual Double_t     *GetTnorm() = 0;
00071    virtual Int_t         GetSystem() = 0;
00072    virtual void          GetWindow(Double_t &u0, Double_t &v0, Double_t &du, Double_t &dv) const = 0;
00073    virtual Double_t      GetWindowWidth() const = 0;
00074    virtual Double_t      GetWindowHeight() const = 0;
00075    virtual void          FindNormal(Double_t x, Double_t  y, Double_t z, Double_t &zn) = 0;
00076    virtual void          FindPhiSectors(Int_t iopt, Int_t &kphi, Double_t *aphi, Int_t &iphi1, Int_t &iphi2) = 0;
00077    virtual void          FindThetaSectors(Int_t iopt, Double_t phi, Int_t &kth, Double_t *ath, Int_t &ith1, Int_t &ith2) = 0;
00078    virtual Bool_t        IsClippedNDC(Double_t *p) const = 0;
00079    virtual Bool_t        IsPerspective() const = 0;
00080    virtual Bool_t        IsViewChanged() const = 0;
00081    virtual void          NDCtoWC(const Float_t *pn, Float_t *pw) = 0;
00082    virtual void          NDCtoWC(const Double_t *pn, Double_t *pw) = 0;
00083    virtual void          NormalWCtoNDC(const Float_t *pw, Float_t *pn) = 0;
00084    virtual void          NormalWCtoNDC(const Double_t *pw, Double_t *pn) = 0;
00085    virtual void          PadRange(Int_t rback) = 0;
00086    virtual void          ResizePad() = 0;
00087    virtual void          SetAutoRange(Bool_t autorange=kTRUE) = 0;
00088    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) = 0;
00089    virtual void          SetDefaultWindow() = 0;
00090    virtual void          SetDview(Double_t dview) = 0;
00091    virtual void          SetDproj(Double_t dproj) = 0;
00092    virtual void          SetLatitude(Double_t latitude) = 0;
00093    virtual void          SetLongitude(Double_t longitude) = 0;
00094    virtual void          SetPsi(Double_t psi) = 0;
00095    virtual void          SetOutlineToCube() = 0;
00096    virtual void          SetParallel() = 0;
00097    virtual void          SetPerspective() = 0;
00098    virtual void          SetRange(const Double_t *min, const Double_t *max) = 0;
00099    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) = 0;
00100    virtual void          SetSystem(Int_t system) = 0;
00101    virtual void          SetView(Double_t longitude, Double_t latitude, Double_t psi, Int_t &irep) = 0;
00102    virtual void          SetViewChanged(Bool_t flag=kTRUE) = 0;
00103    virtual void          SetWindow(Double_t u0, Double_t v0, Double_t du, Double_t dv) = 0;
00104    virtual void          WCtoNDC(const Float_t *pw, Float_t *pn) = 0;
00105    virtual void          WCtoNDC(const Double_t *pw, Double_t *pn) = 0;
00106 
00107 //--
00108    virtual void          MoveFocus(Double_t *center, Double_t dx, Double_t dy, Double_t dz, Int_t nsteps=10,
00109                             Double_t dlong=0, Double_t dlat=0, Double_t dpsi=0) = 0;
00110    virtual void          MoveViewCommand(Char_t chCode, Int_t count=1) = 0;
00111    virtual void          MoveWindow(Char_t option) = 0;
00112 
00113    virtual void          AdjustScales(TVirtualPad *pad=0) = 0;
00114    virtual void          Centered3DImages(TVirtualPad *pad=0) = 0;
00115    virtual void          Centered() = 0;
00116    virtual void          FrontView(TVirtualPad *pad=0) = 0;
00117    virtual void          Front() = 0;
00118 
00119    virtual void          ZoomIn() = 0;
00120    virtual void          ZoomOut() = 0;
00121    virtual void          ZoomView(TVirtualPad *pad=0, Double_t zoomFactor = 1.25 ) = 0;
00122    virtual void          UnzoomView(TVirtualPad *pad=0,Double_t unZoomFactor = 1.25) = 0;
00123 
00124    virtual void          RotateView(Double_t phi, Double_t theta, TVirtualPad *pad=0) = 0;
00125    virtual void          SideView(TVirtualPad *pad=0) = 0;
00126    virtual void          Side() = 0;
00127    virtual void          TopView(TVirtualPad *pad=0) = 0;
00128    virtual void          Top() = 0;
00129 
00130    virtual void          ToggleRulers(TVirtualPad *pad=0) = 0;
00131    virtual void          ShowAxis() = 0;
00132    virtual void          ToggleZoom(TVirtualPad *pad=0) = 0;
00133    virtual void          ZoomMove() = 0;
00134    virtual void          Zoom() = 0;
00135    virtual void          UnZoom() = 0;
00136 
00137    static TView         *CreateView(Int_t system=1, const Double_t *rmin=0, const Double_t *rmax=0);
00138    
00139    ClassDef(TView,3);  //3-D View abstract interface for 3-D views
00140 };
00141 
00142 #endif
00143 

Generated on Tue Jul 5 14:13:58 2011 for ROOT_528-00b_version by  doxygen 1.5.1