aimsalgo  5.1.2
Neuroimaging image processing
geodesic::GeodesicAlgorithmBase Class Referenceabstract

#include <aims/geodesicpath/geodesic_algorithm_base.h>

Inheritance diagram for geodesic::GeodesicAlgorithmBase:
Collaboration diagram for geodesic::GeodesicAlgorithmBase:

Public Types

enum  AlgorithmType { EXACT , DIJKSTRA , SUBDIVISION , UNDEFINED_ALGORITHM }
 

Public Member Functions

 GeodesicAlgorithmBase (geodesic::Mesh *mesh)
 
virtual ~GeodesicAlgorithmBase ()
 
virtual void propagate (std::vector< SurfacePoint > &sources, double max_propagation_distance=GEODESIC_INF, std::vector< SurfacePoint > *stop_points=NULL)=0
 
virtual void trace_back (SurfacePoint &destination, std::vector< SurfacePoint > &path)=0
 
virtual void trace_back_with_index (SurfacePoint &destination, std::vector< SurfacePoint > &path, std::vector< unsigned > &indexVertex)=0
 
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)
 
virtual unsigned best_source (SurfacePoint &point, double &best_source_distance)=0
 
virtual void print_statistics ()
 
AlgorithmType type ()
 
virtual std::string name ()
 
geodesic::Meshmesh ()
 

Protected Types

typedef std::pair< vertex_pointer, double > stop_vertex_with_distace_type
 

Protected Member Functions

void set_stop_conditions (std::vector< SurfacePoint > *stop_points, double stop_distance)
 
double stop_distance ()
 

Protected Attributes

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

Definition at line 13 of file geodesic_algorithm_base.h.

Member Typedef Documentation

◆ stop_vertex_with_distace_type

Definition at line 86 of file geodesic_algorithm_base.h.

Member Enumeration Documentation

◆ AlgorithmType

Enumerator
EXACT 
DIJKSTRA 
SUBDIVISION 
UNDEFINED_ALGORITHM 

Definition at line 16 of file geodesic_algorithm_base.h.

Constructor & Destructor Documentation

◆ GeodesicAlgorithmBase()

geodesic::GeodesicAlgorithmBase::GeodesicAlgorithmBase ( geodesic::Mesh mesh)
inline

Definition at line 24 of file geodesic_algorithm_base.h.

◆ ~GeodesicAlgorithmBase()

virtual geodesic::GeodesicAlgorithmBase::~GeodesicAlgorithmBase ( )
inlinevirtual

Definition at line 30 of file geodesic_algorithm_base.h.

Member Function Documentation

◆ best_source()

◆ geodesic() [1/4]

void geodesic::GeodesicAlgorithmBase::geodesic ( std::vector< SurfacePoint > &  sources,
std::vector< SurfacePoint > &  destinations,
std::vector< std::vector< SurfacePoint > > &  paths 
)
inline

Definition at line 162 of file geodesic_algorithm_base.h.

References geodesic::GEODESIC_INF, propagate(), and trace_back().

◆ geodesic() [2/4]

void geodesic::GeodesicAlgorithmBase::geodesic ( SurfacePoint source,
SurfacePoint destination,
std::vector< SurfacePoint > &  path 
)
inline

Definition at line 132 of file geodesic_algorithm_base.h.

References geodesic::GEODESIC_INF, propagate(), and trace_back().

◆ geodesic() [3/4]

void geodesic::GeodesicAlgorithmBase::geodesic ( SurfacePoint source,
SurfacePoint destination,
std::vector< SurfacePoint > &  path,
std::vector< unsigned > &  indexVertex 
)
inline

◆ geodesic() [4/4]

void geodesic::GeodesicAlgorithmBase::geodesic ( SurfacePoint sources,
std::vector< SurfacePoint > &  destinations,
std::vector< std::vector< SurfacePoint > > &  paths,
std::vector< std::vector< unsigned > > &  indexVertex 
)
inline

◆ length()

double geodesic::GeodesicAlgorithmBase::length ( std::vector< SurfacePoint > &  path)
inline

◆ mesh()

◆ name()

std::string geodesic::GeodesicAlgorithmBase::name ( )
inlinevirtual

Definition at line 116 of file geodesic_algorithm_base.h.

References DIJKSTRA, EXACT, m_type, SUBDIVISION, and UNDEFINED_ALGORITHM.

◆ print_info_about_path()

void geodesic::GeodesicAlgorithmBase::print_info_about_path ( std::vector< SurfacePoint > &  path)
inline

Definition at line 109 of file geodesic_algorithm_base.h.

References length().

◆ print_statistics()

◆ propagate()

virtual void geodesic::GeodesicAlgorithmBase::propagate ( std::vector< SurfacePoint > &  sources,
double  max_propagation_distance = GEODESIC_INF,
std::vector< SurfacePoint > *  stop_points = NULL 
)
pure virtual

◆ set_stop_conditions()

void geodesic::GeodesicAlgorithmBase::set_stop_conditions ( std::vector< SurfacePoint > *  stop_points,
double  stop_distance 
)
inlineprotected

◆ stop_distance()

double geodesic::GeodesicAlgorithmBase::stop_distance ( )
inlineprotected

Definition at line 79 of file geodesic_algorithm_base.h.

References m_max_propagation_distance.

Referenced by set_stop_conditions().

◆ trace_back()

◆ trace_back_with_index()

virtual void geodesic::GeodesicAlgorithmBase::trace_back_with_index ( SurfacePoint destination,
std::vector< SurfacePoint > &  path,
std::vector< unsigned > &  indexVertex 
)
pure virtual

◆ type()

AlgorithmType geodesic::GeodesicAlgorithmBase::type ( )
inline

Definition at line 70 of file geodesic_algorithm_base.h.

References m_type.

Member Data Documentation

◆ m_max_propagation_distance

double geodesic::GeodesicAlgorithmBase::m_max_propagation_distance
protected

Definition at line 88 of file geodesic_algorithm_base.h.

Referenced by set_stop_conditions(), and stop_distance().

◆ m_mesh

◆ m_propagation_distance_stopped

double geodesic::GeodesicAlgorithmBase::m_propagation_distance_stopped
protected

◆ m_stop_vertices

std::vector<stop_vertex_with_distace_type> geodesic::GeodesicAlgorithmBase::m_stop_vertices
protected

Definition at line 87 of file geodesic_algorithm_base.h.

Referenced by set_stop_conditions().

◆ m_time_consumed

double geodesic::GeodesicAlgorithmBase::m_time_consumed
protected

◆ m_type


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