Protected Member Functions |
| vtkDijkstraGraphGeodesicPath () |
| ~vtkDijkstraGraphGeodesicPath () |
virtual int | RequestData (vtkInformation *, vtkInformationVector **, vtkInformationVector *) |
virtual void | BuildAdjacency (vtkDataSet *inData) |
virtual double | CalculateStaticEdgeCost (vtkDataSet *inData, vtkIdType u, vtkIdType v) |
virtual double | CalculateDynamicEdgeCost (vtkDataSet *, vtkIdType, vtkIdType) |
void | Initialize (vtkDataSet *inData) |
void | Reset () |
virtual void | ShortestPath (vtkDataSet *inData, int startv, int endv) |
void | Relax (const int &u, const int &v, const double &w) |
void | TraceShortestPath (vtkDataSet *inData, vtkPolyData *outPoly, vtkIdType startv, vtkIdType endv) |
| vtkGraphGeodesicPath () |
| ~vtkGraphGeodesicPath () |
| vtkGeodesicPath () |
| ~vtkGeodesicPath () |
virtual int | FillInputPortInformation (int port, vtkInformation *info) |
| vtkPolyDataAlgorithm () |
| ~vtkPolyDataAlgorithm () |
virtual int | RequestInformation (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) |
virtual int | FillOutputPortInformation (int port, vtkInformation *info) |
virtual int | RequestUpdateExtent (vtkInformation *, vtkInformationVector **, vtkInformationVector *) |
virtual void | ExecuteData (vtkDataObject *output) |
virtual void | Execute () |
| vtkAlgorithm () |
| ~vtkAlgorithm () |
virtual void | SetNumberOfInputPorts (int n) |
virtual void | SetNumberOfOutputPorts (int n) |
int | InputPortIndexInRange (int index, const char *action) |
int | OutputPortIndexInRange (int index, const char *action) |
int | GetInputArrayAssociation (int idx, vtkInformationVector **inputVector) |
virtual vtkExecutive * | CreateDefaultExecutive () |
virtual void | ReportReferences (vtkGarbageCollector *) |
virtual void | SetNumberOfInputConnections (int port, int n) |
int | GetInputArrayAssociation (int idx, int connection, vtkInformationVector **inputVector) |
int | GetInputArrayAssociation (int idx, vtkDataObject *input) |
vtkDataArray * | GetInputArrayToProcess (int idx, vtkInformationVector **inputVector) |
vtkDataArray * | GetInputArrayToProcess (int idx, vtkInformationVector **inputVector, int &association) |
vtkDataArray * | GetInputArrayToProcess (int idx, int connection, vtkInformationVector **inputVector) |
vtkDataArray * | GetInputArrayToProcess (int idx, int connection, vtkInformationVector **inputVector, int &association) |
vtkDataArray * | GetInputArrayToProcess (int idx, vtkDataObject *input) |
vtkDataArray * | GetInputArrayToProcess (int idx, vtkDataObject *input, int &association) |
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, vtkInformationVector **inputVector) |
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, vtkInformationVector **inputVector, int &association) |
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, int connection, vtkInformationVector **inputVector) |
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, int connection, vtkInformationVector **inputVector, int &association) |
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, vtkDataObject *input) |
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, vtkDataObject *input, int &association) |
vtkInformation * | GetInputArrayFieldInformation (int idx, vtkInformationVector **inputVector) |
virtual void | SetNthInputConnection (int port, int index, vtkAlgorithmOutput *input) |
virtual void | SetErrorCode (unsigned long) |
| vtkObject () |
virtual | ~vtkObject () |
virtual void | RegisterInternal (vtkObjectBase *, int check) |
virtual void | UnRegisterInternal (vtkObjectBase *, int check) |
void | InternalGrabFocus (vtkCommand *mouseEvents, vtkCommand *keypressEvents=NULL) |
void | InternalReleaseFocus () |
| vtkObjectBase () |
virtual | ~vtkObjectBase () |
virtual void | CollectRevisions (ostream &os) |
| vtkObjectBase (const vtkObjectBase &) |
void | operator= (const vtkObjectBase &) |
Dijkstra algorithm to compute the graph geodesic.
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.
- Warning
- The input polydata must have only triangle cells.
- Thanks:
- The class was contributed by Rasmus Paulsen. www.imm.dtu.dk/~rrp/VTK . Also thanks to Alexandre Gouaillard and Shoaib Ghias for bug fixes and enhancements.
Definition at line 45 of file vtkDijkstraGraphGeodesicPath.h.