#ifndef ROOT_TSPHE
#define ROOT_TSPHE
#ifndef ROOT_TBRIK
#include "TShape.h"
#endif
class TSPHE : public TShape {
private:
mutable Double_t *fSiTab;
mutable Double_t *fCoTab;
mutable Double_t *fCoThetaTab;
Int_t fNdiv;
Int_t fNz;
Float_t fAspectRatio;
protected:
Float_t fRmin;
Float_t fRmax;
Float_t fThemin;
Float_t fThemax;
Float_t fPhimin;
Float_t fPhimax;
Float_t faX;
Float_t faY;
Float_t faZ;
virtual void MakeTableOfCoSin() const;
virtual void SetPoints(Double_t *points) const;
public:
TSPHE();
TSPHE(const char *name, const char *title, const char *material, Float_t rmin, Float_t rmax, Float_t themin,
Float_t themax, Float_t phimin, Float_t phimax);
TSPHE(const char *name, const char *title, const char *material, Float_t rmax);
virtual ~TSPHE();
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py);
virtual const TBuffer3D &GetBuffer3D(Int_t reqSections) const;
virtual Float_t GetRmin() const {return fRmin;}
virtual Float_t GetRmax() const {return fRmax;}
virtual Float_t GetThemin() const {return fThemin;}
virtual Float_t GetThemax() const {return fThemax;}
virtual Float_t GetPhimin() const {return fPhimin;}
virtual Float_t GetPhimax() const {return fPhimax;}
virtual Float_t GetAspectRatio() const { return fAspectRatio;}
virtual Int_t GetNumberOfDivisions () const {return fNdiv;}
virtual void SetAspectRatio(Float_t factor=1.0){ fAspectRatio = factor; MakeTableOfCoSin();}
virtual void SetEllipse(const Float_t *factors);
virtual void SetNumberOfDivisions (Int_t p);
virtual void Sizeof3D() const;
ClassDef(TSPHE,3)
};
#endif