Class representing the link of a simplicial complex encoded by a skeleton/blockers pair. It computes only vertices greater than the simplex used to build the link. More...
Additional Inherited Members | |
Public Types inherited from Gudhi::skeleton_blocker::Skeleton_blocker_complex< SkeletonBlockerDS > | |
typedef SkeletonBlockerDS::Graph_vertex | Graph_vertex |
The type of stored vertex node, specified by the template SkeletonBlockerDS. | |
typedef SkeletonBlockerDS::Graph_edge | Graph_edge |
The type of stored edge node, specified by the template SkeletonBlockerDS. | |
typedef SkeletonBlockerDS::Vertex_handle | Vertex_handle |
The type of an handle to a vertex of the complex. | |
typedef Skeleton_blocker_simplex< Vertex_handle > | Simplex |
A ordered set of integers that represents a simplex. | |
typedef Simplex * | Blocker_handle |
Handle to a blocker of the complex. | |
typedef boost::graph_traits< Graph >::edge_descriptor | Edge_handle |
Handle to an edge of the complex. | |
enum | simplifiable_status |
enum | contractible_status |
typedef Skeleton_blocker_link_complex< Skeleton_blocker_complex > | Link_complex |
typedef Vertex_iterator< Skeleton_blocker_complex > | Complex_vertex_iterator |
typedef boost::iterator_range< Complex_vertex_iterator > | Complex_vertex_range |
typedef Neighbors_vertices_iterator< Skeleton_blocker_complex > | Complex_neighbors_vertices_iterator |
typedef boost::iterator_range< Complex_neighbors_vertices_iterator > | Complex_neighbors_vertices_range |
typedef Edge_iterator< Skeleton_blocker_complex > | Complex_edge_iterator |
typedef boost::iterator_range< Complex_edge_iterator > | Complex_edge_range |
typedef Edge_around_vertex_iterator< Skeleton_blocker_complex > | Complex_edge_around_vertex_iterator |
typedef boost::iterator_range< Complex_edge_around_vertex_iterator > | Complex_edge_around_vertex_range |
typedef Triangle_around_vertex_iterator< Skeleton_blocker_complex, Superior_link > | Superior_triangle_around_vertex_iterator |
typedef boost::iterator_range< Triangle_around_vertex_iterator< Skeleton_blocker_complex, Link > > | Complex_triangle_around_vertex_range |
typedef boost::iterator_range< Triangle_iterator< Skeleton_blocker_complex > > | Complex_triangle_range |
typedef Triangle_iterator< Skeleton_blocker_complex > | Complex_triangle_iterator |
typedef Simplex_around_vertex_iterator< Skeleton_blocker_complex, Link > | Complex_simplex_around_vertex_iterator |
typedef boost::iterator_range< Complex_simplex_around_vertex_iterator > | Complex_simplex_around_vertex_range |
Range over the simplices of the simplicial complex around a vertex. Methods .begin() and .end() return a Complex_simplex_around_vertex_iterator. | |
typedef Simplex_coboundary_iterator< Skeleton_blocker_complex, Link > | Complex_simplex_coboundary_iterator |
typedef boost::iterator_range< Complex_simplex_coboundary_iterator > | Complex_coboundary_range |
Range over the simplices of the coboundary of a simplex. Methods .begin() and .end() return a Complex_simplex_coboundary_iterator. | |
typedef Simplex_iterator< Skeleton_blocker_complex > | Complex_simplex_iterator |
typedef boost::iterator_range< Complex_simplex_iterator > | Complex_simplex_range |
Public Member Functions inherited from Gudhi::skeleton_blocker::Skeleton_blocker_link_complex< ComplexType > | |
Skeleton_blocker_link_complex (const ComplexType &parent_complex, const Simplex &alpha_parent_address, bool only_superior_vertices=false, bool only_vertices=false) | |
Skeleton_blocker_link_complex (const ComplexType &parent_complex, Vertex_handle a_parent_address, bool only_superior_vertices=false) | |
Skeleton_blocker_link_complex (const ComplexType &parent_complex, Edge_handle edge, bool only_superior_vertices=false) | |
void | build_link (const ComplexType &parent_complex, const Simplex &alpha_parent_address, bool is_alpha_blocker=false, bool only_vertices=false) |
compute vertices, edges and blockers of the link. More... | |
Public Member Functions inherited from Gudhi::skeleton_blocker::Skeleton_blocker_sub_complex< ComplexType > | |
Vertex_handle | add_vertex (Root_vertex_handle global) |
void | add_edge_without_blockers (Root_vertex_handle v1_root, Root_vertex_handle v2_root) |
void | add_blocker (const Root_simplex_handle &blocker_root) |
void | make_restricted_complex (const ComplexType &parent_complex, const Simplex &simplex) |
void | clear () |
boost::optional< Vertex_handle > | get_address (Root_vertex_handle global) const |
std::vector< boost::optional< Vertex_handle > > | get_addresses (const Root_simplex_handle &s) const |
Public Member Functions inherited from Gudhi::skeleton_blocker::Skeleton_blocker_complex< SkeletonBlockerDS > | |
Vertex_handle | operator[] (Root_vertex_handle global) const |
Return a local Vertex_handle of a vertex given a global one. More... | |
Graph_vertex & | operator[] (Vertex_handle address) |
Return the vertex node associated to local Vertex_handle. More... | |
const Graph_vertex & | operator[] (Vertex_handle address) const |
Return the vertex node associated to local Vertex_handle. More... | |
Vertex_handle | add_vertex () |
Adds a vertex to the simplicial complex and returns its Vertex_handle. More... | |
void | remove_vertex (Vertex_handle address) |
Remove a vertex from the simplicial complex. More... | |
bool | contains_vertex (Vertex_handle u) const |
bool | contains_vertex (Root_vertex_handle u) const |
bool | contains_vertices (const Simplex &sigma) const |
virtual boost::optional< Vertex_handle > | get_address (Root_vertex_handle id) const |
Given an Id return the address of the vertex having this Id in the complex. More... | |
Root_vertex_handle | get_id (Vertex_handle local) const |
Vertex_handle | convert_handle_from_another_complex (const Skeleton_blocker_complex &other, Vertex_handle vh_in_other) const |
Convert an address of a vertex of a complex to the address in the current complex. More... | |
int | degree (Vertex_handle local) const |
return the graph degree of a vertex. | |
boost::optional< Edge_handle > | operator[] (const std::pair< Vertex_handle, Vertex_handle > &ab) const |
return an edge handle if the two vertices forms an edge in the complex | |
Graph_edge & | operator[] (Edge_handle edge_handle) |
returns the stored node associated to an edge | |
const Graph_edge & | operator[] (Edge_handle edge_handle) const |
returns the stored node associated to an edge | |
Vertex_handle | first_vertex (Edge_handle edge_handle) const |
returns the first vertex of an edge More... | |
Vertex_handle | second_vertex (Edge_handle edge_handle) const |
returns the first vertex of an edge More... | |
Simplex | get_vertices (Edge_handle edge_handle) const |
returns the simplex made with the two vertices of the edge More... | |
Edge_handle | add_edge (Vertex_handle a, Vertex_handle b) |
Adds an edge between vertices a and b. More... | |
void | add_edge (const Simplex &s) |
Adds all edges of s in the complex. | |
Edge_handle | add_edge_without_blockers (Vertex_handle a, Vertex_handle b) |
Adds an edge between vertices a and b without blockers. More... | |
void | add_edge_without_blockers (Simplex s) |
Adds all edges of s in the complex without adding blockers. | |
virtual Edge_handle | remove_edge (Vertex_handle a, Vertex_handle b) |
Removes an edge from the simplicial complex and all its cofaces. More... | |
void | remove_edge (Edge_handle edge) |
Removes edge and its cofaces from the simplicial complex. | |
void | keep_only_vertices () |
The complex is reduced to its set of vertices. All the edges and blockers are removed. | |
bool | contains_edge (Vertex_handle a, Vertex_handle b) const |
bool | contains_edges (const Simplex &sigma) const |
std::string | to_string () const |
std::string | vertices_to_string () const |
std::string | edges_to_string () const |
std::string | blockers_to_string () const |
bool | is_popable_blocker (Blocker_handle sigma) const |
void | remove_popable_blockers () |
void | remove_popable_blockers (Vertex_handle v) |
void | remove_all_popable_blockers (Vertex_handle v) |
Removes all the popable blockers of the complex passing through v and delete them. Also remove popable blockers in the neighborhood if they became popable. | |
void | remove_star (Vertex_handle v) |
void | remove_star (Vertex_handle a, Vertex_handle b) |
void | remove_star (Edge_handle e) |
void | remove_star (const Simplex &sigma) |
void | add_simplex (const Simplex &sigma) |
add a simplex and all its faces. More... | |
simplifiable_status | is_remove_star_homotopy_preserving (const Simplex &simplex) |
virtual contractible_status | is_contractible () const |
Test if the complex is reducible using a strategy defined in the class (by default it tests if the complex is a cone) More... | |
Blocker_handle | add_blocker (const Simplex &blocker) |
Adds the simplex to the set of blockers and returns a Blocker_handle toward it if was not present before and 0 otherwise. | |
void | remove_blocker (const Blocker_handle sigma) |
Removes the simplex from the set of blockers. More... | |
void | remove_blockers () |
Remove all blockers, in other words, it expand the simplicial complex to the smallest flag complex that contains it. | |
void | delete_blocker (Blocker_handle sigma) |
bool | contains_blocker (const Blocker_handle s) const |
bool | contains_blocker (const Simplex &s) const |
Link_complex | link (Vertex_handle v) const |
Link_complex | link (Edge_handle edge) const |
Link_complex | link (const Simplex &simplex) const |
boost::optional< Simplex > | get_simplex_address (const Root_simplex_handle &s) const |
Compute the local vertices of 's' in the current complex If one of them is not present in the complex then the return value is uninitialized. | |
Root_simplex_handle | get_id (const Simplex &local_simplex) const |
returns a simplex with vertices which are the id of vertices of the argument. | |
virtual bool | contains (const Simplex &s) const |
returns true iff the simplex s belongs to the simplicial complex. | |
bool | empty () const |
int | num_vertices () const |
int | num_edges () const |
int | num_triangles () const |
size_t | num_simplices () const |
size_t | num_simplices (int dimension) const |
size_t | num_blockers () const |
bool | complete () const |
int | num_connected_components () const |
returns the number of connected components in the graph of the 1-skeleton. | |
bool | is_cone () const |
Test if the complex is a cone. More... | |
Complex_vertex_range | vertex_range () const |
Returns a Complex_vertex_range over all vertices of the complex. | |
Complex_neighbors_vertices_range | vertex_range (Vertex_handle v) const |
Returns a Complex_edge_range over all edges of the simplicial complex that passes through v. | |
Complex_edge_range | edge_range () const |
Returns a Complex_edge_range over all edges of the simplicial complex. | |
Complex_edge_around_vertex_range | edge_range (Vertex_handle v) const |
Returns a Complex_edge_range over all edges of the simplicial complex that passes through 'v'. | |
Complex_triangle_around_vertex_range | triangle_range (Vertex_handle v) const |
Range over triangles around a vertex of the simplicial complex. Methods .begin() and .end() return a Triangle_around_vertex_iterator. | |
Complex_triangle_range | triangle_range () const |
Range over triangles of the simplicial complex. Methods .begin() and .end() return a Triangle_around_vertex_iterator. | |
Complex_simplex_around_vertex_range | star_simplex_range (Vertex_handle v) const |
Returns a Complex_simplex_around_vertex_range over all the simplices around a vertex of the complex. | |
Complex_coboundary_range | coboundary_range (const Simplex &s) const |
Returns a Complex_simplex_coboundary_iterator over the simplices of the coboundary of a simplex. | |
Complex_simplex_range | complex_simplex_range () const |
Returns a Complex_simplex_range over all the simplices of the complex. | |
Skeleton_blocker_complex (size_t num_vertices_=0, Visitor *visitor_=NULL) | |
constructs a simplicial complex with a given number of vertices and a visitor. | |
template<typename SimpleHandleOutputIterator > | |
Skeleton_blocker_complex (SimpleHandleOutputIterator simplices_begin, SimpleHandleOutputIterator simplices_end, bool is_flag_complex=false, Visitor *visitor_=NULL) | |
Constructor with a list of simplices. More... | |
Skeleton_blocker_complex (const Skeleton_blocker_complex ©) | |
Skeleton_blocker_complex & | operator= (const Skeleton_blocker_complex ©) |
bool | operator== (const Skeleton_blocker_complex &other) const |
bool | operator!= (const Skeleton_blocker_complex &other) const |
virtual | ~Skeleton_blocker_complex () |
void | set_visitor (Visitor *other_visitor) |
allows to change the visitor. | |
Complex_blocker_around_vertex_range | blocker_range (Vertex_handle v) |
Returns a range of the blockers of the complex passing through a vertex. | |
Const_complex_blocker_around_vertex_range | const_blocker_range (Vertex_handle v) const |
Returns a range of the blockers of the complex passing through a vertex. | |
Complex_blocker_range | blocker_range () |
Returns a range of the blockers of the complex. | |
Const_complex_blocker_range | const_blocker_range () const |
Returns a range of the blockers of the complex. | |
bool | link_condition (Vertex_handle a, Vertex_handle b, bool ignore_popable_blockers=false) const |
bool | link_condition (Edge_handle e, bool ignore_popable_blockers=false) const |
void | contract_edge (Edge_handle edge) |
void | contract_edge (Vertex_handle a, Vertex_handle b) |
Class representing the link of a simplicial complex encoded by a skeleton/blockers pair. It computes only vertices greater than the simplex used to build the link.