A.I.M.S algorithms


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

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

Definition at line 16 of file geodesic_algorithm_graph_base.h.

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

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

Definition at line 18 of file geodesic_algorithm_graph_base.h.

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

Definition at line 22 of file geodesic_algorithm_graph_base.h.

Member Function Documentation

template<class Node>
node_pointer geodesic::GeodesicAlgorithmGraphBase< Node >::best_first_node ( SurfacePoint point,
double &  best_total_distance 
)
inlineprotected

Definition at line 56 of file geodesic_algorithm_graph_base.h.

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.

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

Definition at line 215 of file geodesic_algorithm_graph_base.h.

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
template<class Node>
virtual void geodesic::GeodesicAlgorithmGraphBase< Node >::list_nodes_visible_from_source ( MeshElementBase p,
std::vector< node_pointer > &  storage 
)
protectedpure virtual
template<class Node>
unsigned geodesic::GeodesicAlgorithmGraphBase< Node >::node_index ( vertex_pointer  v)
inlineprotected
template<class Node>
void geodesic::GeodesicAlgorithmGraphBase< Node >::print_statistics ( )
inlinevirtual

Reimplemented from geodesic::GeodesicAlgorithmBase.

Definition at line 37 of file geodesic_algorithm_graph_base.h.

template<class Node >
void geodesic::GeodesicAlgorithmGraphBase< Node >::propagate ( std::vector< SurfacePoint > &  sources,
double  max_propagation_distance = GEODESIC_INF,
std::vector< SurfacePoint > *  stop_points = NULL 
)
virtual
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.

template<class Node >
void geodesic::GeodesicAlgorithmGraphBase< Node >::trace_back ( SurfacePoint destination,
std::vector< SurfacePoint > &  path 
)
inlinevirtual
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

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

Definition at line 110 of file geodesic_algorithm_graph_base.h.

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

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