From adb12a05c0a98f4b941dcd08d5b65a11fbb1c36e Mon Sep 17 00:00:00 2001
From: jvoigts <jvoigts@mit.edu>
Date: Tue, 1 Mar 2016 14:27:19 -0500
Subject: [PATCH] fixed clippiing warning display bug

---
 .../LfpDisplayNode/LfpDisplayCanvas.cpp       | 19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)

diff --git a/Source/Plugins/LfpDisplayNode/LfpDisplayCanvas.cpp b/Source/Plugins/LfpDisplayNode/LfpDisplayCanvas.cpp
index 4247910da..f7f5147d3 100644
--- a/Source/Plugins/LfpDisplayNode/LfpDisplayCanvas.cpp
+++ b/Source/Plugins/LfpDisplayNode/LfpDisplayCanvas.cpp
@@ -1948,9 +1948,18 @@ void LfpChannelDisplay::pxPaint()
         Image::BitmapData bdLfpChannelBitmap(display->lfpChannelBitmap, 0,0, display->lfpChannelBitmap.getWidth(), display->lfpChannelBitmap.getHeight());
 
         int center = getHeight()/2;
-        int jfrom_wholechannel= (int) (getY()+center-channelHeight/2)+1;
-        int jto_wholechannel= (int) getY()+center+channelHeight/2;
+        
+        // max and min of channel in absolute px coords for event displays etc - actual data might be drawn outside of this range
+        int jfrom_wholechannel= (int) (getY()+center-channelHeight/2)+1 +0 ;
+        int jto_wholechannel= (int) (getY()+center+channelHeight/2) -0;
+    
+        
+        // max and min of channel, this is the range where actual data is drawn
+        int jfrom_wholechannel_clip= (int) (getY()+center-(channelHeight)*canvas->channelOverlapFactor)+1  ;
+        int jto_wholechannel_clip  = (int) (getY()+center+(channelHeight)*canvas->channelOverlapFactor) -0;
     
+        
+
         if (jfrom_wholechannel<0) {jfrom_wholechannel=0;};
         if (jto_wholechannel >= display->lfpChannelBitmap.getHeight()) {jto_wholechannel=display->lfpChannelBitmap.getHeight()-1;};
     
@@ -2170,13 +2179,13 @@ void LfpChannelDisplay::pxPaint()
             }
             
             // now draw warnings, if needed
-            if (canvas->drawClipWarning) // draw warnings if display cuts off data
+            if (canvas->drawClipWarning) // draw simple warning if display cuts off data
             {
                 
                 if(clipWarningHi) {
                     for (int j=0; j<=1; j++)
                     {
-                        int clipmarker = -3+j+ getY()-(getHeight()/channelHeightFloat)+getHeight() + channelHeightFloat/2 ;
+                        int clipmarker = jto_wholechannel_clip;
                     
                         if(clipmarker>0 & clipmarker<display->lfpChannelBitmap.getHeight()){
                                                   bdLfpChannelBitmap.setPixelColour(i,clipmarker,Colour(255,255,255));
@@ -2187,7 +2196,7 @@ void LfpChannelDisplay::pxPaint()
                 if(clipWarningLo) {
                         for (int j=0; j<=1; j++)
                         {
-                           int clipmarker = 2+j+ getY()  +(getHeight()/channelHeightFloat) -channelHeightFloat/2 ;
+                           int clipmarker = jfrom_wholechannel_clip;
                             
                             if(clipmarker>0 & clipmarker<display->lfpChannelBitmap.getHeight()){
                                 bdLfpChannelBitmap.setPixelColour(i,clipmarker,Colour(255,255,255));
-- 
GitLab