#include <G4QuadrangularFacet.hh>
|
| G4QuadrangularFacet (const G4ThreeVector &Pt0, const G4ThreeVector &vt1, const G4ThreeVector &vt2, const G4ThreeVector &vt3, G4FacetVertexType) |
|
| G4QuadrangularFacet (const G4QuadrangularFacet &right) |
|
| ~G4QuadrangularFacet () |
|
G4QuadrangularFacet & | operator= (const G4QuadrangularFacet &right) |
|
G4VFacet * | GetClone () |
|
G4ThreeVector | Distance (const G4ThreeVector &p) |
|
G4double | Distance (const G4ThreeVector &p, G4double minDist) |
|
G4double | Distance (const G4ThreeVector &p, G4double minDist, const G4bool outgoing) |
|
G4double | Extent (const G4ThreeVector axis) |
|
G4bool | Intersect (const G4ThreeVector &p, const G4ThreeVector &v, const G4bool outgoing, G4double &distance, G4double &distFromSurface, G4ThreeVector &normal) |
|
G4ThreeVector | GetSurfaceNormal () const |
|
G4double | GetArea () const |
|
G4ThreeVector | GetPointOnFace () const |
|
G4GeometryType | GetEntityType () const |
|
G4bool | IsDefined () const |
|
G4int | GetNumberOfVertices () const |
|
G4ThreeVector | GetVertex (G4int i) const |
|
void | SetVertex (G4int i, const G4ThreeVector &val) |
|
void | SetVertices (std::vector< G4ThreeVector > *v) |
|
G4double | GetRadius () const |
|
G4ThreeVector | GetCircumcentre () const |
|
virtual | ~G4VFacet () |
|
G4bool | operator== (const G4VFacet &right) const |
|
void | ApplyTranslation (const G4ThreeVector v) |
|
std::ostream & | StreamInfo (std::ostream &os) const |
|
G4bool | IsInside (const G4ThreeVector &p) const |
|
Definition at line 69 of file G4QuadrangularFacet.hh.
Definition at line 60 of file G4QuadrangularFacet.cc.
104 if (leng1 <= delta || leng2 <= delta || leng3 <= delta || leng4 <= delta ||
105 diag1 <= delta || diag2 <= delta)
107 ostringstream message;
108 message <<
"Sides/diagonals of facet are too small." <<
G4endl
113 <<
"Side1 length (P0->P1) = " << leng1 <<
G4endl
114 <<
"Side2 length (P1->P2) = " << leng2 <<
G4endl
115 <<
"Side3 length (P2->P3) = " << leng3 <<
G4endl
116 <<
"Side4 length (P3->P0) = " << leng4 <<
G4endl
117 <<
"Diagonal1 length (P0->P2) = " << diag1 <<
G4endl
118 <<
"Diagonal2 length (P1->P3) = " << diag2;
119 G4Exception(
"G4QuadrangularFacet::G4QuadrangularFacet()",
127 G4double s2 = ((e2-e1).cross(e3-e2)).mag()*0.5;
136 if (h1 <= delta || h2 <= delta || h3 <= delta || h4 <= delta )
138 ostringstream message;
139 message <<
"Facet has three or more collinear vertices." <<
G4endl
144 <<
"Height in P0-P1-P2 = " << h1 <<
G4endl
145 <<
"Height in P1-P2-P3 = " << h2 <<
G4endl
146 <<
"Height in P2-P3-P4 = " << h3 <<
G4endl
147 <<
"Height in P4-P0-P1 = " << h4;
148 G4Exception(
"G4QuadrangularFacet::G4QuadrangularFacet()",
160 ostringstream message;
161 message <<
"Facet is not planar." <<
G4endl
162 <<
"Disrepancy = " << hmin <<
G4endl
167 G4Exception(
"G4QuadrangularFacet::G4QuadrangularFacet()",
177 if (magnitude2 > delta*delta)
179 s = normal.
dot(e1.
cross(e3-e1)) / magnitude2;
180 t = normal.
dot(e1.
cross(e2)) / magnitude2;
184 ostringstream message;
185 message <<
"Facet is not convex." <<
G4endl
186 <<
"Parameters of crosspoint of diagonals: "
187 << s <<
" and " << t <<
G4endl
188 <<
"should both be within (0,1) range" <<
G4endl
193 G4Exception(
"G4QuadrangularFacet::G4QuadrangularFacet()",
203 normal = normal.
unit();
210 fRadius = std::sqrt(radiusSqr);
static const G4double kInfinity
static const G4double kCarTolerance
double dot(const Hep3Vector &) const
static double normal(HepRandomEngine *eptr)
G4ThreeVector GetVertex(G4int i) const
void SetSurfaceNormal(G4ThreeVector normal)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
void SetVertex(G4int i, const G4ThreeVector &val)
T max(const T t1, const T t2)
brief Return the largest of the two arguments
Hep3Vector cross(const Hep3Vector &) const
double epsilon(double density, double temperature)
G4QuadrangularFacet::~G4QuadrangularFacet |
( |
| ) |
|
Implements G4VFacet.
Definition at line 280 of file G4QuadrangularFacet.cc.
static const G4double kInfinity
double dot(const Hep3Vector &) const
G4ThreeVector GetSurfaceNormal() const
static const G4double dirTolerance
G4ThreeVector Distance(const G4ThreeVector &p)
Implements G4VFacet.
Definition at line 297 of file G4QuadrangularFacet.cc.
301 for (
G4int i = 0; i <= 3; ++i)
304 if (sp > ss) ss =
sp;
double dot(const Hep3Vector &) const
G4ThreeVector GetVertex(G4int i) const
G4double G4QuadrangularFacet::GetArea |
( |
| ) |
const |
|
virtual |
G4VFacet * G4QuadrangularFacet::GetClone |
( |
| ) |
|
|
virtual |
Implements G4VFacet.
Definition at line 250 of file G4QuadrangularFacet.cc.
G4QuadrangularFacet(const G4ThreeVector &Pt0, const G4ThreeVector &vt1, const G4ThreeVector &vt2, const G4ThreeVector &vt3, G4FacetVertexType)
G4ThreeVector GetVertex(G4int i) const
G4String G4QuadrangularFacet::GetEntityType |
( |
| ) |
const |
|
virtual |
G4int G4QuadrangularFacet::GetNumberOfVertices |
( |
| ) |
const |
|
inlinevirtual |
G4double G4QuadrangularFacet::GetRadius |
( |
| ) |
const |
|
inlinevirtual |
Implements G4VFacet.
Definition at line 311 of file G4QuadrangularFacet.cc.
319 fFacet1.
Intersect(p,v,outgoing,distance,distFromSurface,normal);
320 if (!intersect) intersect =
321 fFacet2.
Intersect(p,v,outgoing,distance,distFromSurface,normal);
void set(double x, double y, double z)
G4bool Intersect(const G4ThreeVector &p, const G4ThreeVector &v, const G4bool outgoing, G4double &distance, G4double &distFromSurface, G4ThreeVector &normal)
static const G4double kInfinity
G4bool G4QuadrangularFacet::IsDefined |
( |
| ) |
const |
|
inlinevirtual |
The documentation for this class was generated from the following files: