94 if (leng1 <= delta || leng2 <= delta || leng3 <= delta || leng4 <= delta ||
95 diag1 <= delta || diag2 <= delta)
98 message <<
"Sides/diagonals of facet are too small." <<
G4endl
103 <<
"Side1 length (P0->P1) = " << leng1 <<
G4endl
104 <<
"Side2 length (P1->P2) = " << leng2 <<
G4endl
105 <<
"Side3 length (P2->P3) = " << leng3 <<
G4endl
106 <<
"Side4 length (P3->P0) = " << leng4 <<
G4endl
107 <<
"Diagonal1 length (P0->P2) = " << diag1 <<
G4endl
108 <<
"Diagonal2 length (P1->P3) = " << diag2;
109 G4Exception(
"G4QuadrangularFacet::G4QuadrangularFacet()",
126 if (h1 <= delta || h2 <= delta || h3 <= delta || h4 <= delta )
129 message <<
"Facet has three or more collinear vertices." <<
G4endl
134 <<
"Height in P0-P1-P2 = " << h1 <<
G4endl
135 <<
"Height in P1-P2-P3 = " << h2 <<
G4endl
136 <<
"Height in P2-P3-P4 = " << h3 <<
G4endl
137 <<
"Height in P4-P0-P1 = " << h4;
138 G4Exception(
"G4QuadrangularFacet::G4QuadrangularFacet()",
151 message <<
"Facet is not planar." <<
G4endl
152 <<
"Disrepancy = " << hmin <<
G4endl
157 G4Exception(
"G4QuadrangularFacet::G4QuadrangularFacet()",
167 if (magnitude2 > delta*delta)
169 s = normal.
dot(e1.
cross(e3-e1)) / magnitude2;
170 t = normal.
dot(e1.
cross(e2)) / magnitude2;
175 message <<
"Facet is not convex." <<
G4endl
176 <<
"Parameters of crosspoint of diagonals: "
177 << s <<
" and " << t <<
G4endl
178 <<
"should both be within (0,1) range" <<
G4endl
183 G4Exception(
"G4QuadrangularFacet::G4QuadrangularFacet()",
193 normal = normal.
unit();
200 fRadius = std::sqrt(radiusSqr);
228 if (
this == &rhs)
return *
this;
254 if (v1.
mag2() < v2.
mag2())
return v1;
290 for (
G4int i = 0; i <= 3; ++i)
293 if (sp > ss) ss =
sp;
309 if (!intersect) intersect =
345 return "G4QuadrangularFacet";