readers.py
author Dmitriy Morozov <dmitriy@mrzv.org>
Sat, 16 Jun 2012 12:25:46 -0700
changeset 3 ef86268a3695
parent 0 337c84a13184
permissions -rw-r--r--
Fixed bugs in 08-extended-persistence.py

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