summaryrefslogtreecommitdiff
path: root/gr-wxgui/python/wxgui/plotter/bar_plotter.py
diff options
context:
space:
mode:
Diffstat (limited to 'gr-wxgui/python/wxgui/plotter/bar_plotter.py')
-rw-r--r--gr-wxgui/python/wxgui/plotter/bar_plotter.py150
1 files changed, 0 insertions, 150 deletions
diff --git a/gr-wxgui/python/wxgui/plotter/bar_plotter.py b/gr-wxgui/python/wxgui/plotter/bar_plotter.py
deleted file mode 100644
index 487db66b64..0000000000
--- a/gr-wxgui/python/wxgui/plotter/bar_plotter.py
+++ /dev/null
@@ -1,150 +0,0 @@
-#
-# Copyright 2009 Free Software Foundation, Inc.
-#
-# This file is part of GNU Radio
-#
-# GNU Radio is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3, or (at your option)
-# any later version.
-#
-# GNU Radio is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Radio; see the file COPYING. If not, write to
-# the Free Software Foundation, Inc., 51 Franklin Street,
-# Boston, MA 02110-1301, USA.
-#
-
-import wx
-from grid_plotter_base import grid_plotter_base
-from OpenGL import GL
-import common
-import numpy
-
-LEGEND_TEXT_FONT_SIZE = 8
-LEGEND_BOX_PADDING = 3
-MIN_PADDING = 0, 0, 0, 70 #top, right, bottom, left
-#constants for the waveform storage
-SAMPLES_KEY = 'samples'
-COLOR_SPEC_KEY = 'color_spec'
-MARKERY_KEY = 'marker'
-TRIG_OFF_KEY = 'trig_off'
-
-##################################################
-# Bar Plotter for histogram waveforms
-##################################################
-class bar_plotter(grid_plotter_base):
-
- def __init__(self, parent):
- """
- Create a new bar plotter.
- """
- #init
- grid_plotter_base.__init__(self, parent, MIN_PADDING)
- self._bars = list()
- self._bar_width = .5
- self._color_spec = (0, 0, 0)
- #setup bar cache
- self._bar_cache = self.new_gl_cache(self._draw_bars)
- #setup bar plotter
- self.register_init(self._init_bar_plotter)
-
- def _init_bar_plotter(self):
- """
- Run gl initialization tasks.
- """
- GL.glEnableClientState(GL.GL_VERTEX_ARRAY)
-
- def _draw_bars(self):
- """
- Draw the vertical bars.
- """
- bars = self._bars
- num_bars = len(bars)
- if num_bars == 0: return
- #use scissor to prevent drawing outside grid
- GL.glEnable(GL.GL_SCISSOR_TEST)
- GL.glScissor(
- self.padding_left,
- self.padding_bottom+1,
- self.width-self.padding_left-self.padding_right-1,
- self.height-self.padding_top-self.padding_bottom-1,
- )
- #load the points
- points = list()
- width = self._bar_width/2
- for i, bar in enumerate(bars):
- points.extend([
- (i-width, 0),
- (i+width, 0),
- (i+width, bar),
- (i-width, bar),
- ]
- )
- GL.glColor3f(*self._color_spec)
- #matrix transforms
- GL.glPushMatrix()
- GL.glTranslatef(self.padding_left, self.padding_top, 0)
- GL.glScalef(
- (self.width-self.padding_left-self.padding_right),
- (self.height-self.padding_top-self.padding_bottom),
- 1,
- )
- GL.glTranslatef(0, 1, 0)
- GL.glScalef(1.0/(num_bars-1), -1.0/(self.y_max-self.y_min), 1)
- GL.glTranslatef(0, -self.y_min, 0)
- #draw the bars
- GL.glVertexPointerf(points)
- GL.glDrawArrays(GL.GL_QUADS, 0, len(points))
- GL.glPopMatrix()
- GL.glDisable(GL.GL_SCISSOR_TEST)
-
- def _populate_point_label(self, x_val, y_val):
- """
- Get the text the will populate the point label.
- Give X and Y values for the current point.
- Give values for the channel at the X coordinate.
-
- Args:
- x_val: the current x value
- y_val: the current y value
-
- Returns:
- a string with newlines
- """
- if len(self._bars) == 0: return ''
- scalar = float(len(self._bars)-1)/(self.x_max - self.x_min)
- #convert x val to bar #
- bar_index = scalar*(x_val - self.x_min)
- #if abs(bar_index - round(bar_index)) > self._bar_width/2: return ''
- bar_index = int(round(bar_index))
- bar_start = (bar_index - self._bar_width/2)/scalar + self.x_min
- bar_end = (bar_index + self._bar_width/2)/scalar + self.x_min
- bar_value = self._bars[bar_index]
- return '%s to %s\n%s: %s'%(
- common.eng_format(bar_start, self.x_units),
- common.eng_format(bar_end, self.x_units),
- self.y_label, common.eng_format(bar_value, self.y_units),
- )
-
- def set_bars(self, bars, bar_width, color_spec):
- """
- Set the bars.
-
- Args:
- bars: a list of bars
- bar_width: the fractional width of the bar, between 0 and 1
- color_spec: the color tuple
- """
- self.lock()
- self._bars = bars
- self._bar_width = float(bar_width)
- self._color_spec = color_spec
- self._bar_cache.changed(True)
- self.unlock()
-
-