Go to the documentation of this file.
10 #ifndef HERD_TRAPEZOIDALPRISM_H_
11 #define HERD_TRAPEZOIDALPRISM_H_
54 [[nodiscard]] std::array<Point, 8>
Vertices()
const;
62 [[nodiscard]]
const std::array<Parallelogram, 4> &
Faces()
const;
70 [[nodiscard]]
const std::array<Trapezium, 2> &
Bases()
const;
77 [[nodiscard]] std::optional<std::array<Point, 2>>
Intersections(
const Line &line)
const;
89 mutable std::array<Parallelogram, 4>
m_faces;
97 #endif // HERD_TRAPEZOIDALPRISM_H_
Vec3D m_edge
Definition: TrapezoidalPrism.h:87
std::optional< std::array< Point, 2 > > Intersections(const Line &line) const
Computes the intersection points of the given line with the trapezoidal prism.
Definition: TrapezoidalPrism.cpp:64
Trapezium m_base
Definition: TrapezoidalPrism.h:86
A class describing a vector in 3D space.
Definition: Vec3D.h:33
Class describing a line in the 3D space.
Definition: Line.h:37
const std::array< Trapezium, 2 > & Bases() const
Gets the trapezoidal bases of the trapezoidal prism.
Definition: TrapezoidalPrism.cpp:56
CssGeoParams.h CssGeoParams class declaration.
Definition: CaloPDCalibrationAlgo.h:22
std::array< Parallelogram, 4 > m_faces
Definition: TrapezoidalPrism.h:89
TrapezoidalPrism()=default
bool _facesAreValid
! Check if we already computed the faces
Definition: TrapezoidalPrism.h:91
std::array< Point, 8 > Vertices() const
Gets the vertices of the trapezoidal prism.
Definition: TrapezoidalPrism.cpp:21
Definition: Trapezium.h:26
std::array< Trapezium, 2 > m_bases
Definition: TrapezoidalPrism.h:90
A trapezoidal prism in 3D space.
Definition: TrapezoidalPrism.h:27
const std::array< Parallelogram, 4 > & Faces() const
Gets the 4 "lateral" faces of the trapezoidal prism.
Definition: TrapezoidalPrism.cpp:48
virtual ~TrapezoidalPrism()=default
Destructor.
void ComputeAllFaces() const
Definition: TrapezoidalPrism.cpp:32
bool Contains(const Point &point) const
Checks if the trapezoidal prism contains the given point.
Definition: TrapezoidalPrism.cpp:110