Mantid
Loading...
Searching...
No Matches
Public Member Functions | List of all members
Mantid::Geometry::IObject Class Referenceabstract

IObject : Interface for geometry objects. More...

#include <IObject.h>

Inheritance diagram for Mantid::Geometry::IObject:
Mantid::Geometry::CSGObject Mantid::Geometry::Container Mantid::Geometry::MeshObject Mantid::Geometry::MeshObject2D

Public Member Functions

virtual IObject * clone () const =0
 
virtual IObject * cloneWithMaterial (const Kernel::Material &material) const =0
 
virtual double distance (const Geometry::Track &) const =0
 
virtual void draw () const =0
 
virtual std::optional< Kernel::V3D > generatePointInObject (Kernel::PseudoRandomNumberGenerator &rng, const BoundingBox &activeRegion, const size_t) const =0
 
virtual std::optional< Kernel::V3D > generatePointInObject (Kernel::PseudoRandomNumberGenerator &rng, const size_t) const =0
 
virtual const Kernel::Matrix< double > & getAppliedRotation () const
 The goniometer rotation baked into this shape, i.e.
 
virtual const BoundingBox & getBoundingBox () const =0
 Return cached value of axis-aligned bounding box.
 
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 std::shared_ptr< GeometryHandler > getGeometryHandler () const =0
 
virtual int getName () const =0
 
virtual void GetObjectGeom (detail::ShapeInfo::GeometryShape &type, std::vector< Kernel::V3D > &vectors, double &innerRadius, double &radius, double &height) const =0
 
virtual int getPointInObject (Kernel::V3D &point) const =0
 
virtual bool hasValidShape () const =0
 
virtual const std::string & id () const =0
 
virtual void initDraw () const =0
 
virtual int interceptSurface (Geometry::Track &) const =0
 
virtual bool isFiniteGeometry () const
 
virtual bool isOnSide (const Kernel::V3D &) const =0
 
virtual bool isValid (const Kernel::V3D &) const =0
 
virtual const Kernel::Material & material () const =0
 
virtual void setFiniteGeometryFlag (bool)
 
virtual void setID (const std::string &id)=0
 
virtual void setMaterial (const Kernel::Material &material)=0
 
virtual detail::ShapeInfo::GeometryShape shape () const =0
 
virtual const detail::ShapeInfo & shapeInfo () const =0
 
virtual double solidAngle (const SolidAngleParams &params) const =0
 
virtual double solidAngle (const SolidAngleParams &params, const Kernel::V3D &scaleFactor) const =0
 
virtual double volume () const =0
 
virtual ~IObject ()=default
 

Detailed Description

IObject : Interface for geometry objects.

Interface for Geometry Objects

Definition at line 43 of file IObject.h.

Constructor & Destructor Documentation

◆ ~IObject()

virtual Mantid::Geometry::IObject::~IObject ( )
virtualdefault

Member Function Documentation

◆ clone()

virtual IObject * Mantid::Geometry::IObject::clone ( ) const
pure virtual

◆ cloneWithMaterial()

virtual IObject * Mantid::Geometry::IObject::cloneWithMaterial ( const Kernel::Material &  material) const
pure virtual

◆ distance()

virtual double Mantid::Geometry::IObject::distance ( const Geometry::Track &  ) const
pure virtual

◆ draw()

virtual void Mantid::Geometry::IObject::draw ( ) const
pure virtual

◆ generatePointInObject() [1/2]

virtual std::optional< Kernel::V3D > Mantid::Geometry::IObject::generatePointInObject ( Kernel::PseudoRandomNumberGenerator &  rng,
const BoundingBox &  activeRegion,
const size_t   
) const
pure virtual

◆ generatePointInObject() [2/2]

virtual std::optional< Kernel::V3D > Mantid::Geometry::IObject::generatePointInObject ( Kernel::PseudoRandomNumberGenerator &  rng,
const size_t   
) const
pure virtual

◆ getAppliedRotation()

virtual const Kernel::Matrix< double > & Mantid::Geometry::IObject::getAppliedRotation ( ) const
inlinevirtual

The goniometer rotation baked into this shape, i.e.

how far it has been turned into the lab frame.

CopySample bakes the goniometer in but SetGoniometer leaves the shape alone, so this is what stops getLabFrameShape rotating a shape twice. Rotations within the shape's own frame (LoadSampleShape orientation, rotate-all and rotate tags, RotateSampleShape) are excluded, so identity means the shape is in its own frame. Successive bakes compose with the later one outermost.

Reimplemented in Mantid::Geometry::CSGObject, and Mantid::Geometry::MeshObject.

Definition at line 59 of file IObject.h.

Referenced by export_IObject(), Mantid::Geometry::getLabFrameShape(), and Mantid::Geometry::outstandingGoniometerRotation().

◆ getBoundingBox() [1/2]

virtual const BoundingBox & Mantid::Geometry::IObject::getBoundingBox ( ) const
pure virtual

◆ getBoundingBox() [2/2]

virtual void Mantid::Geometry::IObject::getBoundingBox ( double &  xmax,
double &  ymax,
double &  zmax,
double &  xmin,
double &  ymin,
double &  zmin 
) const
pure virtual

Calculate (or return cached value of) Axis Aligned Bounding box (DEPRECATED)

Implemented in Mantid::Geometry::Container, Mantid::Geometry::CSGObject, Mantid::Geometry::MeshObject, and Mantid::Geometry::MeshObject2D.

◆ getGeometryHandler()

virtual std::shared_ptr< GeometryHandler > Mantid::Geometry::IObject::getGeometryHandler ( ) const
pure virtual

◆ getName()

virtual int Mantid::Geometry::IObject::getName ( ) const
pure virtual

◆ GetObjectGeom()

virtual void Mantid::Geometry::IObject::GetObjectGeom ( detail::ShapeInfo::GeometryShape &  type,
std::vector< Kernel::V3D > &  vectors,
double &  innerRadius,
double &  radius,
double &  height 
) const
pure virtual

◆ getPointInObject()

virtual int Mantid::Geometry::IObject::getPointInObject ( Kernel::V3D &  point) const
pure virtual

◆ hasValidShape()

virtual bool Mantid::Geometry::IObject::hasValidShape ( ) const
pure virtual

◆ id()

virtual const std::string & Mantid::Geometry::IObject::id ( ) const
pure virtual

◆ initDraw()

virtual void Mantid::Geometry::IObject::initDraw ( ) const
pure virtual

◆ interceptSurface()

virtual int Mantid::Geometry::IObject::interceptSurface ( Geometry::Track &  ) const
pure virtual

◆ isFiniteGeometry()

virtual bool Mantid::Geometry::IObject::isFiniteGeometry ( ) const
inlinevirtual

Reimplemented in Mantid::Geometry::CSGObject.

Definition at line 48 of file IObject.h.

◆ isOnSide()

virtual bool Mantid::Geometry::IObject::isOnSide ( const Kernel::V3D &  ) const
pure virtual

◆ isValid()

virtual bool Mantid::Geometry::IObject::isValid ( const Kernel::V3D &  ) const
pure virtual

◆ material()

virtual const Kernel::Material & Mantid::Geometry::IObject::material ( ) const
pure virtual

◆ setFiniteGeometryFlag()

virtual void Mantid::Geometry::IObject::setFiniteGeometryFlag ( bool  )
inlinevirtual

Reimplemented in Mantid::Geometry::CSGObject.

Definition at line 49 of file IObject.h.

◆ setID()

virtual void Mantid::Geometry::IObject::setID ( const std::string &  id)
pure virtual

◆ setMaterial()

virtual void Mantid::Geometry::IObject::setMaterial ( const Kernel::Material &  material)
pure virtual

◆ shape()

virtual detail::ShapeInfo::GeometryShape Mantid::Geometry::IObject::shape ( ) const
pure virtual

◆ shapeInfo()

virtual const detail::ShapeInfo & Mantid::Geometry::IObject::shapeInfo ( ) const
pure virtual

◆ solidAngle() [1/2]

virtual double Mantid::Geometry::IObject::solidAngle ( const SolidAngleParams &  params) const
pure virtual

◆ solidAngle() [2/2]

virtual double Mantid::Geometry::IObject::solidAngle ( const SolidAngleParams &  params,
const Kernel::V3D &  scaleFactor 
) const
pure virtual

◆ volume()

virtual double Mantid::Geometry::IObject::volume ( ) const
pure virtual

The documentation for this class was generated from the following file: