53#ifndef G4QUADRANGULARFACET_HH
54#define G4QUADRANGULARFACET_HH
78 const G4bool outgoing)
override;
95 inline void SetVertices(std::vector<G4ThreeVector>* v)
override;
102 inline G4int GetVertexIndex (
G4int i)
const override;
103 inline void SetVertexIndex (
G4int i,
G4int val)
override;
105 inline G4int AllocatedMemory()
override;
127 return i == 3 ? fFacet2.GetVertex(2) : fFacet1.GetVertex(i);
138 return fCircumcentre;
146 fFacet1.SetVertex(0, val);
147 fFacet2.SetVertex(0, val);
150 fFacet1.SetVertex(1, val);
153 fFacet1.SetVertex(2, val);
154 fFacet2.SetVertex(1, val);
157 fFacet2.SetVertex(2, val);
164 fFacet1.SetVertices(v);
165 fFacet2.SetVertices(v);
170 return fFacet1.IsDefined();
173inline G4int G4QuadrangularFacet::GetVertexIndex (
G4int i)
const
179inline void G4QuadrangularFacet::SetVertexIndex (
G4int i,
G4int val)
184 fFacet1.SetVertexIndex(0, val);
185 fFacet2.SetVertexIndex(0, val);
188 fFacet1.SetVertexIndex(1, val);
191 fFacet1.SetVertexIndex(2, val);
192 fFacet2.SetVertexIndex(1, val);
195 fFacet2.SetVertexIndex(2, val);
200inline G4int G4QuadrangularFacet::AllocatedMemory()
202 return sizeof(*this) + fFacet1.AllocatedMemory() + fFacet2.AllocatedMemory();
CLHEP::Hep3Vector G4ThreeVector
G4int GetNumberOfVertices() const override
G4double GetArea() const override
G4ThreeVector Distance(const G4ThreeVector &p)
G4QuadrangularFacet(const G4ThreeVector &Pt0, const G4ThreeVector &vt1, const G4ThreeVector &vt2, const G4ThreeVector &vt3, G4FacetVertexType)
G4ThreeVector GetSurfaceNormal() const override
G4ThreeVector GetCircumcentre() const override
G4QuadrangularFacet & operator=(const G4QuadrangularFacet &right)
G4double GetRadius() const override
G4ThreeVector GetVertex(G4int i) const override
G4bool IsDefined() const override
~G4QuadrangularFacet() override
void SetVertices(std::vector< G4ThreeVector > *v) override
G4VFacet * GetClone() override
G4GeometryType GetEntityType() const override
void SetVertex(G4int i, const G4ThreeVector &val) override
G4double Extent(const G4ThreeVector axis) override
G4ThreeVector GetPointOnFace() const override
G4bool Intersect(const G4ThreeVector &p, const G4ThreeVector &v, const G4bool outgoing, G4double &distance, G4double &distFromSurface, G4ThreeVector &normal) override
G4int GetVertexIndex(G4int i) const override