96 lines
2.0 KiB
Plaintext
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;
|
|
|
|
}
|