Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TSPHE.h
Go to the documentation of this file.
1// @(#)root/g3d:$Id$
2// Author: Rene Brun 13/06/97
3
4/*************************************************************************
5 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12#ifndef ROOT_TSPHE
13#define ROOT_TSPHE
14
15
16////////////////////////////////////////////////////////////////////////////
17// //
18// TSPHE //
19// //
20// SPHE is Sphere. Not implemented yet. //
21// //
22////////////////////////////////////////////////////////////////////////////
23
24#include "TShape.h"
25
26// const Int_t kDiv = 30; //default number of z segments for semi-sphere
27
28class TSPHE : public TShape {
29private:
30 // Internal cache
31 mutable Double_t *fSiTab; //! Table of sin(fPhimin) .... sin(Phi)
32 mutable Double_t *fCoTab; //! Table of cos(fPhimin) .... cos(Phi)
33 mutable Double_t *fCoThetaTab; //! Table of sin(gThemin) .... cos(Theta)
34 Int_t fNdiv; // number of divisions
35 Int_t fNz; //! number of sections
36 Float_t fAspectRatio; // Relation between asumth and grid size (by default 1.0)
37
38protected:
39 Float_t fRmin; // minimum radius
40 Float_t fRmax; // maximum radius
41 Float_t fThemin; // minimum theta
42 Float_t fThemax; // maximum theta
43 Float_t fPhimin; // minimum phi
44 Float_t fPhimax; // maximum phi
45 Float_t faX; // Coeff along Ox
46 Float_t faY; // Coeff along Oy
47 Float_t faZ; // Coeff along Oz
48
49 virtual void MakeTableOfCoSin() const; // Create the table of the fSiTab; fCoTab
50 void SetPoints(Double_t *points) const override;
51
52public:
53 TSPHE();
54 TSPHE(const char *name, const char *title, const char *material, Float_t rmin, Float_t rmax, Float_t themin,
55 Float_t themax, Float_t phimin, Float_t phimax);
56 TSPHE(const char *name, const char *title, const char *material, Float_t rmax);
57 ~TSPHE() override;
58 Int_t DistancetoPrimitive(Int_t px, Int_t py) override;
59 const TBuffer3D &GetBuffer3D(Int_t reqSections) const override;
60 virtual Float_t GetRmin() const {return fRmin;}
61 virtual Float_t GetRmax() const {return fRmax;}
62 virtual Float_t GetThemin() const {return fThemin;}
63 virtual Float_t GetThemax() const {return fThemax;}
64 virtual Float_t GetPhimin() const {return fPhimin;}
65 virtual Float_t GetPhimax() const {return fPhimax;}
66 virtual Float_t GetAspectRatio() const { return fAspectRatio;}
67 virtual Int_t GetNumberOfDivisions () const {return fNdiv;}
68 virtual void SetAspectRatio(Float_t factor=1.0){ fAspectRatio = factor; MakeTableOfCoSin();}
69 virtual void SetEllipse(const Float_t *factors);
70 virtual void SetNumberOfDivisions (Int_t p);
71 void Sizeof3D() const override;
72
73 ClassDefOverride(TSPHE,3) //SPHE shape
74};
75
76#endif
int Int_t
Definition RtypesCore.h:45
float Float_t
Definition RtypesCore.h:57
#define ClassDefOverride(name, id)
Definition Rtypes.h:341
winID h TVirtualViewer3D TVirtualGLPainter p
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t points
char name[80]
Definition TGX11.cxx:110
Generic 3D primitive description class.
Definition TBuffer3D.h:18
A Sphere.
Definition TSPHE.h:28
virtual Float_t GetThemax() const
Definition TSPHE.h:63
Float_t faY
Definition TSPHE.h:46
virtual void SetNumberOfDivisions(Int_t p)
Set number of divisions.
Definition TSPHE.cxx:150
Float_t fPhimax
Definition TSPHE.h:44
~TSPHE() override
SPHE shape default destructor.
Definition TSPHE.cxx:113
virtual Float_t GetAspectRatio() const
Definition TSPHE.h:66
Int_t DistancetoPrimitive(Int_t px, Int_t py) override
Compute distance from point px,py to a PSPHE.
Definition TSPHE.cxx:130
Float_t fThemax
Definition TSPHE.h:42
virtual Float_t GetThemin() const
Definition TSPHE.h:62
virtual Int_t GetNumberOfDivisions() const
Definition TSPHE.h:67
virtual Float_t GetRmax() const
Definition TSPHE.h:61
virtual Float_t GetRmin() const
Definition TSPHE.h:60
virtual void MakeTableOfCoSin() const
Make table of sine and cosine.
Definition TSPHE.cxx:213
TSPHE()
SPHE shape default constructor.
Definition TSPHE.cxx:44
Float_t fRmax
Definition TSPHE.h:40
void SetPoints(Double_t *points) const override
Create SPHE points.
Definition TSPHE.cxx:161
const TBuffer3D & GetBuffer3D(Int_t reqSections) const override
Get buffer 3d.
Definition TSPHE.cxx:310
Float_t faX
Definition TSPHE.h:45
Int_t fNz
Definition TSPHE.h:35
Float_t fRmin
Definition TSPHE.h:39
virtual Float_t GetPhimax() const
Definition TSPHE.h:65
Float_t fPhimin
Definition TSPHE.h:43
virtual Float_t GetPhimin() const
Definition TSPHE.h:64
Float_t faZ
Definition TSPHE.h:47
Double_t * fCoThetaTab
Table of cos(fPhimin) .... cos(Phi)
Definition TSPHE.h:33
Float_t fThemin
Definition TSPHE.h:41
Double_t * fCoTab
Table of sin(fPhimin) .... sin(Phi)
Definition TSPHE.h:32
virtual void SetEllipse(const Float_t *factors)
Set ellipse.
Definition TSPHE.cxx:140
virtual void SetAspectRatio(Float_t factor=1.0)
Definition TSPHE.h:68
Float_t fAspectRatio
number of sections
Definition TSPHE.h:36
Double_t * fSiTab
Definition TSPHE.h:31
void Sizeof3D() const override
Return total X3D needed by TNode::ls (when called with option "x")
Definition TSPHE.cxx:194
Int_t fNdiv
Table of sin(gThemin) .... cos(Theta)
Definition TSPHE.h:34
This is the base class for all geometry shapes.
Definition TShape.h:35