23 #include "pybind11/pybind11.h" 24 #include "pybind11/stl.h" 35 namespace py = pybind11;
42 void declarePoint(py::module &mod) {
43 py::class_<Point, std::shared_ptr<Point>> cls(mod,
"Point");
45 cls.def_readonly(
"x", &Point::x);
46 cls.def_readonly(
"y", &Point::y);
49 void declareBaseStar(py::module &mod) {
50 py::class_<BaseStar, std::shared_ptr<BaseStar>, Point> cls(mod,
"BaseStar");
54 cls.def_readonly(
"vx", (
double BaseStar::*)&BaseStar::vx);
55 cls.def_readonly(
"vy", (
double BaseStar::*)&BaseStar::vy);
56 cls.def_readonly(
"vxy", (
double BaseStar::*)&BaseStar::vxy);
59 cls.def_property_readonly(
"flux", (
double (BaseStar::*)()
const) & BaseStar::getFlux);
61 cls.def(
"__str__", &BaseStar::__str__);
64 void declareRefStar(py::module &mod) {
65 py::class_<RefStar, std::shared_ptr<RefStar>, BaseStar> cls(mod,
"RefStar");
67 cls.def(py::init<
double,
double,
double,
double, std::vector<double> &, std::vector<double> &>(),
"xx"_a,
68 "yy"_a,
"defaultFlux"_a,
"defaultFluxErr"_a,
"refFluxList"_a,
"refFluxErrList"_a);
71 void declareFittedStar(py::module &mod) {
72 py::class_<FittedStar, std::shared_ptr<FittedStar>, BaseStar> cls(mod,
"FittedStar");
74 cls.def(py::init<BaseStar const &>(),
"baseStar"_a);
77 void declareMeasuredStar(py::module &mod) {
78 py::class_<MeasuredStar, std::shared_ptr<MeasuredStar>, BaseStar> cls(mod,
"MeasuredStar");
80 cls.def(py::init<BaseStar const &>(),
"baseStar"_a);
83 PYBIND11_PLUGIN(star) {
84 py::module mod(
"star");
89 declareFittedStar(mod);
90 declareMeasuredStar(mod);
Class for a simple mapping implementing a generic Gtransfo.