library: libGraf3d #include "TTUBE.h"

# TTUBE

class description - source file - inheritance tree (.pdf)

## class TTUBE : public TShape

| Inheritance Chart:
`TObject`
| <- | `TNamed`
`TAttLine`
`TAttFill`
`TAtt3D`
| <- | `TShape`
| <- | `TTUBE` |
<- |
`TCONE` |
`TELTU` |
`THYPE` |
`TTUBS` | <- |
`TCONS` |
`TCTUB` |

        protected:

          virtual void MakeTableOfCoSin() const
          virtual void SetPoints(Double_t* points) const
          virtual void SetSegsAndPols(TBuffer3D& buffer) const

        public:

                                   TTUBE()
                                   TTUBE(const char* name, const char* title, const char* material, Float_t rmin, Float_t rmax, Float_t dz, Float_t aspect = 1)
                                   TTUBE(const char* name, const char* title, const char* material, Float_t rmax, Float_t dz)
                                   TTUBE(const TTUBE&)
                           virtual ~TTUBE()
                    static TClass* Class()
                     virtual Int_t DistancetoPrimitive(Int_t px, Int_t py)
                   virtual Float_t GetAspectRatio() const
          virtual const TBuffer3D& GetBuffer3D(Int_t reqSections) const
                   virtual Float_t GetDz() const
                     virtual Int_t GetNdiv() const
                     virtual Int_t GetNumberOfDivisions() const
                   virtual Float_t GetRmax() const
                   virtual Float_t GetRmin() const
                   virtual TClass* IsA() const
                            TTUBE& operator=(const TTUBE&)
                      virtual void SetAspectRatio(Float_t factor = 1)
                      virtual void SetNumberOfDivisions(Int_t ndiv)
                      virtual void ShowMembers(TMemberInspector& insp, char* parent)
                      virtual void Sizeof3D() const
                      virtual void Streamer(TBuffer& b)
                              void StreamerNVirtual(TBuffer& b)

### Data Members

        protected:

            Float_t fRmin         ellipse  semi-axis   in  X inside
            Float_t fRmax         ellipse  semi-axis   in  X outside
            Float_t fDz           half length in z
              Int_t fNdiv         number of segments (precision)
            Float_t fAspectRatio  defines  (the ellipse semi-axis in Y)/(the ellipse semi-axis in X)
          Double_t* fSiTab        ! Table of sin(fPhi1) .... sin(fPhil+fDphi1)
          Double_t* fCoTab        ! Table of cos(fPhi1) .... cos(fPhil+fDphi1)

## Class Description

     TUBE is a tube. It has 6 parameters:

         - name       name of the shape
         - title      shape's title
         - material  (see TMaterial)
         - rmin       inside radius
         - rmax       outside radius
         - dz         half length in z

TTUBE()

     TUBE shape default constructor

TTUBE(const char *name, const char *title, const char *material, Float_t rmin, Float_t rmax, Float_t dz,Float_t aspect) : TShape(name, title,material)

     TUBE shape normal constructor

TTUBE(const char *name, const char *title, const char *material, Float_t rmax, Float_t dz) : TShape(name, title,material)

     TUBE shape "simplified" constructor

void MakeTableOfCoSin() const // Internal cache - const so other const fn can use

~TTUBE()

     TUBE shape default destructor

Int_t DistancetoPrimitive(Int_t px, Int_t py)

     Compute distance from point px,py to a TUBE

     Compute the closest distance of approach from point px,py to each
     computed outline point of the TUBE.

void SetNumberOfDivisions (Int_t ndiv)

     Set number of divisions used to draw this tube

void SetPoints(Double_t *points) const

     Create TUBE points

void SetSegsAndPols(TBuffer3D & buffer) const

void Sizeof3D() const

     Return total X3D needed by TNode::ls (when called with option "x")

void Streamer(TBuffer &R__b)

     Stream an object of class TTUBE.

const TBuffer3D& GetBuffer3D(Int_t reqSections) const

### Inline Functions

                Float_t GetRmin() const
                Float_t GetRmax() const
                Float_t GetDz() const
                  Int_t GetNdiv() const
                Float_t GetAspectRatio() const
                  Int_t GetNumberOfDivisions() const
                   void SetAspectRatio(Float_t factor = 1)
                TClass* Class()
                TClass* IsA() const
                   void ShowMembers(TMemberInspector& insp, char* parent)
                   void StreamerNVirtual(TBuffer& b)
                  TTUBE TTUBE(const TTUBE&)
                 TTUBE& operator=(const TTUBE&)

Author: Nenad Buncic 18/09/95
Last update: root/g3d:$Name: $:$Id: TTUBE.cxx,v 1.10 2005/03/18 08:03:27 brun Exp $
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *