9#include "MantidGeometry/DllConfig.h"
45 virtual std::string
typeName()
const {
return "Component"; }
68 IComponent const *getBaseComponent()
const override;
74 std::shared_ptr<const IComponent> getParent()
const override;
76 std::vector<std::shared_ptr<const IComponent>> getAncestors()
const override;
78 bool isParentNamed(
const std::string &expectedName,
int maxDepth = -1)
const;
81 void setName(
const std::string &)
override;
84 std::string
getName()
const override;
87 std::string getFullName()
const override;
91 void setPos(
double,
double,
double)
override;
95 void setSideBySideViewPos(
const Kernel::V2D &)
override;
107 void translate(
const double,
const double,
const double)
override;
122 std::optional<Kernel::V2D> getSideBySideViewPos()
const override;
131 double getDistance(
const IComponent &)
const override;
134 void getBoundingBox(
BoundingBox &boundingBox)
const override;
142 std::set<std::string> getParameterNames(
bool recursive =
true)
const override;
144 bool hasParameter(
const std::string &
name,
bool recursive =
true)
const override;
153 std::vector<double>
getNumberParameter(
const std::string &pname,
bool recursive =
true)
const override {
154 return getParameter<double>(pname, recursive);
164 std::vector<int>
getIntParameter(
const std::string &pname,
bool recursive =
true)
const override {
165 return getParameter<int>(pname, recursive);
177 std::string
getParameterType(
const std::string &pname,
bool recursive =
true)
const override {
180 param = m_map->getRecursive(
this, pname);
182 param = m_map->get(
this, pname);
185 return std::string(param->type());
187 return std::string(
"");
191 std::string getDescription()
const;
194 std::string getParamDescription(
const std::string &pname,
bool recursive =
true)
const;
197 std::string getParamShortDescription(
const std::string &pname,
bool recursive =
true)
const;
199 std::string getShortDescription()
const;
201 void setDescription(
const std::string &descr);
209 std::vector<bool>
getBoolParameter(
const std::string &pname,
bool recursive =
true)
const override {
210 return getParameter<bool>(pname, recursive);
220 std::vector<Kernel::V3D>
getPositionParameter(
const std::string &pname,
bool recursive =
true)
const override {
221 return getParameter<Kernel::V3D>(pname, recursive);
231 std::vector<Kernel::Quat>
getRotationParameter(
const std::string &pname,
bool recursive =
true)
const override {
232 return getParameter<Kernel::Quat>(pname, recursive);
242 std::vector<std::string>
getStringParameter(
const std::string &pname,
bool recursive =
true)
const override {
243 return getParameter<std::string>(pname, recursive);
250 retVal = m_map->getString(
this, pname, recursive);
266 param = m_map->getRecursive(
this, p_name);
268 param = m_map->get(
this, p_name);
271 return param->visible();
282 double getFittingParameter(
const std::string &pname,
double xvalue)
const;
284 void printSelf(std::ostream &)
const override;
295 virtual void readXMLAttributes(
const Poco::XML::Attributes &attr);
296 virtual void writeXML(Poco::XML::XMLWriter &writer)
const;
297 virtual void appendXML(std::ostream &xmlStream)
const;
299 bool isParametrized()
const override;
301 virtual size_t registerContents(
class ComponentVisitor &componentVisitor)
const override;
302 bool hasComponentInfo()
const;
303 size_t index()
const;
333 template <
class TYPE> std::vector<TYPE>
getParameter(
const std::string &p_name,
bool recursive)
const {
339 param = m_map->
get(
this, p_name);
342 return std::vector<TYPE>(1, param->value<
TYPE>());
344 return std::vector<TYPE>(0);
348 return std::vector<TYPE>(0);
std::map< DeltaEMode::Type, std::string > index
Mantid::Kernel::Quat(ComponentInfo::* rotation)(const size_t) const
std::string getName(const IMDDimension &self)
A simple structure that defines an axis-aligned cuboid shaped bounding box for a geometrical object.
ComponentVisitor : Visitor for IComponents.
Component is a wrapper for a Component which can modify some of its parameters, e....
const ParameterMap * m_map
A pointer to const ParameterMap containing the parameters.
bool getParameterVisible(const std::string &p_name, bool recursive) const override
Get a visibility attribute of a parameter from the parameter map.
virtual std::string typeName() const
const IComponent * getBareParent() const override
Returns the bare pointer to the IComponent parent.
std::vector< double > getNumberParameter(const std::string &pname, bool recursive=true) const override
Get a parameter defined as a double.
std::optional< Kernel::V2D > m_sidebysideviewpos
Position of component in instrument viewer side by side view.
std::vector< Kernel::Quat > getRotationParameter(const std::string &pname, bool recursive=true) const override
Get a parameter defined as a Kernel::Quaternion.
std::string m_name
Name of the component.
Kernel::V3D m_pos
Position w.
std::string getParameterAsString(const std::string &pname, bool recursive=true) const override
get a string representation of a parameter
std::vector< int > getIntParameter(const std::string &pname, bool recursive=true) const override
Get a parameter defined as an int.
std::vector< Kernel::V3D > getPositionParameter(const std::string &pname, bool recursive=true) const override
Get a parameter defined as a Kernel::V3D.
std::string getParameterType(const std::string &pname, bool recursive=true) const override
Get a parameter's type – this is HACK until Python can export property regardless of the property typ...
const IComponent * base() const
Returns the address of the base component.
const IComponent * m_parent
Parent component in the tree.
Kernel::Quat m_rot
Orientation.
const Component * m_base
The base component - this is the unmodified component (without the parameters).
std::vector< std::string > getStringParameter(const std::string &pname, bool recursive=true) const override
Get a parameter defined as a string.
std::vector< bool > getBoolParameter(const std::string &pname, bool recursive=true) const override
Get a parameter defined as a bool.
std::vector< TYPE > getParameter(const std::string &p_name, bool recursive) const
Get a parameter from the parameter map.
base class for Geometric IComponent
Parameter map iterator typedef.
std::shared_ptr< Parameter > getRecursive(const IComponent *comp, const std::string &name, const std::string &type="") const
Use get() recursively to see if can find param in all parents of comp and given type (std::string ver...
std::shared_ptr< Parameter > get(const IComponent *comp, const std::string &name, const std::string &type="") const
Get a parameter with a given name and type (std::string version)
Implements a 2-dimensional vector embedded in a 3D space, i.e.
void swap(MDLeanEvent< nd > &first, MDLeanEvent< nd > &second)
std::shared_ptr< Parameter > Parameter_sptr
Typedef for the shared pointer.
Helper class which provides the Collimation Length for SANS instruments.
Generate a tableworkspace to store the calibration results.