diff trunk/src/Modules/Output/Graphics/GraphicsView.cc @ 398:3ee03a6b95a0

- All \t to two spaces (style guide compliance)
author tomwalters
date Fri, 15 Oct 2010 05:46:53 +0000
parents 7a573750b186
children 7bfed53caacf
line wrap: on
line diff
--- a/trunk/src/Modules/Output/Graphics/GraphicsView.cc	Fri Oct 15 05:40:53 2010 +0000
+++ b/trunk/src/Modules/Output/Graphics/GraphicsView.cc	Fri Oct 15 05:46:53 2010 +0000
@@ -21,148 +21,148 @@
 #include "Output/GraphicsOutputDevice.h"
 
 GraphicsView::GraphicsView(Parameters *parameters) : Module(parameters) {
-	module_description_ = "";
+  module_description_ = "";
   module_identifier_ = "graphics";
   module_type_ = "output";
   module_version_ = "$Id: $";
   
-	m_pDev = NULL;
-	m_bPlotLabels = false;
-	m_pAxisX = new GraphAxisSpec();
-	AIM_ASSERT(m_pAxisX);
-	m_pAxisY = new GraphAxisSpec();
-	AIM_ASSERT(m_pAxisY);
-	m_pAxisFreq = new GraphAxisSpec();
-	AIM_ASSERT(m_pAxisFreq);
+  m_pDev = NULL;
+  m_bPlotLabels = false;
+  m_pAxisX = new GraphAxisSpec();
+  AIM_ASSERT(m_pAxisX);
+  m_pAxisY = new GraphAxisSpec();
+  AIM_ASSERT(m_pAxisY);
+  m_pAxisFreq = new GraphAxisSpec();
+  AIM_ASSERT(m_pAxisFreq);
 
   m_pAxisY->Initialize(m_pParam,
                        _S("graph.y"),
                        -1,
                        1,
                        Scale::SCALE_LINEAR);
-	m_fMarginLeft = m_pParam->GetFloat(_S("graph.margin.left"));
-	m_fMarginRight = m_pParam->GetFloat(_S("graph.margin.right"));
-	m_fMarginTop = m_pParam->GetFloat(_S("graph.margin.top"));
-	m_fMarginBottom = m_pParam->GetFloat(_S("graph.margin.bottom"));
-	m_bPlotLabels = m_pParam->GetBool(_S("graph.plotlabels"));
+  m_fMarginLeft = m_pParam->GetFloat(_S("graph.margin.left"));
+  m_fMarginRight = m_pParam->GetFloat(_S("graph.margin.right"));
+  m_fMarginTop = m_pParam->GetFloat(_S("graph.margin.top"));
+  m_fMarginBottom = m_pParam->GetFloat(_S("graph.margin.bottom"));
+  m_bPlotLabels = m_pParam->GetBool(_S("graph.plotlabels"));
 
-	const char *sGraphType = m_pParam->GetString(_S("graph.type"));
-	if (strcmp(sGraphType, _S("line"))==0)
-		m_iGraphType = GraphTypeLine;
-	else if (strcmp(sGraphType, _S("colormap"))==0)
-		m_iGraphType = GraphTypeColormap;
-	else if (strcmp(sGraphType, _S("none"))==0)
-		m_iGraphType = GraphTypeNone;
-	else {
-		ret = false;
-		AIM_ERROR(_T("Unrecognized graph type: '%s'"), sGraphType);
-	}
+  const char *sGraphType = m_pParam->GetString(_S("graph.type"));
+  if (strcmp(sGraphType, _S("line"))==0)
+    m_iGraphType = GraphTypeLine;
+  else if (strcmp(sGraphType, _S("colormap"))==0)
+    m_iGraphType = GraphTypeColormap;
+  else if (strcmp(sGraphType, _S("none"))==0)
+    m_iGraphType = GraphTypeNone;
+  else {
+    ret = false;
+    AIM_ERROR(_T("Unrecognized graph type: '%s'"), sGraphType);
+  }
 
-	if (strcmp(m_pParam->GetString(_S("graph.mindistance")),"auto") == 0)
-		// -1 means detect later, based on type and Fire() argument
-		m_fMinPlotDistance = -1;
-	else
-		m_fMinPlotDistance = m_pParam->GetFloat(_S("graph.mindistance"));
+  if (strcmp(m_pParam->GetString(_S("graph.mindistance")),"auto") == 0)
+    // -1 means detect later, based on type and Fire() argument
+    m_fMinPlotDistance = -1;
+  else
+    m_fMinPlotDistance = m_pParam->GetFloat(_S("graph.mindistance"));
 
 }
 
 GraphicsView::~GraphicsView() {
-	DELETE_IF_NONNULL(m_pAxisX);
-	DELETE_IF_NONNULL(m_pAxisY);
-	DELETE_IF_NONNULL(m_pAxisFreq);
+  DELETE_IF_NONNULL(m_pAxisX);
+  DELETE_IF_NONNULL(m_pAxisY);
+  DELETE_IF_NONNULL(m_pAxisFreq);
 }
 
 bool
 
 bool GraphicsView::InitializeInternal(const SignalBank &bank) {
-	if (!m_pDev) {
-		LOG_ERROR("Output device not connected");
-		return false;
-	}
+  if (!m_pDev) {
+    LOG_ERROR("Output device not connected");
+    return false;
+  }
 
   float y_min = bank.centre_frequency(0);
   float y_max = bank.centre_frequency(bank.channel_count() - 1);
-	if (!m_pAxisFreq->Initialize(m_pParam,
+  if (!m_pAxisFreq->Initialize(m_pParam,
                                "graph.freq",
-		                           y_min,
-		                           y_max,
-		                           Scale::SCALE_ERB)) {
+                               y_min,
+                               y_max,
+                               Scale::SCALE_ERB)) {
     LOG_ERROR("");
     return false;
   }
 
   float x_min = 0.0;
   float x_max = 1000.0 * bank.buffer_length() / bank.sample_rate();
-	if (!m_pAxisX->Initialize(m_pParam,
+  if (!m_pAxisX->Initialize(m_pParam,
                             "graph.x",
-		                        x_min,
+                            x_min,
                             x_max,
-		                        Scale::SCALE_LINEAR)) {
+                            Scale::SCALE_LINEAR)) {
      LOG_ERROR("");
      return false;
   }
 
-	/* Inform graphics output of maximum number of vertices between
-	 * gBegin*() and gEnd(), for any type of plot. Colormap needs most.
-	 */
-	if (!m_pDev->Initialize(MAX(10, bank.buffer_length() * 2 + 2))) {
+  /* Inform graphics output of maximum number of vertices between
+   * gBegin*() and gEnd(), for any type of plot. Colormap needs most.
+   */
+  if (!m_pDev->Initialize(MAX(10, bank.buffer_length() * 2 + 2))) {
     LOG_ERROR("");
     return false;
   }
 }
 
 void GraphicsView::Process(const SignalBank &bank) {
-	float height = 1.0 / bank.channel_count();
-	float heightMinMargin = height * (1.0f - m_fMarginBottom - m_fMarginTop);
-	float xScaling = 1.0f;
+  float height = 1.0 / bank.channel_count();
+  float heightMinMargin = height * (1.0f - m_fMarginBottom - m_fMarginTop);
+  float xScaling = 1.0f;
 
-	m_pDev->gGrab();
-	PlotAxes(bank);
-	m_pDev->gColor3f(1.0f, 1.0f, 0.8f);
-	for (int i = 0; i < bank.channel_count(); i++) {
-		float yOffs = bank.centre_frequency(i);
-		yOffs = m_pAxisFreq->m_pScale->FromLinearScaled(yOffs) + 0.5f;
-		/* Don't plot below zero and stop when above 1, since yOffs is
+  m_pDev->gGrab();
+  PlotAxes(bank);
+  m_pDev->gColor3f(1.0f, 1.0f, 0.8f);
+  for (int i = 0; i < bank.channel_count(); i++) {
+    float yOffs = bank.centre_frequency(i);
+    yOffs = m_pAxisFreq->m_pScale->FromLinearScaled(yOffs) + 0.5f;
+    /* Don't plot below zero and stop when above 1, since yOffs is
      * monotonically increasing. Because of rounding errors, we need
      * to check for yOffs < -1e-6 instead of yOffs < 0. */
-		if (yOffs < -1e-6)
+    if (yOffs < -1e-6)
       continue;
-		if (yOffs > 1)
+    if (yOffs > 1)
       break;
 
     // Scale to single channel graphing.
-		yOffs = yOffs * (1.0f - height) + height / 2.0;
-		yOffs = yOffs * (1.0f - m_fMarginTop - m_fMarginBottom) + m_fMarginBottom;
-		PlotData(bank[i], yOffs, heightMinMargin, xScaling);
-	}
-	m_pDev->gRelease();
+    yOffs = yOffs * (1.0f - height) + height / 2.0;
+    yOffs = yOffs * (1.0f - m_fMarginTop - m_fMarginBottom) + m_fMarginBottom;
+    PlotData(bank[i], yOffs, heightMinMargin, xScaling);
+  }
+  m_pDev->gRelease();
 }
 
 void GraphicsView::SetAxisScale(Scale::ScaleType iHori,
                                 Scale::ScaleType iVert,
                                 Scale::ScaleType iFreq) {
-	AIM_ASSERT(m_pAxisX);
-	AIM_ASSERT(m_pAxisY);
-	AIM_ASSERT(m_pAxisFreq);
-	m_pAxisX->SetDisplayScale(iHori);
-	m_pAxisY->SetDisplayScale(iVert);
-	m_pAxisFreq->SetDisplayScale(iFreq);
+  AIM_ASSERT(m_pAxisX);
+  AIM_ASSERT(m_pAxisY);
+  AIM_ASSERT(m_pAxisFreq);
+  m_pAxisX->SetDisplayScale(iHori);
+  m_pAxisY->SetDisplayScale(iVert);
+  m_pAxisFreq->SetDisplayScale(iFreq);
 }
 
 void GraphicsView::BeginDataStrip() {
-	m_iPrevValEqual=0;
-	m_bFirstPoint=true;
-	switch(m_iGraphType) {
-	case GraphTypeLine:
-		m_pDev->gBeginLineStrip();
-		break;
-	case GraphTypeColormap:
-		m_pDev->gBeginQuadStrip();
-		break;
-	case GraphTypeNone:
-		// Nothing: just for testing computation overhead of graphing
-		break;
-	}
+  m_iPrevValEqual=0;
+  m_bFirstPoint=true;
+  switch(m_iGraphType) {
+  case GraphTypeLine:
+    m_pDev->gBeginLineStrip();
+    break;
+  case GraphTypeColormap:
+    m_pDev->gBeginQuadStrip();
+    break;
+  case GraphTypeNone:
+    // Nothing: just for testing computation overhead of graphing
+    break;
+  }
 }
 
 void GraphicsView::PlotDataPoint(float x,
@@ -170,65 +170,65 @@
                                  float val,
                                  float height,
                                  bool isLast) {
-	AIM_ASSERT(m_pDev);
+  AIM_ASSERT(m_pDev);
 
-	/* Reduce the number of points plotted by eliminating duplicate values:
-	 *
-	 *             oooo                         o--o
-	 *                 o                       /    o
-	 *        oooo       ooo       =>      o--o      o--o
-	 *    oooo              ooo        o--o              o-o
-	 *
-	 * with 'o' points that are plotted, and '-' by the graphics output
-	 * device interpolated points. We could be smarter and include
-	 * first-order interpolation, but we leave that as an exercise for
-	 * the reader. Please send your patches :)
-	 *
-	 * So, we don't draw points that are too close to the previous value.
-	 * But if the value changes (or it's the last point), we must draw the
-	 * previous point too.
-	 */
-	if (!m_bFirstPoint
+  /* Reduce the number of points plotted by eliminating duplicate values:
+   *
+   *             oooo                         o--o
+   *                 o                       /    o
+   *        oooo       ooo       =>      o--o      o--o
+   *    oooo              ooo        o--o              o-o
+   *
+   * with 'o' points that are plotted, and '-' by the graphics output
+   * device interpolated points. We could be smarter and include
+   * first-order interpolation, but we leave that as an exercise for
+   * the reader. Please send your patches :)
+   *
+   * So, we don't draw points that are too close to the previous value.
+   * But if the value changes (or it's the last point), we must draw the
+   * previous point too.
+   */
+  if (!m_bFirstPoint
       && !isLast
       && fabs(m_fPrevVal-val) < m_fMinPlotDistance) {
-		m_iPrevValEqual++;
-		// Don't set m_fPrevVal to avoid not catching slow changes
-		m_fPrevX = x;
-		m_fPrevY = y;
-		m_fPrevHeight = height;
-		return;
-	} else {
-		if (m_iPrevValEqual > 0) {
-			// Draw previous point
-			PlotDataPointDirect(m_fPrevX, m_fPrevY, m_fPrevVal, m_fPrevHeight);
-		}
-		m_iPrevValEqual = 0;
-		m_fPrevVal = val;
-		m_bFirstPoint = false;
-	}
-	PlotDataPointDirect(x, y, val, height);
+    m_iPrevValEqual++;
+    // Don't set m_fPrevVal to avoid not catching slow changes
+    m_fPrevX = x;
+    m_fPrevY = y;
+    m_fPrevHeight = height;
+    return;
+  } else {
+    if (m_iPrevValEqual > 0) {
+      // Draw previous point
+      PlotDataPointDirect(m_fPrevX, m_fPrevY, m_fPrevVal, m_fPrevHeight);
+    }
+    m_iPrevValEqual = 0;
+    m_fPrevVal = val;
+    m_bFirstPoint = false;
+  }
+  PlotDataPointDirect(x, y, val, height);
 }
 
 void GraphicsView::PlotDataPointDirect(float x,
                                        float y,
                                        float val,
                                        float height) {
-	// Draw it in the right way
-	switch(m_iGraphType) {
-	case GraphTypeLine:
-		m_pDev->gVertex2f(x, y + val * height);
-		break;
-	case GraphTypeColormap:
-		//! \todo make it a real colormap instead of grayscale
-		m_pDev->gColor3f(val + 0.5, val + 0.5, val + 0.5);
-		m_pDev->gVertex2f(x, y - height / 2);
-		m_pDev->gVertex2f(x, y + height / 2);
-		break;
-	case GraphTypeNone:
-		// Nothing: just for testing computation overhead of graphing
-		break;
-	default:
-		// Shouldn't happen
-		AIM_ASSERT(0);
-	}
+  // Draw it in the right way
+  switch(m_iGraphType) {
+  case GraphTypeLine:
+    m_pDev->gVertex2f(x, y + val * height);
+    break;
+  case GraphTypeColormap:
+    //! \todo make it a real colormap instead of grayscale
+    m_pDev->gColor3f(val + 0.5, val + 0.5, val + 0.5);
+    m_pDev->gVertex2f(x, y - height / 2);
+    m_pDev->gVertex2f(x, y + height / 2);
+    break;
+  case GraphTypeNone:
+    // Nothing: just for testing computation overhead of graphing
+    break;
+  default:
+    // Shouldn't happen
+    AIM_ASSERT(0);
+  }
 }