Mantid
Loading...
Searching...
No Matches
Component.cpp
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2018 ISIS Rutherford Appleton Laboratory UKRI,
4// NScD Oak Ridge National Laboratory, European Spallation Source,
5// Institut Laue - Langevin & CSNS, Institute of High Energy Physics, CAS
6// SPDX - License - Identifier: GPL - 3.0 +
9#include <boost/python/class.hpp>
10#include <boost/python/overloads.hpp>
11
14using namespace boost::python;
15
16namespace {
17GNU_DIAG_OFF("unused-local-typedef")
18// Ignore -Wconversion warnings coming from boost::python
19// Seen with GCC 7.1.1 and Boost 1.63.0
20GNU_DIAG_OFF("conversion")
21
22// Default parameter function overloads
23// cppcheck-suppress unknownMacro
24BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Component_getParameterNames, Component::getParameterNames, 0, 1)
25BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Component_hasParameter, Component::hasParameter, 1, 2)
26BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Component_getNumberParameter, Component::getNumberParameter, 1, 2)
27BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Component_getBoolParameter, Component::getBoolParameter, 1, 2)
28BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Component_getPositionParameter, Component::getPositionParameter, 1, 2)
29BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Component_getRotationParameter, Component::getRotationParameter, 1, 2)
30BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Component_getStringParameter, Component::getStringParameter, 1, 2)
31BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Component_getIntParameter, Component::getIntParameter, 1, 2)
32BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Component_getParameterType, Component::getParameterType, 1, 2)
33BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Component_getRotation, Component::getRotation, 0, 0)
34BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Component_getRelativePos, Component::getRelativePos, 0, 0)
35BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Component_getParamShortDescription, Component::getParamShortDescription, 1, 2)
36BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Component_getParamDescription, Component::getParamDescription, 1, 2)
37
38GNU_DIAG_ON("conversion")
39GNU_DIAG_ON("unused-local-typedef")
40} // namespace
42 class_<Component, bases<IComponent>, boost::noncopyable>("Component", no_init)
43 .def("getParameterNames", &Component::getParameterNames,
44 Component_getParameterNames((arg("self"), arg("recursive") = true)))
45 .def("hasParameter", &Component::hasParameter,
46 Component_hasParameter((arg("self"), arg("name"), arg("recursive") = true)))
47 .def("getNumberParameter", &Component::getNumberParameter,
48 Component_getNumberParameter((arg("self"), arg("pname"), arg("recursive") = true)))
49 .def("getBoolParameter", &Component::getBoolParameter,
50 Component_getBoolParameter((arg("self"), arg("pname"), arg("recursive") = true)))
51 .def("getPositionParameter", &Component::getPositionParameter,
52 Component_getPositionParameter((arg("self"), arg("pname"), arg("recursive") = true)))
53 .def("getRotationParameter", &Component::getRotationParameter,
54 Component_getRotationParameter((arg("self"), arg("pname"), arg("recursive") = true)))
55 .def("getStringParameter", &Component::getStringParameter,
56 Component_getStringParameter((arg("self"), arg("pname"), arg("recursive") = true)))
57 .def("getIntParameter", &Component::getIntParameter,
58 Component_getIntParameter((arg("self"), arg("pname"), arg("recursive") = true)))
59 //
60 .def("getRotation", &Component::getRotation, Component_getRotation(arg("self")))
61 .def("getRelativePos", &Component::getRelativePos, Component_getRelativePos(arg("self")))
62 //
63 .def("getParamShortDescription", &Component::getParamShortDescription,
64 Component_getParamShortDescription((arg("self"), arg("pname"), arg("recursive") = true)))
65 .def("getParamDescription", &Component::getParamDescription,
66 Component_getParamDescription((arg("self"), arg("pname"), arg("recursive") = true)))
67
68 .def("getShortDescription", &Component::getShortDescription, arg("self"),
69 "Return the short description of current parameterized component")
70 .def("getDescription", &Component::getDescription, arg("self"),
71 "Return the description of current parameterized component")
72 .def("setDescription", &Component::setDescription, (arg("self"), arg("descr")),
73 "Set component's description, works only if the component is "
74 "parameterized component")
75
76 // HACK -- python should return parameters regardless of type. this is
77 // untill rows below do not work
78 .def("getParameterType", &Component::getParameterType,
79 Component_getParameterType((arg("self"), arg("pname"), arg("recursive") = true)))
80 .def("getFittingParameter", &Component::getFittingParameter, (arg("self"), arg("pname"), arg("xvalue")),
81 "Get fit parameter from the parameter map."
82 " The value of the parameter is determined from a look up table or a formula")
84 //.def("getParameter", &Component::getNumberParameter,
85 // Component_getNumberParameter())
86 //.def("getParameter", &Component::getBoolParameter,
87 // Component_getBoolParameter())
88 //.def("getParameter", &Component::getStringParameter,
89 // Component_getStringParameter())
90 //.def("getParameter", &Component::getPositionParameter,
91 // Component_getPositionParameter())
92 //.def("getParameter", &Component::getRotationParameter,
93 // Component_getRotationParameter())
94 ;
95}
void export_Component()
Definition Component.cpp:41
#define GNU_DIAG_ON(x)
#define GNU_DIAG_OFF(x)
This is a collection of macros for turning compiler warnings off in a controlled manner.
Component is a wrapper for a Component which can modify some of its parameters, e....
Definition Component.h:42
std::string getParamDescription(const std::string &pname, bool recursive=true) const
Get description of a parameter attached to this component
std::string getParamShortDescription(const std::string &pname, bool recursive=true) const
Get a component's parameter short description.
std::vector< double > getNumberParameter(const std::string &pname, bool recursive=true) const override
Get a parameter defined as a double.
Definition Component.h:155
double getFittingParameter(const std::string &pname, double xvalue) const
Get fitting parameter.
std::vector< Kernel::Quat > getRotationParameter(const std::string &pname, bool recursive=true) const override
Get a parameter defined as a Kernel::Quaternion.
Definition Component.h:233
Kernel::V3D getRelativePos() const override
Get the position relative to the parent IComponent (absolute if no parent)
std::vector< int > getIntParameter(const std::string &pname, bool recursive=true) const override
Get a parameter defined as an int.
Definition Component.h:166
std::vector< Kernel::V3D > getPositionParameter(const std::string &pname, bool recursive=true) const override
Get a parameter defined as a Kernel::V3D.
Definition Component.h:222
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...
Definition Component.h:179
std::set< std::string > getParameterNames(bool recursive=true) const override
Return the parameter names.
std::vector< std::string > getStringParameter(const std::string &pname, bool recursive=true) const override
Get a parameter defined as a string.
Definition Component.h:244
Kernel::Quat getRotation() const override
Get the absolute orientation of the IComponent.
void setDescription(const std::string &descr)
Set components description.
std::string getDescription() const
Get this component parameter's description – no recursive search within children.
bool hasParameter(const std::string &name, bool recursive=true) const override
Returns a boolean indicating if the component has the named parameter.
std::vector< bool > getBoolParameter(const std::string &pname, bool recursive=true) const override
Get a parameter defined as a bool.
Definition Component.h:211
std::string getShortDescription() const
Get a components's short description.
base class for Geometric IComponent
Definition IComponent.h:53