VTK
vtkDijkstraImageGeodesicPath.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkDijkstraImageGeodesicPath.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
52 #ifndef vtkDijkstraImageGeodesicPath_h
53 #define vtkDijkstraImageGeodesicPath_h
54 
55 #include "vtkFiltersModelingModule.h" // For export macro
57 
58 class vtkImageData;
59 
62 {
63 public:
64 
67 
69 
71  void PrintSelf( ostream& os, vtkIndent indent );
73 
75 
76  void SetInputData( vtkDataObject* );
77  vtkImageData* GetInputAsImageData();
79 
81 
82  void SetImageWeight( double );
83  vtkGetMacro( ImageWeight, double );
85 
87 
88  void SetEdgeLengthWeight( double );
89  vtkGetMacro( EdgeLengthWeight, double );
91 
93 
94  vtkSetClampMacro( CurvatureWeight, double, 0.0, 1.0 );
95  vtkGetMacro( CurvatureWeight, double );
97 
98 protected:
101 
105 
106  // Build a graph description of the image
107  virtual void BuildAdjacency( vtkDataSet *inData );
108 
109  // Update static costs without rebuilding adjacencyh when static weights change
110  void UpdateStaticCosts( vtkImageData *image );
111 
112  // Override parent class methods.
113  virtual double CalculateStaticEdgeCost( vtkDataSet *inData , vtkIdType u, vtkIdType v);
114  virtual double CalculateDynamicEdgeCost( vtkDataSet *inData , vtkIdType u, vtkIdType v);
115 
116  double PixelSize;
117  double ImageWeight;
121 
122 private:
124  void operator=(const vtkDijkstraImageGeodesicPath&); // Not implemented.
125 
126 };
127 
128 #endif
129 
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
Store vtkAlgorithm input/output information.
abstract class to specify dataset behavior
Definition: vtkDataSet.h:61
#define VTKFILTERSMODELING_EXPORT
virtual void BuildAdjacency(vtkDataSet *inData)
int vtkIdType
Definition: vtkType.h:247
void PrintSelf(ostream &os, vtkIndent indent)
Dijkstra algorithm to compute the graph geodesic.
virtual double CalculateStaticEdgeCost(vtkDataSet *inData, vtkIdType u, vtkIdType v)
static vtkDijkstraGraphGeodesicPath * New()
a simple class to control print indentation
Definition: vtkIndent.h:38
topologically and geometrically regular array of data
Definition: vtkImageData.h:44
void SetInputData(vtkDataObject *)
virtual double CalculateDynamicEdgeCost(vtkDataSet *, vtkIdType, vtkIdType)
virtual int FillInputPortInformation(int port, vtkInformation *info)
Store zero or more vtkInformation instances.
general representation of visualization data
Definition: vtkDataObject.h:64
Dijkstra algorithm to compute the graph geodesic.