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 ).
find_package (PythonLibs)
link_libraries (${PYTHON_LIBRARIES})
include_directories (${PYTHON_INCLUDE_PATH})
link_libraries (${Boost_PYTHON_LIBRARY})
# currently can't build bindings with counters support, eventually FIXME
remove_definitions (-DCOUNTERS)
set (sources
dionysus.cpp
filtration.cpp
chain.cpp
static-persistence.cpp
persistence-diagram.cpp
simplex.cpp
birthid.cpp
zigzag-persistence.cpp
cohomology-persistence.cpp
rips.cpp
distances.cpp
)
set (bindings_libraries ${libraries})
if (CGAL_FOUND)
set (sources ${sources}
alphashapes3d.cpp
alphashapes2d.cpp)
add_definitions (${CGAL_CXX_FLAGS_INIT})
include_directories (${CGAL_INCLUDE_DIRS})
link_libraries (${CGAL_LIBRARY})
else (CGAL_FOUND)
message(STATUS "CGAL not found, alphashape bindings will not be built")
add_definitions (-DNO_CGAL)
endif (CGAL_FOUND)
add_library (_dionysus SHARED ${sources})
target_link_libraries (_dionysus ${libraries})
# Python files and the symlink
add_custom_target (dionysus ALL
${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/dionysus ${CMAKE_CURRENT_BINARY_DIR}/dionysus
DEPENDS dionysus/__init__.py
dionysus/distances.py
)
get_target_property (_dionysus_location _dionysus LOCATION)
add_custom_target (dionysus-link ALL
${CMAKE_COMMAND} -E create_symlink ${_dionysus_location} ${CMAKE_CURRENT_BINARY_DIR}/dionysus/_dionysus.so
DEPENDS _dionysus)