57#ifndef vtkDijkstraGraphGeodesicPath_h
58#define vtkDijkstraGraphGeodesicPath_h
60#include "vtkFiltersModelingModule.h"
63VTK_ABI_NAMESPACE_BEGIN
abstract class to specify dataset behavior
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
vtkNew< vtkPolyData > CellCenters
void BuildCellAdjacency(vtkDataSet *inData)
Builds a graph description of the input.
void SetGraphType(int type)
Set/Get wether the path is compute on the vertices or the cells.
void AddBidirectionalEdge(vtkDataSet *inData, vtkDataArray *scalars, std::vector< std::map< int, double > > &adjacency, vtkIdType u, vtkIdType v)
Add the edge u->v and v->u to the adjacency table.
void PrintSelf(ostream &os, vtkIndent indent) override
Standard methods for printing and determining type information.
void BuildAdjacency(vtkDataSet *inData) override
Builds a graph description of the input.
void GetNodeFromIndex(vtkDataSet *inData, vtkIdType u, double pt[3]) override
Helper to get the node (point or cell) position from its index.
~vtkDijkstraGraphGeodesicPath() override
double CalculateStaticEdgeCost(vtkDataSet *inData, vtkIdType u, vtkIdType v) override
Computes the fixed cost going from vertex u to v.
vtkDijkstraGraphGeodesicPath()
void DiscardRepelVertices(vtkDataSet *inData, int startv, int endv) override
Helper to discard repelled vertices from the shortest path computation.
double CalculateCellEdgeCost(vtkDataSet *inData, vtkDataArray *scalars, vtkIdType c1, vtkIdType c2)
Computes the fixed cost going from cell c1 to c2.
double CalculateStaticEdgeCost(vtkDataSet *inData, vtkDataArray *scalars, vtkIdType u, vtkIdType v)
Computes the fixed cost going from vertex u to v.
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
static vtkDijkstraGraphGeodesicPath * New()
Instantiate the class.
vtkTypeBool UseNodeIndices
vtkIdType GetNumberOfNodes(vtkDataSet *inData) override
Helper to get the number of nodes in the graph.
a simple class to control print indentation
Allocate and hold a VTK object.