9#include "MantidGeometry/DllConfig.h"
23class PseudoRandomNumberGenerator;
33class vtkGeometryCacheReader;
34class vtkGeometryCacheWriter;
65 virtual void getBoundingBox(
double &xmax,
double &ymax,
double &zmax,
double &xmin,
double &ymin,
66 double &zmin)
const = 0;
72 const size_t)
const = 0;
74 const BoundingBox &activeRegion,
const size_t)
const = 0;
79 double &innerRadius,
double &radius,
double &
height)
const = 0;
81 virtual void draw()
const = 0;
86 virtual const std::string &
id()
const = 0;
87 virtual void setID(
const std::string &
id) = 0;
A simple structure that defines an axis-aligned cuboid shaped bounding box for a geometrical object.
IObject : Interface for geometry objects.
virtual bool isOnSide(const Kernel::V3D &) const =0
virtual int getPointInObject(Kernel::V3D &point) const =0
virtual void GetObjectGeom(detail::ShapeInfo::GeometryShape &type, std::vector< Kernel::V3D > &vectors, double &innerRadius, double &radius, double &height) const =0
virtual void initDraw() const =0
virtual int interceptSurface(Geometry::Track &) const =0
virtual std::shared_ptr< GeometryHandler > getGeometryHandler() const =0
virtual double distance(const Geometry::Track &) const =0
virtual const detail::ShapeInfo & shapeInfo() const =0
virtual double solidAngle(const SolidAngleParams ¶ms) const =0
virtual IObject * cloneWithMaterial(const Kernel::Material &material) const =0
virtual std::optional< Kernel::V3D > generatePointInObject(Kernel::PseudoRandomNumberGenerator &rng, const BoundingBox &activeRegion, const size_t) const =0
virtual void getBoundingBox(double &xmax, double &ymax, double &zmax, double &xmin, double &ymin, double &zmin) const =0
Calculate (or return cached value of) Axis Aligned Bounding box (DEPRECATED)
virtual void setID(const std::string &id)=0
virtual void setMaterial(const Kernel::Material &material)=0
virtual detail::ShapeInfo::GeometryShape shape() const =0
virtual std::optional< Kernel::V3D > generatePointInObject(Kernel::PseudoRandomNumberGenerator &rng, const size_t) const =0
virtual const std::string & id() const =0
virtual ~IObject()=default
virtual void setFiniteGeometryFlag(bool)
virtual bool isValid(const Kernel::V3D &) const =0
virtual double volume() const =0
virtual double solidAngle(const SolidAngleParams ¶ms, const Kernel::V3D &scaleFactor) const =0
virtual int getName() const =0
virtual const BoundingBox & getBoundingBox() const =0
Return cached value of axis-aligned bounding box.
virtual const Kernel::Material & material() const =0
virtual bool isFiniteGeometry() const
virtual IObject * clone() const =0
virtual void draw() const =0
virtual bool hasValidShape() const =0
Defines a track as a start point and a direction.
A material is defined as being composed of a given element, defined as a PhysicalConstants::NeutronAt...
Defines a 1D pseudo-random number generator, i.e.
std::unique_ptr< const IObject > IObject_const_uptr
Typdef for a unique pointer to a const object.
std::unique_ptr< IObject > IObject_uptr
Typdef for a unique pointer.
std::shared_ptr< const IObject > IObject_const_sptr
Typdef for a shared pointer to a const object.
std::shared_ptr< IObject > IObject_sptr
Typdef for a shared pointer.
Helper class which provides the Collimation Length for SANS instruments.