12#ifndef vtkGraphGeodesicPath_h
13#define vtkGraphGeodesicPath_h
15#include "vtkFiltersModelingModule.h"
18VTK_ABI_NAMESPACE_BEGIN
abstract class to specify dataset behavior
Helper class due to PIMPL excess.
dynamic, self-adjusting array of double
vtkTypeBool UseScalarWeights
vtkTimeStamp AdjacencyParametersTime
void SetRepelVertices(vtkPoints *)
Specify vtkPoints to use to repel the path from.
virtual vtkIdType GetNumberOfNodes(vtkDataSet *inData)
Helper to get the number of nodes in the graph.
void Reset()
Reset the main internal structures for shortest path computation.
void Initialize(vtkDataSet *inData)
Initialize the main internal structures for shortest path computation.
std::string ProcessedFieldArrayName
~vtkGraphGeodesicPath() override
void GetCumulativeWeights(vtkDoubleArray *weights)
Fill the array with the cumulative weights.
virtual double CalculateDynamicEdgeCost(vtkDataSet *, vtkIdType, vtkIdType)
Computes the dynamic cost cost going from vertex u to v, that may depend on one or more vertices that...
virtual double CalculateStaticEdgeCost(vtkDataSet *inData, vtkIdType u, vtkIdType v)=0
Computes the fixed cost going from vertex u to v.
vtkTypeBool StopWhenEndReached
virtual void GetNodeFromIndex(vtkDataSet *inData, vtkIdType u, double pt[3])
Helper to get the node (point or cell) position from its index.
void Relax(int u, int v, double w)
Relax edge u,v with weight w.
vtkTypeBool RepelPathFromVertices
void SetUseScalarWeights(vtkTypeBool)
Use scalar values in the edge weight.
virtual void DiscardRepelVertices(vtkDataSet *inData, int startv, int endv)
Helper to discard repelled vertices from the shortest path computation.
virtual void ShortestPath(vtkDataSet *inData, int startv, int endv)
Actual computation of the shortest path from vertex startv to endv.
std::unique_ptr< vtkDijkstraGraphInternals > Internals
void SetProcessedFieldArrayName(const std::string &name)
Set/Get the name of the input array used for the edge weights.
virtual void BuildAdjacency(vtkDataSet *inData)=0
Builds a graph description of the input.
vtkTimeStamp AdjacencyBuildTime
void PrintSelf(ostream &os, vtkIndent indent) override
Standard methods for printing and determining type information.
void TraceShortestPath(vtkDataSet *inData, vtkPolyData *outPoly, vtkIdType startv, vtkIdType endv)
Backtrace the shortest path.
vtkPoints * RepelVertices
list of point or cell ids
a simple class to control print indentation
represent and manipulate 3D points
concrete dataset represents vertices, lines, polygons, and triangle strips
record modification and/or execution time