From 5939c3d1c154a18b650183cde5dd77420a089666 Mon Sep 17 00:00:00 2001 From: Stan Seibert Date: Thu, 28 Jul 2011 12:59:18 -0400 Subject: Support for reading bz2 compressed STL files. --- camera.py | 2 +- stl.py | 11 +++++++++-- view.py | 2 +- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/camera.py b/camera.py index a786971..2feafd7 100644 --- a/camera.py +++ b/camera.py @@ -391,7 +391,7 @@ if __name__ == '__main__': if os.path.exists(args[0]): root, ext = os.path.splitext(os.path.split(args[0])[1]) - if ext.lower() == '.stl': + if ext.lower() in ('.stl', '.bz2'): obj = mesh_from_stl(args[0]) else: members = dict(inspect.getmembers(detectors) + inspect.getmembers(solids) + inspect.getmembers(scenes)) diff --git a/stl.py b/stl.py index f88c3fa..9a63306 100644 --- a/stl.py +++ b/stl.py @@ -2,9 +2,13 @@ import numpy as np import string import struct from geometry import Mesh +import bz2 def mesh_from_stl(filename): - f = open(filename) + if filename.endswith('.bz2'): + f = bz2.BZ2File(filename) + else: + f = open(filename) buf = f.read(200) f.close() @@ -15,7 +19,10 @@ def mesh_from_stl(filename): return mesh_from_ascii_stl(filename) def mesh_from_ascii_stl(filename): - f = open(filename) + if filename.endswith('.bz2'): + f = bz2.BZ2File(filename) + else: + f = open(filename) vertices = [] triangles = [] diff --git a/view.py b/view.py index 96f7530..5752767 100755 --- a/view.py +++ b/view.py @@ -350,7 +350,7 @@ if __name__ == '__main__': head, tail = os.path.split(args[0]) root, ext = os.path.splitext(tail) - if ext.lower() == '.stl': + if ext.lower() in ('.stl', '.bz2'): view(mesh_from_stl(args[0]), size, root, options.bits, options.load_bvh) else: members = dict(inspect.getmembers(detectors) + inspect.getmembers(solids) + inspect.getmembers(scenes)) -- cgit