bindings/python/alphashapes3d.cpp
 author Dmitriy Morozov Fri, 21 Aug 2009 14:26:56 -0700 branch dev changeset 166 1f3d54b2315b parent 131 d9e050258358 child 181 1ee6edc17cb6 permissions -rw-r--r--
Exposed store argument to CohomologyPersistence.add() in Python
```
// Wrap includes into namespaces to avoid nameclashes
#include "../../examples/alphashapes/alphashapes3d.h"

#include <boost/python.hpp>
#include <boost/python/stl_iterator.hpp>
namespace bp = boost::python;

#include "simplex.h"                // defines SimplexVD, Vertex, and Data
namespace dp = dionysus::python;

void fill_alpha3D_complex(bp::object points, bp::list complex)
{
typedef     std::map<AlphaSimplex3D::Vertex, unsigned>      ASPointMap;

Delaunay3D  Dt;
ASPointMap  point_map;
unsigned i = 0;
for (bp::stl_input_iterator<bp::list> pt = points; pt != bp::stl_input_iterator<bp::list>(); ++pt)
{
double x = bp::extract<double>((*pt)[0]);
double y = bp::extract<double>((*pt)[1]);
double z = bp::extract<double>((*pt)[2]);
point_map[Dt.insert(Point(x,y,z))] = i++;
}

AlphaSimplex3D::SimplexSet simplices;
fill_simplex_set(Dt, simplices);

for (AlphaSimplex3D::SimplexSet::const_iterator cur = simplices.begin(); cur != simplices.end(); ++cur)
{
dp::SimplexVD s;
for (AlphaSimplex3D::VertexContainer::const_iterator vcur  = cur->vertices().begin();
vcur != cur->vertices().end(); ++vcur)