8#include "MantidGeometry/DllConfig.h"
15#pragma warning(disable : 4250)
33 using comp_it = std::vector<IComponent *>::iterator;
38 std::string
type()
const override {
return "CompAssembly"; }
52 int nelements()
const override;
61 int addCopy(
IComponent *,
const std::string &)
override;
66 std::shared_ptr<IComponent> getChild(
const int i)
const override;
68 void getChildren(std::vector<IComponent_const_sptr> &outVector,
bool recursive)
const override;
70 std::shared_ptr<IComponent> operator[](
int i)
const override;
73 std::shared_ptr<const IComponent> getComponentByName(
const std::string &cname,
int nlevels = 0)
const override;
80 void getBoundingBox(
BoundingBox &assemblyBox)
const override;
83 void printChildren(std::ostream &)
const override;
84 void printTree(std::ostream &)
const override;
88 void testIntersectionWithChildren(
Track &testRay, std::deque<IComponent_const_sptr> &searchQueue)
const override;
90 virtual size_t registerContents(
class ComponentVisitor &componentVisitor)
const override;
A simple structure that defines an axis-aligned cuboid shaped bounding box for a geometrical object.
Class for Assembly of geometric components.
std::string type() const override
String description of the type of component.
std::vector< IComponent * > m_children
the group of child components
BoundingBox * m_cachedBoundingBox
A cached bounding box.
std::vector< IComponent * >::iterator comp_it
Iterator type.
std::vector< IComponent * >::const_iterator const_comp_it
Const iterator type.
void addChildren(IComponent *comp)
Add a copy (clone) of a component.
CompAssembly & operator=(const ICompAssembly &)
Private copy assignment operator.
ComponentVisitor : Visitor for IComponents.
Component is a wrapper for a Component which can modify some of its parameters, e....
Class for Assembly of geometric components.
base class for Geometric IComponent
Defines a track as a start point and a direction.
MANTID_GEOMETRY_DLL std::ostream & operator<<(std::ostream &stream, const PointGroup &self)
Returns a streamed representation of the PointGroup object.
Helper class which provides the Collimation Length for SANS instruments.