Commit 262f80c2e7ffe65828d1cfbc7cba9f7fcfcd9ed4

Authored by Scott Klum
1 parent e7549375

Handling missing data in Flip and ReorderPoints

openbr/plugins/register.cpp
@@ -146,12 +146,15 @@ private: @@ -146,12 +146,15 @@ private:
146 146
147 QList<QPointF> flippedPoints; 147 QList<QPointF> flippedPoints;
148 foreach(const QPointF &point, src.file.points()) { 148 foreach(const QPointF &point, src.file.points()) {
149 - if (axis == Y) {  
150 - flippedPoints.append(QPointF(src.m().cols-point.x(),point.y()));  
151 - } else if (axis == X) {  
152 - flippedPoints.append(QPointF(point.x(),src.m().rows-point.y()));  
153 - } else {  
154 - flippedPoints.append(QPointF(src.m().cols-point.x(),src.m().rows-point.y())); 149 + // Check for missing data using the QPointF(-1,-1) convention
  150 + if (point != QPointF(-1,-1)) {
  151 + if (axis == Y) {
  152 + flippedPoints.append(QPointF(src.m().cols-point.x(),point.y()));
  153 + } else if (axis == X) {
  154 + flippedPoints.append(QPointF(point.x(),src.m().rows-point.y()));
  155 + } else {
  156 + flippedPoints.append(QPointF(src.m().cols-point.x(),src.m().rows-point.y()));
  157 + }
155 } 158 }
156 } 159 }
157 160
openbr/plugins/template.cpp
@@ -229,9 +229,12 @@ class ReorderPointsTransform : public UntrainableMetadataTransform @@ -229,9 +229,12 @@ class ReorderPointsTransform : public UntrainableMetadataTransform
229 { 229 {
230 if (from.size() == to.size()) { 230 if (from.size() == to.size()) {
231 QList<QPointF> points = src.points(); 231 QList<QPointF> points = src.points();
232 - for (int i=0; i<from.size(); i++)  
233 - std::swap(points[from[i]],points[to[i]]);  
234 - dst.setPoints(points); 232 + if (!points.contains(QPointF(-1,-1))) {
  233 + for (int i=0; i<from.size(); i++) {
  234 + std::swap(points[from[i]],points[to[i]]);
  235 + }
  236 + dst.setPoints(points);
  237 + }
235 } else qFatal("Inconsistent sizes for to and from index lists."); 238 } else qFatal("Inconsistent sizes for to and from index lists.");
236 } 239 }
237 }; 240 };