]> git.tdb.fi Git - libs/math.git/blobdiff - source/geometry/transformedshape.h
Take care not to count initialization values when finding min/max
[libs/math.git] / source / geometry / transformedshape.h
index 58e571a9db389a058cdb8ab3de1343b4ee87cb3e..f214e4bb1aa9c578308088f2475879debc726378 100644 (file)
@@ -2,8 +2,6 @@
 #define MSP_GEOMETRY_TRANSFORMEDSHAPE_H_
 
 #include "affinetransformation.h"
-#include "boundingbox.h"
-#include "ray.h"
 #include "shape.h"
 
 namespace Msp {
@@ -90,10 +88,18 @@ inline BoundingBox<T, D> TransformedShape<T, D>::get_axis_aligned_bounding_box()
 
                point = transformation.transform(point);
 
-               for(unsigned j=0; j<D; ++j)
+               if(i==0)
+               {
+                       min_pt = point;
+                       max_pt = point;
+               }
+               else
                {
-                       min_pt[j] = std::min(min_pt[j], point[j]);
-                       max_pt[j] = std::max(min_pt[j], point[j]);
+                       for(unsigned j=0; j<D; ++j)
+                       {
+                               min_pt[j] = std::min(min_pt[j], point[j]);
+                               max_pt[j] = std::max(max_pt[j], point[j]);
+                       }
                }
        }