50#ifndef G4TRIANGULARFACET_HH
51#define G4TRIANGULARFACET_HH 1
81 const G4bool outgoing)
override;
107 inline void SetVertices(std::vector<G4ThreeVector>* v)
override;
118 std::array<G4int, 3> fIndices;
119 std::vector<G4ThreeVector>* fVertices =
nullptr;
125 G4bool fIsDefined =
false;
144 G4int indice = fIndices[i];
145 return indice < 0 ? (*fVertices)[i] : (*fVertices)[indice];
150 (*fVertices)[i] = val;
155 return fCircumcentre;
165 G4int size =
sizeof(*this);
172 if (i < 3)
return fIndices[i];
173 else return 999999999;
183 if (fIndices[0] < 0 && (fVertices !=
nullptr))
CLHEP::Hep3Vector G4ThreeVector
G4GeometryType GetEntityType() const override
G4int GetVertexIndex(G4int i) const override
G4double Extent(const G4ThreeVector axis) override
G4double GetRadius() const override
void SetVertex(G4int i, const G4ThreeVector &val) override
G4ThreeVector GetSurfaceNormal() const override
G4ThreeVector GetVertex(G4int i) const override
G4bool Intersect(const G4ThreeVector &p, const G4ThreeVector &v, const G4bool outgoing, G4double &distance, G4double &distFromSurface, G4ThreeVector &normal) override
G4ThreeVector GetCircumcentre() const override
~G4TriangularFacet() override
G4TriangularFacet & operator=(const G4TriangularFacet &right)
void SetVertices(std::vector< G4ThreeVector > *v) override
G4ThreeVector GetPointOnFace() const override
G4bool IsDefined() const override
G4TriangularFacet * GetFlippedFacet()
G4ThreeVector Distance(const G4ThreeVector &p)
G4VFacet * GetClone() override
G4int GetNumberOfVertices() const override
void SetSurfaceNormal(const G4ThreeVector &normal)
void SetVertexIndex(G4int i, G4int j) override
G4double GetArea() const override
G4int AllocatedMemory() override