LSST Applications  21.0.0+c4f5df5339,21.0.0+e70536a077,21.0.0-1-ga51b5d4+7c60f8a6ea,21.0.0-10-g560fb7b+411cd868f8,21.0.0-10-gcf60f90+8c49d86aa0,21.0.0-13-gc485e61d+38156233bf,21.0.0-16-g7a993c7b9+1041c3824f,21.0.0-2-g103fe59+d9ceee3e5a,21.0.0-2-g1367e85+0b2f7db15a,21.0.0-2-g45278ab+e70536a077,21.0.0-2-g5242d73+0b2f7db15a,21.0.0-2-g7f82c8f+feb9862f5e,21.0.0-2-g8f08a60+9c9a9cfcc8,21.0.0-2-ga326454+feb9862f5e,21.0.0-2-gde069b7+bedfc5e1fb,21.0.0-2-gecfae73+417509110f,21.0.0-2-gfc62afb+0b2f7db15a,21.0.0-3-g21c7a62+a91f7c0b59,21.0.0-3-g357aad2+062581ff1a,21.0.0-3-g4be5c26+0b2f7db15a,21.0.0-3-g65f322c+85aa0ead76,21.0.0-3-g7d9da8d+c4f5df5339,21.0.0-3-gaa929c8+411cd868f8,21.0.0-3-gc44e71e+fd4029fd48,21.0.0-3-ge02ed75+5d9b90b8aa,21.0.0-38-g070523fc+44fda2b515,21.0.0-4-g591bb35+5d9b90b8aa,21.0.0-4-g88306b8+3cdc83ea97,21.0.0-4-gc004bbf+d52368b591,21.0.0-4-gccdca77+a5c54364a0,21.0.0-5-g7ebb681+81e2098694,21.0.0-5-gdf36809+87b8d260e6,21.0.0-6-g2d4f3f3+e70536a077,21.0.0-6-g4e60332+5d9b90b8aa,21.0.0-6-g5ef7dad+3f4e29eeae,21.0.0-7-gc8ca178+0f5e56d48f,21.0.0-9-g9eb8d17+cc2c7a81aa,master-gac4afde19b+5d9b90b8aa,w.2021.07
LSST Data Management Base Package
Functions
quadrupole.cc File Reference
#include "pybind11/pybind11.h"
#include "pybind11/eigen.h"
#include "pybind11/stl.h"
#include "lsst/afw/geom/ellipses/BaseCore.h"
#include "lsst/afw/geom/ellipses/Quadrupole.h"

Go to the source code of this file.

Functions

 PYBIND11_MODULE (quadrupole, mod)
 

Function Documentation

◆ PYBIND11_MODULE()

PYBIND11_MODULE ( quadrupole  ,
mod   
)

Definition at line 35 of file quadrupole.cc.

35  {
36  /* Module level */
37  py::class_<Quadrupole, std::shared_ptr<Quadrupole>, BaseCore> clsQuadrupole(mod, "Quadrupole");
38 
39  /* Member types and enums */
40  typedef Eigen::Matrix<double, 2, 2, Eigen::DontAlign> Matrix;
41 
42  /* Constructors */
43  clsQuadrupole.def(py::init<double, double, double, bool>(), "ixx"_a = 1.0, "iyy"_a = 1.0, "ixy"_a = 0.0,
44  "normalize"_a = false);
45  clsQuadrupole.def(py::init<BaseCore::ParameterVector const &, bool>(), "vector"_a, "normalize"_a = false);
46  clsQuadrupole.def(py::init<Matrix const &, bool>(), "matrix"_a, "normalize"_a = true);
47  clsQuadrupole.def(py::init<Quadrupole const &>());
48  clsQuadrupole.def(py::init<BaseCore const &>());
49  clsQuadrupole.def(py::init<BaseCore::Convolution const &>());
50 
51  py::implicitly_convertible<BaseCore::Convolution, Quadrupole>();
52 
53  /* Operators */
54  clsQuadrupole.def("__eq__", [](Quadrupole &self, Quadrupole &other) { return self == other; },
55  py::is_operator());
56  clsQuadrupole.def("__ne__", [](Quadrupole &self, Quadrupole &other) { return self != other; },
57  py::is_operator());
58 
59  /* Members */
60  clsQuadrupole.def("getIxx", &Quadrupole::getIxx);
61  clsQuadrupole.def("getIyy", &Quadrupole::getIyy);
62  clsQuadrupole.def("getIxy", &Quadrupole::getIxy);
63  clsQuadrupole.def("setIxx", &Quadrupole::setIxx);
64  clsQuadrupole.def("setIyy", &Quadrupole::setIyy);
65  clsQuadrupole.def("setIxy", &Quadrupole::setIxy);
66  clsQuadrupole.def("assign", [](Quadrupole &self, Quadrupole &other) { self = other; });
67  clsQuadrupole.def("assign", [](Quadrupole &self, BaseCore &other) { self = other; });
68  clsQuadrupole.def("transform", [](Quadrupole &self, lsst::geom::LinearTransform const &t) {
69  return std::static_pointer_cast<Quadrupole>(self.transform(t).copy());
70  });
71  clsQuadrupole.def("transformInPlace", [](Quadrupole &self, lsst::geom::LinearTransform const &t) {
72  self.transform(t).inPlace();
73  });
74  // TODO: pybind11 based on swig wrapper for now. Hopefully can be removed once pybind11 gets smarter
75  // handling of implicit conversions
76  clsQuadrupole.def("convolve", [](Quadrupole &self, BaseCore const &other) {
77  return Quadrupole(self.convolve(other));
78  });
79 }
ItemVariant const * other
Definition: Schema.cc:56
A base class for parametrizations of the "core" of an ellipse - the ellipticity and size.
Definition: BaseCore.h:55
An ellipse core with quadrupole moments as parameters.
Definition: Quadrupole.h:47
A 2D linear coordinate transformation.
T copy(T... args)
void convolve(OutImageT &convolvedImage, InImageT const &inImage, KernelT const &kernel, ConvolutionControl const &convolutionControl=ConvolutionControl())
Convolve an Image or MaskedImage with a Kernel, setting pixels of an existing output image.
Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > Matrix
Definition: common.h:45
table::Key< int > transform