Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def fit_into(self, bbox, keep_aspect_ratio=True):
"""Fits the layout into the given bounding box.
The layout will be modified in-place.
@param bbox: the bounding box in which to fit the layout. If the
dimension of the layout is d, it can either be a d-tuple (defining
the sizes of the box), a 2d-tuple (defining the coordinates of the
top left and the bottom right point of the box), or a L{BoundingBox}
object (for 2D layouts only).
@param keep_aspect_ratio: whether to keep the aspect ratio of the current
layout. If C{False}, the layout will be rescaled to fit exactly into
the bounding box. If C{True}, the original aspect ratio of the layout
will be kept and it will be centered within the bounding box.
"""
if isinstance(bbox, BoundingBox):
if self._dim != 2:
raise TypeError("bounding boxes work for 2D layouts only")
corner, target_sizes = [bbox.left, bbox.top], [bbox.width, bbox.height]
elif len(bbox) == self._dim:
corner, target_sizes = [0.] * self._dim, list(bbox)
elif len(bbox) == 2 * self._dim:
corner, opposite_corner = list(bbox[0:self._dim]), list(bbox[self._dim:])
for i in xrange(self._dim):
if corner[i] > opposite_corner[i]:
corner[i], opposite_corner[i] = opposite_corner[i], corner[i]
target_sizes = [max_val-min_val \
for min_val, max_val in izip(corner, opposite_corner)]
try:
mins, maxs = self.boundaries()
except ValueError:
The bounding box of the layout is the smallest box enclosing all the
points in the layout.
@param border: this value gets subtracted from the minimum bounds
and gets added to the maximum bounds before returning the coordinates
of the box. Defaults to zero.
@return: the coordinates of the lower left and the upper right corner
of the box. "Lower left" means the minimum coordinates and "upper right"
means the maximum. These are encapsulated in a L{BoundingBox} object.
"""
if self._dim != 2:
raise ValueError("Layout.boundary_box() supports 2D layouts only")
try:
(x0, y0), (x1, y1) = self.boundaries(border)
return BoundingBox(x0, y0, x1, y1)
except ValueError:
return BoundingBox(0, 0, 0, 0)
def bounding_box(self):
"""Returns the bounding box of the Cairo surface as a
L{BoundingBox} object"""
return BoundingBox(self.bbox)
def bbox(self, bbox):
"""Sets the bounding box of the drawing area where this drawer
will draw."""
if not isinstance(bbox, BoundingBox):
self._bbox = BoundingBox(bbox)
else:
self._bbox = bbox
def bbox(self, bbox):
"""Sets the bounding box of the drawing area where this drawer
will draw."""
if not isinstance(bbox, BoundingBox):
self._bbox = BoundingBox(bbox)
else:
self._bbox = bbox
@param border: this value gets subtracted from the minimum bounds
and gets added to the maximum bounds before returning the coordinates
of the box. Defaults to zero.
@return: the coordinates of the lower left and the upper right corner
of the box. "Lower left" means the minimum coordinates and "upper right"
means the maximum. These are encapsulated in a L{BoundingBox} object.
"""
if self._dim != 2:
raise ValueError("Layout.boundary_box() supports 2D layouts only")
try:
(x0, y0), (x1, y1) = self.boundaries(border)
return BoundingBox(x0, y0, x1, y1)
except ValueError:
return BoundingBox(0, 0, 0, 0)
@bbox.setter
def bbox(self, bbox):
"""Sets the bounding box of the drawing area where this drawer
will draw."""
if not isinstance(bbox, BoundingBox):
self._bbox = BoundingBox(bbox)
else:
self._bbox = bbox
@param border: this value gets subtracted from the minimum bounds
and gets added to the maximum bounds before returning the coordinates
of the box. Defaults to zero.
@return: the coordinates of the lower left and the upper right corner
of the box. "Lower left" means the minimum coordinates and "upper right"
means the maximum. These are encapsulated in a L{BoundingBox} object.
"""
if self._dim != 2:
raise ValueError("Layout.boundary_box() supports 2D layouts only")
try:
(x0, y0), (x1, y1) = self.boundaries(border)
return BoundingBox(x0, y0, x1, y1)
except ValueError:
return BoundingBox(0, 0, 0, 0)
def fit_into(self, bbox, keep_aspect_ratio=True):
"""Fits the layout into the given bounding box.
The layout will be modified in-place.
@param bbox: the bounding box in which to fit the layout. If the
dimension of the layout is d, it can either be a d-tuple (defining
the sizes of the box), a 2d-tuple (defining the coordinates of the
top left and the bottom right point of the box), or a L{BoundingBox}
object (for 2D layouts only).
@param keep_aspect_ratio: whether to keep the aspect ratio of the current
layout. If C{False}, the layout will be rescaled to fit exactly into
the bounding box. If C{True}, the original aspect ratio of the layout
will be kept and it will be centered within the bounding box.
"""
if isinstance(bbox, BoundingBox):
if self._dim != 2:
raise TypeError("bounding boxes work for 2D layouts only")
corner, target_sizes = [bbox.left, bbox.top], [bbox.width, bbox.height]
elif len(bbox) == self._dim:
corner, target_sizes = [0.] * self._dim, list(bbox)
elif len(bbox) == 2 * self._dim:
corner, opposite_corner = list(bbox[0:self._dim]), list(bbox[self._dim:])
for i in xrange(self._dim):
if corner[i] > opposite_corner[i]:
corner[i], opposite_corner[i] = opposite_corner[i], corner[i]
target_sizes = [max_val-min_val \
for min_val, max_val in izip(corner, opposite_corner)]
try:
mins, maxs = self.boundaries()
except ValueError: