Loading...
Searching...
No Matches
Gudhi::skeleton_blocker::Skeleton_blocker_geometric_complex< SkeletonBlockerGeometricDS > Class Template Reference

Class that represents a geometric complex that can be simplified. The class allows access to points of vertices. More...

#include <include/gudhi/Skeleton_blocker_geometric_complex.h>

Public Member Functions

template<typename PointIterator>
 Skeleton_blocker_geometric_complex (int num_vertices, PointIterator begin, PointIterator end)
template<typename SimpleHandleOutputIterator, typename PointIterator>
 Skeleton_blocker_geometric_complex (SimpleHandleOutputIterator simplex_begin, SimpleHandleOutputIterator simplex_end, PointIterator points_begin, PointIterator points_end, bool is_flag_complex=false)
 Constructor with a list of simplices.
template<typename SimpleHandleOutputIterator>
 Skeleton_blocker_geometric_complex (SimpleHandleOutputIterator simplex_begin, SimpleHandleOutputIterator simplex_end, bool is_flag_complex=false)
 Constructor with a list of simplices. Points of every vertex are the point constructed with default constructor.
Vertex_handle add_vertex ()
 Add a vertex to the complex with a default constructed associated point.
Vertex_handle add_vertex (const Point &point)
 Add a vertex to the complex with its associated point.
const Point & point (Vertex_handle v) const
 Returns the Point associated to the vertex v.
Point & point (Vertex_handle v)
 Returns the Point associated to the vertex v.
Geometric_link link (Vertex_handle v) const
Geometric_link link (const Simplex &simplex) const
Geometric_link link (Edge_handle edge) const
Abstract_link abstract_link (Vertex_handle v) const
Abstract_link abstract_link (const Simplex &simplex) const
Abstract_link abstract_link (Edge_handle edge) const
Public Member Functions inherited from Gudhi::skeleton_blocker::Skeleton_blocker_complex< SkeletonBlockerGeometricDS >
Vertex_handle operator[] (Root_vertex_handle global) const
 Return a local Vertex_handle of a vertex given a global one.
Graph_vertexoperator[] (Vertex_handle address)
 Return the vertex node associated to local Vertex_handle.
const Graph_vertexoperator[] (Vertex_handle address) const
 Return the vertex node associated to local Vertex_handle.
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.
bool contains_vertices (const Simplex &sigma) const
virtual boost::optional< Vertex_handleget_address (Root_vertex_handle id) const
 Given an Id return the address of the vertex having this Id in the complex.
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.
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
Vertex_handle second_vertex (Edge_handle edge_handle) const
 returns the first vertex of an edge
Simplex get_vertices (Edge_handle edge_handle) const
 returns the simplex made with the two vertices of the edge
Edge_handle add_edge (Vertex_handle a, Vertex_handle b)
 Adds an edge between vertices a and b.
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.
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.
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
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.
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)
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.
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< Simplexget_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.
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.
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.
 Skeleton_blocker_complex (SimpleHandleOutputIterator simplices_begin, SimpleHandleOutputIterator simplices_end, bool is_flag_complex=false, Visitor *visitor_=NULL)
 Constructor with a list of simplices.
bool operator== (const Skeleton_blocker_complex &other) const
virtual ~Skeleton_blocker_complex ()
virtual void clear ()
void set_visitor (Visitor *other_visitor)
 allows to change the visitor.
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_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.

Additional Inherited Members

Public Types inherited from Gudhi::skeleton_blocker::Skeleton_blocker_complex< SkeletonBlockerGeometricDS >
typedef SkeletonBlockerGeometricDS::Graph_vertex Graph_vertex
 The type of stored vertex node, specified by the template SkeletonBlockerDS.
typedef SkeletonBlockerGeometricDS::Graph_edge Graph_edge
 The type of stored edge node, specified by the template SkeletonBlockerDS.
typedef SkeletonBlockerGeometricDS::Vertex_handle Vertex_handle
 The type of an handle to a vertex of the complex.
typedef Skeleton_blocker_simplex< Vertex_handleSimplex
 A ordered set of integers that represents a simplex.
typedef SimplexBlocker_handle
 Handle to a blocker of the complex.
typedef boost::graph_traits< Graph >::edge_descriptor Edge_handle
 Handle to an edge of the complex.
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 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.

Detailed Description

template<typename SkeletonBlockerGeometricDS>
class Gudhi::skeleton_blocker::Skeleton_blocker_geometric_complex< SkeletonBlockerGeometricDS >

Class that represents a geometric complex that can be simplified. The class allows access to points of vertices.

Constructor & Destructor Documentation

◆ Skeleton_blocker_geometric_complex() [1/3]

template<typename SkeletonBlockerGeometricDS>
template<typename PointIterator>
Gudhi::skeleton_blocker::Skeleton_blocker_geometric_complex< SkeletonBlockerGeometricDS >::Skeleton_blocker_geometric_complex ( int num_vertices,
PointIterator begin,
PointIterator end )
inlineexplicit

constructor given a list of points

◆ Skeleton_blocker_geometric_complex() [2/3]

template<typename SkeletonBlockerGeometricDS>
template<typename SimpleHandleOutputIterator, typename PointIterator>
Gudhi::skeleton_blocker::Skeleton_blocker_geometric_complex< SkeletonBlockerGeometricDS >::Skeleton_blocker_geometric_complex ( SimpleHandleOutputIterator simplex_begin,
SimpleHandleOutputIterator simplex_end,
PointIterator points_begin,
PointIterator points_end,
bool is_flag_complex = false )
inline

Constructor with a list of simplices.

is_flag_complex indicates if the complex is a flag complex or not (to know if blockers have to be computed or not).

◆ Skeleton_blocker_geometric_complex() [3/3]

template<typename SkeletonBlockerGeometricDS>
template<typename SimpleHandleOutputIterator>
Gudhi::skeleton_blocker::Skeleton_blocker_geometric_complex< SkeletonBlockerGeometricDS >::Skeleton_blocker_geometric_complex ( SimpleHandleOutputIterator simplex_begin,
SimpleHandleOutputIterator simplex_end,
bool is_flag_complex = false )
inline

Constructor with a list of simplices. Points of every vertex are the point constructed with default constructor.

is_flag_complex indicates if the complex is a flag complex or not (to know if blockers have to be computed or not).

Member Function Documentation

◆ abstract_link() [1/3]

template<typename SkeletonBlockerGeometricDS>
Abstract_link Gudhi::skeleton_blocker::Skeleton_blocker_geometric_complex< SkeletonBlockerGeometricDS >::abstract_link ( const Simplex & simplex) const
inline

Constructs the link of 'simplex' with points coordinates.

◆ abstract_link() [2/3]

template<typename SkeletonBlockerGeometricDS>
Abstract_link Gudhi::skeleton_blocker::Skeleton_blocker_geometric_complex< SkeletonBlockerGeometricDS >::abstract_link ( Edge_handle edge) const
inline

Constructs the link of 'simplex' with points coordinates.

◆ abstract_link() [3/3]

template<typename SkeletonBlockerGeometricDS>
Abstract_link Gudhi::skeleton_blocker::Skeleton_blocker_geometric_complex< SkeletonBlockerGeometricDS >::abstract_link ( Vertex_handle v) const
inline

Constructs the abstract link of v (without points coordinates).

◆ link() [1/3]

template<typename SkeletonBlockerGeometricDS>
Geometric_link Gudhi::skeleton_blocker::Skeleton_blocker_geometric_complex< SkeletonBlockerGeometricDS >::link ( const Simplex & simplex) const
inline

Constructs the link of 'simplex' with points coordinates.

◆ link() [2/3]

template<typename SkeletonBlockerGeometricDS>
Geometric_link Gudhi::skeleton_blocker::Skeleton_blocker_geometric_complex< SkeletonBlockerGeometricDS >::link ( Edge_handle edge) const
inline

Constructs the link of 'simplex' with points coordinates.

◆ link() [3/3]

template<typename SkeletonBlockerGeometricDS>
Geometric_link Gudhi::skeleton_blocker::Skeleton_blocker_geometric_complex< SkeletonBlockerGeometricDS >::link ( Vertex_handle v) const
inline

Constructs the link of 'simplex' with points coordinates.


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