Logo ROOT   6.19/01
Reference Guide
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:

  • Cartesian
  • Polar
  • Cylindrical
  • Spherical
  • PseudoRapidity/Phi

Definition at line 29 of file TView3D.h.

Public Types

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

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 AdjustScales (TVirtualPad *pad=0)
 Adjust all sides of view in respect of the biggest one. 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 Centered ()
 
virtual void Centered3DImages (TVirtualPad *pad=0)
 Move view into the center of the scene. 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 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 FindScope (Double_t *scale, Double_t *center, Int_t &irep)
 Find centre of a MIN-MAX scope and scale factors. 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 void Front ()
 
virtual void FrontView (TVirtualPad *pad=0)
 Set to front view. More...
 
virtual Bool_t GetAutoRange ()
 
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 GetDproj () const
 
virtual Double_t GetDview () const
 
virtual Double_t GetExtent () const
 Get maximum view extent. More...
 
virtual Double_t GetLatitude ()
 
virtual Double_t GetLongitude ()
 
virtual TSeqCollectionGetOutline ()
 
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 Int_t GetSystem ()
 
virtual Double_tGetTback ()
 
virtual Double_tGetTN ()
 
virtual Double_tGetTnorm ()
 
virtual void GetWindow (Double_t &u0, Double_t &v0, Double_t &du, Double_t &dv) const
 Get current window extent. More...
 
virtual Double_t GetWindowHeight () const
 
virtual Double_t GetWindowWidth () const
 
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 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 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 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 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 SetDproj (Double_t dproj)
 
virtual void SetDview (Double_t dview)
 
virtual void SetLatitude (Double_t latitude)
 
virtual void SetLongitude (Double_t longitude)
 
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 SetPsi (Double_t psi)
 
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 ShowAxis ()
 
virtual void Side ()
 
virtual void SideView (TVirtualPad *pad=0)
 Set to side view. More...
 
virtual void ToggleRulers (TVirtualPad *pad=0)
 Turn on /off 3D axis. More...
 
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 Top ()
 
virtual void TopView (TVirtualPad *pad=0)
 Set to top view. More...
 
virtual void UnZoom ()
 
virtual void UnzoomView (TVirtualPad *pad=0, Double_t unZoomFactor=1.25)
 unZOOM this view. 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 Zoom ()
 
virtual void ZoomIn ()
 Zoom in. More...
 
virtual void ZoomMove ()
 
virtual void ZoomOut ()
 Zoom out. More...
 
virtual void ZoomView (TVirtualPad *pad=0, Double_t zoomFactor=1.25)
 ZOOM this view. More...
 
- Public Member Functions inherited from TView
 TView ()
 
virtual ~TView ()=default
 
- Public Member Functions inherited from TObject
 TObject ()
 TObject constructor. More...
 
 TObject (const TObject &object)
 TObject copy ctor. More...
 
virtual ~TObject ()
 TObject destructor. 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...
 
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...
 
ULong_t CheckedHash ()
 Check and record whether this class has a consistent Hash/RecursiveRemove setup (*) and then return the regular Hash value for this object. 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 selected pad for instance with: gROOT->SetSelectedPad(gPad). More...
 
virtual void Dump () const
 Dump contents of object on stdout. More...
 
virtual void Error (const char *method, const char *msgfmt,...) const
 Issue error message. 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 void Fatal (const char *method, const char *msgfmt,...) const
 Issue fatal error message. 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 const char * GetIconName () const
 Returns mime type name of object. More...
 
virtual const char * GetName () const
 Returns name of object. More...
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 Returns string containing info about the object at position (px,py). More...
 
virtual Option_tGetOption () const
 
virtual const char * GetTitle () const
 Returns title of object. More...
 
virtual UInt_t GetUniqueID () const
 Return the unique object id. 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...
 
Bool_t HasInconsistentHash () const
 Return true is the type of this object is known to have an inconsistent setup for Hash and RecursiveRemove (i.e. More...
 
virtual void Info (const char *method, const char *msgfmt,...) const
 Issue info message. 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...
 
void InvertBit (UInt_t f)
 
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 IsFolder () const
 Returns kTRUE in case object contains browsable objects (like containers or lists of other objects). More...
 
R__ALWAYS_INLINE Bool_t IsOnHeap () const
 
virtual Bool_t IsSortable () const
 
R__ALWAYS_INLINE Bool_t IsZombie () const
 
virtual void ls (Option_t *option="") const
 The ls function lists the contents of a class on stdout. 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...
 
virtual Bool_t Notify ()
 This method must be overridden to handle object notification. More...
 
void Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const
 Use this method to declare a method obsolete. More...
 
void operator delete (void *ptr)
 Operator delete. More...
 
void operator delete[] (void *ptr)
 Operator delete []. More...
 
voidoperator new (size_t sz)
 
voidoperator new (size_t sz, void *vp)
 
voidoperator new[] (size_t sz)
 
voidoperator new[] (size_t sz, void *vp)
 
TObjectoperator= (const TObject &rhs)
 TObject assignment operator. 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...
 
void ResetBit (UInt_t f)
 
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...
 
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)
 
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 SysError (const char *method, const char *msgfmt,...) const
 Issue system error message. More...
 
R__ALWAYS_INLINE Bool_t TestBit (UInt_t f) const
 
Int_t TestBits (UInt_t f) const
 
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 void Warning (const char *method, const char *msgfmt,...) const
 Issue warning message. 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...
 
- 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
 Return the line color. More...
 
virtual Style_t GetLineStyle () const
 Return the line style. More...
 
virtual Width_t GetLineWidth () const
 Return the line width. More...
 
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)
 Set the line color. More...
 
virtual void SetLineColorAlpha (Color_t lcolor, Float_t lalpha)
 Set a transparent line color. More...
 
virtual void SetLineStyle (Style_t lstyle)
 Set the line style. More...
 
virtual void SetLineWidth (Width_t lwidth)
 Set the line width. More...
 

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 Bool_t GetObjectStat ()
 Get status of object stat flag. More...
 
static void SetDtorOnly (void *obj)
 Set destructor only 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
virtual void DoError (int level, const char *location, const char *fmt, va_list va) const
 Interface to ErrorHandler (protected). More...
 
void MakeZombie ()
 

Protected Attributes

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

#include <TView3D.h>

Inheritance diagram for TView3D:
[legend]

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
kPerspective 

Definition at line 66 of file TView3D.h.

Constructor & Destructor Documentation

◆ TView3D() [1/3]

TView3D::TView3D ( const TView3D tv)
protected

Set to TRUE after ExecuteRotateView.

Copy constructor.

Definition at line 196 of file TView3D.cxx.

◆ TView3D() [2/3]

TView3D::TView3D ( )

Default constructor.

Definition at line 108 of file TView3D.cxx.

◆ TView3D() [3/3]

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

TView3D default destructor.

Definition at line 275 of file TView3D.cxx.

Member Function Documentation

◆ AdjustPad()

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

Force the current pad to be updated.

Definition at line 1538 of file TView3D.cxx.

◆ AdjustScales()

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

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

Implements TView.

Definition at line 1616 of file TView3D.cxx.

◆ AxisVertex()

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 (not used anymore)

    Output:

  • AV(3,8) - axis vertices
  • IX1 - 1st point of X-axis (x-min)
  • IX2 - 2nd point of X-axis (x-max)
  • IY1 - 1st point of Y-axis (y-min)
  • IY2 - 2nd point of Y-axis (y-max)
  • IZ1 - 1st point of Z-axis (z-min)
  • IZ2 - 2nd point of Z-axis (z-max)

Implements TView.

Definition at line 297 of file TView3D.cxx.

◆ Centered()

void TView3D::Centered ( )
virtual

Implements TView.

Definition at line 1929 of file TView3D.cxx.

◆ Centered3DImages()

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

Move view into the center of the scene.

Implements TView.

Definition at line 1634 of file TView3D.cxx.

◆ DefinePerspectiveView()

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 399 of file TView3D.cxx.

◆ DefineViewDirection()

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 direction.)
  • SINTHE - latitude SIN
  • COSPSI - screen plane rotation angle COS
  • SINPSI - screen plane rotation angle SIN

Implements TView.

Definition at line 513 of file TView3D.cxx.

◆ DrawOutlineCube()

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 619 of file TView3D.cxx.

◆ ExecuteEvent()

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

Execute action corresponding to one event.

Implements TView.

Definition at line 627 of file TView3D.cxx.

◆ ExecuteRotateView()

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 641 of file TView3D.cxx.

◆ FindNormal()

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 785 of file TView3D.cxx.

◆ FindPhiSectors()

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 805 of file TView3D.cxx.

◆ FindScope()

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 932 of file TView3D.cxx.

◆ FindThetaSectors()

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 871 of file TView3D.cxx.

◆ Front()

void TView3D::Front ( )
virtual

Implements TView.

Definition at line 1930 of file TView3D.cxx.

◆ FrontView()

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

Set to front view.

Implements TView.

Definition at line 1583 of file TView3D.cxx.

◆ GetAutoRange()

virtual Bool_t TView3D::GetAutoRange ( )
inlinevirtual

Implements TView.

Definition at line 89 of file TView3D.h.

◆ GetDistancetoAxis()

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 970 of file TView3D.cxx.

◆ GetDproj()

virtual Double_t TView3D::GetDproj ( ) const
inlinevirtual

Implements TView.

Definition at line 87 of file TView3D.h.

◆ GetDview()

virtual Double_t TView3D::GetDview ( ) const
inlinevirtual

Implements TView.

Definition at line 86 of file TView3D.h.

◆ GetExtent()

Double_t TView3D::GetExtent ( ) const
virtual

Get maximum view extent.

Implements TView.

Definition at line 1016 of file TView3D.cxx.

◆ GetLatitude()

virtual Double_t TView3D::GetLatitude ( )
inlinevirtual

Implements TView.

Definition at line 90 of file TView3D.h.

◆ GetLongitude()

virtual Double_t TView3D::GetLongitude ( )
inlinevirtual

Implements TView.

Definition at line 91 of file TView3D.h.

◆ GetOutline()

virtual TSeqCollection* TView3D::GetOutline ( )
inlinevirtual

Implements TView.

Definition at line 97 of file TView3D.h.

◆ GetPsi()

virtual Double_t TView3D::GetPsi ( )
inlinevirtual

Implements TView.

Definition at line 92 of file TView3D.h.

◆ GetRange() [1/2]

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

Get Range function.

Implements TView.

Definition at line 1028 of file TView3D.cxx.

◆ GetRange() [2/2]

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

Get Range function.

Implements TView.

Definition at line 1036 of file TView3D.cxx.

◆ GetRmax()

virtual Double_t* TView3D::GetRmax ( )
inlinevirtual

Implements TView.

Definition at line 95 of file TView3D.h.

◆ GetRmin()

virtual Double_t* TView3D::GetRmin ( )
inlinevirtual

Implements TView.

Definition at line 96 of file TView3D.h.

◆ GetSystem()

virtual Int_t TView3D::GetSystem ( )
inlinevirtual

Implements TView.

Definition at line 101 of file TView3D.h.

◆ GetTback()

virtual Double_t* TView3D::GetTback ( )
inlinevirtual

Implements TView.

Definition at line 98 of file TView3D.h.

◆ GetTN()

virtual Double_t* TView3D::GetTN ( )
inlinevirtual

Implements TView.

Definition at line 99 of file TView3D.h.

◆ GetTnorm()

virtual Double_t* TView3D::GetTnorm ( )
inlinevirtual

Implements TView.

Definition at line 100 of file TView3D.h.

◆ GetWindow()

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 1044 of file TView3D.cxx.

◆ GetWindowHeight()

virtual Double_t TView3D::GetWindowHeight ( ) const
inlinevirtual

Implements TView.

Definition at line 104 of file TView3D.h.

◆ GetWindowWidth()

virtual Double_t TView3D::GetWindowWidth ( ) const
inlinevirtual

Implements TView.

Definition at line 103 of file TView3D.h.

◆ IsClippedNDC()

Bool_t TView3D::IsClippedNDC ( Double_t p) const
virtual

Check if point is clipped in perspective view.

Implements TView.

Definition at line 1055 of file TView3D.cxx.

◆ IsPerspective()

virtual Bool_t TView3D::IsPerspective ( ) const
inlinevirtual

Implements TView.

Definition at line 109 of file TView3D.h.

◆ IsViewChanged()

virtual Bool_t TView3D::IsViewChanged ( ) const
inlinevirtual

Implements TView.

Definition at line 110 of file TView3D.h.

◆ MoveFocus()

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 1682 of file TView3D.cxx.

◆ MoveViewCommand()

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 1738 of file TView3D.cxx.

◆ MoveWindow()

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 1786 of file TView3D.cxx.

◆ NDCtoWC() [1/2]

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 1069 of file TView3D.cxx.

◆ NDCtoWC() [2/2]

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 1084 of file TView3D.cxx.

◆ NormalWCtoNDC() [1/2]

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 1099 of file TView3D.cxx.

◆ NormalWCtoNDC() [2/2]

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 1127 of file TView3D.cxx.

◆ operator=()

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

Assignment operator.

Definition at line 234 of file TView3D.cxx.

◆ PadRange()

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 1157 of file TView3D.cxx.

◆ ResetView()

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 1436 of file TView3D.cxx.

◆ ResizePad()

void TView3D::ResizePad ( )
virtual

Recompute window for perspective view.

Implements TView.

Definition at line 1404 of file TView3D.cxx.

◆ RotateView()

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 1554 of file TView3D.cxx.

◆ SetAutoRange()

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

Implements TView.

Definition at line 117 of file TView3D.h.

◆ SetAxisNDC()

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 1236 of file TView3D.cxx.

◆ SetDefaultWindow()

void TView3D::SetDefaultWindow ( )
virtual

Set default viewing window.

Implements TView.

Definition at line 1251 of file TView3D.cxx.

◆ SetDproj()

virtual void TView3D::SetDproj ( Double_t  dproj)
inlinevirtual

Implements TView.

Definition at line 121 of file TView3D.h.

◆ SetDview()

virtual void TView3D::SetDview ( Double_t  dview)
inlinevirtual

Implements TView.

Definition at line 120 of file TView3D.h.

◆ SetLatitude()

virtual void TView3D::SetLatitude ( Double_t  latitude)
inlinevirtual

Implements TView.

Definition at line 122 of file TView3D.h.

◆ SetLongitude()

virtual void TView3D::SetLongitude ( Double_t  longitude)
inlinevirtual

Implements TView.

Definition at line 123 of file TView3D.h.

◆ SetOutlineToCube()

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 1291 of file TView3D.cxx.

◆ SetParallel()

void TView3D::SetParallel ( )
virtual

Set the parallel option (default).

Implements TView.

Definition at line 1303 of file TView3D.cxx.

◆ SetPerspective()

void TView3D::SetPerspective ( )
virtual

Set perspective option.

Implements TView.

Definition at line 1314 of file TView3D.cxx.

◆ SetPsi()

virtual void TView3D::SetPsi ( Double_t  psi)
inlinevirtual

Implements TView.

Definition at line 124 of file TView3D.h.

◆ SetRange() [1/2]

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

Set Range function.

Implements TView.

Definition at line 1326 of file TView3D.cxx.

◆ SetRange() [2/2]

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 1349 of file TView3D.cxx.

◆ SetSystem()

virtual void TView3D::SetSystem ( Int_t  system)
inlinevirtual

Implements TView.

Definition at line 130 of file TView3D.h.

◆ SetView()

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

Set view parameters.

Implements TView.

Definition at line 1396 of file TView3D.cxx.

◆ SetViewChanged()

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

Implements TView.

Definition at line 132 of file TView3D.h.

◆ SetWindow()

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

Set viewing window.

Implements TView.

Definition at line 1385 of file TView3D.cxx.

◆ ShowAxis()

void TView3D::ShowAxis ( )
virtual

Implements TView.

Definition at line 1931 of file TView3D.cxx.

◆ Side()

void TView3D::Side ( )
virtual

Implements TView.

Definition at line 1932 of file TView3D.cxx.

◆ SideView()

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

Set to side view.

Implements TView.

Definition at line 1575 of file TView3D.cxx.

◆ ToggleRulers()

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

Turn on /off 3D axis.

Implements TView.

Definition at line 1599 of file TView3D.cxx.

◆ ToggleZoom()

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 1608 of file TView3D.cxx.

◆ Top()

void TView3D::Top ( )
virtual

Implements TView.

Definition at line 1933 of file TView3D.cxx.

◆ TopView()

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

Set to top view.

Implements TView.

Definition at line 1591 of file TView3D.cxx.

◆ UnZoom()

void TView3D::UnZoom ( )
virtual

Implements TView.

Definition at line 1936 of file TView3D.cxx.

◆ UnzoomView()

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

unZOOM this view.

Implements TView.

Definition at line 1650 of file TView3D.cxx.

◆ WCtoNDC() [1/2]

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 1478 of file TView3D.cxx.

◆ WCtoNDC() [2/2]

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 1510 of file TView3D.cxx.

◆ Zoom()

void TView3D::Zoom ( )
virtual

Implements TView.

Definition at line 1935 of file TView3D.cxx.

◆ ZoomIn()

void TView3D::ZoomIn ( )
virtual

Zoom in.

Implements TView.

Definition at line 1821 of file TView3D.cxx.

◆ ZoomMove()

void TView3D::ZoomMove ( )
virtual

Implements TView.

Definition at line 1934 of file TView3D.cxx.

◆ ZoomOut()

void TView3D::ZoomOut ( )
virtual

Zoom out.

Implements TView.

Definition at line 1841 of file TView3D.cxx.

◆ ZoomView()

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

ZOOM this view.

Implements TView.

Definition at line 1659 of file TView3D.cxx.

Member Data Documentation

◆ fAutoRange

Bool_t TView3D::fAutoRange
protected

Definition at line 55 of file TView3D.h.

◆ fChanged

Bool_t TView3D::fChanged
protected

Definition at line 56 of file TView3D.h.

◆ fDefaultOutline

Bool_t TView3D::fDefaultOutline
protected

Definition at line 54 of file TView3D.h.

◆ fDproj

Double_t TView3D::fDproj
protected

Definition at line 36 of file TView3D.h.

◆ fDview

Double_t TView3D::fDview
protected

Definition at line 35 of file TView3D.h.

◆ fLatitude

Double_t TView3D::fLatitude
protected

Definition at line 32 of file TView3D.h.

◆ fLongitude

Double_t TView3D::fLongitude
protected

Definition at line 33 of file TView3D.h.

◆ fOutline

TSeqCollection* TView3D::fOutline
protected

Definition at line 53 of file TView3D.h.

◆ fPsi

Double_t TView3D::fPsi
protected

Definition at line 34 of file TView3D.h.

◆ fRmax

Double_t TView3D::fRmax[3]
protected

Definition at line 41 of file TView3D.h.

◆ fRmin

Double_t TView3D::fRmin[3]
protected

Definition at line 42 of file TView3D.h.

◆ fSystem

Int_t TView3D::fSystem
protected

Definition at line 52 of file TView3D.h.

◆ fTB

Double_t TView3D::fTB[16]
protected

Definition at line 40 of file TView3D.h.

◆ fTback

Double_t TView3D::fTback[16]
protected

Definition at line 45 of file TView3D.h.

◆ fTN

Double_t TView3D::fTN[16]
protected

Definition at line 39 of file TView3D.h.

◆ fTnorm

Double_t TView3D::fTnorm[16]
protected

Definition at line 44 of file TView3D.h.

◆ fUpix

Double_t TView3D::fUpix
protected

Definition at line 37 of file TView3D.h.

◆ fUVcoord

Double_t TView3D::fUVcoord[4]
protected

Definition at line 43 of file TView3D.h.

◆ fVpix

Double_t TView3D::fVpix
protected

Definition at line 38 of file TView3D.h.

◆ fX1

Double_t TView3D::fX1[3]
protected

Definition at line 46 of file TView3D.h.

◆ fX2

Double_t TView3D::fX2[3]
protected

Definition at line 47 of file TView3D.h.

◆ fY1

Double_t TView3D::fY1[3]
protected

Definition at line 48 of file TView3D.h.

◆ fY2

Double_t TView3D::fY2[3]
protected

Definition at line 49 of file TView3D.h.

◆ fZ1

Double_t TView3D::fZ1[3]
protected

Definition at line 50 of file TView3D.h.

◆ fZ2

Double_t TView3D::fZ2[3]
protected

Definition at line 51 of file TView3D.h.

Libraries for TView3D:
[legend]

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