61 G4double tolerance = kCarTolerance*kCarTolerance/4.0;
65 else if ((GetCircumcentre()-right.
GetCircumcentre()).mag2() > tolerance)
67 else if (std::fabs((right.
GetSurfaceNormal()).dot(GetSurfaceNormal())) < 0.9999999999)
78 coincident = (GetVertex(i)-right.
GetVertex(j)).mag2() < tolerance;
79 }
while (!coincident && ++j < GetNumberOfVertices());
80 }
while (coincident && ++i < GetNumberOfVertices());
89 G4int n = GetNumberOfVertices();
90 for (
G4int i = 0; i <
n; ++i)
92 SetVertex(i, GetVertex(i) + v);
101 os <<
"*********************************************************************"
103 os <<
"FACET TYPE = " << GetEntityType() <<
G4endl;
104 os <<
"ABSOLUTE VECTORS = " <<
G4endl;
105 G4int n = GetNumberOfVertices();
106 for (
G4int i = 0; i <
n; ++i)
107 os <<
"P[" << i <<
"] = " << GetVertex(i) <<
G4endl;
108 os <<
"*********************************************************************"
118 return displacement <= 0.0;
static const G4double kCarTolerance
double dot(const Hep3Vector &) const
G4double GetSurfaceTolerance() const
virtual G4int GetNumberOfVertices() const =0
virtual G4ThreeVector GetCircumcentre() const =0
G4bool operator==(const G4VFacet &right) const
virtual G4ThreeVector GetSurfaceNormal() const =0
static const G4double dirTolerance
G4bool IsInside(const G4ThreeVector &p) const
std::ostream & StreamInfo(std::ostream &os) const
virtual G4ThreeVector GetVertex(G4int i) const =0
void ApplyTranslation(const G4ThreeVector v)
static G4GeometryTolerance * GetInstance()