bindings/python/dionysus/__init__.py
author Dmitriy Morozov <dmitriy@mrzv.org>
Mon, 13 Apr 2009 20:38:46 -0700
branchdev
changeset 127 406c6cc00b9c
parent 126 3c3e77ac43d2
child 129 95454ea3f9c0
permissions -rw-r--r--
Changes in Python Bindings: * the exposed C++ simplex has Empty data * Python Simplex constructor with data as well as data-based comparison functions are implemented in pure Python

from    _dionysus   import *
from    distances   import *


def init_with_data(self, v, d = None):
    self._cpp_init_(v)
    if d is not None:
        self.data = d

def repr_with_data(self):
    str = self._cpp_repr_()
    if hasattr(self, 'data'):
        str += '%f' % self.data
    return str

Simplex._cpp_init_ =    Simplex.__init__
Simplex.__init__ =      init_with_data
Simplex._cpp_repr_ =    Simplex.__repr__
Simplex.__repr__  =     repr_with_data


def data_cmp(s1, s2):
    return cmp(s1.data, s2.data)

def data_dim_cmp(s1,s2):
    dim_cmp = cmp(s1.dimension(), s2.dimension())
    if dim_cmp: return dim_cmp
    else:       return data_cmp(s1,s2)