A.I.M.S algorithms


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_type
m_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

Definition at line 86 of file geodesic_algorithm_base.h.

Member Enumeration Documentation

Enumerator
EXACT 
DIJKSTRA 
SUBDIVISION 
UNDEFINED_ALGORITHM 

Definition at line 16 of file geodesic_algorithm_base.h.

Constructor & Destructor Documentation

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

Definition at line 24 of file geodesic_algorithm_base.h.

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

Definition at line 30 of file geodesic_algorithm_base.h.

Member Function Documentation

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().

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().

void geodesic::GeodesicAlgorithmBase::geodesic ( SurfacePoint source,
SurfacePoint destination,
std::vector< SurfacePoint > &  path,
std::vector< unsigned > &  indexVertex 
)
inline
void geodesic::GeodesicAlgorithmBase::geodesic ( SurfacePoint sources,
std::vector< SurfacePoint > &  destinations,
std::vector< std::vector< SurfacePoint > > &  paths,
std::vector< std::vector< unsigned > > &  indexVertex 
)
inline
double geodesic::GeodesicAlgorithmBase::length ( std::vector< SurfacePoint > &  path)
inline
geodesic::Mesh* geodesic::GeodesicAlgorithmBase::mesh ( )
inline
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.

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

Definition at line 109 of file geodesic_algorithm_base.h.

References length().

virtual void geodesic::GeodesicAlgorithmBase::propagate ( std::vector< SurfacePoint > &  sources,
double  max_propagation_distance = GEODESIC_INF,
std::vector< SurfacePoint > *  stop_points = NULL 
)
pure virtual
void geodesic::GeodesicAlgorithmBase::set_stop_conditions ( std::vector< SurfacePoint > *  stop_points,
double  stop_distance 
)
inlineprotected
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().

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

Definition at line 70 of file geodesic_algorithm_base.h.

References m_type.

Member Data Documentation

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().

double geodesic::GeodesicAlgorithmBase::m_propagation_distance_stopped
protected
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().

double geodesic::GeodesicAlgorithmBase::m_time_consumed
protected

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