From bf6d903d8f1c6bb0cce9cd00474c84b9f28e2cb5 Mon Sep 17 00:00:00 2001
From: mark <mwinter@uwm.edu>
Date: Fri, 22 Jun 2012 15:52:07 -0500
Subject: [PATCH] Added in some missed dependencies for the old code.

---
 matlab/distToPath.m          | 14 ++++++++++++++
 matlab/distToSeg.m           | 27 +++++++++++++++++++++++++++
 matlab/rebuildLookupTables.m | 18 ++++++++++++++++++
 3 files changed, 59 insertions(+)
 create mode 100644 matlab/distToPath.m
 create mode 100644 matlab/distToSeg.m
 create mode 100644 matlab/rebuildLookupTables.m

diff --git a/matlab/distToPath.m b/matlab/distToPath.m
new file mode 100644
index 0000000..149554e
--- /dev/null
+++ b/matlab/distToPath.m
@@ -0,0 +1,14 @@
+function [dist, segparam, segidx] = distToPath(ptsX, ptsY, path)
+    dist = Inf*ones(size(ptsX));
+    segidx = zeros(size(ptsX));
+	segparam = zeros(size(ptsX));
+    
+    for i=1:length(path)-1
+        [tdist, tdisp, spparam] = distToSeg(ptsX, ptsY, path(:,i:i+1));
+        tparam = spparam(:,:,2);
+        bLess = (tdist < dist);
+        dist(bLess) = tdist(bLess);
+        segparam(bLess) = tparam(bLess);
+        segidx(bLess) = i;
+    end
+end
\ No newline at end of file
diff --git a/matlab/distToSeg.m b/matlab/distToSeg.m
new file mode 100644
index 0000000..f1a4c33
--- /dev/null
+++ b/matlab/distToSeg.m
@@ -0,0 +1,27 @@
+function [dist, disp, spparam] = distToSeg(ptsX, ptsY, seg)
+    segTan = seg(:,2) - seg(:,1);
+    segNrm = [segTan(2),-segTan(1)];
+    
+    segLen = norm(segTan);
+    
+    N = size(ptsX);
+    disp = zeros([N 2]);
+    
+    dispVecX = ptsX - repmat(seg(1,1), N);
+    dispVecY = ptsY - repmat(seg(2,1), N);
+    
+    disp(:,:,1) = dot(cat(3,dispVecX, dispVecY), repmat(reshape(segTan,[1,1,2]),N),3) / segLen;
+    disp(:,:,2) = dot(cat(3,dispVecX, dispVecY), repmat(reshape(segNrm,[1,1,2]),N),3) / segLen;
+    
+    spparam = disp;
+    
+    bzDisp = (disp > 0 & disp <= segLen);
+    bzDisp(:,:,2) = 0;
+    disp(bzDisp) = 0;
+    
+    blDisp = (disp > segLen);
+    blDisp(:,:,2) = 0;
+    disp(blDisp) = disp(blDisp) - segLen;
+    
+    dist = sqrt((disp(:,:,1).^2) + (disp(:,:,2).^2));
+end
\ No newline at end of file
diff --git a/matlab/rebuildLookupTables.m b/matlab/rebuildLookupTables.m
new file mode 100644
index 0000000..3a427ed
--- /dev/null
+++ b/matlab/rebuildLookupTables.m
@@ -0,0 +1,18 @@
+function trackingStruct = rebuildLookupTables(trackingStruct)
+    locLUT = zeros(1,length(trackingStruct.rgDetect));
+    globLUT = zeros(size(trackingStruct.gConnect,1),2);
+    
+    for t=1:length(trackingStruct.rgDetect)
+        numDets = size(trackingStruct.rgDetect{t},1);
+        globLUT(locLUT(t)+(1:numDets),:) = [t*ones(numDets,1), (1:numDets)'];
+        
+        if ( t+1 > length(trackingStruct.rgDetect) )
+            continue;
+        end
+        
+        locLUT(t+1) = locLUT(t) + numDets;
+    end
+    
+    trackingStruct.locNodeLUT = locLUT;
+    trackingStruct.globNodeLUT = globLUT;
+end
\ No newline at end of file
-- 
GitLab