22__all__ = [
"CoordinateExpr",
"Extent",
"ExtentI",
"ExtentD",
23 "Point",
"PointI",
"PointD"]
25from lsst.utils
import TemplateMeta
30def _coordinateStr(self):
31 return "({})".format(
", ".join(
"%0.5g" % v
for v
in self))
34def _coordinateRepr(self):
35 return "{}({})".format(type(self).__name__,
36 ", ".join(
"%0.10g" % v
for v
in self))
39def _coordinateReduce(self):
40 return (type(self), tuple(self))
44 """Abstract base class and factory for CoordinateExpr objects.
46 TEMPLATE_PARAMS = ("dimensions", )
48 __str__ = _coordinateStr
49 __repr__ = _coordinateRepr
50 __reduce__ = _coordinateReduce
53CoordinateExpr.register(2, _geom.CoordinateExpr2)
54CoordinateExpr.register(3, _geom.CoordinateExpr3)
58 """Abstract base class and factory for Extent objects.
60 TEMPLATE_PARAMS = ("dtype",
"dimensions")
61 TEMPLATE_DEFAULTS = (
None, 2)
63 __str__ = _coordinateStr
64 __repr__ = _coordinateRepr
65 __reduce__ = _coordinateReduce
68Extent.register((int, 2), _geom.Extent2I)
69Extent.register((float, 2), _geom.Extent2D)
70Extent.register((int, 3), _geom.Extent3I)
71Extent.register((float, 3), _geom.Extent3D)
72ExtentI = _geom.Extent2I
73ExtentD = _geom.Extent2D
76class Point(metaclass=TemplateMeta):
77 """Abstract base class and factory for Point objects.
79 TEMPLATE_PARAMS = ("dtype",
"dimensions")
80 TEMPLATE_DEFAULTS = (
None, 2)
82 __str__ = _coordinateStr
83 __repr__ = _coordinateRepr
84 __reduce__ = _coordinateReduce
87Point.register((int, 2), _geom.Point2I)
88Point.register((float, 2), _geom.Point2D)
89Point.register((int, 3), _geom.Point3I)
90Point.register((float, 3), _geom.Point3D)