diff src/Path.cpp @ 188:487261a22b18 re-minimise

distance_t * diagonalWeight might not fit in distance_t; use pathcost_t for it. Also remove C-style casts.
author Chris Cannam
date Thu, 26 Feb 2015 12:19:17 +0000
parents 16870e8770ae
children 175c8f044e7c
line wrap: on
line diff
--- a/src/Path.cpp	Thu Feb 26 10:48:36 2015 +0000
+++ b/src/Path.cpp	Thu Feb 26 12:19:17 2015 +0000
@@ -19,55 +19,55 @@
 int
 Path::smooth(std::vector<int> &x, std::vector<int> &y, int length)
 {
-    if (length == 0)
+    if (length <= 0)
         return 0;
-    while ((int)val.size() < length) {
-        val.push_back(0);
-        len.push_back(0);
+    while (m_val.size() < static_cast<std::vector<int>::size_type>(length)) {
+        m_val.push_back(0);
+        m_len.push_back(0);
     }
     int p = 0;
-    val[0] = len[0] = 0;
+    m_val[0] = m_len[0] = 0;
     for (int i = 1; i < length; i++) {	// H = 1; V = 2; D = 3
         int current = x[i] - x[i-1] + 2 * (y[i] - y[i-1]);
-        if (current == val[p]) {
-            len[p]++;
-        } else if ((current == 3) || (val[p] == 0)) {
-            val[++p] = current;
-            len[p] = 1;
-        } else if (val[p] + current == 3) {	// 1 + 2
-            if (--len[p] == 0)
+        if (current == m_val[p]) {
+            m_len[p]++;
+        } else if ((current == 3) || (m_val[p] == 0)) {
+            m_val[++p] = current;
+            m_len[p] = 1;
+        } else if (m_val[p] + current == 3) {	// 1 + 2
+            if (--m_len[p] == 0)
                 p--;
-            if (val[p] == 3)
-                len[p]++;
+            if (m_val[p] == 3)
+                m_len[p]++;
             else {
-                val[++p] = 3;
-                len[p] = 1;
+                m_val[++p] = 3;
+                m_len[p] = 1;
             }
-        } else {	// val[p] == 3 && current != 3
-            if ((val[p-1] == current) ||
-                (val[p-1] == 0) ||
-                (len[p] > MAX_RUN_LENGTH)) {
-                val[++p] = current;
-                len[p] = 1;
+        } else {	// m_val[p] == 3 && current != 3
+            if ((m_val[p-1] == current) ||
+                (m_val[p-1] == 0) ||
+                (m_len[p] > MAX_RUN_LENGTH)) {
+                m_val[++p] = current;
+                m_len[p] = 1;
             } else {
-                if (--len[p-1] == 0) {
-                    val[p-1] = val[p];
-                    len[p-1] = len[p];
+                if (--m_len[p-1] == 0) {
+                    m_val[p-1] = m_val[p];
+                    m_len[p-1] = m_len[p];
                     p--;
-                    if (val[p-1] == 3) {
-                        len[p-1] += len[p];
+                    if (m_val[p-1] == 3) {
+                        m_len[p-1] += m_len[p];
                         p--;
                     }
                 }
-                len[p]++;
+                m_len[p]++;
             }
         }
     }
     int i = 1;
     for (int pp = 1; pp <= p; pp++) {
-        int dx = val[pp] & 1;
-        int dy = val[pp] >> 1;
-        for (int j = len[pp]; j > 0; j--, i++) {
+        int dx = m_val[pp] & 1;
+        int dy = m_val[pp] >> 1;
+        for (int j = m_len[pp]; j > 0; j--, i++) {
             x[i] = x[i-1] + dx;
             y[i] = y[i-1] + dy;
         }