25 class TView :
public TObject,
public TAttLine {
30 virtual ~TView() =
default;
32 virtual void DefinePerspectiveView() = 0;
33 virtual void AxisVertex(Double_t ang, Double_t *av, Int_t &ix1, Int_t &ix2, Int_t &iy1, Int_t &iy2, Int_t &iz1, Int_t &iz2) = 0;
34 virtual void DefineViewDirection(
const Double_t *s,
const Double_t *c,
35 Double_t cosphi, Double_t sinphi,
36 Double_t costhe, Double_t sinthe,
37 Double_t cospsi, Double_t sinpsi,
38 Double_t *tnorm, Double_t *tback) = 0;
39 virtual void DrawOutlineCube(TList *outline, Double_t *rmin, Double_t *rmax) = 0;
40 virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py) = 0;
41 virtual void ExecuteRotateView(Int_t event, Int_t px, Int_t py) = 0;
42 virtual void FindScope(Double_t *scale, Double_t *center, Int_t &irep) = 0;
43 virtual Int_t GetDistancetoAxis(Int_t axis, Int_t px, Int_t py, Double_t &ratio) = 0;
44 virtual Double_t GetDview()
const = 0;
45 virtual Double_t GetDproj()
const = 0;
46 virtual Double_t GetExtent()
const = 0;
47 virtual Bool_t GetAutoRange() = 0;
48 virtual Double_t GetLatitude() = 0;
49 virtual Double_t GetLongitude() = 0;
50 virtual Double_t GetPsi() = 0;
51 virtual void GetRange (Float_t *min, Float_t *max) = 0;
52 virtual void GetRange (Double_t *min, Double_t *max) = 0;
53 virtual Double_t *GetRmax() = 0;
54 virtual Double_t *GetRmin() = 0;
55 virtual TSeqCollection *GetOutline() = 0;
56 virtual Double_t *GetTback() = 0;
57 virtual Double_t *GetTN() = 0;
58 virtual Double_t *GetTnorm() = 0;
59 virtual Int_t GetSystem() = 0;
60 virtual void GetWindow(Double_t &u0, Double_t &v0, Double_t &du, Double_t &dv)
const = 0;
61 virtual Double_t GetWindowWidth()
const = 0;
62 virtual Double_t GetWindowHeight()
const = 0;
63 virtual void FindNormal(Double_t x, Double_t y, Double_t z, Double_t &zn) = 0;
64 virtual void FindPhiSectors(Int_t iopt, Int_t &kphi, Double_t *aphi, Int_t &iphi1, Int_t &iphi2) = 0;
65 virtual void FindThetaSectors(Int_t iopt, Double_t phi, Int_t &kth, Double_t *ath, Int_t &ith1, Int_t &ith2) = 0;
66 virtual Bool_t IsClippedNDC(Double_t *p)
const = 0;
67 virtual Bool_t IsPerspective()
const = 0;
68 virtual Bool_t IsViewChanged()
const = 0;
69 virtual void NDCtoWC(
const Float_t *pn, Float_t *pw) = 0;
70 virtual void NDCtoWC(
const Double_t *pn, Double_t *pw) = 0;
71 virtual void NormalWCtoNDC(
const Float_t *pw, Float_t *pn) = 0;
72 virtual void NormalWCtoNDC(
const Double_t *pw, Double_t *pn) = 0;
73 virtual void PadRange(Int_t rback) = 0;
74 virtual void ResizePad() = 0;
75 virtual void SetAutoRange(Bool_t autorange=kTRUE) = 0;
76 virtual void SetAxisNDC(
const Double_t *x1,
const Double_t *x2,
const Double_t *y1,
const Double_t *y2,
const Double_t *z1,
const Double_t *z2) = 0;
77 virtual void SetDefaultWindow() = 0;
78 virtual void SetDview(Double_t dview) = 0;
79 virtual void SetDproj(Double_t dproj) = 0;
80 virtual void SetLatitude(Double_t latitude) = 0;
81 virtual void SetLongitude(Double_t longitude) = 0;
82 virtual void SetPsi(Double_t psi) = 0;
83 virtual void SetOutlineToCube() = 0;
84 virtual void SetParallel() = 0;
85 virtual void SetPerspective() = 0;
86 virtual void SetRange(
const Double_t *min,
const Double_t *max) = 0;
87 virtual void SetRange(Double_t x0, Double_t y0, Double_t z0, Double_t x1, Double_t y1, Double_t z1, Int_t flag=0) = 0;
88 virtual void SetSystem(Int_t system) = 0;
89 virtual void SetView(Double_t longitude, Double_t latitude, Double_t psi, Int_t &irep) = 0;
90 virtual void SetViewChanged(Bool_t flag=kTRUE) = 0;
91 virtual void SetWindow(Double_t u0, Double_t v0, Double_t du, Double_t dv) = 0;
92 virtual void WCtoNDC(
const Float_t *pw, Float_t *pn) = 0;
93 virtual void WCtoNDC(
const Double_t *pw, Double_t *pn) = 0;
96 virtual void MoveFocus(Double_t *center, Double_t dx, Double_t dy, Double_t dz, Int_t nsteps=10,
97 Double_t dlong=0, Double_t dlat=0, Double_t dpsi=0) = 0;
98 virtual void MoveViewCommand(Char_t chCode, Int_t count=1) = 0;
99 virtual void MoveWindow(Char_t option) = 0;
101 virtual void AdjustScales(TVirtualPad *pad=0) = 0;
102 virtual void Centered3DImages(TVirtualPad *pad=0) = 0;
103 virtual void Centered() = 0;
104 virtual void FrontView(TVirtualPad *pad=0) = 0;
105 virtual void Front() = 0;
107 virtual void ZoomIn() = 0;
108 virtual void ZoomOut() = 0;
109 virtual void ZoomView(TVirtualPad *pad=0, Double_t zoomFactor = 1.25 ) = 0;
110 virtual void UnzoomView(TVirtualPad *pad=0,Double_t unZoomFactor = 1.25) = 0;
112 virtual void RotateView(Double_t phi, Double_t theta, TVirtualPad *pad=0) = 0;
113 virtual void SideView(TVirtualPad *pad=0) = 0;
114 virtual void Side() = 0;
115 virtual void TopView(TVirtualPad *pad=0) = 0;
116 virtual void Top() = 0;
118 virtual void ToggleRulers(TVirtualPad *pad=0) = 0;
119 virtual void ShowAxis() = 0;
120 virtual void ToggleZoom(TVirtualPad *pad=0) = 0;
121 virtual void ZoomMove() = 0;
122 virtual void Zoom() = 0;
123 virtual void UnZoom() = 0;
125 static TView *CreateView(Int_t system=1,
const Double_t *rmin=0,
const Double_t *rmax=0);