22 #include "pybind11/pybind11.h" 24 #include "numpy/arrayobject.h" 25 #include "ndarray/pybind11.h" 29 namespace py = pybind11;
36 py::module mod(
"multiShapeletBasis");
38 if (_import_array() < 0) {
39 PyErr_SetString(PyExc_ImportError,
"numpy.core.multiarray failed to import");
43 py::class_<MultiShapeletBasisComponent, std::shared_ptr<MultiShapeletBasisComponent>>
44 clsMultiShapeletBasisComponent(mod,
"MultiShapeletBasisComponent");
46 clsMultiShapeletBasisComponent.def(py::init<
double,
int, ndarray::Array<double const, 2, 2>
const &>(),
47 "radius"_a,
"order"_a,
"matrix"_a);
49 clsMultiShapeletBasisComponent.def(
"getRadius", &MultiShapeletBasisComponent::getRadius);
50 clsMultiShapeletBasisComponent.def(
"getOrder", &MultiShapeletBasisComponent::getOrder);
51 clsMultiShapeletBasisComponent.def(
"getMatrix", &MultiShapeletBasisComponent::getMatrix);
53 py::class_<MultiShapeletBasis, std::shared_ptr<MultiShapeletBasis>> clsMultiShapeletBasis(
54 mod,
"MultiShapeletBasis");
56 clsMultiShapeletBasis.attr(
"Component") = clsMultiShapeletBasisComponent;
58 clsMultiShapeletBasis.def(py::init<int>());
59 clsMultiShapeletBasis.def(py::init<MultiShapeletBasis const &>());
61 clsMultiShapeletBasis.def(
"getSize", &MultiShapeletBasis::getSize);
62 clsMultiShapeletBasis.def(
"getComponentCount", &MultiShapeletBasis::getComponentCount);
63 clsMultiShapeletBasis.def(
"addComponent", &MultiShapeletBasis::addComponent);
64 clsMultiShapeletBasis.def(
"scale", &MultiShapeletBasis::scale);
65 clsMultiShapeletBasis.def(
"normalize", &MultiShapeletBasis::normalize);
66 clsMultiShapeletBasis.def(
"merge", &MultiShapeletBasis::merge);
67 clsMultiShapeletBasis.def(
"makeFunction", &MultiShapeletBasis::makeFunction);
PYBIND11_PLUGIN(multiShapeletBasis)