fixed Box::Extend(Vec3f&)
[MicroTrace.git] / Box.cxx
diff --git a/Box.cxx b/Box.cxx
index d421525..6974d42 100644 (file)
--- a/Box.cxx
+++ b/Box.cxx
@@ -31,6 +31,8 @@ Box::operator=(const Box& b)
 void
 Box::Clear()
 {
+  m_min = Vec3f(Infinity, Infinity, Infinity);
+  m_max = Vec3f(-Infinity, -Infinity, -Infinity);
 }
 
 void
@@ -40,7 +42,8 @@ Box::Extend(const Vec3f& a)
   for(size_t i = 0; i < 3; i++) {
     if(a[i] > m_max[i]) {
       m_max[i] = a[i];
-    } else if(a[i] < m_min[i]) {
+    }
+    if(a[i] < m_min[i]) {
       m_min[i] = a[i];
     } // else: do nothing, coordinate is inside the box
   }
@@ -49,6 +52,8 @@ Box::Extend(const Vec3f& a)
 void
 Box::Extend(const Box& box)
 {
+  Extend(box.min());
+  Extend(box.max());
 }
 
 bool Box::OverlapsHelper(Box b) const {
This page took 0.022425 seconds and 4 git commands to generate.