#ifndef GRAPH_PROPERTIES_H #define GRAPH_PROPERTIES_H 1 #include #include #include /** The distance between two vertices. */ enum edge_distance_t { edge_distance }; /** The complementary vertex of a skew-symmetric graph. */ enum vertex_complement_t { vertex_complement }; /** The index of a contig. */ enum vertex_contig_index_t { vertex_contig_index }; /** The name of a contig without an orientation. */ enum vertex_contig_name_t { vertex_contig_name }; /** The coverage of a vertex. */ enum vertex_coverage_t { vertex_coverage }; /** The length of a vertex. */ enum vertex_length_t { vertex_length }; /** A property indicating that this vertex has been removed. */ enum vertex_removed_t { vertex_removed }; /** The orientation of a vertex. */ enum vertex_sense_t { vertex_sense }; using boost::edge_bundle; using boost::edge_bundle_t; using boost::edge_name; using boost::edge_name_t; using boost::edge_weight; using boost::edge_weight_t; using boost::no_property; using boost::vertex_bundle; using boost::vertex_bundle_t; using boost::vertex_index; using boost::vertex_index_t; using boost::vertex_name; using boost::vertex_name_t; using boost::edge_bundle_type; using boost::edge_property; using boost::vertex_bundle_type; using boost::vertex_property; namespace boost { BOOST_INSTALL_PROPERTY(edge, distance); BOOST_INSTALL_PROPERTY(vertex, complement); BOOST_INSTALL_PROPERTY(vertex, contig_index); BOOST_INSTALL_PROPERTY(vertex, contig_name); BOOST_INSTALL_PROPERTY(vertex, coverage); BOOST_INSTALL_PROPERTY(vertex, length); BOOST_INSTALL_PROPERTY(vertex, removed); BOOST_INSTALL_PROPERTY(vertex, sense); } /** No property. */ struct NoProperty { NoProperty(...) { } bool operator==(const NoProperty&) const { return true; } bool operator!=(const NoProperty&) const { return false; } friend std::ostream& operator<<(std::ostream& out, const NoProperty&) { return out; } friend std::istream& operator>>(std::istream& in, NoProperty&) { return in; } }; template void put(Tag, NoProperty&, unsigned) { } #endif