    // @(#)root/g3d:$Name:  $:$Id: TTRD1.cxx,v 1.4 2005/03/09 18:19:26 brun Exp $
    // Author: Nenad Buncic   17/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 "TTRD1.h"
    #include "TNode.h"

    ClassImp(TTRD1)

    //______________________________________________________________________________
    //

    // TRD1 is a trapezoid with the x dimension varying along z.
    // It has 7 parameters:
    //
    //     - name       name of the shape
    //     - title      shape's title
    //     - material  (see TMaterial)
    //     - dx1        half-length along x at the z surface positioned at -DZ
    //     - dx2        half-length along x at the z surface positioned at +DZ
    //     - dy         half-length along the y-axis
    //     - dz         half-length along the z-axis

    //______________________________________________________________________________
     TTRD1::TTRD1()
    {
       // TRD1 shape default constructor
    }

    //______________________________________________________________________________
     TTRD1::TTRD1(const char *name, const char *title, const char *material, Float_t dx1, Float_t dx2, Float_t dy, Float_t dz)
          : TBRIK(name, title,material,dx1,dy,dz)
    {
       // TRD1 shape normal constructor

       fDx2 = dx2;
    }

    //______________________________________________________________________________
     TTRD1::~TTRD1()
    {
       // TRD1 shape default destructor
    }

    //______________________________________________________________________________
     void TTRD1::SetPoints(Double_t *points) const
    {
       // Create TRD1 points

       Float_t dx1, dx2, dy, dz;

       dx1 = TBRIK::fDx;
       dx2 = fDx2;
       dy  = TBRIK::fDy;
       dz  = TBRIK::fDz;

       if (points) {
          points[ 0] = -dx1 ; points[ 1] = -dy ; points[ 2] = -dz;
          points[ 3] = -dx1 ; points[ 4] =  dy ; points[ 5] = -dz;
          points[ 6] =  dx1 ; points[ 7] =  dy ; points[ 8] = -dz;
          points[ 9] =  dx1 ; points[10] = -dy ; points[11] = -dz;
          points[12] = -dx2 ; points[13] = -dy ; points[14] =  dz;
          points[15] = -dx2 ; points[16] =  dy ; points[17] =  dz;
          points[18] =  dx2 ; points[19] =  dy ; points[20] =  dz;
          points[21] =  dx2 ; points[22] = -dy ; points[23] =  dz;
      }
    }