44         double tolerance = kCarTolerance*kCarTolerance/4.0;
 
   48         else if ((GetCircumcentre()-right.
GetCircumcentre()).Mag2() > tolerance)
 
   50         else if (std::fabs((right.
GetSurfaceNormal()).Dot(GetSurfaceNormal())) < 0.9999999999)
 
   53         bool coincident  = 
true;
 
   61                         coincident = (GetVertex(i)-right.
GetVertex(j)).Mag2() < tolerance;
 
   62                 } 
while (!coincident && ++j < GetNumberOfVertices());
 
   63         } 
while (coincident && ++i < GetNumberOfVertices());
 
   72         int n = GetNumberOfVertices();
 
   73         for (
int i = 0; i < 
n; ++i)
 
   74                 SetVertex(i, GetVertex(i) + v);
 
   82         os << 
"*********************************************************************" << endl;
 
   83         os << 
"FACET TYPE       = " << GetEntityType() << endl;
 
   84         os << 
"ABSOLUTE VECTORS = " << endl;
 
   85         int n = GetNumberOfVertices();
 
   86         for (
int i = 0; i < 
n; ++i)
 
   87                 os << 
"P[" << i << 
"]      = " << GetVertex(i) << endl;
 
   95         os << 
"*********************************************************************" << endl;
 
  103         double displacement = d.
Dot(GetSurfaceNormal());
 
  104         return displacement <= 0.0;
 
static const double dirTolerance
 
bool operator==(const VUFacet &right) const 
 
virtual int GetNumberOfVertices() const =0
 
std::ostream & StreamInfo(std::ostream &os) const 
 
virtual UVector3 GetVertex(int i) const =0
 
void ApplyTranslation(const UVector3 v)
 
static double Tolerance()
 
virtual UVector3 GetSurfaceNormal() const =0
 
virtual UVector3 GetCircumcentre() const =0
 
double Dot(const UVector3 &) const 
 
bool IsInside(const UVector3 &p) const 
 
static const double kCarTolerance