library: libCore
#include "TView.h"

TView


class description - header file - source file
viewCVS header - viewCVS source

class TView: public TObject, public TAttLine

Inheritance Inherited Members Includes Libraries
Class Charts

Function Members (Methods)

Display options:
Show inherited
Show non-public
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)
virtual~TView()
voidTObject::AbstractMethod(const char* method) const
static voidAdjustPad(TVirtualPad* pad = 0)
virtual voidAdjustScales(TVirtualPad* pad = 0)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidAxisVertex(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 voidTObject::Browse(TBrowser* b)
virtual voidCentered()
virtual voidCentered3DImages(TVirtualPad* pad = 0)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
virtual voidDefinePerspectiveView()
virtual voidDefineViewDirection(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 voidTObject::Delete(Option_t* option = "")
Int_tTAttLine::DistancetoLine(Int_t px, Int_t py, Double_t xp1, Double_t yp1, Double_t xp2, Double_t yp2)
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() const
virtual TObject*TObject::DrawClone(Option_t* option = "") const
virtual voidTObject::Dump() const
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidExecuteRotateView(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual voidFindNormal(Double_t x, Double_t y, Double_t z, Double_t& zn)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual voidFindPhiSectors(Int_t iopt, Int_t& kphi, Double_t* aphi, Int_t& iphi1, Int_t& iphi2)
virtual voidFindScope(Double_t* scale, Double_t* center, Int_t& irep)
virtual voidFindThetaSectors(Int_t iopt, Double_t phi, Int_t& kth, Double_t* ath, Int_t& ith1, Int_t& ith2)
virtual voidFront()
virtual voidFrontView(TVirtualPad* pad = 0)
Bool_tGetAutoRange()
virtual Int_tGetDistancetoAxis(Int_t axis, Int_t px, Int_t py, Double_t& ratio)
Double_tGetDproj() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
Double_tGetDview() const
Double_tGetExtent() const
virtual const char*TObject::GetIconName() const
Double_tGetLatitude()
virtual Color_tTAttLine::GetLineColor() const
virtual Style_tTAttLine::GetLineStyle() const
virtual Width_tTAttLine::GetLineWidth() const
Double_tGetLongitude()
virtual const char*TObject::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
TSeqCollection*GetOutline()
Double_tGetPsi()
virtual voidGetRange(Float_t* min, Float_t* max)
virtual voidGetRange(Double_t* min, Double_t* max)
Double_t*GetRmax()
Double_t*GetRmin()
Int_tGetSystem()
Double_t*GetTback()
virtual const char*TObject::GetTitle() const
Double_t*GetTN()
Double_t*GetTnorm()
virtual UInt_tTObject::GetUniqueID() const
voidGetWindow(Double_t& u0, Double_t& v0, Double_t& du, Double_t& dv) const
Double_tGetWindowHeight() const
Double_tGetWindowWidth() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() const
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
Bool_tIsClippedNDC(Double_t* p) const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
Bool_tIsPerspective() const
virtual Bool_tTObject::IsSortable() const
Bool_tIsViewChanged() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual voidTAttLine::Modify()
voidMoveFocus(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 voidMoveViewCommand(Char_t chCode, Int_t count = 1)
voidMoveWindow(Char_t option)
virtual voidNDCtoWC(const Float_t* pn, Float_t* pw)
virtual voidNDCtoWC(const Double_t* pn, Double_t* pw)
virtual voidNormalWCtoNDC(const Float_t* pw, Float_t* pn)
virtual voidNormalWCtoNDC(const Double_t* pw, Double_t* pn)
virtual Bool_tTObject::Notify()
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
virtual voidPadRange(Int_t rback)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
virtual voidTAttLine::ResetAttLine(Option_t* option = "")
voidTObject::ResetBit(UInt_t f)
voidResizePad()
virtual voidRotateView(Double_t phi, Double_t theta, TVirtualPad* pad = 0)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") const
virtual voidTAttLine::SaveLineAttributes(ostream& out, const char* name, Int_t coldef = 1, Int_t stydef = 1, Int_t widdef = 1)
virtual voidTObject::SavePrimitive(ostream& out, Option_t* option = "")
virtual voidSetAutoRange(Bool_t autorange = kTRUE)
virtual voidSetAxisNDC(const Double_t* x1, const Double_t* x2, const Double_t* y1, const Double_t* y2, const Double_t* z1, const Double_t* z2)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidSetDefaultWindow()
voidSetDproj(Double_t dproj)
virtual voidTObject::SetDrawOption(Option_t* option = "")
static voidTObject::SetDtorOnly(void* obj)
voidSetDview(Double_t dview)
voidSetLatitude(Double_t latitude)
virtual voidTAttLine::SetLineAttributes()
virtual voidTAttLine::SetLineColor(Color_t lcolor)
virtual voidTAttLine::SetLineStyle(Style_t lstyle)
virtual voidTAttLine::SetLineWidth(Width_t lwidth)
voidSetLongitude(Double_t longitude)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidSetOutlineToCube()
virtual voidSetParallel()
virtual voidSetPerspective()
voidSetPsi(Double_t psi)
virtual voidSetRange(const Double_t* min, const Double_t* max)
virtual voidSetRange(Double_t x0, Double_t y0, Double_t z0, Double_t x1, Double_t y1, Double_t z1, Int_t flag = 0)
virtual voidSetSystem(Int_t system)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidSetView(Double_t longitude, Double_t latitude, Double_t psi, Int_t& irep)
voidSetViewChanged(Bool_t flag = kTRUE)
voidSetWindow(Double_t u0, Double_t v0, Double_t du, Double_t dv)
virtual voidShowAxis()
virtual voidShowMembers(TMemberInspector& insp, char* parent)
virtual voidSide()
virtual voidSideView(TVirtualPad* pad = 0)
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidToggleRulers(TVirtualPad* pad = 0)
virtual voidToggleZoom(TVirtualPad* pad = 0)
virtual voidTop()
virtual voidTopView(TVirtualPad* pad = 0)
virtual voidUnZoom()
virtual voidUnzoomView(TVirtualPad* pad = 0, Double_t unZoomFactor = 1.25)
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual voidWCtoNDC(const Float_t* pw, Float_t* pn)
virtual voidWCtoNDC(const Double_t* pw, Double_t* pn)
virtual Int_tTObject::Write(const char* name = "0", Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = "0", Int_t option = 0, Int_t bufsize = 0) const
virtual voidZoom()
virtual voidZoomIn()
virtual voidZoomMove()
virtual voidZoomOut()
virtual voidZoomView(TVirtualPad* pad = 0, Double_t zoomFactor = 1.25)
protected:
TView(const TView&)
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
TView&operator=(const TView&)
voidResetView(Double_t longitude, Double_t latitude, Double_t psi, Int_t& irep)

Data Members

public:
enum { kPerspective
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
Double_tfLatitudeView angle latitude
Double_tfLongitudeView angle longitude
Double_tfPsiView angle psi
Double_tfDviewDistance from COP to COV
Double_tfDprojDistance from COP to projection plane
Double_tfUpixpad X size in pixels
Double_tfVpixpad Y size in pixels
Double_tfTN[16]
Double_tfTB[16]
Double_tfRmax[3]Upper limits of object
Double_tfRmin[3]Lower limits of object
Double_tfUVcoord[4]Viewing window limits
Double_tfTnorm[16]Transformation matrix
Double_tfTback[16]Back transformation matrix
Double_tfX1[3]First coordinate of X axis
Double_tfX2[3]Second coordinate of X axis
Double_tfY1[3]First coordinate of Y axis
Double_tfY2[3]Second coordinate of Y axis
Double_tfZ1[3]First coordinate of Z axis
Double_tfZ2[3]Second coordinate of Z axis
Int_tfSystemCoordinate system
TSeqCollection*fOutlineCollection of outline's objects
Bool_tfDefaultOutlineSet to TRUE if outline is default cube
Bool_tfAutoRangeSet to TRUE if range computed automatically
Bool_tfChanged! Set to TRUE after ExecuteRotateView
Color_tTAttLine::fLineColorline color
Style_tTAttLine::fLineStyleline style
Width_tTAttLine::fLineWidthline width

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(const TView& tv)
 Copy constructor.
TView& operator=(const TView& tv)
 Assignment operator.
~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                          *
*-*                                                                     *
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
 Local variables */
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()
*-*-*-*-*-*-*-*-*-*-*-*-*-*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)
 Get current window extent.
Bool_t IsClippedNDC(Double_t *p)
*-*-*-*-*-*-*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()
set the parallel option (default)
void SetPerspective()
set perspective option
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)
set view parameters
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.
void Centered()
      Shortcuts for menus
{Centered3DImages();}
void Front()
{FrontView();}
void ShowAxis()
{ToggleRulers(); }
void Side()
{SideView();}
void Top()
{TopView();}
void ZoomMove()
{ToggleZoom();}
void Zoom()
{ZoomView();}
void UnZoom()
{UnzoomView();}
Double_t GetDview()
{return fDview;}
Double_t GetDproj()
{return fDproj;}
Bool_t GetAutoRange()
{return fAutoRange;}
Double_t GetLatitude()
{return fLatitude;}
Double_t GetLongitude()
{return fLongitude;}
Double_t GetPsi()
{return fPsi;}
Double_t * GetRmax()
{return fRmax;}
Double_t * GetRmin()
{return fRmin;}
TSeqCollection * GetOutline()
{return fOutline; }
Double_t * GetTback()
{return fTback;}
Double_t * GetTN()
{return fTN;}
Double_t * GetTnorm()
{return fTnorm;}
Int_t GetSystem()
{return fSystem;}
Double_t GetWindowWidth()
{return 0.5*(fUVcoord[1]-fUVcoord[0]);}
Double_t GetWindowHeight()
{return 0.5*(fUVcoord[3]-fUVcoord[2]);}
Bool_t IsPerspective()
{return TestBit(kPerspective);}
Bool_t IsViewChanged()
{return fChanged;}
void SetAutoRange(Bool_t autorange=kTRUE)
{fAutoRange=autorange;}
void SetDview(Double_t dview)
{fDview=dview;}
void SetDproj(Double_t dproj)
{fDproj=dproj;}
void SetLatitude(Double_t latitude)
{fLatitude = latitude;}
void SetLongitude(Double_t longitude)
{fLongitude = longitude;}
void SetPsi(Double_t psi)
{fPsi = psi;}
void SetSystem(Int_t system)
{fSystem = system;}
void SetViewChanged(Bool_t flag=kTRUE)
{fChanged = flag;}

Author: Rene Brun, Nenad Buncic, Evgueni Tcherniaev, Olivier Couet 18/08/95
Last update: root/base:$Name: $:$Id: TView.cxx,v 1.40 2006/06/06 08:32:32 rdm 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.