changeset 242:5ac5c23de715

Don't let nans into reporters.
author mas01cr
date Fri, 14 Dec 2007 14:26:15 +0000
parents 2a88ae80e4a9
children 8ad1b52385f0
files reporter.h
diffstat 1 files changed, 20 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/reporter.h	Fri Dec 14 12:51:25 2007 +0000
+++ b/reporter.h	Fri Dec 14 14:26:15 2007 +0000
@@ -61,14 +61,16 @@
 }
 
 template <class T> void pointQueryReporter<T>::add_point(unsigned int trackID, unsigned int qpos, unsigned int spos, double dist) {
-  NNresult r;
-  r.trackID = trackID;
-  r.qpos = qpos;
-  r.spos = spos;
-  r.dist = dist;
-  queue->push(r);
-  if(queue->size() > pointNN) {
-    queue->pop();
+  if (!isnan(dist)) {
+    NNresult r;
+    r.trackID = trackID;
+    r.qpos = qpos;
+    r.spos = spos;
+    r.dist = dist;
+    queue->push(r);
+    if(queue->size() > pointNN) {
+      queue->pop();
+    }
   }
 }
 
@@ -133,14 +135,16 @@
 }
 
 template <class T> void trackAveragingReporter<T>::add_point(unsigned int trackID, unsigned int qpos, unsigned int spos, double dist) {
-  NNresult r;
-  r.trackID = trackID;
-  r.qpos = qpos;
-  r.spos = spos;
-  r.dist = dist;
-  queues[trackID].push(r);
-  if(queues[trackID].size() > pointNN) {
-    queues[trackID].pop();
+  if (!isnan(dist)) {
+    NNresult r;
+    r.trackID = trackID;
+    r.qpos = qpos;
+    r.spos = spos;
+    r.dist = dist;
+    queues[trackID].push(r);
+    if(queues[trackID].size() > pointNN) {
+      queues[trackID].pop();
+    }
   }
 }