47     SetVertex(1, vt0 + vt1);
 
   48     SetVertex(2, vt0 + vt2);
 
   49     SetVertex(3, vt0 + vt3);
 
   55   double length1 = e1.
Mag();
 
   56   double length2 = (GetVertex(2) - GetVertex(1)).Mag();
 
   57   double length3 = (GetVertex(3) - GetVertex(2)).Mag();
 
   58   double length4 = e3.
Mag();
 
   65                     normal1.
Dot(normal2) >= 0.9999999999);
 
   75     UVector3 normal12 = fFacet1.GetSurfaceNormal() + fFacet2.GetSurfaceNormal();
 
   79     fFacet1.SetSurfaceNormal(normal);
 
   80     fFacet2.SetSurfaceNormal(normal);
 
   83     fCircumcentre = GetVertex(0) + vtmp;
 
   84     double radiusSqr = vtmp.
Mag2();
 
   85     fRadius = std::sqrt(radiusSqr);
 
   89     UUtils::Exception(
"UQuadrangularFacet::UQuadrangularFacet()", 
"InvalidSetup", 
Warning, 1, 
"Length of sides of facet are too small or sides not planar.");
 
   91     cerr << 
"P0 = " << GetVertex(0) << endl;
 
   92     cerr << 
"P1 = " << GetVertex(1) << endl;
 
   93     cerr << 
"P2 = " << GetVertex(2) << endl;
 
   94     cerr << 
"P3 = " << GetVertex(3) << endl;
 
   95     cerr << 
"Side lengths = P0->P1" << length1 << endl;
 
   96     cerr << 
"Side lengths = P1->P2" << length2 << endl;
 
   97     cerr << 
"Side lengths = P2->P3" << length3 << endl;
 
   98     cerr << 
"Side lengths = P3->P0" << length4 << endl;
 
  149   if (v1.
Mag2() < v2.
Mag2()) 
return v1;
 
  181   for (
int i = 0; i <= 3; ++i)
 
  184     if (sp > ss) ss = 
sp;
 
  191   bool intersect = 
fFacet1.
Intersect(p, v, outgoing, distance, distFromSurface, normal);
 
  192   if (!intersect) intersect = 
fFacet2.
Intersect(p, v, outgoing, distance, distFromSurface, normal);
 
  217   return "UQuadrangularFacet";
 
virtual UGeometryType GetEntityType() const 
 
static const double dirTolerance
 
UVector3 GetPointOnFace() const 
 
UVector3 Distance(const UVector3 &p)
 
UVector3 GetSurfaceNormal() const 
 
virtual ~UQuadrangularFacet()
 
UVector3 Cross(const UVector3 &) const 
 
UQuadrangularFacet & operator=(const UQuadrangularFacet &right)
 
static double Tolerance()
 
static double normal(HepRandomEngine *eptr)
 
UQuadrangularFacet(const UVector3 &Pt0, const UVector3 &vt1, const UVector3 &vt2, const UVector3 &vt3, UFacetVertexType)
 
static const double kInfinity
 
double Extent(const UVector3 axis)
 
double Dot(const UVector3 &) const 
 
void Exception(const char *originOfException, const char *exceptionCode, UExceptionSeverity severity, int level, const char *description)
 
void Set(double xx, double yy, double zz)
 
UVector3 GetPointOnFace() const 
 
UVector3 GetVertex(int i) const 
 
bool Intersect(const UVector3 &p, const UVector3 &v, const bool outgoing, double &distance, double &distFromSurface, UVector3 &normal)
 
UVector3 GetSurfaceNormal() const 
 
double Random(double min=0.0, double max=1.0)
 
bool Intersect(const UVector3 &p, const UVector3 &v, const bool outgoing, double &distance, double &distFromSurface, UVector3 &normal)
 
UVector3 Distance(const UVector3 &p)