Major upgrade of AliRoot code
[u/mrichter/AliRoot.git] / GEODB / AliGShape.h
CommitLineData
ab2f6604 1#ifndef ALIGSHAPE_H
2#define ALIGSHAPE_H
3da30618 3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6/* $Id$ */
ab2f6604 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"
52class AliGNode;
53extern "C" { void FillX3DBuffer (X3DBuffer *buff); }
54
55class 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
78R__EXTERN AliGNode* gNode;
79R__EXTERN TVector* gMatrix;
80R__EXTERN Size3D gSize3D;
81
82inline void AliGShape::PaintGLPoints(Float_t *) { }
83inline void AliGShape::SetName(const Text_t *) { }
84
85#endif