Don't draw SVG items that would appear very small on screen, to speed up drawing.
authorGustavo J. A. M. Carneiro <gjc@inescporto.pt>
Mon, 26 Jan 2009 17:10:02 +0000
changeset 3907 b5a73d868b01
parent 3906 0610a23f707a
child 3908 c39c72cd970d
Don't draw SVG items that would appear very small on screen, to speed up drawing.
src/contrib/visualizer/core.py
--- a/src/contrib/visualizer/core.py	Fri Dec 12 15:49:43 2008 +0000
+++ b/src/contrib/visualizer/core.py	Mon Jan 26 17:10:02 2009 +0000
@@ -113,11 +113,16 @@
         self.svg_item.props.parent = self.visualizer.canvas.get_root_item()
         self.svg_item.props.pointer_events = 0
         self.svg_item.lower(None)
-        self.svg_item.props.visibility = goocanvas.ITEM_VISIBLE
+        self.svg_item.props.visibility = goocanvas.ITEM_VISIBLE_ABOVE_THRESHOLD
         if width is not None:
             self.svg_item.props.width = transform_distance_simulation_to_canvas(width)
         if height is not None:
             self.svg_item.props.height = transform_distance_simulation_to_canvas(height)
+
+        threshold1 = 10.0/self.svg_item.props.height
+        threshold2 = 10.0/self.svg_item.props.width
+        self.svg_item.props.visibility_threshold = min(threshold1, threshold2)
+
         self.svg_align_x = align_x
         self.svg_align_y = align_y
         self._update_svg_position(x, y)