/*========================================================================= Program: Visualization Toolkit Module: vtkFastMarchingGeodesicPath.h Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen All rights reserved. See Copyright.txt or http://www.kitware.com/Copyright.htm for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notice for more information. =========================================================================*/ // .NAME vtkGeodesicBetweenPoints - Computes geodesics on input vtkPolyData between pairs of consecutive points // .SECTION Description // The class computes geodesic paths on vtkPolyData between pairs of consecutive points. // The vtkPolyData is the first input and the vtkPointSet input is the second input. // For each point in the second input, the nearest point on the first input is found. // Geodesic paths between consective points in the second input are then computed // and returned in the output. In addition, the total length of the geodesic paths // is computed and stored in a one-element array named "TotalLength" in the field data // of the output. #ifndef vtkGeodesicsBetweenPoints_h #define vtkGeodesicsBetweenPoints_h #include "vtkPolyDataAlgorithm.h" class VTK_EXPORT vtkGeodesicsBetweenPoints : public vtkPolyDataAlgorithm { public: static vtkGeodesicsBetweenPoints *New(); // Description: // Standard methids for printing and determining type information. vtkTypeMacro(vtkGeodesicsBetweenPoints,vtkPolyDataAlgorithm); void PrintSelf(ostream& os, vtkIndent indent); // Description: // Set the dataset that defines the endpoints between which geodesic // paths should be computed. Geodesics will be computed between // consective points in this input. virtual void SetEndpointsConnection(vtkAlgorithmOutput* endpointConnection); // Description: // Compute a loop of geodesic paths. Off by default. If on, a // geodesic path from the last to the first point in the input // endpoints will be added to the output. vtkSetMacro(Loop, int); vtkGetMacro(Loop, int); vtkBooleanMacro(Loop, int); // Description: // Connect the first and last points with a straight line // segment. Off by default. vtkSetMacro(LoopWithLine, int); vtkGetMacro(LoopWithLine, int); vtkBooleanMacro(LoopWithLine, int); protected: vtkGeodesicsBetweenPoints(); ~vtkGeodesicsBetweenPoints(); int Loop; int LoopWithLine; virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *); virtual int FillInputPortInformation(int port, vtkInformation* info); private: vtkGeodesicsBetweenPoints(const vtkGeodesicsBetweenPoints&); // Not implemented void operator=(const vtkGeodesicsBetweenPoints&); // Not implemented }; #endif