22 __all__ = [
"CoordinateExpr",
"Extent",
"ExtentI",
"ExtentD",
23 "Point",
"PointI",
"PointD"]
30 def _coordinateStr(self):
31 return "({})".
format(
", ".join(
"%0.5g" % v
for v
in self))
34 def _coordinateRepr(self):
36 ", ".join(
"%0.10g" % v
for v
in self))
39 def _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
53 CoordinateExpr.register(2, _geom.CoordinateExpr2)
54 CoordinateExpr.register(3, _geom.CoordinateExpr3)
57 class Extent(metaclass=TemplateMeta):
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
68 Extent.register((int, 2), _geom.Extent2I)
69 Extent.register((float, 2), _geom.Extent2D)
70 Extent.register((int, 3), _geom.Extent3I)
71 Extent.register((float, 3), _geom.Extent3D)
72 ExtentI = _geom.Extent2I
73 ExtentD = _geom.Extent2D
76 class 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
87 Point.register((int, 2), _geom.Point2I)
88 Point.register((float, 2), _geom.Point2D)
89 Point.register((int, 3), _geom.Point3I)
90 Point.register((float, 3), _geom.Point3D)
91 PointI = _geom.Point2I
92 PointD = _geom.Point2D