summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStan Seibert <stan@mtrr.org>2011-07-28 12:59:18 -0400
committerStan Seibert <stan@mtrr.org>2011-07-28 12:59:18 -0400
commit5939c3d1c154a18b650183cde5dd77420a089666 (patch)
tree88cd4589b6f2d93ba254624bb0fd20150b43fe25
parent64e1c60d29ad5d8ca6199c24ffaa4d0ba18ca7dd (diff)
downloadchroma-5939c3d1c154a18b650183cde5dd77420a089666.tar.gz
chroma-5939c3d1c154a18b650183cde5dd77420a089666.tar.bz2
chroma-5939c3d1c154a18b650183cde5dd77420a089666.zip
Support for reading bz2 compressed STL files.
-rw-r--r--camera.py2
-rw-r--r--stl.py11
-rwxr-xr-xview.py2
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))