// @(#)root/g3d:$Name: $:$Id: TPGON.cxx,v 1.2 2005/03/09 18:19:26 brun Exp $ // Author: Nenad Buncic 29/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. * *************************************************************************/ #include "TPGON.h" ClassImp(TPGON) //______________________________________________________________________________ //
 
 
// PGON is a polygon. 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)
//     - dphi1      opening angle of the volume, which extends from phi1 to
//                  phi1+dphi
//     - npdv       number of sides of the cross section between the given
//                  phi limits
//     - 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
//______________________________________________________________________________
 TPGON::TPGON ()
{
//*-*-*-*-*-*-*-*-*-*-*-*-*PGON shape default constructor*-*-*-*-*-*-*-*-*-*-*-*
//*-*                      ==============================
}
//______________________________________________________________________________
 TPGON::TPGON (const char *name, const char *title, const char *material, Float_t phi1,
              Float_t dphi1, Int_t npdv, Int_t nz)
     : TPCON (name, title,material, phi1, dphi1, nz)
{
//*-*-*-*-*-*-*-*-*-*-*-*-*PGON shape normal constructor*-*-*-*-*-*-*-*-*-*-*-*-*
//*-*                      =============================
//*-*  Parameters of the nz positions must be entered via TPCON::DefineSection.
    SetNumberOfDivisions (npdv);
}
//______________________________________________________________________________
 TPGON::~TPGON ()
{
//*-*-*-*-*-*-*-*-*-*-*-*-*PGON shape default destructor*-*-*-*-*-*-*-*-*-*-*-*-*
//*-*                      =============================
}
//______________________________________________________________________________
 void TPGON::FillTableOfCoSin(Double_t phi, Double_t angstep,Int_t n) const
{
 // Fill the table of cos and sin to prepare drawing
  Double_t factor = 1./TMath::Cos(angstep/2);
  Double_t ph = phi-angstep;
  for (Int_t j = 0; j < n; j++)
  {
    ph += angstep;
    fCoTab[j] = factor*TMath::Cos(ph);
    fSiTab[j] = factor*TMath::Sin(ph);
  }
}