// @(#)root/g3d:$Id$
// Author: Nenad Buncic   19/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_TTRAP
#define ROOT_TTRAP


////////////////////////////////////////////////////////////////////////////
//                                                                        //
// TTRAP                                                                  //
//                                                                        //
// TRAP is a general trapezoid, i.e. one for which the faces perpendicular//
// to z are trapezia and their centres are not the same x, y. It has 11   //
// parameters: the half length in z, the polar angles from the centre of  //
// the face at low z to that at high z, H1 the half length in y at low z, //
// LB1 the half length in x at low z and y low edge, LB2 the half length  //
// in x at low z and y high edge, TH1 the angle w.r.t. the y axis from the//
// centre of low y edge to the centre of the high y edge, and H2, LB2,    //
// LH2, TH2, the corresponding quantities at high z.                      //
//                                                                        //
////////////////////////////////////////////////////////////////////////////

#ifndef ROOT_TBRIK
#include "TBRIK.h"
#endif

class TTRAP : public TBRIK {
protected:
   Float_t fH1;        // half length in y at low z
   Float_t fBl1;       // half length in x at low z and y low edge
   Float_t fTl1;       // half length in x at low z and y high edge
   Float_t fAlpha1;    // angle w.r.t. the y axis
   Float_t fH2;        // half length in y at high z
   Float_t fBl2;       // half length in x at high z and y low edge
   Float_t fTl2;       // half length in x at high z and y high edge
   Float_t fAlpha2;    // angle w.r.t. the y axis

   virtual void     SetPoints(Double_t *points) const;

public:
   TTRAP();
   TTRAP(const char *name, const char *title, const char *material, Float_t dz, Float_t theta, Float_t phi, Float_t h1,
         Float_t bl1, Float_t tl1, Float_t alpha1, Float_t h2, Float_t bl2, Float_t tl2,
         Float_t alpha2);
   virtual ~TTRAP();

   virtual Float_t  GetH1() const     {return fH1;}
   virtual Float_t  GetBl1() const    {return fBl1;}
   virtual Float_t  GetTl1() const    {return fTl1;}
   virtual Float_t  GetAlpha1() const {return fAlpha1;}
   virtual Float_t  GetH2() const     {return fH2;}
   virtual Float_t  GetBl2() const    {return fBl2;}
   virtual Float_t  GetTl2() const    {return fTl2;}
   virtual Float_t  GetAlpha2() const {return fAlpha2;}

   ClassDef(TTRAP,1)  //TRAP shape
};

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