// @(#)root/g3d:$Id$
// Author: Nenad Buncic   18/09/95

/*************************************************************************
 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

#ifndef ROOT_TTUBS
#define ROOT_TTUBS


////////////////////////////////////////////////////////////////////////////
//                                                                        //
// TTUBS                                                                  //
//                                                                        //
// TUBS is a phi segment of a tube. It has 5 parameters, the same 3 as    //
// TUBE plus the phi limits. The segment start at first limit and         //
// includes increasing phi value up to the second limit or that plus      //
// 360 degrees.                                                           //
//                                                                        //
////////////////////////////////////////////////////////////////////////////

#ifndef ROOT_TTUBE
#include "TTUBE.h"
#endif

class TTUBS : public TTUBE {
protected:
   Float_t fPhi1;        // first phi limit
   Float_t fPhi2;        // second phi limit
   virtual void    MakeTableOfCoSin() const;  // Create the table of the fSiTab; fCoTab

   virtual void    SetPoints(Double_t *points) const;

public:
   TTUBS();
   TTUBS(const char *name, const char *title, const char *material, Float_t rmin, Float_t rmax, Float_t dz,
         Float_t phi1, Float_t phi2);
   TTUBS(const char *name, const char *title, const char *material, Float_t rmax, Float_t dz,
         Float_t phi1, Float_t phi2);
   virtual ~TTUBS();

   virtual Int_t   DistancetoPrimitive(Int_t px, Int_t py);
   virtual const TBuffer3D &GetBuffer3D(Int_t reqSections) const;
   virtual Float_t GetPhi1() const {return fPhi1;}
   virtual Float_t GetPhi2() const {return fPhi2;}
   virtual void    Sizeof3D() const;

   ClassDef(TTUBS,1)  //TUBS shape
};

#endif
 TTUBS.h:1
 TTUBS.h:2
 TTUBS.h:3
 TTUBS.h:4
 TTUBS.h:5
 TTUBS.h:6
 TTUBS.h:7
 TTUBS.h:8
 TTUBS.h:9
 TTUBS.h:10
 TTUBS.h:11
 TTUBS.h:12
 TTUBS.h:13
 TTUBS.h:14
 TTUBS.h:15
 TTUBS.h:16
 TTUBS.h:17
 TTUBS.h:18
 TTUBS.h:19
 TTUBS.h:20
 TTUBS.h:21
 TTUBS.h:22
 TTUBS.h:23
 TTUBS.h:24
 TTUBS.h:25
 TTUBS.h:26
 TTUBS.h:27
 TTUBS.h:28
 TTUBS.h:29
 TTUBS.h:30
 TTUBS.h:31
 TTUBS.h:32
 TTUBS.h:33
 TTUBS.h:34
 TTUBS.h:35
 TTUBS.h:36
 TTUBS.h:37
 TTUBS.h:38
 TTUBS.h:39
 TTUBS.h:40
 TTUBS.h:41
 TTUBS.h:42
 TTUBS.h:43
 TTUBS.h:44
 TTUBS.h:45
 TTUBS.h:46
 TTUBS.h:47
 TTUBS.h:48
 TTUBS.h:49
 TTUBS.h:50
 TTUBS.h:51
 TTUBS.h:52
 TTUBS.h:53
 TTUBS.h:54
 TTUBS.h:55
 TTUBS.h:56