2 #ifndef GEODESIC_ALGORITHM_DIJKSTRA_010506
3 #define GEODESIC_ALGORITHM_DIJKSTRA_010506
50 unsigned m_source_index;
51 node_pointer m_previous;
67 for(
unsigned i=0; i<
m_nodes.size(); ++i)
78 std::vector<node_pointer>& storage);
81 std::vector<node_pointer>& storage,
82 std::vector<double>& distances,
83 double threshold_distance);
87 std::vector<node_pointer>& storage)
94 for(
unsigned i=0; i<3; ++i)
103 for(
unsigned i=0; i<2; ++i)
117 std::vector<node_pointer>& storage,
118 std::vector<double>& distances,
119 double threshold_distance)
122 assert(storage.size() == distances.size());
132 storage.push_back(new_node);
133 distances.push_back(e->
length());
SurfacePoint surface_point()
bool operator()(node_pointer const s1, node_pointer const s2) const
node_pointer & previous()
double & distance_from_source()
double distance(SurfacePoint *p)
vertex_pointer & vertex()
unsigned & source_index()
vertex_pointer opposite_vertex(vertex_pointer v)
void list_nodes_visible_from_node(node_pointer node, std::vector< node_pointer > &storage, std::vector< double > &distances, double threshold_distance)
GeodesicAlgorithmDijkstra(geodesic::Mesh *mesh)
void list_nodes_visible_from_source(MeshElementBase *p, std::vector< node_pointer > &storage)
~GeodesicAlgorithmDijkstra()
std::vector< DijkstraNode > m_nodes
unsigned node_index(vertex_pointer v)
vertex_pointer_vector & adjacent_vertices()
edge_pointer_vector & adjacent_edges()
std::vector< Vertex > & vertices()
double distance(double *v)
double const GEODESIC_INF