Improvements in the looks
[u/mrichter/AliRoot.git] / GEODB / AliGShape.h
1 #ifndef ALIGSHAPE_H
2 #define ALIGSHAPE_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 /* -*- C++ -*- */
9 /*             */
10 /* 1998/10/22  */
11 /* --------------------------------------------------------------------------  */
12 /*                                                                             */
13 /* AliGShape Class                                                             */
14 /*                                                                             */
15 /* This file is part of the ALICE Geometry Database .                          */
16 /*                                                                             */
17 /* Author:  Joana E. Santo                                                     */
18 /*                                                                             */
19 /* --------------------------------------------------------------------------  */
20 /* The shape virtual class represents the basic elements used in this          */
21 /* geometry to build the constituents of a detector. Deriving from this        */
22 /* class there are simple shapes like box, sphere, cone and thorus,            */
23 /* supershapes that are obtained from the previous by Boolean operations       */
24 /* and also user defined shapes.                                               */
25
26 #ifndef ROOT_TNamed
27 #include <TNamed.h>
28
29 #endif
30
31 //#ifndef ROOT_TMaterial
32 //#include <TMaterial.h>
33 //#endif
34
35 #ifndef ROOT_TAttLine
36 #include <TAttLine.h>
37 #endif
38
39 #ifndef ROOT_TAttFill
40 #include <TAttFill.h>
41 #endif
42
43 #ifndef ROOT_X3DBuffer
44 #include <X3DBuffer.h>
45 #endif
46
47 #ifndef ROOT_TPolyLine3D
48 #include <TPolyLine3D.h>
49 #endif
50
51 #include "TVector.h"
52 class AliGNode;
53 extern "C" { void FillX3DBuffer (X3DBuffer *buff); }
54
55 class AliGShape: public TNamed, public TAttLine, public TAttFill { 
56     protected:
57         Int_t fColor;
58
59     public:
60         AliGShape(Text_t* name, Text_t* title);
61         AliGShape();
62         AliGShape( AliGShape* shape ); // Copy Constructor
63         virtual ~AliGShape() {}
64
65                 Int_t   DistancetoPrimitive(Int_t, Int_t);
66                 Int_t   GetCol() { return fColor; }
67         virtual Bool_t  Is3D () {return kTRUE;}
68         virtual void    Paint(Option_t *option="");
69         virtual void    PaintGLPoints(Float_t *vertex);
70         virtual void    PaintShape(X3DBuffer *buff, Bool_t rangeView);
71                 void    SetCol( Int_t color ) { fColor = color; }
72         virtual void    SetName(const Text_t *name);
73         virtual void    SetPoints(Float_t *buffer);
74
75     ClassDef(AliGShape,1) //Generic shape class
76 };
77
78 R__EXTERN AliGNode* gNode;
79 R__EXTERN TVector*  gMatrix;
80 R__EXTERN Size3D    gSize3D;
81
82 inline void AliGShape::PaintGLPoints(Float_t *) { }
83 inline void AliGShape::SetName(const Text_t *) { }
84
85 #endif