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

94 lines
2.1 KiB
Plaintext

//
// ********************************************************************
// * This Software is part of the AIDA Unified Solids Library package *
// * See: https://aidasoft.web.cern.ch/USolids *
// ********************************************************************
//
// $Id:$
//
// --------------------------------------------------------------------
//
// UPolycone.icc
//
// Implementation of inline methods of UPolycone
//
// 19.04.13 Marek Gayer
// Created from original implementation in Geant4
// --------------------------------------------------------------------
inline
double UPolycone::GetStartPhi() const
{
return startPhi;
}
inline
double UPolycone::GetEndPhi() const
{
return endPhi;
}
inline
bool UPolycone::IsOpen() const
{
return phiIsOpen;
}
inline
bool UPolycone::IsGeneric() const
{
return false;
}
inline
int UPolycone::GetNumRZCorner() const
{
return numCorner;
}
inline
UPolyconeSideRZ UPolycone::GetCorner(int index) const
{
return corners[index];
}
inline
UPolyconeHistorical* UPolycone::GetOriginalParameters() const
{
return fOriginalParameters;
}
inline
void UPolycone::SetOriginalParameters(UPolyconeHistorical* pars)
{
if (!pars)
// UException("UPolycone::SetOriginalParameters()", "GeomSolids0002",
// FatalException, "NULL pointer to parameters!");
*fOriginalParameters = *pars;
fCubicVolume = 0.;
fpPolyhedron = 0;
}
inline
void UPolycone::SetOriginalParameters()
{
int numPlanes = (int)numCorner / 2;
fOriginalParameters = new UPolyconeHistorical;
fOriginalParameters->fZValues.resize(numPlanes);
fOriginalParameters->Rmin.resize(numPlanes);
fOriginalParameters->Rmax.resize(numPlanes);
for (int j = 0; j < numPlanes; j++)
{
fOriginalParameters->fZValues[j] = corners[numPlanes + j].z;
fOriginalParameters->Rmax[j] = corners[numPlanes + j].r;
fOriginalParameters->Rmin[j] = corners[numPlanes - 1 - j].r;
}
fOriginalParameters->fStartAngle = startPhi;
fOriginalParameters->fOpeningAngle = endPhi - startPhi;
fOriginalParameters->fNumZPlanes = numPlanes;
}