VTK
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
vtkDijkstraGraphGeodesicPath Class Reference

Dijkstra algorithm to compute the graph geodesic. More...

#include <vtkDijkstraGraphGeodesicPath.h>

Inheritance diagram for vtkDijkstraGraphGeodesicPath:
Inheritance graph
[legend]
Collaboration diagram for vtkDijkstraGraphGeodesicPath:
Collaboration graph
[legend]

List of all members.

Public Member Functions

virtual void GetCumulativeWeights (vtkDoubleArray *weights)
virtual vtkIdListGetIdList ()
virtual void SetStopWhenEndReached (int)
virtual int GetStopWhenEndReached ()
virtual void StopWhenEndReachedOn ()
virtual void StopWhenEndReachedOff ()
virtual void SetUseScalarWeights (int)
virtual int GetUseScalarWeights ()
virtual void UseScalarWeightsOn ()
virtual void UseScalarWeightsOff ()
virtual void SetRepelPathFromVertices (int)
virtual int GetRepelPathFromVertices ()
virtual void RepelPathFromVerticesOn ()
virtual void RepelPathFromVerticesOff ()
virtual void SetRepelVertices (vtkPoints *)
virtual vtkPointsGetRepelVertices ()

Static Public Member Functions

static
vtkDijkstraGraphGeodesicPath
New ()

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)

Protected Attributes

vtkTimeStamp AdjacencyBuildTime
int NumberOfVertices
vtkIdListIdList
vtkDijkstraGraphInternalsInternals
int StopWhenEndReached
int UseScalarWeights
int RepelPathFromVertices
vtkPointsRepelVertices
typedef vtkGraphGeodesicPath Superclass
static int IsTypeOf (const char *type)
static
vtkDijkstraGraphGeodesicPath
SafeDownCast (vtkObjectBase *o)
virtual int IsA (const char *type)
vtkDijkstraGraphGeodesicPathNewInstance () const
void PrintSelf (ostream &os, vtkIndent indent)
virtual vtkObjectBaseNewInstanceInternal () const

Detailed Description

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 46 of file vtkDijkstraGraphGeodesicPath.h.


Member Typedef Documentation

Standard methids for printing and determining type information.

Reimplemented from vtkGraphGeodesicPath.

Reimplemented in vtkDijkstraImageGeodesicPath.

Definition at line 56 of file vtkDijkstraGraphGeodesicPath.h.


Constructor & Destructor Documentation


Member Function Documentation

Instantiate the class

Reimplemented from vtkPolyDataAlgorithm.

Reimplemented in vtkDijkstraImageGeodesicPath.

static int vtkDijkstraGraphGeodesicPath::IsTypeOf ( const char *  type) [static]

Standard methids for printing and determining type information.

Reimplemented from vtkGraphGeodesicPath.

Reimplemented in vtkDijkstraImageGeodesicPath.

virtual int vtkDijkstraGraphGeodesicPath::IsA ( const char *  type) [virtual]

Standard methids for printing and determining type information.

Reimplemented from vtkGraphGeodesicPath.

Reimplemented in vtkDijkstraImageGeodesicPath.

Standard methids for printing and determining type information.

Reimplemented from vtkGraphGeodesicPath.

Reimplemented in vtkDijkstraImageGeodesicPath.

virtual vtkObjectBase* vtkDijkstraGraphGeodesicPath::NewInstanceInternal ( ) const [protected, virtual]

Standard methids for printing and determining type information.

Reimplemented from vtkGraphGeodesicPath.

Reimplemented in vtkDijkstraImageGeodesicPath.

Standard methids for printing and determining type information.

Reimplemented from vtkGraphGeodesicPath.

Reimplemented in vtkDijkstraImageGeodesicPath.

void vtkDijkstraGraphGeodesicPath::PrintSelf ( ostream &  os,
vtkIndent  indent 
) [virtual]

Standard methids for printing and determining type information.

Reimplemented from vtkGraphGeodesicPath.

Reimplemented in vtkDijkstraImageGeodesicPath.

The vertex ids (of the input polydata) on the shortest path

Stop when the end vertex is reached or calculate shortest path to all vertices

Stop when the end vertex is reached or calculate shortest path to all vertices

Stop when the end vertex is reached or calculate shortest path to all vertices

Stop when the end vertex is reached or calculate shortest path to all vertices

Use scalar values in the edge weight (experimental)

Use scalar values in the edge weight (experimental)

Use scalar values in the edge weight (experimental)

Use scalar values in the edge weight (experimental)

Use the input point to repel the path by assigning high costs.

Use the input point to repel the path by assigning high costs.

Use the input point to repel the path by assigning high costs.

Use the input point to repel the path by assigning high costs.

Specify vtkPoints to use to repel the path from.

Specify vtkPoints to use to repel the path from.

Fill the array with the cumulative weights.

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.

Reimplemented in vtkDijkstraImageGeodesicPath.

virtual void vtkDijkstraGraphGeodesicPath::BuildAdjacency ( vtkDataSet inData) [protected, virtual]

Reimplemented in vtkDijkstraImageGeodesicPath.

virtual double vtkDijkstraGraphGeodesicPath::CalculateStaticEdgeCost ( vtkDataSet inData,
vtkIdType  u,
vtkIdType  v 
) [protected, virtual]

Reimplemented in vtkDijkstraImageGeodesicPath.

virtual double vtkDijkstraGraphGeodesicPath::CalculateDynamicEdgeCost ( vtkDataSet ,
vtkIdType  ,
vtkIdType   
) [inline, protected, virtual]

Reimplemented in vtkDijkstraImageGeodesicPath.

Definition at line 113 of file vtkDijkstraGraphGeodesicPath.h.

void vtkDijkstraGraphGeodesicPath::Initialize ( vtkDataSet inData) [protected]
virtual void vtkDijkstraGraphGeodesicPath::ShortestPath ( vtkDataSet inData,
int  startv,
int  endv 
) [protected, virtual]
void vtkDijkstraGraphGeodesicPath::Relax ( const int u,
const int v,
const double w 
) [protected]
void vtkDijkstraGraphGeodesicPath::TraceShortestPath ( vtkDataSet inData,
vtkPolyData outPoly,
vtkIdType  startv,
vtkIdType  endv 
) [protected]

Member Data Documentation

Definition at line 106 of file vtkDijkstraGraphGeodesicPath.h.

Definition at line 131 of file vtkDijkstraGraphGeodesicPath.h.

Definition at line 134 of file vtkDijkstraGraphGeodesicPath.h.

Definition at line 137 of file vtkDijkstraGraphGeodesicPath.h.

Definition at line 139 of file vtkDijkstraGraphGeodesicPath.h.

Definition at line 140 of file vtkDijkstraGraphGeodesicPath.h.

Definition at line 141 of file vtkDijkstraGraphGeodesicPath.h.

Definition at line 143 of file vtkDijkstraGraphGeodesicPath.h.


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