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)
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.