X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=blender%2Fio_mspgl%2Futil.py;h=4141e9f77600891eb7ef405ecf2cc6bb3d642944;hb=77b358049bc1ef38ea013175a485cecd71a173c9;hp=70b005f6df60e84db38ea8c35c03fc0bbcc79123;hpb=bde3ec824d300e9aff11914406fb76dd9016e387;p=libs%2Fgl.git diff --git a/blender/io_mspgl/util.py b/blender/io_mspgl/util.py index 70b005f6..4141e9f7 100644 --- a/blender/io_mspgl/util.py +++ b/blender/io_mspgl/util.py @@ -46,7 +46,7 @@ class Progress: def set_progress(self, value): value = self.start+self.delta*value - if value>self.last+0.01: + if value>self.last+0.001: if self.window_manager: self.window_manager.progress_update(value) self.last = value @@ -64,9 +64,37 @@ def get_colormap(srgb): else: return lambda x: x -def image_name(img): - fp = img.filepath - if fp: - return os.path.split(fp)[1] - else: - return img.name +def basename(path): + if path.startswith("//"): + path = path[2:] + return os.path.basename(path) + +def make_unique(values): + seen = set() + result = [] + for i in values: + if i not in seen: + result.append(i) + seen.add(i) + return result + +def get_linked_node_and_socket(node_tree, socket): + for l in node_tree.links: + if socket==l.to_socket: + return (l.from_node, l.from_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