]> git.tdb.fi Git - libs/math.git/blobdiff - source/geometry/boundingsphere.h
Add a Blender operator to export shapes
[libs/math.git] / source / geometry / boundingsphere.h
index dd20d96b6a4b701206f9e27b56a16cfc1402c158..66c14d5c904776f68c7344e76e534e1638e4f933 100644 (file)
@@ -22,7 +22,7 @@ public:
        template<typename Iter>
        static BoundingSphere from_point_cloud(const Iter &, const Iter &);
 
-       const LinAl::Vector<T, N> get_center() const { return center; }
+       const LinAl::Vector<T, N> &get_center() const { return center; }
        T get_radius() const { return radius; }
        bool is_empty() const { return empty; }
 };
@@ -83,8 +83,8 @@ BoundingSphere<T, N> BoundingSphere<T, N>::from_point_cloud(const Iter &begin, c
                if(d>sqdist)
                {
                        d = sqrt(d);
-                       bsphere.center += v*(1-bsphere.radius/d);
-                       bsphere.radius += d/2;
+                       bsphere.center += v*((T(1)-bsphere.radius/d)/T(2));
+                       bsphere.radius = (bsphere.radius+d)/T(2);
                        sqdist = bsphere.radius*bsphere.radius;
                }
        }