lsst.geom
g19811a7679+d02280c829
Toggle main menu visibility
Loading...
Searching...
No Matches
python
lsst
geom
_coordinates.py
Go to the documentation of this file.
1
#
2
# Developed for the LSST Data Management System.
3
# This product includes software developed by the LSST Project
4
# (https://www.lsst.org).
5
# See the COPYRIGHT file at the top-level directory of this distribution
6
# for details of code ownership.
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 GNU General Public License
19
# along with this program. If not, see <https://www.gnu.org/licenses/>.
20
#
21
22
__all__ = [
"CoordinateExpr"
,
"Extent"
,
"ExtentI"
,
"ExtentD"
,
23
"Point"
,
"PointI"
,
"PointD"
]
24
25
import
math
26
27
from
lsst.utils
import
TemplateMeta
28
29
from
.
import
_geom
30
31
32
def
_coordinateStr
(self):
33
return
"({})"
.format(
", "
.join(
"%0.5g"
% v
for
v
in
self))
34
35
36
def
_coordinateRepr
(self):
37
return
"{}({})"
.format(type(self).__name__,
38
", "
.join(f
"{v:0.17g}"
if
math.isfinite(v)
else
f
"float('{v}')"
for
v
in
self))
39
40
41
def
_coordinateReduce
(self):
42
return
(type(self), tuple(self))
43
44
45
def
_coordinateIter
(self):
46
for
i
in
range(self.dimensions):
47
yield
self[i]
48
49
50
class
CoordinateExpr
(metaclass=TemplateMeta):
51
"""Abstract base class and factory for CoordinateExpr objects.
52
"""
53
TEMPLATE_PARAMS = (
"dimensions"
, )
54
55
__str__ = _coordinateStr
56
__repr__ = _coordinateRepr
57
__reduce__ = _coordinateReduce
58
__iter__ = _coordinateIter
59
60
61
CoordinateExpr.register(2, _geom.CoordinateExpr2)
62
CoordinateExpr.register(3, _geom.CoordinateExpr3)
63
64
65
class
Extent
(metaclass=TemplateMeta):
66
"""Abstract base class and factory for Extent objects.
67
"""
68
TEMPLATE_PARAMS = (
"dtype"
,
"dimensions"
)
69
TEMPLATE_DEFAULTS = (
None
, 2)
70
71
__str__ = _coordinateStr
72
__repr__ = _coordinateRepr
73
__reduce__ = _coordinateReduce
74
__iter__ = _coordinateIter
75
76
77
Extent.register((int, 2), _geom.Extent2I)
78
Extent.register((float, 2), _geom.Extent2D)
79
Extent.register((int, 3), _geom.Extent3I)
80
Extent.register((float, 3), _geom.Extent3D)
81
ExtentI = _geom.Extent2I
82
ExtentD = _geom.Extent2D
83
84
85
class
Point
(metaclass=TemplateMeta):
86
"""Abstract base class and factory for Point objects.
87
"""
88
TEMPLATE_PARAMS = (
"dtype"
,
"dimensions"
)
89
TEMPLATE_DEFAULTS = (
None
, 2)
90
91
__str__ = _coordinateStr
92
__repr__ = _coordinateRepr
93
__reduce__ = _coordinateReduce
94
__iter__ = _coordinateIter
95
96
97
Point.register((int, 2), _geom.Point2I)
98
Point.register((float, 2), _geom.Point2D)
99
Point.register((int, 3), _geom.Point3I)
100
Point.register((float, 3), _geom.Point3D)
101
PointI = _geom.Point2I
102
PointD = _geom.Point2D
lsst::geom._coordinates.CoordinateExpr
Definition
_coordinates.py:50
lsst::geom._coordinates.Extent
Definition
_coordinates.py:65
lsst::geom._coordinates.Point
Definition
_coordinates.py:85
lsst::geom._coordinates._coordinateStr
_coordinateStr(self)
Definition
_coordinates.py:32
lsst::geom._coordinates._coordinateIter
_coordinateIter(self)
Definition
_coordinates.py:45
lsst::geom._coordinates._coordinateRepr
_coordinateRepr(self)
Definition
_coordinates.py:36
lsst::geom._coordinates._coordinateReduce
_coordinateReduce(self)
Definition
_coordinates.py:41
Generated on
for lsst.geom by
1.17.0