#include <vtkDijkstraGraphGeodesicPath.h>
Takes as input a polygonal mesh and performs a single source shortest path calculation. Dijkstra's algorithm is used. The implementation is similar to the one described in Introduction to Algorithms (Second Edition) by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Cliff Stein, published by MIT Press and McGraw-Hill. Some minor enhancement are added though. All vertices are not pushed on the heap at start, instead a front set is maintained. The heap is implemented as a binary heap. The output of the filter is a set of lines describing the shortest path from StartVertex to EndVertex.
Definition at line 47 of file vtkDijkstraGraphGeodesicPath.h.
Standard methids for printing and determining type information.
Reimplemented from vtkGraphGeodesicPath.
Definition at line 57 of file vtkDijkstraGraphGeodesicPath.h.
vtkDijkstraGraphGeodesicPath::vtkDijkstraGraphGeodesicPath | ( | ) | [protected] |
vtkDijkstraGraphGeodesicPath::~vtkDijkstraGraphGeodesicPath | ( | ) | [protected] |
static vtkDijkstraGraphGeodesicPath* vtkDijkstraGraphGeodesicPath::New | ( | ) | [static] |
Instantiate the class
Reimplemented from vtkPolyDataAlgorithm.
virtual const char* vtkDijkstraGraphGeodesicPath::GetClassName | ( | ) | [virtual] |
Standard methids for printing and determining type information.
Reimplemented from vtkGraphGeodesicPath.
static int vtkDijkstraGraphGeodesicPath::IsTypeOf | ( | const char * | type | ) | [static] |
Standard methids for printing and determining type information.
Reimplemented from vtkGraphGeodesicPath.
virtual int vtkDijkstraGraphGeodesicPath::IsA | ( | const char * | type | ) | [virtual] |
Standard methids for printing and determining type information.
Reimplemented from vtkGraphGeodesicPath.
static vtkDijkstraGraphGeodesicPath* vtkDijkstraGraphGeodesicPath::SafeDownCast | ( | vtkObject * | o | ) | [static] |
Standard methids for printing and determining type information.
Reimplemented from vtkGraphGeodesicPath.
void vtkDijkstraGraphGeodesicPath::PrintSelf | ( | ostream & | os, | |
vtkIndent | indent | |||
) | [virtual] |
Standard methids for printing and determining type information.
Reimplemented from vtkGraphGeodesicPath.
virtual vtkIdList* vtkDijkstraGraphGeodesicPath::GetIdList | ( | ) | [virtual] |
The vertex ids (of the input polydata) on the shortest path
virtual vtkFloatArray* vtkDijkstraGraphGeodesicPath::Getd | ( | ) | [virtual] |
Get the summed weight for all vertices
virtual void vtkDijkstraGraphGeodesicPath::SetStopWhenEndReached | ( | int | ) | [virtual] |
Stop when the end vertex is reached or calculate shortest path to all vertices
virtual int vtkDijkstraGraphGeodesicPath::GetStopWhenEndReached | ( | ) | [virtual] |
Stop when the end vertex is reached or calculate shortest path to all vertices
virtual void vtkDijkstraGraphGeodesicPath::StopWhenEndReachedOn | ( | ) | [virtual] |
Stop when the end vertex is reached or calculate shortest path to all vertices
virtual void vtkDijkstraGraphGeodesicPath::StopWhenEndReachedOff | ( | ) | [virtual] |
Stop when the end vertex is reached or calculate shortest path to all vertices
virtual void vtkDijkstraGraphGeodesicPath::SetUseScalarWeights | ( | int | ) | [virtual] |
Use scalar values in the edge weight (experimental)
virtual int vtkDijkstraGraphGeodesicPath::GetUseScalarWeights | ( | ) | [virtual] |
Use scalar values in the edge weight (experimental)
virtual void vtkDijkstraGraphGeodesicPath::UseScalarWeightsOn | ( | ) | [virtual] |
Use scalar values in the edge weight (experimental)
virtual void vtkDijkstraGraphGeodesicPath::UseScalarWeightsOff | ( | ) | [virtual] |
Use scalar values in the edge weight (experimental)
virtual double vtkDijkstraGraphGeodesicPath::GetGeodesicLength | ( | ) | [inline, virtual] |
TODO: Get the total geodesic length.
Implements vtkGeodesicPath.
Definition at line 87 of file vtkDijkstraGraphGeodesicPath.h.
virtual int vtkDijkstraGraphGeodesicPath::RequestData | ( | vtkInformation * | request, | |
vtkInformationVector ** | inputVector, | |||
vtkInformationVector * | outputVector | |||
) | [protected, virtual] |
This is called by the superclass. This is the method you should override.
Reimplemented from vtkPolyDataAlgorithm.
void vtkDijkstraGraphGeodesicPath::BuildAdjacency | ( | vtkPolyData * | pd | ) | [protected] |
void vtkDijkstraGraphGeodesicPath::DeleteAdjacency | ( | ) | [protected] |
double vtkDijkstraGraphGeodesicPath::CalculateEdgeCost | ( | vtkPolyData * | pd, | |
vtkIdType | u, | |||
vtkIdType | v | |||
) | [protected] |
void vtkDijkstraGraphGeodesicPath::Initialize | ( | ) | [protected] |
void vtkDijkstraGraphGeodesicPath::Reset | ( | ) | [protected] |
void vtkDijkstraGraphGeodesicPath::Heapify | ( | int | i | ) | [protected] |
void vtkDijkstraGraphGeodesicPath::HeapInsert | ( | int | v | ) | [protected] |
int vtkDijkstraGraphGeodesicPath::HeapExtractMin | ( | ) | [protected] |
void vtkDijkstraGraphGeodesicPath::HeapDecreaseKey | ( | int | v | ) | [protected] |
void vtkDijkstraGraphGeodesicPath::InitSingleSource | ( | int | startv | ) | [protected] |
void vtkDijkstraGraphGeodesicPath::ShortestPath | ( | int | startv, | |
int | endv | |||
) | [protected] |
void vtkDijkstraGraphGeodesicPath::Relax | ( | int | u, | |
int | v, | |||
double | w | |||
) | [protected] |
void vtkDijkstraGraphGeodesicPath::TraceShortestPath | ( | vtkPolyData * | inPd, | |
vtkPolyData * | outPd, | |||
vtkIdType | startv, | |||
vtkIdType | endv | |||
) | [protected] |
Definition at line 101 of file vtkDijkstraGraphGeodesicPath.h.
int vtkDijkstraGraphGeodesicPath::NumberOfVertices [protected] |
Definition at line 137 of file vtkDijkstraGraphGeodesicPath.h.
vtkFloatArray* vtkDijkstraGraphGeodesicPath::d [protected] |
Definition at line 140 of file vtkDijkstraGraphGeodesicPath.h.
vtkIntArray* vtkDijkstraGraphGeodesicPath::pre [protected] |
Definition at line 143 of file vtkDijkstraGraphGeodesicPath.h.
vtkIntArray* vtkDijkstraGraphGeodesicPath::f [protected] |
Definition at line 147 of file vtkDijkstraGraphGeodesicPath.h.
vtkIntArray* vtkDijkstraGraphGeodesicPath::s [protected] |
Definition at line 151 of file vtkDijkstraGraphGeodesicPath.h.
vtkIntArray* vtkDijkstraGraphGeodesicPath::Heap [protected] |
Definition at line 154 of file vtkDijkstraGraphGeodesicPath.h.
int vtkDijkstraGraphGeodesicPath::HeapSize [protected] |
Definition at line 157 of file vtkDijkstraGraphGeodesicPath.h.
vtkIntArray* vtkDijkstraGraphGeodesicPath::p [protected] |
Definition at line 160 of file vtkDijkstraGraphGeodesicPath.h.
vtkIdList* vtkDijkstraGraphGeodesicPath::IdList [protected] |
Definition at line 163 of file vtkDijkstraGraphGeodesicPath.h.
vtkIdList** vtkDijkstraGraphGeodesicPath::Adjacency [protected] |
Definition at line 166 of file vtkDijkstraGraphGeodesicPath.h.
int vtkDijkstraGraphGeodesicPath::StopWhenEndReached [protected] |
Definition at line 168 of file vtkDijkstraGraphGeodesicPath.h.
int vtkDijkstraGraphGeodesicPath::UseScalarWeights [protected] |
Definition at line 170 of file vtkDijkstraGraphGeodesicPath.h.
int vtkDijkstraGraphGeodesicPath::AdjacencyGraphSize [protected] |
Definition at line 173 of file vtkDijkstraGraphGeodesicPath.h.