aimsalgo 6.0.0
Neuroimaging image processing
geodesic::GeodesicAlgorithmGraphBase< Node > Class Template Referenceabstract

#include <aims/geodesicpath/geodesic_algorithm_graph_base.h>

Inheritance diagram for geodesic::GeodesicAlgorithmGraphBase< Node >:
Collaboration diagram for geodesic::GeodesicAlgorithmGraphBase< Node >:

Public Types

typedef Node * node_pointer
 
- Public Types inherited from geodesic::GeodesicAlgorithmBase
enum  AlgorithmType { EXACT , DIJKSTRA , SUBDIVISION , UNDEFINED_ALGORITHM }
 

Public Member Functions

 GeodesicAlgorithmGraphBase (geodesic::Mesh *mesh)
 
 ~GeodesicAlgorithmGraphBase ()
 
void propagate (std::vector< SurfacePoint > &sources, double max_propagation_distance=GEODESIC_INF, std::vector< SurfacePoint > *stop_points=NULL)
 
void trace_back (SurfacePoint &destination, std::vector< SurfacePoint > &path)
 
void trace_back_with_index (SurfacePoint &destination, std::vector< SurfacePoint > &path, std::vector< unsigned > &indexVertex)
 
unsigned best_source (SurfacePoint &point, double &best_source_distance)
 
void print_statistics ()
 
- Public Member Functions inherited from geodesic::GeodesicAlgorithmBase
 GeodesicAlgorithmBase (geodesic::Mesh *mesh)
 
virtual ~GeodesicAlgorithmBase ()
 
void geodesic (SurfacePoint &source, SurfacePoint &destination, std::vector< SurfacePoint > &path)
 
void geodesic (std::vector< SurfacePoint > &sources, std::vector< SurfacePoint > &destinations, std::vector< std::vector< SurfacePoint > > &paths)
 
void geodesic (SurfacePoint &source, SurfacePoint &destination, std::vector< SurfacePoint > &path, std::vector< unsigned > &indexVertex)
 
void geodesic (SurfacePoint &sources, std::vector< SurfacePoint > &destinations, std::vector< std::vector< SurfacePoint > > &paths, std::vector< std::vector< unsigned > > &indexVertex)
 
double length (std::vector< SurfacePoint > &path)
 
void print_info_about_path (std::vector< SurfacePoint > &path)
 
AlgorithmType type ()
 
virtual std::string name ()
 
geodesic::Meshmesh ()
 

Protected Types

typedef std::set< node_pointer, Node > queue_type
 
- Protected Types inherited from geodesic::GeodesicAlgorithmBase
typedef std::pair< vertex_pointer, double > stop_vertex_with_distace_type
 

Protected Member Functions

unsigned node_index (vertex_pointer v)
 
void set_sources (std::vector< SurfacePoint > &sources)
 
node_pointer best_first_node (SurfacePoint &point, double &best_total_distance)
 
bool check_stop_conditions (unsigned &index)
 
virtual void list_nodes_visible_from_source (MeshElementBase *p, std::vector< node_pointer > &storage)=0
 
virtual void list_nodes_visible_from_node (node_pointer node, std::vector< node_pointer > &storage, std::vector< double > &distances, double threshold_distance)=0
 
- Protected Member Functions inherited from geodesic::GeodesicAlgorithmBase
void set_stop_conditions (std::vector< SurfacePoint > *stop_points, double stop_distance)
 
double stop_distance ()
 

Protected Attributes

std::vector< Node > m_nodes
 
queue_type m_queue
 
std::vector< SurfacePointm_sources
 
- Protected Attributes inherited from geodesic::GeodesicAlgorithmBase
AlgorithmType m_type
 
std::vector< stop_vertex_with_distace_typem_stop_vertices
 
double m_max_propagation_distance
 
geodesic::Meshm_mesh
 
double m_time_consumed
 
double m_propagation_distance_stopped
 

Detailed Description

template<class Node>
class geodesic::GeodesicAlgorithmGraphBase< Node >

Definition at line 13 of file geodesic_algorithm_graph_base.h.

Member Typedef Documentation

◆ node_pointer

template<class Node>
typedef Node* geodesic::GeodesicAlgorithmGraphBase< Node >::node_pointer

Definition at line 16 of file geodesic_algorithm_graph_base.h.

◆ queue_type

template<class Node>
typedef std::set<node_pointer, Node> geodesic::GeodesicAlgorithmGraphBase< Node >::queue_type
protected

Definition at line 109 of file geodesic_algorithm_graph_base.h.

Constructor & Destructor Documentation

◆ GeodesicAlgorithmGraphBase()

template<class Node>
geodesic::GeodesicAlgorithmGraphBase< Node >::GeodesicAlgorithmGraphBase ( geodesic::Mesh * mesh)
inline

◆ ~GeodesicAlgorithmGraphBase()

template<class Node>
geodesic::GeodesicAlgorithmGraphBase< Node >::~GeodesicAlgorithmGraphBase ( )
inline

Definition at line 22 of file geodesic_algorithm_graph_base.h.

Member Function Documentation

◆ best_first_node()

◆ best_source()

template<class Node>
unsigned geodesic::GeodesicAlgorithmGraphBase< Node >::best_source ( SurfacePoint & point,
double & best_source_distance )
inlinevirtual

Implements geodesic::GeodesicAlgorithmBase.

Definition at line 311 of file geodesic_algorithm_graph_base.h.

References best_first_node().

◆ check_stop_conditions()

template<class Node>
bool geodesic::GeodesicAlgorithmGraphBase< Node >::check_stop_conditions ( unsigned & index)
inlineprotected

◆ list_nodes_visible_from_node()

template<class Node>
virtual void geodesic::GeodesicAlgorithmGraphBase< Node >::list_nodes_visible_from_node ( node_pointer node,
std::vector< node_pointer > & storage,
std::vector< double > & distances,
double threshold_distance )
protectedpure virtual

Implemented in geodesic::GeodesicAlgorithmDijkstra.

Referenced by propagate().

◆ list_nodes_visible_from_source()

template<class Node>
virtual void geodesic::GeodesicAlgorithmGraphBase< Node >::list_nodes_visible_from_source ( MeshElementBase * p,
std::vector< node_pointer > & storage )
protectedpure virtual

◆ node_index()

template<class Node>
unsigned geodesic::GeodesicAlgorithmGraphBase< Node >::node_index ( vertex_pointer v)
inlineprotected

◆ print_statistics()

template<class Node>
void geodesic::GeodesicAlgorithmGraphBase< Node >::print_statistics ( )
inlinevirtual

◆ propagate()

◆ set_sources()

template<class Node>
void geodesic::GeodesicAlgorithmGraphBase< Node >::set_sources ( std::vector< SurfacePoint > & sources)
inlineprotected

Definition at line 51 of file geodesic_algorithm_graph_base.h.

References m_sources.

Referenced by propagate().

◆ trace_back()

template<class Node>
void geodesic::GeodesicAlgorithmGraphBase< Node >::trace_back ( SurfacePoint & destination,
std::vector< SurfacePoint > & path )
inlinevirtual

◆ trace_back_with_index()

template<class Node>
void geodesic::GeodesicAlgorithmGraphBase< Node >::trace_back_with_index ( SurfacePoint & destination,
std::vector< SurfacePoint > & path,
std::vector< unsigned > & indexVertex )
inlinevirtual

Member Data Documentation

◆ m_nodes

template<class Node>
std::vector<Node> geodesic::GeodesicAlgorithmGraphBase< Node >::m_nodes
protected

◆ m_queue

template<class Node>
queue_type geodesic::GeodesicAlgorithmGraphBase< Node >::m_queue
protected

Definition at line 110 of file geodesic_algorithm_graph_base.h.

Referenced by check_stop_conditions(), and propagate().

◆ m_sources

template<class Node>
std::vector<SurfacePoint> geodesic::GeodesicAlgorithmGraphBase< Node >::m_sources
protected

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