Merge latest local patches. psp
authorachurch
Fri, 07 Jan 2011 02:37:09 +0900
branchpsp
changeset 641 b9c86e22b347
parent 638 be05b378ec73 (current diff)
parent 640 57445129408f (diff)
child 642 8b202aba3a13
Merge latest local patches.
BBGE/Base.cpp
--- a/BBGE/Base.cpp	Thu Jan 06 01:46:37 2011 +0900
+++ b/BBGE/Base.cpp	Fri Jan 07 02:37:09 2011 +0900
@@ -797,12 +797,17 @@
 {
     Vector dir = lineEnd - lineStart;
     Vector diff = point - lineStart;
-    float t = diff.dot2D(dir) / dir.dot2D(dir);
-    if (t < 0.0f)
-        t = 0.0f;
-    if (t > 1.0f)
-        t = 1.0f;
-    Vector closest = lineStart + t * dir;
+    Vector closest;
+    if (!dir.isZero()) {
+	float t = diff.dot2D(dir) / dir.dot2D(dir);
+	if (t < 0.0f)
+	    t = 0.0f;
+	if (t > 1.0f)
+	    t = 1.0f;
+	closest = lineStart + t * dir;
+    } else {
+	closest = lineStart;
+    }
     Vector d = point - closest;
     float distsqr = d.dot2D(d);
 	if (closestP)