Major upgrade of AliRoot code
[u/mrichter/AliRoot.git] / GEODB / AliGSphere.h
1 #ifndef ALIGSPHERE_H
2 #define ALIGSPHERE_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 #include "AliGShape.h"
9
10 class AliGSphere: public AliGShape {
11
12     private:
13         Float_t   fAspectRatio; // Relation between asumth and grid size (by default 1.0)
14         Double_t* fCoTab;       // Table of cos(fPhimin) .... cos(Phi)
15         Double_t* fCoThetaTab;  // Table of sin(gThemin) .... cos(Theta)
16         Int_t     fNdiv;        // number of divisions
17         Int_t     fNz;          // number of sections
18         Double_t* fSiTab;       // Table of sin(fPhimin) .... sin(Phi)
19
20     protected:
21         Float_t faX;      // Coeff along Ox
22         Float_t faY;      // Coeff along Oy
23         Float_t faZ;      // Coeff along Oz
24         Float_t fPhimax;  // maximum phi
25         Float_t fPhimin;  // minimum phi
26         Float_t fRmax;    // maximum radius
27         Float_t fRmin;    // minimum radius
28         Float_t fThemax;  // maximum theta
29         Float_t fThemin;  // minimum theta
30
31         virtual void  MakeTableOfCoSin();  // Create the table of the fSiTab; fCoTab
32         virtual void  PaintGLPoints(Float_t *vertex);
33
34     public:
35         AliGSphere();
36         AliGSphere(Text_t *name, Text_t *title, Float_t rmin, Float_t rmax, Float_t themin, Float_t themax, Float_t phimin, Float_t phimax);
37         AliGSphere(Text_t *name, Text_t *title, Float_t rmax);
38         AliGSphere(AliGSphere *sphere);
39         virtual ~AliGSphere(); // Destructor
40
41         virtual void  Draw(Option_t *option);
42         virtual void  DrawShape(Option_t *option); // *MENU*
43         virtual Int_t GetNumberOfDivisions () const {if (fNdiv) return fNdiv; else return 0; /*kDiv;*/}
44         virtual void  Paint(Option_t *option);
45         virtual void  SetEllipse(Float_t *factors);
46         virtual void  SetNumberOfDivisions (Int_t p);
47         virtual void  SetPoints(Float_t *buff);
48                 void  Sizeof3D() const;
49
50    ClassDef(AliGSphere,1) //Simple sphere class
51 };
52 #endif