LSSTApplications
20.0.0
LSSTDataManagementBasePackage
stack
1a1d771
Linux64
sphgeom
20.0.0
include
lsst
sphgeom
python
interval.h
Go to the documentation of this file.
1
/*
2
* LSST Data Management System
3
* See COPYRIGHT file at the top of the source tree.
4
*
5
* This product includes software developed by the
6
* LSST Project (http://www.lsst.org/).
7
*
8
* This program is free software: you can redistribute it and/or modify
9
* it under the terms of the GNU General Public License as published by
10
* the Free Software Foundation, either version 3 of the License, or
11
* (at your option) any later version.
12
*
13
* This program is distributed in the hope that it will be useful,
14
* but WITHOUT ANY WARRANTY; without even the implied warranty of
15
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
* GNU General Public License for more details.
17
*
18
* You should have received a copy of the LSST License Statement and
19
* the GNU General Public License along with this program. If not,
20
* see <https://www.lsstcorp.org/LegalNotices/>.
21
*/
22
23
#ifndef LSST_SPHGEOM_PYTHON_INTERVAL_H_
24
#define LSST_SPHGEOM_PYTHON_INTERVAL_H_
25
26
#include "pybind11/pybind11.h"
27
28
#include "
relationship.h
"
29
30
namespace
py
=
pybind11
;
31
using namespace
pybind11::literals;
32
33
namespace
lsst
{
34
namespace
sphgeom {
35
namespace
python {
36
namespace
{
37
43
template
<
typename
PyClass,
typename
Class,
typename
Scalar>
44
void
defineInterval(
PyClass
&
cls
) {
45
cls
.def(
"__eq__"
, [](Class
const
&
self
,
46
Class
const
&
other
) {
return
self
==
other
; },
47
py::is_operator());
48
cls
.def(
"__eq__"
,
49
[](Class
const
&
self
,
Scalar
other
) {
return
self
==
other
; },
50
py::is_operator());
51
cls
.def(
"__ne__"
, [](Class
const
&
self
,
52
Class
const
&
other
) {
return
self
!=
other
; },
53
py::is_operator());
54
cls
.def(
"__ne__"
,
55
[](Class
const
&
self
,
Scalar
other
) {
return
self
!=
other
; },
56
py::is_operator());
57
58
cls
.def(
"getA"
, [](Class
const
&
self
) {
return
self
.getA(); });
59
cls
.def(
"getB"
, [](Class
const
&
self
) {
return
self
.getB(); });
60
cls
.def(
"isEmpty"
, [](Class
const
&
self
) {
return
self
.isEmpty(); });
61
cls
.def(
"getCenter"
, [](Class
const
&
self
) {
return
self
.getCenter(); });
62
cls
.def(
"getSize"
, [](Class
const
&
self
) {
return
self
.getSize(); });
63
64
cls
.def(
"__contains__"
, [](Class
const
&
self
,
65
Scalar
other
) {
return
self
.contains(
other
); },
66
py::is_operator());
67
cls
.def(
"__contains__"
,
68
[](Class
const
&
self
, Class
const
&
other
) {
69
return
self
.contains(
other
);
70
},
71
py::is_operator());
72
73
cls
.def(
"contains"
, [](Class
const
&
self
,
Scalar
other
) {
74
return
self
.contains(
other
);
75
});
76
cls
.def(
"contains"
, [](Class
const
&
self
, Class
const
&
other
) {
77
return
self
.contains(
other
);
78
});
79
cls
.def(
"isDisjointFrom"
, [](Class
const
&
self
,
Scalar
other
) {
80
return
self
.isDisjointFrom(
other
);
81
});
82
cls
.def(
"isDisjointFrom"
, [](Class
const
&
self
, Class
const
&
other
) {
83
return
self
.isDisjointFrom(
other
);
84
});
85
cls
.def(
"intersects"
, [](Class
const
&
self
,
Scalar
other
) {
86
return
self
.intersects(
other
);
87
});
88
cls
.def(
"intersects"
, [](Class
const
&
self
, Class
const
&
other
) {
89
return
self
.intersects(
other
);
90
});
91
cls
.def(
"isWithin"
, [](Class
const
&
self
,
Scalar
other
) {
92
return
self
.isWithin(
other
);
93
});
94
cls
.def(
"isWithin"
, [](Class
const
&
self
, Class
const
&
other
) {
95
return
self
.isWithin(
other
);
96
});
97
cls
.def(
"relate"
, [](Class
const
&
self
,
Scalar
other
) {
98
return
self
.relate(
other
);
99
});
100
cls
.def(
"relate"
, [](Class
const
&
self
, Class
const
&
other
) {
101
return
self
.relate(
other
);
102
});
103
104
// Note that when a reference to *this is returned in C++, it will
105
// have an existing wrapper object which is automatically returned
106
// by pybind11 - no return value policy is needed. The explicit
107
// reference return type for the corresponding lambdas seems to be
108
// required to obtain this behavior.
109
110
cls
.def(
"clipTo"
, [](Class&
self
,
Scalar
other
) -> Class & {
111
self
.clipTo(
other
);
112
return
self
;
113
});
114
cls
.def(
"clipTo"
, [](Class&
self
, Class
const
&
other
) -> Class & {
115
self
.clipTo(
other
);
116
return
self
;
117
});
118
cls
.def(
"clippedTo"
, [](Class
const
&
self
,
Scalar
other
) {
119
Class instance =
self
.clippedTo(
other
);
120
return
instance;
121
});
122
cls
.def(
"clippedTo"
, [](Class
const
&
self
, Class
const
&
other
) {
123
Class instance =
self
.clippedTo(
other
);
124
return
instance;
125
});
126
cls
.def(
"expandTo"
, [](Class&
self
,
Scalar
other
) -> Class & {
127
self
.expandTo(
other
);
128
return
self
;
129
});
130
cls
.def(
"expandTo"
, [](Class&
self
, Class
const
&
other
) -> Class & {
131
self
.expandTo(
other
);
132
return
self
;
133
});
134
cls
.def(
"expandedTo"
, [](Class
const
&
self
,
Scalar
other
) {
135
Class instance =
self
.expandedTo(
other
);
136
return
instance;
137
});
138
cls
.def(
"expandedTo"
, [](Class
const
&
self
, Class
const
&
other
) {
139
Class instance =
self
.expandedTo(
other
);
140
return
instance;
141
});
142
143
cls
.def(
"dilateBy"
, [](Class&
self
,
Scalar
other
) -> Class & {
144
self
.dilateBy(
other
);
145
return
self
;
146
});
147
cls
.def(
"dilatedBy"
, [](Class
const
&
self
,
Scalar
other
) {
148
Class instance =
self
.dilatedBy(
other
);
149
return
instance;
150
});
151
cls
.def(
"erodeBy"
, [](Class&
self
,
Scalar
other
) -> Class & {
152
self
.erodeBy(
other
);
153
return
self
;
154
});
155
cls
.def(
"erodedBy"
, [](Class
const
&
self
,
Scalar
other
) {
156
Class instance =
self
.erodedBy(
other
);
157
return
instance;
158
});
159
160
cls
.def(
"__reduce__"
, [
cls
](Class
const
&
self
) {
161
return
py::make_tuple(
cls
, py::make_tuple(
self
.getA(),
self
.getB()));
162
});
163
}
164
165
}
// unnamed
166
}
// python
167
}
// sphgeom
168
}
// lsst
169
170
#endif // LSST_SPHGEOM_PYTHON_INTERVAL_H_
lsst::meas::modelfit::Scalar
double Scalar
Typedefs to be used for probability and parameter values.
Definition:
common.h:44
lsst::afw::geom.transform.transformContinued.cls
cls
Definition:
transformContinued.py:33
other
ItemVariant const * other
Definition:
Schema.cc:56
PyClass
py::class_< ProductBoundedField, std::shared_ptr< ProductBoundedField >, BoundedField > PyClass
Definition:
productBoundedField.cc:32
lsst
A base class for image defects.
Definition:
imageAlgorithm.dox:1
relationship.h
pybind11
Definition:
_GenericMap.cc:40
Generated on Wed Jun 24 2020 18:10:12 for LSSTApplications by
1.8.18