289     xoff = (xoffset < xMin) ? (xMin-xoffset)
   290          : (xoffset > xMax) ? (xoffset-xMax) : 0.0;
   291     yoff = (yoffset < yMin) ? (yMin-yoffset)
   292          : (yoffset > yMax) ? (yoffset-yMax) : 0.0;
   314           maxDiff= 1.0-
sqr(yoff/ySemiAxis);
   315           if (maxDiff < 0.0) { 
return false; }
   316           maxDiff= xSemiAxis * std::sqrt(maxDiff);
   317           newMin=xoffset-maxDiff;
   318           newMax=xoffset+maxDiff;
   319           pMin=(newMin<xMin) ? xMin : newMin;
   320           pMax=(newMax>xMax) ? xMax : newMax;
   336           maxDiff= 1.0-
sqr(xoff/xSemiAxis);
   337           if (maxDiff < 0.0) { 
return false; }
   338           maxDiff= ySemiAxis * std::sqrt(maxDiff);
   339           newMin=yoffset-maxDiff;
   340           newMax=yoffset+maxDiff;
   341           pMin=(newMin<yMin) ? yMin : newMin;
   342           pMax=(newMax>yMax) ? yMax : newMax;
   359     G4int i,j,noEntries,noBetweenSections;
   360     G4bool existsAfterClip=
false;
   364     G4int noPolygonVertices=0;
   371     noEntries=vertices->size(); 
   372     noBetweenSections=noEntries-noPolygonVertices;
   375     for (i=0;i<noEntries;i+=noPolygonVertices)
   377       for(j=0;j<(noPolygonVertices/2)-1;j++)
   379         ThetaPolygon.push_back((*vertices)[i+j]);  
   380         ThetaPolygon.push_back((*vertices)[i+j+1]);  
   381         ThetaPolygon.push_back((*vertices)[i+noPolygonVertices-2-j]);
   382         ThetaPolygon.push_back((*vertices)[i+noPolygonVertices-1-j]);
   384         ThetaPolygon.clear();
   387     for (i=0;i<noBetweenSections;i+=noPolygonVertices)
   389       for(j=0;j<noPolygonVertices-1;j++)
   391         ThetaPolygon.push_back((*vertices)[i+j]);  
   392         ThetaPolygon.push_back((*vertices)[i+j+1]);  
   393         ThetaPolygon.push_back((*vertices)[i+noPolygonVertices+j+1]);
   394         ThetaPolygon.push_back((*vertices)[i+noPolygonVertices+j]);
   396         ThetaPolygon.clear();
   398       ThetaPolygon.push_back((*vertices)[i+noPolygonVertices-1]);
   399       ThetaPolygon.push_back((*vertices)[i]);
   400       ThetaPolygon.push_back((*vertices)[i+noPolygonVertices]);
   401       ThetaPolygon.push_back((*vertices)[i+2*noPolygonVertices-1]);
   403       ThetaPolygon.clear();
   407       existsAfterClip=
true;
   429         existsAfterClip=
true;
   435     return existsAfterClip;
 
G4double GetMinXExtent() const
 
static const G4double kInfinity
 
G4double GetMinYExtent() const
 
G4ThreeVectorList * CreateRotatedVertices(const G4AffineTransform &pT, G4int &noPV) const
 
G4double GetMinZExtent() const
 
G4bool IsYLimited() const
 
G4bool IsXLimited() const
 
G4double GetMaxZExtent() const
 
EInside Inside(const G4ThreeVector &p) const
 
G4double GetMaxXExtent() const
 
std::vector< G4ThreeVector > G4ThreeVectorList
 
G4double GetMinExtent(const EAxis pAxis) const
 
G4bool IsZLimited() const
 
G4double GetMaxExtent(const EAxis pAxis) const
 
void CalculateClippedPolygonExtent(G4ThreeVectorList &pPolygon, const G4VoxelLimits &pVoxelLimit, const EAxis pAxis, G4double &pMin, G4double &pMax) const
 
G4double GetMaxYExtent() const