library: libGraf3d #include "TPCON.h"

# TPCON

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

## class TPCON : public TShape

| Inheritance Chart:

`TObject`

<-

`TNamed`

`TAttLine`

`TAttFill`

`TAtt3D`

<-

`TShape`

<-

`TPCON`

<-

`TPGON` |

        protected:

          virtual void FillTableOfCoSin(Double_t phi, Double_t angstep, Int_t n)
          virtual void MakeTableOfCoSin()
          virtual void PaintGLPoints(Float_t* vertex)

        public:

                           TPCON()
                           TPCON(const char* name, const char* title, const char* material, Float_t phi1, Float_t dphi1, Int_t nz)
                           TPCON(const TPCON&)
                   virtual ~TPCON()
            static TClass* Class()
              virtual void DefineSection(Int_t secNum, Float_t z, Float_t rmin, Float_t rmax)
             virtual Int_t DistancetoPrimitive(Int_t px, Int_t py)
           virtual Float_t GetDhi1() const
          virtual Float_t* GetDz() const
             virtual Int_t GetNdiv() const
             virtual Int_t GetNumberOfDivisions() const
             virtual Int_t GetNz() const
           virtual Float_t GetPhi1() const
          virtual Float_t* GetRmax() const
          virtual Float_t* GetRmin() const
           virtual TClass* IsA() const
                    TPCON& operator=(const TPCON&)
              virtual void Paint(Option_t* option)
              virtual void SetNumberOfDivisions(Int_t p)
              virtual void SetPoints(Float_t* buff)
              virtual void ShowMembers(TMemberInspector& insp, char* parent)
              virtual void Sizeof3D() const
              virtual void Streamer(TBuffer& b)
                      void StreamerNVirtual(TBuffer& b)

### Data Members

        protected:

          Double_t* fSiTab  ! Table of sin(fPhi1) .... sin(fPhil+fDphi1)
          Double_t* fCoTab  ! Table of cos(fPhi1) .... cos(fPhil+fDphi1)
            Float_t fPhi1   lower phi limit
            Float_t fDphi1  range in phi
              Int_t fNdiv   number of divisions
              Int_t fNz     number of z segments
           Float_t* fRmin   [fNz] pointer to array of inside radiuses
           Float_t* fRmax   [fNz] pointer to array of outside radiuses
           Float_t* fDz     [fNz] pointer to array of half lengths in z

## Class Description

     PCON is a polycone. It has the following parameters:

         - name       name of the shape
         - title      shape's title
         - material  (see TMaterial)
         - phi1       the azimuthal angle phi at which the volume begins (angles
                      are counted counterclockwise)
         - dphi       opening angle of the volume, which extends from
                      phi1 to phi1+dphi
         - nz         number of planes perpendicular to the z axis where
                      the dimension of the section is given -- this number
                      should be at least 2
         - rmin       array of dimension nz with minimum radius at a given plane
         - rmax       array of dimension nz with maximum radius at a given plane
         - z          array of dimension nz with z position of given plane

TPCON()

    *-*-*-*-*-*-*-*-*-*-*-*-*PCON shape default constructor*-*-*-*-*-*-*-*-*-*-*-*
    *-*                      ==============================

TPCON(const char *name, const char *title, const char *material, Float_t phi1, Float_t dphi1, Int_t nz) : TShape(name, title,material)

    *-*-*-*-*-*-*-*-*-*-*-*-*PCON shape normal constructor*-*-*-*-*-*-*-*-*-*-*-*-*
    *-*                      =============================
    *-*  Parameters of the nz positions must be entered via TPCON::DefineSection.

void MakeTableOfCoSin()

~TPCON()

    *-*-*-*-*-*-*-*-*-*-*-*-*PCON shape default destructor*-*-*-*-*-*-*-*-*-*-*-*-*
    *-*                      =============================

void DefineSection(Int_t secNum, Float_t z, Float_t rmin, Float_t rmax)

    *-*-*-*-*-*-*-*-*-*Defines section secNum of the polycone*-*-*-*-*-*-*-*-*-*-*
    *-*                ======================================

         - rmin  radius of the inner circle in the cross-section

         - rmax  radius of the outer circle in the cross-section

         - z     z coordinate of the section

Int_t DistancetoPrimitive(Int_t px, Int_t py)

    *-*-*-*-*-*-*-*Compute distance from point px,py to a PCON*-*-*-*-*-*-*
    *-*            ===========================================
    *-*
    *-*  Compute the closest distance of approach from point px,py to each
    *-*  computed outline point of the PCON.
    *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

void FillTableOfCoSin(Double_t phi, Double_t angstep,Int_t n)

     File the table of cos and sin to prepare drawing

void Paint(Option_t *option)

    *-*-*-*-*-*-*-*Paint this 3-D shape with its current attributes*-*-*-*-*-*-*-*
    *-*            ================================================

void PaintGLPoints(Float_t *vertex)

    *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*Paint BRIK via OpenGL *-*-*-*-*-*-*-*-*-*-*-*-*
    *-*                            =====================

void SetNumberOfDivisions (Int_t p)

void SetPoints(Float_t *buff)

    *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*Create PCON points*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
    *-*                            ==================

void Sizeof3D() const

    *-*-*-*-*-*-*Return total X3D size of this shape with its attributes*-*-*-*-*-*
    *-*          =======================================================

void Streamer(TBuffer &b)

    *-*-*-*-*-*-*-*-*Stream a class object*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
    *-*              =========================================

### Inline Functions

                  Int_t GetNumberOfDivisions() const
                Float_t GetPhi1() const
                Float_t GetDhi1() const
                  Int_t GetNz() const
               Float_t* GetRmin() const
               Float_t* GetRmax() const
               Float_t* GetDz() const
                  Int_t GetNdiv() const
                TClass* Class()
                TClass* IsA() const
                   void ShowMembers(TMemberInspector& insp, char* parent)
                   void StreamerNVirtual(TBuffer& b)
                  TPCON TPCON(const TPCON&)
                 TPCON& operator=(const TPCON&)

Author: Nenad Buncic 29/09/95
Last update: root/g3d:$Name: $:$Id: TPCON.cxx,v 1.3 2002/11/11 11:21:16 brun Exp $
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *