981 if (
true)
return bbox.CalculateExtent(pAxis,pVoxelLimit,pTransform,pMin,pMax);
983 if (bbox.BoundingBoxVsVoxelLimits(pAxis,pVoxelLimit,pTransform,pMin,pMax))
985 return exist = (pMin < pMax) ?
true :
false;
999 std::ostringstream message;
1000 message <<
"Triangulation of the base polygon has failed for solid: "
1002 <<
"\nExtent has been calculated using boundary box";
1005 return bbox.CalculateExtent(pAxis,pVoxelLimit,pTransform,pMin,pMax);
1010 std::vector<const G4ThreeVectorList *> polygons;
1011 polygons.resize(nsect);
1017 G4int ntria = triangles.size()/3;
1018 for (
G4int i=0; i<ntria; ++i)
1021 for (
G4int k=0; k<nsect; ++k)
1030 G4ThreeVectorList::iterator iter = ptr->begin();
1031 G4double x0 = triangles[i3+0].x()*scale+dx;
1032 G4double y0 = triangles[i3+0].y()*scale+dy;
1035 G4double x1 = triangles[i3+1].x()*scale+dx;
1036 G4double y1 = triangles[i3+1].y()*scale+dy;
1039 G4double x2 = triangles[i3+2].x()*scale+dx;
1040 G4double y2 = triangles[i3+2].y()*scale+dy;
1047 if (!benv.CalculateExtent(pAxis,pVoxelLimit,pTransform,emin,emax))
continue;
1048 if (emin < pMin) pMin = emin;
1049 if (emax > pMax) pMax =
emax;
1050 if (eminlim > pMin && emaxlim < pMax)
break;
1053 for (
G4int k=0; k<nsect; ++k) {
delete polygons[k]; polygons[k]=0;}
1054 return (pMin < pMax);
void Extent(G4ThreeVector &pMin, G4ThreeVector &pMax) const
static const G4double kInfinity
std::vector< G4ThreeVector > G4ThreeVectorList
G4int GetNofZSections() const
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
static const G4double emax
ZSection GetZSection(G4int index) const
G4double GetMaxExtent(const EAxis pAxis) const
G4double GetMinExtent(const EAxis pAxis) const