ROOT  6.07/01
Reference Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
TView3D Class Reference

The 3D view 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.

TView3D creates a 3-D view in the current pad. In this 3D view Lego and Surface plots can be drawn and also 3D polyline and markers. Most of the time a TView3D is created automatically when a 3D object needs to be painted in a pad (for instance a Lego or a Surface plot).

In some case a TView3D should be explicitly. For instance to paint a 3D simple scene composed of simple objects like polylines and polymarkers. The following macro gives an example:

{
cV3D = new TCanvas("cV3D","PolyLine3D & PolyMarker3D Window",200,10,500,500);
// Creating a view
view->SetRange(5,5,5,25,25,25);
// Create a first PolyLine3D
TPolyLine3D *pl3d1 = new TPolyLine3D(6);
pl3d1->SetPoint(0, 10, 20, 10);
pl3d1->SetPoint(1, 15, 15, 15);
pl3d1->SetPoint(2, 20, 20, 20);
pl3d1->SetPoint(3, 20, 10, 20);
pl3d1->SetPoint(4, 10, 10, 20);
pl3d1->SetPoint(5, 10, 10, 10);
// Create a first PolyMarker3D
TPolyMarker3D *pm3d1 = new TPolyMarker3D(9);
pm3d1->SetPoint( 0, 10, 10, 10);
pm3d1->SetPoint( 1, 20, 20, 20);
pm3d1->SetPoint( 2, 10, 20, 20);
pm3d1->SetPoint( 3, 10, 10, 20);
pm3d1->SetPoint( 4, 20, 20, 10);
pm3d1->SetPoint( 5, 20, 10, 10);
pm3d1->SetPoint( 6, 20, 10, 20);
pm3d1->SetPoint( 7, 10, 20, 10);
pm3d1->SetPoint( 8, 15, 15, 15);
pm3d1->SetMarkerSize(2);
pm3d1->SetMarkerColor(4);
pm3d1->SetMarkerStyle(2);
// Draw
pl3d1->Draw();
pm3d1->Draw();
}
pict1_TView3D_001.png

Several coordinate systems are available:

Definition at line 31 of file TView3D.h.

Public Types

enum  { kPerspective = BIT(6) }
 
- Public Types inherited from TObject
enum  EStatusBits {
  kCanDelete = BIT(0), kMustCleanup = BIT(3), kObjInCanvas = BIT(3), kIsReferenced = BIT(4),
  kHasUUID = BIT(5), kCannotPick = BIT(6), kNoContextMenu = BIT(8), kInvalidObject = BIT(13)
}
 
enum  { kIsOnHeap = 0x01000000, kNotDeleted = 0x02000000, kZombie = 0x04000000, kBitMask = 0x00ffffff }
 
enum  { kSingleKey = BIT(0), kOverwrite = BIT(1), kWriteDelete = BIT(2) }
 

Public Member Functions

 TView3D ()
 Default constructor. More...
 
 TView3D (Int_t system, const Double_t *rmin, const Double_t *rmax)
 TView3D constructor. More...
 
virtual ~TView3D ()
 TView3D default destructor. More...
 
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)
 Define axis vertices. More...
 
virtual void DefinePerspectiveView ()
 Define perspective view. More...
 
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)
 Define view direction (in spherical coordinates) More...
 
virtual void DrawOutlineCube (TList *outline, Double_t *rmin, Double_t *rmax)
 Draw the outline of a cube while rotating a 3-d object in the pad. More...
 
virtual void ExecuteEvent (Int_t event, Int_t px, Int_t py)
 Execute action corresponding to one event. More...
 
virtual void ExecuteRotateView (Int_t event, Int_t px, Int_t py)
 Execute action corresponding to one event. More...
 
virtual void FindScope (Double_t *scale, Double_t *center, Int_t &irep)
 Find centre of a MIN-MAX scope and scale factors. More...
 
virtual Int_t GetDistancetoAxis (Int_t axis, Int_t px, Int_t py, Double_t &ratio)
 Return distance to axis from point px,py. More...
 
virtual Double_t GetDview () const
 
virtual Double_t GetDproj () const
 
virtual Double_t GetExtent () const
 Get maximum view extent. More...
 
virtual Bool_t GetAutoRange ()
 
virtual Double_t GetLatitude ()
 
virtual Double_t GetLongitude ()
 
virtual Double_t GetPsi ()
 
virtual void GetRange (Float_t *min, Float_t *max)
 Get Range function. More...
 
virtual void GetRange (Double_t *min, Double_t *max)
 Get Range function. More...
 
virtual Double_tGetRmax ()
 
virtual Double_tGetRmin ()
 
virtual TSeqCollectionGetOutline ()
 
virtual Double_tGetTback ()
 
virtual Double_tGetTN ()
 
virtual Double_tGetTnorm ()
 
virtual Int_t GetSystem ()
 
virtual void GetWindow (Double_t &u0, Double_t &v0, Double_t &du, Double_t &dv) const
 Get current window extent. More...
 
virtual Double_t GetWindowWidth () const
 
virtual Double_t GetWindowHeight () const
 
virtual void FindNormal (Double_t x, Double_t y, Double_t z, Double_t &zn)
 Find Z component of NORMAL in normalized coordinates. More...
 
virtual void FindPhiSectors (Int_t iopt, Int_t &kphi, Double_t *aphi, Int_t &iphi1, Int_t &iphi2)
 Find critical PHI sectors. More...
 
virtual 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. More...
 
virtual Bool_t IsClippedNDC (Double_t *p) const
 Check if point is clipped in perspective view. More...
 
virtual Bool_t IsPerspective () const
 
virtual Bool_t IsViewChanged () const
 
virtual void NDCtoWC (const Float_t *pn, Float_t *pw)
 Transfer point from normalized to world coordinates. More...
 
virtual void NDCtoWC (const Double_t *pn, Double_t *pw)
 Transfer point from normalized to world coordinates. More...
 
virtual void NormalWCtoNDC (const Float_t *pw, Float_t *pn)
 Transfer vector of NORMAL from word to normalized coordinates. More...
 
virtual void NormalWCtoNDC (const Double_t *pw, Double_t *pn)
 Transfer vector of NORMAL from word to normalized coordinates. More...
 
virtual void PadRange (Int_t rback)
 Set the correct window size for lego and surface plots. More...
 
virtual void ResizePad ()
 Recompute window for perspective view. More...
 
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)
 Store axis coordinates in the NDC system. More...
 
virtual void SetDefaultWindow ()
 Set default viewing window. More...
 
virtual void SetDview (Double_t dview)
 
virtual void SetDproj (Double_t dproj)
 
virtual void SetLatitude (Double_t latitude)
 
virtual void SetLongitude (Double_t longitude)
 
virtual void SetPsi (Double_t psi)
 
virtual void SetOutlineToCube ()
 This is a function which creates default outline. More...
 
virtual void SetParallel ()
 Set the parallel option (default). More...
 
virtual void SetPerspective ()
 Set perspective option. More...
 
virtual void SetRange (const Double_t *min, const Double_t *max)
 Set Range function. More...
 
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)
 Set 3-D View range. More...
 
virtual void SetSystem (Int_t system)
 
virtual void SetView (Double_t longitude, Double_t latitude, Double_t psi, Int_t &irep)
 Set view parameters. More...
 
virtual void SetViewChanged (Bool_t flag=kTRUE)
 
virtual void SetWindow (Double_t u0, Double_t v0, Double_t du, Double_t dv)
 Set viewing window. More...
 
virtual void WCtoNDC (const Float_t *pw, Float_t *pn)
 Transfer point from world to normalized coordinates. More...
 
virtual void WCtoNDC (const Double_t *pw, Double_t *pn)
 Transfer point from world to normalized coordinates. More...
 
virtual 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)
 Move focus to a different box position and extent in nsteps. More...
 
virtual void MoveViewCommand (Char_t chCode, Int_t count=1)
 
virtual void MoveWindow (Char_t option)
 Move view window : More...
 
virtual void AdjustScales (TVirtualPad *pad=0)
 Adjust all sides of view in respect of the biggest one. More...
 
virtual void Centered3DImages (TVirtualPad *pad=0)
 Move view into the center of the scene. More...
 
virtual void Centered ()
 
virtual void FrontView (TVirtualPad *pad=0)
 Set to front view. More...
 
virtual void Front ()
 
virtual void ZoomIn ()
 Zoom in. More...
 
virtual void ZoomOut ()
 Zoom out. More...
 
virtual void ZoomView (TVirtualPad *pad=0, Double_t zoomFactor=1.25)
 ZOOM this view. More...
 
virtual void UnzoomView (TVirtualPad *pad=0, Double_t unZoomFactor=1.25)
 unZOOM this view. More...
 
virtual void RotateView (Double_t phi, Double_t theta, TVirtualPad *pad=0)
 API to rotate view and adjust the pad provided it the current one. More...
 
virtual void SideView (TVirtualPad *pad=0)
 Set to side view. More...
 
virtual void Side ()
 
virtual void TopView (TVirtualPad *pad=0)
 Set to top view. More...
 
virtual void Top ()
 
virtual void ToggleRulers (TVirtualPad *pad=0)
 Turn on /off 3D axis. More...
 
virtual void ShowAxis ()
 
virtual void ToggleZoom (TVirtualPad *pad=0)
 Turn on /off the interactive option to Zoom / Move / Change attributes of 3D axis correspond this view. More...
 
virtual void ZoomMove ()
 
virtual void Zoom ()
 
virtual void UnZoom ()
 
 ClassDef (TView3D, 3)
 
- Public Member Functions inherited from TView
 TView ()
 
 TView (const TView &)
 
virtual ~TView ()
 
 ClassDef (TView, 3)
 
- Public Member Functions inherited from TObject
 TObject ()
 
 TObject (const TObject &object)
 TObject copy ctor. More...
 
TObjectoperator= (const TObject &rhs)
 TObject assignment operator. More...
 
virtual ~TObject ()
 TObject destructor. More...
 
virtual void AppendPad (Option_t *option="")
 Append graphics object to current pad. More...
 
virtual void Browse (TBrowser *b)
 Browse object. May be overridden for another default action. More...
 
virtual const char * ClassName () const
 Returns name of class to which the object belongs. More...
 
virtual void Clear (Option_t *="")
 
virtual TObjectClone (const char *newname="") const
 Make a clone of an object using the Streamer facility. More...
 
virtual Int_t Compare (const TObject *obj) const
 Compare abstract method. More...
 
virtual void Copy (TObject &object) const
 Copy this to obj. More...
 
virtual void Delete (Option_t *option="")
 Delete this object. More...
 
virtual Int_t DistancetoPrimitive (Int_t px, Int_t py)
 Computes distance from point (px,py) to the object. More...
 
virtual void Draw (Option_t *option="")
 Default Draw method for all objects. More...
 
virtual void DrawClass () const
 Draw class inheritance tree of the class to which this object belongs. More...
 
virtual TObjectDrawClone (Option_t *option="") const
 Draw a clone of this object in the current pad. More...
 
virtual void Dump () const
 Dump contents of object on stdout. More...
 
virtual void Execute (const char *method, const char *params, Int_t *error=0)
 Execute method on this object with the given parameter string, e.g. More...
 
virtual void Execute (TMethod *method, TObjArray *params, Int_t *error=0)
 Execute method on this object with parameters stored in the TObjArray. More...
 
virtual TObjectFindObject (const char *name) const
 Must be redefined in derived classes. More...
 
virtual TObjectFindObject (const TObject *obj) const
 Must be redefined in derived classes. More...
 
virtual Option_tGetDrawOption () const
 Get option used by the graphics system to draw this object. More...
 
virtual UInt_t GetUniqueID () const
 Return the unique object id. More...
 
virtual const char * GetName () const
 Returns name of object. More...
 
virtual const char * GetIconName () const
 Returns mime type name of object. More...
 
virtual Option_tGetOption () const
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 Returns string containing info about the object at position (px,py). More...
 
virtual const char * GetTitle () const
 Returns title of object. More...
 
virtual Bool_t HandleTimer (TTimer *timer)
 Execute action in response of a timer timing out. More...
 
virtual ULong_t Hash () const
 Return hash value for this object. More...
 
virtual Bool_t InheritsFrom (const char *classname) const
 Returns kTRUE if object inherits from class "classname". More...
 
virtual Bool_t InheritsFrom (const TClass *cl) const
 Returns kTRUE if object inherits from TClass cl. More...
 
virtual void Inspect () const
 Dump contents of this object in a graphics canvas. More...
 
virtual Bool_t IsFolder () const
 Returns kTRUE in case object contains browsable objects (like containers or lists of other objects). More...
 
virtual Bool_t IsEqual (const TObject *obj) const
 Default equal comparison (objects are equal if they have the same address in memory). More...
 
virtual Bool_t IsSortable () const
 
Bool_t IsOnHeap () const
 
Bool_t IsZombie () const
 
virtual Bool_t Notify ()
 This method must be overridden to handle object notification. More...
 
virtual void ls (Option_t *option="") const
 The ls function lists the contents of a class on stdout. More...
 
virtual void Paint (Option_t *option="")
 This method must be overridden if a class wants to paint itself. More...
 
virtual void Pop ()
 Pop on object drawn in a pad to the top of the display list. More...
 
virtual void Print (Option_t *option="") const
 This method must be overridden when a class wants to print itself. More...
 
virtual Int_t Read (const char *name)
 Read contents of object with specified name from the current directory. More...
 
virtual void RecursiveRemove (TObject *obj)
 Recursively remove this object from a list. More...
 
virtual void SaveAs (const char *filename="", Option_t *option="") const
 Save this object in the file specified by filename. More...
 
virtual void SavePrimitive (std::ostream &out, Option_t *option="")
 Save a primitive as a C++ statement(s) on output stream "out". More...
 
virtual void SetDrawOption (Option_t *option="")
 Set drawing option for object. More...
 
virtual void SetUniqueID (UInt_t uid)
 Set the unique object id. More...
 
virtual void UseCurrentStyle ()
 Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked. More...
 
virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0)
 Write this object to the current directory. More...
 
virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0) const
 Write this object to the current directory. More...
 
voidoperator new (size_t sz)
 
voidoperator new[] (size_t sz)
 
voidoperator new (size_t sz, void *vp)
 
voidoperator new[] (size_t sz, void *vp)
 
void operator delete (void *ptr)
 Operator delete. More...
 
void operator delete[] (void *ptr)
 Operator delete []. More...
 
void SetBit (UInt_t f, Bool_t set)
 Set or unset the user status bits as specified in f. More...
 
void SetBit (UInt_t f)
 
void ResetBit (UInt_t f)
 
Bool_t TestBit (UInt_t f) const
 
Int_t TestBits (UInt_t f) const
 
void InvertBit (UInt_t f)
 
virtual void Info (const char *method, const char *msgfmt,...) const
 Issue info message. More...
 
virtual void Warning (const char *method, const char *msgfmt,...) const
 Issue warning message. More...
 
virtual void Error (const char *method, const char *msgfmt,...) const
 Issue error message. More...
 
virtual void SysError (const char *method, const char *msgfmt,...) const
 Issue system error message. More...
 
virtual void Fatal (const char *method, const char *msgfmt,...) const
 Issue fatal error message. More...
 
void AbstractMethod (const char *method) const
 Use this method to implement an "abstract" method that you don't want to leave purely abstract. More...
 
void MayNotUse (const char *method) const
 Use this method to signal that a method (defined in a base class) may not be called in a derived class (in principle against good design since a child class should not provide less functionality than its parent, however, sometimes it is necessary). More...
 
void Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const
 Use this method to declare a method obsolete. More...
 
- Public Member Functions inherited from TAttLine
 TAttLine ()
 AttLine default constructor. More...
 
 TAttLine (Color_t lcolor, Style_t lstyle, Width_t lwidth)
 AttLine normal constructor. More...
 
virtual ~TAttLine ()
 AttLine destructor. More...
 
void Copy (TAttLine &attline) const
 Copy this line attributes to a new TAttLine. More...
 
Int_t DistancetoLine (Int_t px, Int_t py, Double_t xp1, Double_t yp1, Double_t xp2, Double_t yp2)
 Compute distance from point px,py to a line. More...
 
virtual Color_t GetLineColor () const
 
virtual Style_t GetLineStyle () const
 
virtual Width_t GetLineWidth () const
 
virtual void Modify ()
 Change current line attributes if necessary. More...
 
virtual void ResetAttLine (Option_t *option="")
 Reset this line attributes to default values. More...
 
virtual void SaveLineAttributes (std::ostream &out, const char *name, Int_t coldef=1, Int_t stydef=1, Int_t widdef=1)
 Save line attributes as C++ statement(s) on output stream out. More...
 
virtual void SetLineAttributes ()
 Invoke the DialogCanvas Line attributes. More...
 
virtual void SetLineColor (Color_t lcolor)
 
virtual void SetLineColorAlpha (Color_t lcolor, Float_t lalpha)
 Set a transparent line color. More...
 
virtual void SetLineStyle (Style_t lstyle)
 
virtual void SetLineWidth (Width_t lwidth)
 
 ClassDef (TAttLine, 2)
 

Static Public Member Functions

static void AdjustPad (TVirtualPad *pad=0)
 Force the current pad to be updated. More...
 
- Static Public Member Functions inherited from TView
static TViewCreateView (Int_t system=1, const Double_t *rmin=0, const Double_t *rmax=0)
 Create a concrete default 3-d view via the plug-in manager. More...
 
- Static Public Member Functions inherited from TObject
static Long_t GetDtorOnly ()
 Return destructor only flag. More...
 
static void SetDtorOnly (void *obj)
 Set destructor only flag. More...
 
static Bool_t GetObjectStat ()
 Get status of object stat flag. More...
 
static void SetObjectStat (Bool_t stat)
 Turn on/off tracking of objects in the TObjectTable. More...
 

Protected Member Functions

 TView3D (const TView3D &)
 Set to TRUE after ExecuteRotateView. More...
 
TView3Doperator= (const TView3D &)
 Assignment operator. More...
 
void ResetView (Double_t longitude, Double_t latitude, Double_t psi, Int_t &irep)
 Set view direction (in spherical coordinates). More...
 
- Protected Member Functions inherited from TObject
void MakeZombie ()
 
virtual void DoError (int level, const char *location, const char *fmt, va_list va) const
 Interface to ErrorHandler (protected). More...
 

Protected Attributes

Double_t fLatitude
 
Double_t fLongitude
 
Double_t fPsi
 
Double_t fDview
 
Double_t fDproj
 
Double_t fUpix
 
Double_t fVpix
 
Double_t fTN [16]
 
Double_t fTB [16]
 
Double_t fRmax [3]
 
Double_t fRmin [3]
 
Double_t fUVcoord [4]
 
Double_t fTnorm [16]
 
Double_t fTback [16]
 
Double_t fX1 [3]
 
Double_t fX2 [3]
 
Double_t fY1 [3]
 
Double_t fY2 [3]
 
Double_t fZ1 [3]
 
Double_t fZ2 [3]
 
Int_t fSystem
 
TSeqCollectionfOutline
 
Bool_t fDefaultOutline
 
Bool_t fAutoRange
 
Bool_t fChanged
 
- Protected Attributes inherited from TAttLine
Color_t fLineColor
 
Style_t fLineStyle
 
Width_t fLineWidth
 

#include <TView3D.h>

Inheritance diagram for TView3D:
[legend]

Member Enumeration Documentation

anonymous enum
Enumerator
kPerspective 

Definition at line 68 of file TView3D.h.

Constructor & Destructor Documentation

TView3D::TView3D ( const TView3D tv)
protected

Set to TRUE after ExecuteRotateView.

Copy constructor.

Definition at line 196 of file TView3D.cxx.

TView3D::TView3D ( )

Default constructor.

Definition at line 108 of file TView3D.cxx.

TView3D::TView3D ( Int_t  system,
const Double_t rmin,
const Double_t rmax 
)

TView3D 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

Definition at line 152 of file TView3D.cxx.

TView3D::~TView3D ( )
virtual

TView3D default destructor.

Definition at line 275 of file TView3D.cxx.

Member Function Documentation

void TView3D::AdjustPad ( TVirtualPad pad = 0)
static

Force the current pad to be updated.

Definition at line 1588 of file TView3D.cxx.

Referenced by AdjustScales(), Centered3DImages(), and ZoomView().

void TView3D::AdjustScales ( TVirtualPad pad = 0)
virtual

Adjust all sides of view in respect of the biggest one.

Implements TView.

Definition at line 1666 of file TView3D.cxx.

void TView3D::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

Define axis vertices.

Input:

  • ANG - angle between X and Y axis

    Output:

  • AV(3,8) - axis vertices
  • 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

Implements TView.

Definition at line 310 of file TView3D.cxx.

void TView3D::Centered ( )
virtual

Implements TView.

Definition at line 1979 of file TView3D.cxx.

void TView3D::Centered3DImages ( TVirtualPad pad = 0)
virtual

Move view into the center of the scene.

Implements TView.

Definition at line 1684 of file TView3D.cxx.

Referenced by Centered().

TView3D::ClassDef ( TView3D  ,
 
)
void TView3D::DefinePerspectiveView ( )
virtual

Define perspective view.

Compute transformation matrix from world coordinates to normalized 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

Implements TView.

Definition at line 458 of file TView3D.cxx.

Referenced by DefineViewDirection(), MoveFocus(), MoveWindow(), ResetView(), ResizePad(), ZoomIn(), and ZoomOut().

void TView3D::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

Define view direction (in spherical coordinates)

Compute transformation matrix from world coordinates to normalized 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

Implements TView.

Definition at line 572 of file TView3D.cxx.

Referenced by ResetView().

void TView3D::DrawOutlineCube ( TList outline,
Double_t rmin,
Double_t rmax 
)
virtual

Draw the outline of a cube while rotating a 3-d object in the pad.

Implements TView.

Definition at line 678 of file TView3D.cxx.

Referenced by SetOutlineToCube().

void TView3D::ExecuteEvent ( Int_t  event,
Int_t  px,
Int_t  py 
)
virtual

Execute action corresponding to one event.

Implements TView.

Definition at line 686 of file TView3D.cxx.

void TView3D::ExecuteRotateView ( Int_t  event,
Int_t  px,
Int_t  py 
)
virtual

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.

Implements TView.

Definition at line 700 of file TView3D.cxx.

Referenced by ExecuteEvent().

void TView3D::FindNormal ( Double_t  x,
Double_t  y,
Double_t  z,
Double_t zn 
)
virtual

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

Implements TView.

Definition at line 844 of file TView3D.cxx.

Referenced by FindThetaSectors().

void TView3D::FindPhiSectors ( Int_t  iopt,
Int_t kphi,
Double_t aphi,
Int_t iphi1,
Int_t iphi2 
)
virtual

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

Implements TView.

Definition at line 864 of file TView3D.cxx.

void TView3D::FindScope ( Double_t scale,
Double_t center,
Int_t irep 
)
virtual

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)

Implements TView.

Definition at line 991 of file TView3D.cxx.

Referenced by ResetView().

void TView3D::FindThetaSectors ( Int_t  iopt,
Double_t  phi,
Int_t kth,
Double_t ath,
Int_t ith1,
Int_t ith2 
)
virtual

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

Implements TView.

Definition at line 930 of file TView3D.cxx.

void TView3D::Front ( )
virtual

Implements TView.

Definition at line 1980 of file TView3D.cxx.

void TView3D::FrontView ( TVirtualPad pad = 0)
virtual

Set to front view.

Implements TView.

Definition at line 1633 of file TView3D.cxx.

Referenced by Front().

virtual Bool_t TView3D::GetAutoRange ( )
inlinevirtual

Implements TView.

Definition at line 91 of file TView3D.h.

Int_t TView3D::GetDistancetoAxis ( Int_t  axis,
Int_t  px,
Int_t  py,
Double_t ratio 
)
virtual

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

Implements TView.

Definition at line 1029 of file TView3D.cxx.

virtual Double_t TView3D::GetDproj ( ) const
inlinevirtual

Implements TView.

Definition at line 89 of file TView3D.h.

virtual Double_t TView3D::GetDview ( ) const
inlinevirtual

Implements TView.

Definition at line 88 of file TView3D.h.

Double_t TView3D::GetExtent ( ) const
virtual

Get maximum view extent.

Implements TView.

Definition at line 1075 of file TView3D.cxx.

Referenced by SetDefaultWindow(), ZoomIn(), and ZoomOut().

virtual Double_t TView3D::GetLatitude ( )
inlinevirtual

Implements TView.

Definition at line 92 of file TView3D.h.

virtual Double_t TView3D::GetLongitude ( )
inlinevirtual

Implements TView.

Definition at line 93 of file TView3D.h.

virtual TSeqCollection* TView3D::GetOutline ( )
inlinevirtual

Implements TView.

Definition at line 99 of file TView3D.h.

virtual Double_t TView3D::GetPsi ( )
inlinevirtual

Implements TView.

Definition at line 94 of file TView3D.h.

Referenced by ExecuteRotateView().

void TView3D::GetRange ( Float_t min,
Float_t max 
)
virtual

Get Range function.

Implements TView.

Definition at line 1087 of file TView3D.cxx.

Referenced by AdjustScales(), Centered3DImages(), SetRange(), and ZoomView().

void TView3D::GetRange ( Double_t min,
Double_t max 
)
virtual

Get Range function.

Implements TView.

Definition at line 1095 of file TView3D.cxx.

virtual Double_t* TView3D::GetRmax ( )
inlinevirtual

Implements TView.

Definition at line 97 of file TView3D.h.

virtual Double_t* TView3D::GetRmin ( )
inlinevirtual

Implements TView.

Definition at line 98 of file TView3D.h.

virtual Int_t TView3D::GetSystem ( )
inlinevirtual

Implements TView.

Definition at line 103 of file TView3D.h.

Referenced by ExecuteRotateView().

virtual Double_t* TView3D::GetTback ( )
inlinevirtual

Implements TView.

Definition at line 100 of file TView3D.h.

virtual Double_t* TView3D::GetTN ( )
inlinevirtual

Implements TView.

Definition at line 101 of file TView3D.h.

virtual Double_t* TView3D::GetTnorm ( )
inlinevirtual

Implements TView.

Definition at line 102 of file TView3D.h.

void TView3D::GetWindow ( Double_t u0,
Double_t v0,
Double_t du,
Double_t dv 
) const
virtual

Get current window extent.

Implements TView.

Definition at line 1103 of file TView3D.cxx.

virtual Double_t TView3D::GetWindowHeight ( ) const
inlinevirtual

Implements TView.

Definition at line 106 of file TView3D.h.

virtual Double_t TView3D::GetWindowWidth ( ) const
inlinevirtual

Implements TView.

Definition at line 105 of file TView3D.h.

Bool_t TView3D::IsClippedNDC ( Double_t p) const
virtual

Check if point is clipped in perspective view.

Implements TView.

Definition at line 1114 of file TView3D.cxx.

virtual Bool_t TView3D::IsPerspective ( ) const
inlinevirtual
virtual Bool_t TView3D::IsViewChanged ( ) const
inlinevirtual

Implements TView.

Definition at line 112 of file TView3D.h.

void TView3D::MoveFocus ( Double_t cov,
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

Move focus to a different box position and extent in nsteps.

Perform rotation with dlat,dlong,dpsi at each step.

Implements TView.

Definition at line 1732 of file TView3D.cxx.

void TView3D::MoveViewCommand ( Char_t  option,
Int_t  count = 1 
)
virtual
  • 'a' increase scale factor (clip cube borders)
  • 's' decrease scale factor (clip cube borders)

Implements TView.

Definition at line 1788 of file TView3D.cxx.

Referenced by ExecuteRotateView().

void TView3D::MoveWindow ( Char_t  option)
virtual

Move view window :

  • l,L - left
  • h,H - right
  • u,U - down
  • i,I - up

Implements TView.

Definition at line 1836 of file TView3D.cxx.

Referenced by MoveViewCommand().

void TView3D::NDCtoWC ( const Float_t pn,
Float_t pw 
)
virtual

Transfer point from normalized to world coordinates.

Input:

  • PN(3) - point in world coordinate system
  • PW(3) - point in normalized coordinate system

Implements TView.

Definition at line 1128 of file TView3D.cxx.

void TView3D::NDCtoWC ( const Double_t pn,
Double_t pw 
)
virtual

Transfer point from normalized to world coordinates.

Input:

  • PN(3) - point in world coordinate system
  • PW(3) - point in normalized coordinate system

Implements TView.

Definition at line 1142 of file TView3D.cxx.

void TView3D::NormalWCtoNDC ( const Float_t pw,
Float_t pn 
)
virtual

Transfer vector of NORMAL from word to normalized coordinates.

Input:

  • PW(3) - vector of NORMAL in word coordinate system
  • PN(3) - vector of NORMAL in normalized coordinate system

Implements TView.

Definition at line 1156 of file TView3D.cxx.

void TView3D::NormalWCtoNDC ( const Double_t pw,
Double_t pn 
)
virtual

Transfer vector of NORMAL from word to normalized coordinates.

Input:

  • PW(3) - vector of NORMAL in word coordinate system
  • PN(3) - vector of NORMAL in normalized coordinate system

Implements TView.

Definition at line 1184 of file TView3D.cxx.

TView3D & TView3D::operator= ( const TView3D tv)
protected

Assignment operator.

Definition at line 234 of file TView3D.cxx.

void TView3D::PadRange ( Int_t  rback)
virtual

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

Implements TView.

Definition at line 1214 of file TView3D.cxx.

void TView3D::ResetView ( Double_t  longitude,
Double_t  latitude,
Double_t  psi,
Int_t irep 
)
protected

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

Definition at line 1493 of file TView3D.cxx.

Referenced by ExecuteRotateView(), SetParallel(), SetPerspective(), SetRange(), SetView(), and TView3D().

void TView3D::ResizePad ( )
virtual

Recompute window for perspective view.

Implements TView.

Definition at line 1461 of file TView3D.cxx.

void TView3D::RotateView ( Double_t  phi,
Double_t  theta,
TVirtualPad pad = 0 
)
virtual

API to rotate view and adjust the pad provided it the current one.

Implements TView.

Definition at line 1604 of file TView3D.cxx.

Referenced by FrontView(), SideView(), and TopView().

virtual void TView3D::SetAutoRange ( Bool_t  autorange = kTRUE)
inlinevirtual

Implements TView.

Definition at line 119 of file TView3D.h.

void TView3D::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 
)
virtual

Store axis coordinates in the NDC system.

Implements TView.

Definition at line 1293 of file TView3D.cxx.

void TView3D::SetDefaultWindow ( )
virtual

Set default viewing window.

Implements TView.

Definition at line 1308 of file TView3D.cxx.

Referenced by MoveFocus(), SetPerspective(), and SetRange().

virtual void TView3D::SetDproj ( Double_t  dproj)
inlinevirtual

Implements TView.

Definition at line 123 of file TView3D.h.

virtual void TView3D::SetDview ( Double_t  dview)
inlinevirtual

Implements TView.

Definition at line 122 of file TView3D.h.

virtual void TView3D::SetLatitude ( Double_t  latitude)
inlinevirtual

Implements TView.

Definition at line 124 of file TView3D.h.

virtual void TView3D::SetLongitude ( Double_t  longitude)
inlinevirtual

Implements TView.

Definition at line 125 of file TView3D.h.

void TView3D::SetOutlineToCube ( )
virtual

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)

Implements TView.

Definition at line 1348 of file TView3D.cxx.

Referenced by ExecuteRotateView(), and SetRange().

void TView3D::SetParallel ( )
virtual

Set the parallel option (default).

Implements TView.

Definition at line 1360 of file TView3D.cxx.

Referenced by parallel_world().

void TView3D::SetPerspective ( )
virtual

Set perspective option.

Implements TView.

Definition at line 1371 of file TView3D.cxx.

Referenced by TView3D().

virtual void TView3D::SetPsi ( Double_t  psi)
inlinevirtual

Implements TView.

Definition at line 126 of file TView3D.h.

void TView3D::SetRange ( const Double_t min,
const Double_t max 
)
virtual

Set Range function.

Implements TView.

Definition at line 1383 of file TView3D.cxx.

Referenced by AdjustScales(), Centered3DImages(), SetRange(), and ZoomView().

void TView3D::SetRange ( Double_t  x0,
Double_t  y0,
Double_t  z0,
Double_t  x1,
Double_t  y1,
Double_t  z1,
Int_t  flag = 0 
)
virtual

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)

Implements TView.

Definition at line 1406 of file TView3D.cxx.

virtual void TView3D::SetSystem ( Int_t  system)
inlinevirtual

Implements TView.

Definition at line 132 of file TView3D.h.

void TView3D::SetView ( Double_t  longitude,
Double_t  latitude,
Double_t  psi,
Int_t irep 
)
virtual

Set view parameters.

Implements TView.

Definition at line 1453 of file TView3D.cxx.

Referenced by ExecuteRotateView(), and RotateView().

virtual void TView3D::SetViewChanged ( Bool_t  flag = kTRUE)
inlinevirtual

Implements TView.

Definition at line 134 of file TView3D.h.

void TView3D::SetWindow ( Double_t  u0,
Double_t  v0,
Double_t  du,
Double_t  dv 
)
virtual

Set viewing window.

Implements TView.

Definition at line 1442 of file TView3D.cxx.

Referenced by ResizePad(), and SetDefaultWindow().

void TView3D::ShowAxis ( )
virtual

Implements TView.

Definition at line 1981 of file TView3D.cxx.

void TView3D::Side ( )
virtual

Implements TView.

Definition at line 1982 of file TView3D.cxx.

Referenced by parallel_world().

void TView3D::SideView ( TVirtualPad pad = 0)
virtual

Set to side view.

Implements TView.

Definition at line 1625 of file TView3D.cxx.

Referenced by Side().

void TView3D::ToggleRulers ( TVirtualPad pad = 0)
virtual

Turn on /off 3D axis.

Implements TView.

Definition at line 1649 of file TView3D.cxx.

Referenced by ShowAxis().

void TView3D::ToggleZoom ( TVirtualPad pad = 0)
virtual

Turn on /off the interactive option to Zoom / Move / Change attributes of 3D axis correspond this view.

Implements TView.

Definition at line 1658 of file TView3D.cxx.

Referenced by ZoomMove().

void TView3D::Top ( )
virtual

Implements TView.

Definition at line 1983 of file TView3D.cxx.

void TView3D::TopView ( TVirtualPad pad = 0)
virtual

Set to top view.

Implements TView.

Definition at line 1641 of file TView3D.cxx.

Referenced by Top().

void TView3D::UnZoom ( )
virtual

Implements TView.

Definition at line 1986 of file TView3D.cxx.

void TView3D::UnzoomView ( TVirtualPad pad = 0,
Double_t  unZoomFactor = 1.25 
)
virtual

unZOOM this view.

Implements TView.

Definition at line 1700 of file TView3D.cxx.

Referenced by MoveViewCommand(), and UnZoom().

void TView3D::WCtoNDC ( const Float_t pw,
Float_t pn 
)
virtual

Transfer point from world to normalized coordinates.

Input:

  • PW(3) - point in world coordinate system
  • PN(3) - point in normalized coordinate system

Implements TView.

Definition at line 1535 of file TView3D.cxx.

void TView3D::WCtoNDC ( const Double_t pw,
Double_t pn 
)
virtual

Transfer point from world to normalized coordinates.

Input:

  • PW(3) - point in world coordinate system
  • PN(3) - point in normalized coordinate system

Implements TView.

Definition at line 1563 of file TView3D.cxx.

void TView3D::Zoom ( )
virtual

Implements TView.

Definition at line 1985 of file TView3D.cxx.

void TView3D::ZoomIn ( )
virtual

Zoom in.

Implements TView.

Definition at line 1871 of file TView3D.cxx.

Referenced by MoveViewCommand().

void TView3D::ZoomMove ( )
virtual

Implements TView.

Definition at line 1984 of file TView3D.cxx.

void TView3D::ZoomOut ( )
virtual

Zoom out.

Implements TView.

Definition at line 1891 of file TView3D.cxx.

Referenced by MoveViewCommand().

void TView3D::ZoomView ( TVirtualPad pad = 0,
Double_t  zoomFactor = 1.25 
)
virtual

ZOOM this view.

Implements TView.

Definition at line 1709 of file TView3D.cxx.

Referenced by MoveViewCommand(), UnzoomView(), and Zoom().

Member Data Documentation

Bool_t TView3D::fAutoRange
protected

Definition at line 57 of file TView3D.h.

Referenced by GetAutoRange(), operator=(), SetAutoRange(), and TView3D().

Bool_t TView3D::fChanged
protected

Definition at line 58 of file TView3D.h.

Referenced by ExecuteRotateView(), IsViewChanged(), operator=(), SetViewChanged(), and TView3D().

Bool_t TView3D::fDefaultOutline
protected

Definition at line 56 of file TView3D.h.

Referenced by operator=(), SetOutlineToCube(), SetRange(), and TView3D().

Double_t TView3D::fDproj
protected

Definition at line 38 of file TView3D.h.

Referenced by DefinePerspectiveView(), GetDproj(), operator=(), SetDefaultWindow(), and SetDproj().

Double_t TView3D::fDview
protected
Double_t TView3D::fLatitude
protected
Double_t TView3D::fLongitude
protected
TSeqCollection* TView3D::fOutline
protected

Definition at line 55 of file TView3D.h.

Referenced by ExecuteRotateView(), GetOutline(), operator=(), SetOutlineToCube(), TView3D(), and ~TView3D().

Double_t TView3D::fPsi
protected
Double_t TView3D::fRmax[3]
protected
Double_t TView3D::fRmin[3]
protected
Int_t TView3D::fSystem
protected

Definition at line 54 of file TView3D.h.

Referenced by GetDistancetoAxis(), GetSystem(), operator=(), SetSystem(), and TView3D().

Double_t TView3D::fTB[16]
protected

Definition at line 42 of file TView3D.h.

Referenced by operator=(), ResetView(), and TView3D().

Double_t TView3D::fTback[16]
protected

Definition at line 47 of file TView3D.h.

Referenced by GetTback(), NDCtoWC(), operator=(), ResetView(), and TView3D().

Double_t TView3D::fTN[16]
protected
Double_t TView3D::fTnorm[16]
protected
Double_t TView3D::fUpix
protected

Definition at line 39 of file TView3D.h.

Referenced by operator=(), ResizePad(), and SetDefaultWindow().

Double_t TView3D::fUVcoord[4]
protected
Double_t TView3D::fVpix
protected

Definition at line 40 of file TView3D.h.

Referenced by operator=(), ResizePad(), and SetDefaultWindow().

Double_t TView3D::fX1[3]
protected

Definition at line 48 of file TView3D.h.

Referenced by GetDistancetoAxis(), operator=(), SetAxisNDC(), and TView3D().

Double_t TView3D::fX2[3]
protected

Definition at line 49 of file TView3D.h.

Referenced by GetDistancetoAxis(), operator=(), SetAxisNDC(), and TView3D().

Double_t TView3D::fY1[3]
protected

Definition at line 50 of file TView3D.h.

Referenced by GetDistancetoAxis(), operator=(), SetAxisNDC(), and TView3D().

Double_t TView3D::fY2[3]
protected

Definition at line 51 of file TView3D.h.

Referenced by GetDistancetoAxis(), operator=(), SetAxisNDC(), and TView3D().

Double_t TView3D::fZ1[3]
protected

Definition at line 52 of file TView3D.h.

Referenced by GetDistancetoAxis(), operator=(), SetAxisNDC(), and TView3D().

Double_t TView3D::fZ2[3]
protected

Definition at line 53 of file TView3D.h.

Referenced by GetDistancetoAxis(), operator=(), SetAxisNDC(), and TView3D().

Collaboration diagram for TView3D:
[legend]

The documentation for this class was generated from the following files: