2 // ********************************************************************
 
    3 // * This Software is part of the AIDA Unified Solids Library package *
 
    4 // * See: https://aidasoft.web.cern.ch/USolids                        *
 
    5 // ********************************************************************
 
    9 // --------------------------------------------------------------------
 
   13 // 21.10.13 Tatiana Nikitina, CERN; Ivana Hrivnacova, IPN Orsay
 
   14 //          Adapted from Root Arb8 implementation
 
   15 // --------------------------------------------------------------------
 
   18 double UGenericTrap::GetZHalfLength() const
 
   24 void UGenericTrap::SetZHalfLength(double halfZ)
 
   29 // --------------------------------------------------------------------
 
   32 int UGenericTrap::GetNofVertices() const
 
   34   return fVertices.size();
 
   37 // --------------------------------------------------------------------
 
   40 UVector2 UGenericTrap::GetVertex(int index) const
 
   42   if (index < 0 || index >= int(fVertices.size()))
 
   44     UUtils::Exception("UGenericTrap::GetVertex()", "GeomSolids0003",
 
   45                       FatalError, 1, "Index outside range.");
 
   47   return fVertices[index];
 
   50 // --------------------------------------------------------------------
 
   53 const std::vector<UVector2>& UGenericTrap::GetVertices() const
 
   58 // --------------------------------------------------------------------
 
   62 double UGenericTrap::GetTwistAngle(int index) const
 
   64   if ((index < 0) || (index >= int(fVertices.size())))
 
   66     UUtils::Exception ("UGenericTrap::GetTwistAngle()", "GeomSolids0003",
 
   67                        FatalError, 1, "Index outside range.");
 
   72 // --------------------------------------------------------------------
 
   75 bool UGenericTrap::IsTwisted() const
 
   80 // --------------------------------------------------------------------
 
   83 void UGenericTrap::SetTwistAngle(int index, double twist)
 
   85   if ((index < 0) || (index >= int(fVertices.size())))
 
   87     UUtils::Exception ("UGenericTrap::SetTwistAngle()", "GeomSolids0003",
 
   88                        FatalError, 1, "Index outside range.");
 
   90   fTwist[index] = twist;
 
   93 // --------------------------------------------------------------------
 
   96 int UGenericTrap::GetVisSubdivisions()const
 
   98   return fVisSubdivisions;
 
  101 // --------------------------------------------------------------------
 
  104 void UGenericTrap::SetVisSubdivisions(int subdiv)
 
  106   fVisSubdivisions = subdiv;
 
  109 // --------------------------------------------------------------------
 
  112 UVector3 UGenericTrap::GetMinimumBBox() const
 
  114   return fMinBBoxVector;
 
  117 // --------------------------------------------------------------------
 
  120 UVector3 UGenericTrap::GetMaximumBBox() const
 
  122   return fMaxBBoxVector;
 
  125 // --------------------------------------------------------------------