27 double width,
double height)
28 :
IBeamProfile(), m_upIdx(frame.pointingUp()), m_beamIdx(frame.pointingAlongBeam()),
29 m_horIdx(frame.pointingHorizontal()), m_width(width), m_height(
height),
m_min(), m_beamDir() {
62 auto &rngPt = rngRay.startPos;
84 const auto &sampleMin(sampleBox.
minPoint());
85 const auto &sampleMax(sampleBox.
maxPoint());
Base class for all classes defining a beam profile.
RectangularBeamProfile(const Geometry::ReferenceFrame &frame, const Kernel::V3D ¢er, double width, double height)
Construct a beam profile.
Kernel::V3D minPoint() const
Returns the min point of the profile.
const unsigned short m_beamIdx
Geometry::BoundingBox defineActiveRegion(const Geometry::BoundingBox &) const override
Compute a region that defines how the beam illuminates the given sample/can.
Kernel::V3D maxPoint() const
Returns the max point of the profile.
const unsigned short m_upIdx
IBeamProfile::Ray generatePoint(Kernel::PseudoRandomNumberGenerator &rng) const override
Generate a random point within the beam profile using the supplied random number source.
const unsigned short m_horIdx
A simple structure that defines an axis-aligned cuboid shaped bounding box for a geometrical object.
const Kernel::V3D & minPoint() const
Returns the min point of the box.
const Kernel::V3D & maxPoint() const
Returns the min point of the box.
ReferenceFrame : Holds reference frame information from the geometry description file.
Defines a 1D pseudo-random number generator, i.e.
virtual double nextValue()=0
Return the next double in the sequence.
constexpr double X() const noexcept
Get x.
constexpr double Y() const noexcept
Get y.
constexpr double Z() const noexcept
Get z.
Helper class which provides the Collimation Length for SANS instruments.