bindings/python/dionysus.cpp
author Aravindakshan Babu <akshan@stanford.edu>
Thu, 08 Jul 2010 23:50:39 -0700
branchdev
changeset 217 64a272a34cb2
parent 215 e94d521b72bb
child 232 edbbf84fde9e
permissions -rw-r--r--
Added extra functionality to Point class( an iterator ) and PersistenceDiagram( dimension property and __len__ func ). persistence-diagram.h: Added a new read-only dimension member and member function to access it. With a new constructor that that takes in an int type to initialize dimension. persistence-diagram.cpp: Added new bp::init constructor. Takes in an integer type to initialize the dimension. Exposed the dimension property. Exposed the size property via a __len__ method. __init__.py: Added an iterator for Point objects. This iterates over the coords and then the data( if present ).

#include <utilities/log.h>
#include <boost/python.hpp>
#include "utils.h"

namespace bp = boost::python;
namespace dp = dionysus::python;

void export_simplex();
void export_filtration();
void export_static_persistence();
void export_chain();
void export_birthid();
void export_zigzag_persistence();
void export_cohomology_persistence();
void export_point();
void export_persistence_diagram();

void export_rips();
void export_pairwise_distances();

#ifndef NO_CGAL
void export_alphashapes2d();
void export_alphashapes3d();
#endif

#ifdef LOGGING
void            enable_log(std::string s)
{
    stdoutLog.subscribeTo(RLOG_CHANNEL(s.c_str()));
}
#endif

BOOST_PYTHON_MODULE(_dionysus)
{
    bp::to_python_converter<std::pair<double, bool>, dp::PairToTupleConverter<double, bool> >();

    export_simplex();
    export_filtration();
    export_static_persistence();
    export_chain();
    export_point();
    export_persistence_diagram();

    export_birthid();
    export_zigzag_persistence();
    export_cohomology_persistence();

    export_rips();
    export_pairwise_distances();

#ifndef NO_CGAL
    export_alphashapes2d();
    export_alphashapes3d();
#endif

#ifdef LOGGING
    bp::def("enable_log",           &enable_log);
#endif
};