From 56a9234d76e9efe69e06704230b1a81d7343c140 Mon Sep 17 00:00:00 2001
From: andreas <andreas@5a81b35b-ba03-0410-adc8-b2c5c5119f08>
Date: Tue, 14 Sep 2010 22:12:44 +0000
Subject: [PATCH] added display of complex values in plot viewer

git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@2700 5a81b35b-ba03-0410-adc8-b2c5c5119f08
---
 .../src/data_viewer/data_viewer_panel_base.cc | 47 +++++++++++++------
 1 file changed, 32 insertions(+), 15 deletions(-)

diff --git a/modules/gui/src/data_viewer/data_viewer_panel_base.cc b/modules/gui/src/data_viewer/data_viewer_panel_base.cc
index 5af82c954..98b38d711 100644
--- a/modules/gui/src/data_viewer/data_viewer_panel_base.cc
+++ b/modules/gui/src/data_viewer/data_viewer_panel_base.cc
@@ -431,7 +431,7 @@ void DataViewerPanelBase::paintEvent(QPaintEvent* event)
   painter.drawPixmap(QPoint(0,0),*pixmap_);
 #endif
 
-  if(zoom_level_ >= 6 && display_pixel_values_) {
+  if(zoom_level_ >= 7 && display_pixel_values_) {
     draw_pixel_values(painter);
   }
 
@@ -1009,20 +1009,37 @@ void DataViewerPanelBase::draw_pixel_values(QPainter& painter)
 
   QFont fnt("Courier",(zoom_level_-6)*2+7);
   painter.setFont(fnt);
-  
-  for(int i = 0; i <= (b[0] - a[0]); ++i) {
-    for(int j = 0; j <= (b[1] - a[1]); ++j) {
-      Real pixel_value = GetObservedData().GetReal(Point(a[0]+i, 
-                                                               a[1]+j,slab_));
-      QString value_string = QString("%1").arg(pixel_value,0,'g',5);
-      Real rv = GetNormalizer()->Convert(pixel_value);
-      QPoint p = FracPointToWinCenter(geom::Vec2(static_cast<Real>(a[0]+i),
-                                                 static_cast<Real>(a[1]+j)));
-      unsigned char rgb = (rv>130.0) ? 0 : 255;
-      painter.setPen(QColor(rgb,rgb,rgb));
-      int string_h=painter.fontMetrics().height();
-      int string_w=painter.fontMetrics().width(value_string);
-      painter.drawText(p.x() - string_w/2, p.y() + string_h/2, value_string);
+  if(GetObservedData().GetType()==REAL){
+    for(int i = 0; i <= (b[0] - a[0]); ++i) {
+      for(int j = 0; j <= (b[1] - a[1]); ++j) {
+        Real pixel_value = GetObservedData().GetReal(Point(a[0]+i,
+                                                                 a[1]+j,slab_));
+        QString value_string = QString("%1").arg(pixel_value,0,'g',5);
+        Real rv = GetNormalizer()->Convert(pixel_value);
+        QPoint p = FracPointToWinCenter(geom::Vec2(static_cast<Real>(a[0]+i),
+                                                   static_cast<Real>(a[1]+j)));
+        unsigned char rgb = (rv>130.0) ? 0 : 255;
+        painter.setPen(QColor(rgb,rgb,rgb));
+        int string_h=painter.fontMetrics().height();
+        int string_w=painter.fontMetrics().width(value_string);
+        painter.drawText(p.x() - string_w/2, p.y() + string_h/2, value_string);
+      }
+    }
+  }else{
+    for(int i = 0; i <= (b[0] - a[0]); ++i) {
+      for(int j = 0; j <= (b[1] - a[1]); ++j) {
+        Complex pixel_value = GetObservedData().GetComplex(Point(a[0]+i,
+                                                                 a[1]+j,slab_));
+        QString value_string = QString("%1+i%2").arg(pixel_value.real(),0,'g',5).arg(pixel_value.imag(),0,'g',5);
+        Real rv = GetNormalizer()->Convert(abs(pixel_value));
+        QPoint p = FracPointToWinCenter(geom::Vec2(static_cast<Real>(a[0]+i),
+                                                   static_cast<Real>(a[1]+j)));
+        unsigned char rgb = (rv>130.0) ? 0 : 255;
+        painter.setPen(QColor(rgb,rgb,rgb));
+        int string_h=painter.fontMetrics().height();
+        int string_w=painter.fontMetrics().width(value_string);
+        painter.drawText(p.x() - string_w/2, p.y() + string_h/2, value_string);
+      }
     }
   }
 }
-- 
GitLab