readers.py
author Dmitriy Morozov <dmitriy@mrzv.org>
Mon, 18 Jun 2012 10:04:58 -0700
changeset 5 9acb920a945c
parent 0 337c84a13184
permissions -rw-r--r--
Added PDF of the talk

from dionysus import Simplex

def read_obj(fn):
    points = []
    complex = []
    with open(fn) as f:
        for line in f:
            line = line.split()
            if line[0] == 'v':
                points.append(map(float, line[1:]))
            elif line[0] == 'f':
                complex.append(Simplex(map(lambda x: int(x) - 1, line[1:])))
    return points, complex


def read_off(fn):
    points = []
    complex = []
    with open(fn) as f:
        line = f.readline()
        line = f.readline()
        count = map(int, line.split())

        i = 0
        while i < count[0]:
            line = f.readline()
            if line.strip() == '': continue
            i += 1
            points.append(map(float, line.split()))
        i = 0
        while i < count[1]:
            line = f.readline()
            if line.strip() == '': continue
            i += 1
            complex.append(Simplex(map(int, line.split()[1:])))
    return points, complex