Files
geant4/source/geometry/solids/usolids/include/UPolyhedra.icc
T
2016-06-10 11:51:14 +02:00

96 lines
2.0 KiB
Plaintext

//
// ********************************************************************
// * This Software is part of the AIDA Unified Solids Library package *
// * See: https://aidasoft.web.cern.ch/USolids *
// ********************************************************************
//
// $Id:$
//
// --------------------------------------------------------------------
//
// UPolyhedra.icc
//
// Implementation of inline methods of UPolyhedra
//
// 19.09.13 Marek Gayer
// Created from original implementation in Geant4
// --------------------------------------------------------------------
inline
int UPolyhedra::GetNumSide() const
{
return fNumSides;
}
inline
double UPolyhedra::GetStartPhi() const
{
return fStartPhi;
}
inline
double UPolyhedra::GetEndPhi() const
{
return fEndPhi;
}
inline
bool UPolyhedra::IsOpen() const
{
return fPhiIsOpen;
}
inline
bool UPolyhedra::IsGeneric() const
{
return fGenericPgon;
}
inline
int UPolyhedra::GetNumRZCorner() const
{
return fNumCorner;
}
inline
UPolyhedraSideRZ UPolyhedra::GetCorner(const int index) const
{
return fCorners[index];
}
inline
UPolyhedraHistorical* UPolyhedra::GetOriginalParameters()
{
return &fOriginalParameters;
}
inline
void UPolyhedra::SetOriginalParameters(UPolyhedraHistorical& pars)
{
fOriginalParameters = pars;
fCubicVolume = 0.;
}
inline
void UPolyhedra::SetOriginalParameters()
{
int fNumPlanes = (int) fNumCorner / 2;
fOriginalParameters.fZValues.resize(fNumPlanes);
fOriginalParameters.Rmin.resize(fNumPlanes);
fOriginalParameters.Rmax.resize(fNumPlanes);
for (int j = 0; j < fNumPlanes; j++)
{
fOriginalParameters.fZValues[j] = fCorners[fNumPlanes + j].z;
fOriginalParameters.Rmax[j] = fCorners[fNumPlanes + j].r;
fOriginalParameters.Rmin[j] = fCorners[fNumPlanes - 1 - j].r;
}
fOriginalParameters.fStartAngle = fStartPhi;
fOriginalParameters.fOpeningAngle = fEndPhi - fStartPhi;
fOriginalParameters.fNumZPlanes = fNumPlanes;
fOriginalParameters.fNumSide = fNumSides;
}