MEPP2 Project
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits > Class Template Reference

#include <Spanning_tree_vertex_edge_comparator.hpp>

Inheritance diagram for FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >:
Inheritance graph
Collaboration diagram for FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >:
Collaboration graph

Public Types

typedef std::size_t IndexType
 
typedef FEVV::Vertex_pmap_traits< Graph, IndexType >::pmap_type VertexIndexMapType
 
typedef FEVV::Edge_pmap_traits< Graph, IndexType >::pmap_type EdgeIndexMapType
 
typedef boost::graph_traits< Graph > GraphTraits
 
typedef GraphTraits::vertex_descriptor vertex_descriptor
 
typedef GraphTraits::edge_descriptor edge_descriptor
 
typedef GeometryTraits::Scalar Scalar
 
typedef GeometryTraits::Point Point
 

Public Member Functions

 Spanning_tree_vertex_edge_comparator (const Graph &g, const PointMap &pm, bool tie_break_detection=true)
 
 Spanning_tree_vertex_edge_comparator (const Graph &g, const PointMap &pm, bool tie_break_detection, const GeometryTraits &gt)
 
bool operator() (vertex_descriptor v1, vertex_descriptor v2) const
 
bool operator() (edge_descriptor e1, edge_descriptor e2) const
 
const std::list< vertex_descriptor > & get_first_vertex_of_each_component () const
 
size_t get_nb_of_connected_components () const
 
const std::list< vertex_descriptor > & get_spanning_tree_vertices () const
 
const std::list< edge_descriptor > & get_spanning_tree_edges () const
 
edge_descriptor get_spanning_tree_min_incident_edge (vertex_descriptor v) const
 returns the min incident edge according to Vertex_comparator More...
 
edge_descriptor get_spanning_tree_min_index_incident_edge (vertex_descriptor v) const
 
const Graph & get_spanning_tree_input_graph () const
 
const PointMap & get_spanning_tree_vertex_point_map () const
 
IndexType get_spanning_tree_vertex_index (const vertex_descriptor v) const
 
const VertexIndexMapTypeget_spanning_tree_vertex_index_map () const
 
bool get_tie_break_detected_after_spanning_tree_computation () const
 
const std::set< vertex_descriptor > & get_tie_break_vertices () const
 

Private Member Functions

void compute_first_vertex_connected_component (bool tie_break_detection)
 
void compute_st (bool tie_break_detection)
 

Private Attributes

const Graph & _g
 
const PointMap & _pm
 
const GeometryTraits _gt
 
VertexIndexMapType _vim_st
 
EdgeIndexMapType _eim_st
 
std::list< vertex_descriptor_first_vertex_of_each_component
 
std::list< vertex_descriptor_st_vertices
 the first vertex of each connected component More...
 
std::list< edge_descriptor_st_edges
 all vertices in the spanning tree order of traversal More...
 
std::set< edge_descriptor_has_been_added
 all edges in the spanning tree order of traversal More...
 
FEVV::Comparator::Vertex_comparator< Graph, PointMap, GeometryTraits > _cmp_v
 
bool _vertex_tie_break_detected
 
bool _min_edge_tie_break_detected
 
std::set< vertex_descriptor_tie_break_vertices
 

Detailed Description

template<typename Graph, typename PointMap, typename GeometryTraits = FEVV::Geometry_traits<Graph>>
class FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >

Definition at line 257 of file Spanning_tree_vertex_edge_comparator.hpp.

Member Typedef Documentation

◆ edge_descriptor

template<typename Graph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<Graph>>
typedef GraphTraits::edge_descriptor FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >::edge_descriptor

Definition at line 268 of file Spanning_tree_vertex_edge_comparator.hpp.

◆ EdgeIndexMapType

template<typename Graph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<Graph>>
typedef FEVV::Edge_pmap_traits<Graph, IndexType >::pmap_type FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >::EdgeIndexMapType

Definition at line 264 of file Spanning_tree_vertex_edge_comparator.hpp.

◆ GraphTraits

template<typename Graph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<Graph>>
typedef boost::graph_traits<Graph> FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >::GraphTraits

Definition at line 266 of file Spanning_tree_vertex_edge_comparator.hpp.

◆ IndexType

template<typename Graph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<Graph>>
typedef std::size_t FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >::IndexType

Definition at line 260 of file Spanning_tree_vertex_edge_comparator.hpp.

◆ Point

template<typename Graph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<Graph>>
typedef GeometryTraits::Point FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >::Point

Definition at line 270 of file Spanning_tree_vertex_edge_comparator.hpp.

◆ Scalar

template<typename Graph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<Graph>>
typedef GeometryTraits::Scalar FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >::Scalar

Definition at line 269 of file Spanning_tree_vertex_edge_comparator.hpp.

◆ vertex_descriptor

template<typename Graph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<Graph>>
typedef GraphTraits::vertex_descriptor FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >::vertex_descriptor

Definition at line 267 of file Spanning_tree_vertex_edge_comparator.hpp.

◆ VertexIndexMapType

template<typename Graph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<Graph>>
typedef FEVV::Vertex_pmap_traits<Graph, IndexType >::pmap_type FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >::VertexIndexMapType

Definition at line 262 of file Spanning_tree_vertex_edge_comparator.hpp.

Constructor & Destructor Documentation

◆ Spanning_tree_vertex_edge_comparator() [1/2]

template<typename Graph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<Graph>>
FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >::Spanning_tree_vertex_edge_comparator ( const Graph &  g,
const PointMap &  pm,
bool  tie_break_detection = true 
)
inline

Definition at line 557 of file Spanning_tree_vertex_edge_comparator.hpp.

◆ Spanning_tree_vertex_edge_comparator() [2/2]

template<typename Graph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<Graph>>
FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >::Spanning_tree_vertex_edge_comparator ( const Graph &  g,
const PointMap &  pm,
bool  tie_break_detection,
const GeometryTraits &  gt 
)
inline

Definition at line 571 of file Spanning_tree_vertex_edge_comparator.hpp.

Member Function Documentation

◆ compute_first_vertex_connected_component()

template<typename Graph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<Graph>>
void FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >::compute_first_vertex_connected_component ( bool  tie_break_detection)
inlineprivate

Definition at line 292 of file Spanning_tree_vertex_edge_comparator.hpp.

Here is the caller graph for this function:

◆ compute_st()

template<typename Graph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<Graph>>
void FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >::compute_st ( bool  tie_break_detection)
inlineprivate

Definition at line 441 of file Spanning_tree_vertex_edge_comparator.hpp.

Here is the caller graph for this function:

◆ get_first_vertex_of_each_component()

template<typename Graph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<Graph>>
const std::list<vertex_descriptor>& FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >::get_first_vertex_of_each_component ( ) const
inline

Definition at line 606 of file Spanning_tree_vertex_edge_comparator.hpp.

◆ get_nb_of_connected_components()

template<typename Graph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<Graph>>
size_t FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >::get_nb_of_connected_components ( ) const
inline

Definition at line 607 of file Spanning_tree_vertex_edge_comparator.hpp.

◆ get_spanning_tree_edges()

template<typename Graph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<Graph>>
const std::list<edge_descriptor>& FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >::get_spanning_tree_edges ( ) const
inline

Definition at line 609 of file Spanning_tree_vertex_edge_comparator.hpp.

◆ get_spanning_tree_input_graph()

template<typename Graph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<Graph>>
const Graph& FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >::get_spanning_tree_input_graph ( ) const
inline

Definition at line 649 of file Spanning_tree_vertex_edge_comparator.hpp.

◆ get_spanning_tree_min_incident_edge()

template<typename Graph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<Graph>>
edge_descriptor FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >::get_spanning_tree_min_incident_edge ( vertex_descriptor  v) const
inline

returns the min incident edge according to Vertex_comparator

Definition at line 611 of file Spanning_tree_vertex_edge_comparator.hpp.

Here is the caller graph for this function:

◆ get_spanning_tree_min_index_incident_edge()

template<typename Graph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<Graph>>
edge_descriptor FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >::get_spanning_tree_min_index_incident_edge ( vertex_descriptor  v) const
inline

returns the min incident edge according to current spanning tree edge indices edge not yet associated with an index are not considered. if no incident edge to v has an index, then get_spanning_tree_min_incident_edge is used instead.

Definition at line 624 of file Spanning_tree_vertex_edge_comparator.hpp.

Here is the caller graph for this function:

◆ get_spanning_tree_vertex_index()

template<typename Graph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<Graph>>
IndexType FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >::get_spanning_tree_vertex_index ( const vertex_descriptor  v) const
inline

Definition at line 651 of file Spanning_tree_vertex_edge_comparator.hpp.

◆ get_spanning_tree_vertex_index_map()

template<typename Graph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<Graph>>
const VertexIndexMapType& FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >::get_spanning_tree_vertex_index_map ( ) const
inline

Definition at line 652 of file Spanning_tree_vertex_edge_comparator.hpp.

◆ get_spanning_tree_vertex_point_map()

template<typename Graph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<Graph>>
const PointMap& FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >::get_spanning_tree_vertex_point_map ( ) const
inline

Definition at line 650 of file Spanning_tree_vertex_edge_comparator.hpp.

◆ get_spanning_tree_vertices()

template<typename Graph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<Graph>>
const std::list<vertex_descriptor>& FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >::get_spanning_tree_vertices ( ) const
inline

Definition at line 608 of file Spanning_tree_vertex_edge_comparator.hpp.

◆ get_tie_break_detected_after_spanning_tree_computation()

template<typename Graph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<Graph>>
bool FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >::get_tie_break_detected_after_spanning_tree_computation ( ) const
inline

Definition at line 654 of file Spanning_tree_vertex_edge_comparator.hpp.

◆ get_tie_break_vertices()

template<typename Graph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<Graph>>
const std::set<vertex_descriptor>& FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >::get_tie_break_vertices ( ) const
inline

Definition at line 657 of file Spanning_tree_vertex_edge_comparator.hpp.

◆ operator()() [1/2]

template<typename Graph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<Graph>>
bool FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >::operator() ( edge_descriptor  e1,
edge_descriptor  e2 
) const
inline

Definition at line 592 of file Spanning_tree_vertex_edge_comparator.hpp.

◆ operator()() [2/2]

template<typename Graph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<Graph>>
bool FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >::operator() ( vertex_descriptor  v1,
vertex_descriptor  v2 
) const
inline

Definition at line 585 of file Spanning_tree_vertex_edge_comparator.hpp.

Member Data Documentation

◆ _cmp_v

template<typename Graph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<Graph>>
FEVV::Comparator::Vertex_comparator<Graph, PointMap, GeometryTraits> FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >::_cmp_v
private

Definition at line 283 of file Spanning_tree_vertex_edge_comparator.hpp.

◆ _eim_st

template<typename Graph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<Graph>>
EdgeIndexMapType FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >::_eim_st
private

Definition at line 276 of file Spanning_tree_vertex_edge_comparator.hpp.

◆ _first_vertex_of_each_component

template<typename Graph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<Graph>>
std::list<vertex_descriptor> FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >::_first_vertex_of_each_component
private

Definition at line 278 of file Spanning_tree_vertex_edge_comparator.hpp.

◆ _g

template<typename Graph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<Graph>>
const Graph& FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >::_g
private

Definition at line 272 of file Spanning_tree_vertex_edge_comparator.hpp.

◆ _gt

template<typename Graph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<Graph>>
const GeometryTraits FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >::_gt
private

Definition at line 274 of file Spanning_tree_vertex_edge_comparator.hpp.

◆ _has_been_added

template<typename Graph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<Graph>>
std::set<edge_descriptor> FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >::_has_been_added
private

all edges in the spanning tree order of traversal

Definition at line 281 of file Spanning_tree_vertex_edge_comparator.hpp.

◆ _min_edge_tie_break_detected

template<typename Graph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<Graph>>
bool FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >::_min_edge_tie_break_detected
private

Definition at line 289 of file Spanning_tree_vertex_edge_comparator.hpp.

◆ _pm

template<typename Graph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<Graph>>
const PointMap& FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >::_pm
private

Definition at line 273 of file Spanning_tree_vertex_edge_comparator.hpp.

◆ _st_edges

template<typename Graph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<Graph>>
std::list<edge_descriptor> FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >::_st_edges
private

all vertices in the spanning tree order of traversal

Definition at line 280 of file Spanning_tree_vertex_edge_comparator.hpp.

◆ _st_vertices

template<typename Graph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<Graph>>
std::list<vertex_descriptor> FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >::_st_vertices
private

the first vertex of each connected component

Definition at line 279 of file Spanning_tree_vertex_edge_comparator.hpp.

◆ _tie_break_vertices

template<typename Graph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<Graph>>
std::set<vertex_descriptor> FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >::_tie_break_vertices
private

Definition at line 290 of file Spanning_tree_vertex_edge_comparator.hpp.

◆ _vertex_tie_break_detected

template<typename Graph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<Graph>>
bool FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >::_vertex_tie_break_detected
private

Definition at line 288 of file Spanning_tree_vertex_edge_comparator.hpp.

◆ _vim_st

template<typename Graph , typename PointMap , typename GeometryTraits = FEVV::Geometry_traits<Graph>>
VertexIndexMapType FEVV::Comparator::Spanning_tree_vertex_edge_comparator< Graph, PointMap, GeometryTraits >::_vim_st
private

Definition at line 275 of file Spanning_tree_vertex_edge_comparator.hpp.


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