vtkDijkstraImageData.h

Go to the documentation of this file.
00001 
00002  
00003  
00004  #ifndef __VTK__VTK__DIJKSTRA__IMAGE__DATA__H
00005  #define __VTK__VTK__DIJKSTRA__IMAGE__DATA__H
00006  
00007  #include "vtkPolyDataSource.h"
00008  #include "vtkImageData.h"
00009  #include "vtkPoints.h"
00010  #include "vtkCellArray.h"
00011  #include "vtkPolyData.h"
00012 
00013  
00014  class vtkIntArray;
00015  class vtkDataArray;
00016  class vtkPriorityQueue;
00017  class vtkIdList;
00018  class vtkDijkstraImageData : public vtkPolyDataSource
00019  {
00020    public:
00021    static vtkDijkstraImageData *New();
00022    vtkTypeMacro(vtkDijkstraImageData,vtkPolyDataSource);
00023    void PrintSelf(ostream& os, vtkIndent indent);
00024    
00025    vtkSetMacro(SourceID,int);
00026    vtkGetMacro(SourceID,int);
00027  
00028  
00029    vtkSetMacro(SinkID,int);
00030    vtkGetMacro(SinkID,int);
00031  
00032    vtkGetObjectMacro(Parent,vtkIntArray);
00033  
00034    
00035    
00036    virtual void SetBoundaryScalars(vtkDataArray*);
00037    vtkGetObjectMacro(BoundaryScalars,vtkDataArray);
00038  
00039    
00040    vtkSetMacro(NumberOfInputPoints,int);
00041    vtkGetMacro(NumberOfInputPoints,int);
00042    
00043    
00044    vtkSetMacro(NumberOfGraphNodes,int);
00045    vtkGetMacro(NumberOfGraphNodes,int);
00046    
00047    
00048    vtkIdList* GetShortestPathIdList();
00049    
00050    
00051    vtkSetMacro(UseInverseDistance,int);
00052    vtkGetMacro(UseInverseDistance,int);
00053    
00054   
00055    vtkSetMacro(UseInverseSquaredDistance,int);
00056    vtkGetMacro(UseInverseSquaredDistance,int);
00057  
00058   
00059    vtkSetMacro(UseInverseExponentialDistance,int);
00060    vtkGetMacro(UseInverseExponentialDistance,int);
00061  
00062    vtkSetMacro(UseSquaredDistance,int);
00063    vtkGetMacro(UseSquaredDistance,int);
00064  
00065        
00066    // Description:
00067    unsigned long GetMTime();
00068    
00069    // path operations
00070    void InitTraversePath();
00071    int GetNextPathNode();
00072    int GetNumberOfPathNodes();
00073    
00074  
00075    void SetInput(vtkImageData*);
00076    vtkImageData* GetInput();
00077    
00078    
00079    void CreateGraph(vtkImageData *inData);
00080    void DeleteGraph();
00081    void FindNeighbors(vtkIdList *list,int id, vtkDataArray *scalars); 
00082    
00083    int findClosestPointInGraph(vtkDataArray *scalars,int id,int dim0,int dim1, int dim2); 
00084    
00085  
00086   
00087    
00088    void InitSingleSource(int startv);
00089   
00090    void RunDijkstra(vtkDataArray *scalars,int source, int sink);
00091    
00092    float EdgeCost(vtkDataArray *scalars, int u, int v);
00093    void BuildShortestPath(int start,int end);
00094   
00095          
00096    
00097    
00098    int SourceID;
00099    
00100    
00101    int SinkID;  
00102    
00103    
00104    vtkDataArray *BoundaryScalars;
00105  
00106   
00107    int NumberOfInputPoints;
00108    int NumberOfGraphNodes;
00109  
00110    int UseInverseDistance;
00111    int UseInverseSquaredDistance;
00112    int UseInverseExponentialDistance;
00113    int UseSquaredDistance;
00114  
00115   
00116    
00117    vtkPriorityQueue *PQ;
00118  
00119    
00120    vtkIdList *ShortestPathIdList;
00121    
00122    vtkIntArray *Parent;
00123    
00124    vtkIntArray *Visited;  
00125   
00126   
00127    int PathPointer;
00128   
00129    int StopWhenEndReached;
00130 
00131 
00132    vtkPoints *puntos; 
00133    vtkCellArray *lineas;
00134    vtkImageData *input;
00135 
00136 
00137 
00138         void init(vtkImageData *inData);
00139 
00140         void printPointData(int pointID);
00141 
00142         float fuerzaAtraccion(int u, float w);
00143         
00144  
00145  protected:
00146    vtkDijkstraImageData();
00147    ~vtkDijkstraImageData();
00148     void Execute();
00149 
00150    
00151    FILE *logger;
00152  
00153  private:
00154 //   vtkDijstraImageData(const vtkDijkstraImageData&);
00155    void operator=(const vtkDijkstraImageData&);
00156  };
00157  
00158  #endif //__VTK__VTK__DIJKSTRA__IMAGE__DATA__H
00159  
00160  
00161  
00162  

Generated on 18 Mar 2010 for creaMaracasVisu_lib by  doxygen 1.6.1