Gudhi  1.2.0
 All Classes Functions Variables Typedefs Friends Groups Pages
Gudhi::skbl::Skeleton_blocker_link_complex< ComplexType > Class Template Reference

Class representing the link of a simplicial complex encoded by a skeleton/blockers pair. It inherits from Skeleton_blocker_sub_complex because such complex is a sub complex of a root complex. More...

#include <Skeleton_blocker_link_complex.h>

Public Member Functions

 Skeleton_blocker_link_complex (const ComplexType &parent_complex, const Simplex_handle &alpha_parent_adress, bool only_superior_vertices=false)
 
 Skeleton_blocker_link_complex (const ComplexType &parent_complex, Vertex_handle a_parent_adress, 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_handle &alpha_parent_adress, bool is_alpha_blocker=false)
 compute vertices, edges and blockers of the link. More...
 
- Public Member Functions inherited from Gudhi::skbl::Skeleton_blocker_sub_complex< ComplexType >
Vertex_handle add_vertex (Root_vertex_handle global)
 
void add_edge (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_handle &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::skbl::Skeleton_blocker_complex< SkeletonBlockerDS >
Link_complex link (Vertex_handle v) const
 
Link_complex link (Edge_handle edge) const
 
Link_complex link (const Simplex_handle &simplex) const
 
boost::optional< Simplex_handleget_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_handle &local_simplex) const
 returns a simplex with vertices which are the id of vertices of the argument.
 
virtual bool contains (const Simplex_handle &s) const
 returns true iff the simplex s belongs to the simplicial complex.
 
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...
 
Vertex_handle operator[] (Root_vertex_handle global) const
 Return a local Vertex_handle of a vertex given a global one. More...
 
Graph_vertexoperator[] (Vertex_handle address)
 Return the vertex node associated to local Vertex_handle. More...
 
const Graph_vertexoperator[] (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.
 
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_handle &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_handleoperator[] (const std::pair< Vertex_handle, Vertex_handle > &ab) const
 return an edge handle if the two vertices forms an edge in the complex
 
Graph_edgeoperator[] (Edge_handle edge_handle)
 returns the stored node associated to an edge
 
const Graph_edgeoperator[] (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_handle 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 and all its cofaces.
 
void add_edges (const Simplex_handle &sigma)
 Adds all edges and their cofaces of a simplex to the simplicial complex.
 
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_handle &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
 
 Skeleton_blocker_complex (int 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 simplex_begin, SimpleHandleOutputIterator simplex_end, bool is_flag_complex=false, Visitor *visitor_=NULL)
 Constructor with a list of simplices. More...
 
 Skeleton_blocker_complex (const Skeleton_blocker_complex &copy)
 
Skeleton_blocker_complexoperator= (const Skeleton_blocker_complex &copy)
 
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.
 
Blocker_handle add_blocker (const Simplex_handle &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_handle &s) 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_handle &sigma)
 
void add_simplex (const Simplex_handle &sigma)
 add a maximal simplex plus all its cofaces. More...
 
simplifiable_status is_remove_star_homotopy_preserving (const Simplex_handle &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...
 
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)
 
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 trough 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 simplex_range (Vertex_handle v) const
 Returns a Complex_simplex_around_vertex_range over all the simplices around a vertex of the complex.
 
Complex_simplex_range simplex_range () const
 Returns a Complex_simplex_range over all the simplices of the complex.
 
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.
 

Friends

void build_link_of_blocker (const ComplexType &parent_complex, Simplex_handle &blocker, Skeleton_blocker_link_complex &result)
 build the link of a blocker which is the link of the blocker's simplex if this simplex had been removed from the blockers of the complex.
 

Additional Inherited Members

- Public Types inherited from Gudhi::skbl::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_handle
 A ordered set of integers that represents a simplex.
 
typedef Simplex_handleBlocker_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 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_iterator
< Skeleton_blocker_complex
Complex_simplex_iterator
 
typedef boost::iterator_range
< Complex_simplex_iterator > 
Complex_simplex_range
 

Detailed Description

template<typename ComplexType>
class Gudhi::skbl::Skeleton_blocker_link_complex< ComplexType >

Class representing the link of a simplicial complex encoded by a skeleton/blockers pair. It inherits from Skeleton_blocker_sub_complex because such complex is a sub complex of a root complex.

Constructor & Destructor Documentation

template<typename ComplexType>
Gudhi::skbl::Skeleton_blocker_link_complex< ComplexType >::Skeleton_blocker_link_complex ( const ComplexType &  parent_complex,
const Simplex_handle &  alpha_parent_adress,
bool  only_superior_vertices = false 
)
inline

If the parameter only_superior_vertices is true, only vertices greater than the one of alpha are added.

template<typename ComplexType>
Gudhi::skbl::Skeleton_blocker_link_complex< ComplexType >::Skeleton_blocker_link_complex ( const ComplexType &  parent_complex,
Vertex_handle  a_parent_adress,
bool  only_superior_vertices = false 
)
inline

If the parameter only_superior_vertices is true, only vertices greater than the one of the vertex are added.

template<typename ComplexType>
Gudhi::skbl::Skeleton_blocker_link_complex< ComplexType >::Skeleton_blocker_link_complex ( const ComplexType &  parent_complex,
Edge_handle  edge,
bool  only_superior_vertices = false 
)
inline

If the parameter only_superior_vertices is true, only vertices greater than the one of the edge are added.

Member Function Documentation

template<typename ComplexType>
void Gudhi::skbl::Skeleton_blocker_link_complex< ComplexType >::build_link ( const ComplexType &  parent_complex,
const Simplex_handle &  alpha_parent_adress,
bool  is_alpha_blocker = false 
)
inline

compute vertices, edges and blockers of the link.

If the boolean only_superior_vertices is true, then the link is computed only with vertices that are greater than vertices of alpha_parent_adress.


The documentation for this class was generated from the following file: