VMTK
vtkvmtkSteepestDescentLineTracer.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3 Program: VMTK
4 Module: $RCSfile: vtkvmtkSteepestDescentLineTracer.h,v $
5 Language: C++
6 
7  Copyright (c) Luca Antiga, David Steinman. All rights reserved.
8  See LICENSE file for details.
9 
10  Portions of this code are covered under the VTK copyright.
11  See VTKCopyright.txt or http://www.kitware.com/VTKCopyright.htm
12  for details.
13 
14  This software is distributed WITHOUT ANY WARRANTY; without even
15  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
16  PURPOSE. See the above copyright notices for more information.
17 
18 =========================================================================*/
42 #ifndef __vtkvmtkSteepestDescentLineTracer_h
43 #define __vtkvmtkSteepestDescentLineTracer_h
44 
46 #include "vtkIntArray.h"
47 #include "vtkDoubleArray.h"
48 #include "vtkIdList.h"
49 //#include "vtkvmtkComputationalGeometryWin32Header.h"
50 #include "vtkvmtkWin32Header.h"
51 
52 class VTK_VMTK_COMPUTATIONAL_GEOMETRY_EXPORT vtkvmtkSteepestDescentLineTracer : public vtkvmtkNonManifoldSteepestDescent
53 {
54 public:
56  void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
57 
59 
61 
62  vtkSetObjectMacro(Seeds,vtkIdList);
63  vtkGetObjectMacro(Seeds,vtkIdList);
65 
67 
68  vtkSetObjectMacro(Targets,vtkIdList);
69  vtkGetObjectMacro(Targets,vtkIdList);
71 
73 
75  vtkGetObjectMacro(HitTargets,vtkIdList);
77 
78  vtkSetMacro(StopOnTargets,int)
79  vtkGetMacro(StopOnTargets,int)
80  vtkBooleanMacro(StopOnTargets,int)
81 
82  //@{
85  vtkSetStringMacro(DataArrayName);
86  vtkGetStringMacro(DataArrayName);
88 
90 
92  vtkSetStringMacro(EdgeArrayName);
93  vtkGetStringMacro(EdgeArrayName);
95 
97 
100  vtkSetStringMacro(EdgePCoordArrayName);
101  vtkGetStringMacro(EdgePCoordArrayName);
103 
105 
108  vtkSetMacro(MergePaths,int);
109  vtkGetMacro(MergePaths,int);
110  vtkBooleanMacro(MergePaths,int);
112 
114 
118  vtkSetMacro(MergeTolerance,double);
119  vtkGetMacro(MergeTolerance,double);
121 
122 protected:
125 
126  virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) VTK_OVERRIDE;
127 
128  void Backtrace(vtkPolyData* input, vtkIdType seedId);
129 
130  vtkIdList* Seeds;
131  vtkIdList* Targets;
132 
133  vtkIdList* HitTargets;
134 
136 
138 
142 
145 
146  vtkIntArray* Edges;
147  vtkDoubleArray* EdgeParCoords;
148 
149  vtkIdList* EdgePointIds;
150  vtkIntArray* CellIdsArray;
151  vtkDoubleArray* PCoordsArray;
152  vtkDoubleArray* MinDistanceArray;
153 
154  vtkDataArray* LineDataArray;
155 
157  vtkPolyData* ExistingPaths;
160  vtkIntArray* ExistingPathsEdges;
161  vtkDoubleArray* ExistingPathsEdgeParCoords;
162 
163  private:
165  void operator=(const vtkvmtkSteepestDescentLineTracer&); // Not implemented.
166 };
167 
168 #endif
169 
Abstract class for steepest descent on a polygonal non-manifold.
void PrintSelf(ostream &os, vtkIndent indent) VTK_OVERRIDE
static vtkvmtkNonManifoldSteepestDescent * New()
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) VTK_OVERRIDE
Trace the steepest descent line over a polygonal non-manifold.