]> git.tdb.fi Git - libs/gl.git/blobdiff - blender/io_mspgl/util.py
Refactor some parts of the Blender exporter to improve reusability
[libs/gl.git] / blender / io_mspgl / util.py
index e77e544751abe7b9bcdbfe8ad968ec451b86b2ca..4141e9f77600891eb7ef405ecf2cc6bb3d642944 100644 (file)
@@ -85,3 +85,16 @@ def get_linked_node_and_socket(node_tree, socket):
                elif socket==l.from_socket:
                        return (l.to_node, l.to_socket)
        return (None, None)
+
+def compute_bounding_sphere(points):
+       p1 = max(((p, p.length) for p in points), key=lambda x:x[1])[0]
+       p2 = max(((p, (p-p1).length) for p in points), key=lambda x:x[1])[0]
+       center = (p1+p2)/2
+       radius = (p1-p2).length/2
+       for p in points:
+               d = p-center
+               if d.length>radius:
+                       center += d*(1-radius/d.length)/2
+                       radius = (radius+d.length)/2
+
+       return center, radius