VMTK
vtkvmtkSteepestDescentShooter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3 Program: VMTK
4 Module: $RCSfile: vtkvmtkSteepestDescentShooter.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 =========================================================================*/
28 #ifndef __vtkvmtkSteepestDescentShooter_h
29 #define __vtkvmtkSteepestDescentShooter_h
30 
32 #include "vtkPolyData.h"
33 #include "vtkEdgeTable.h"
34 #include "vtkIntArray.h"
35 #include "vtkDoubleArray.h"
36 #include "vtkIdList.h"
37 //#include "vtkvmtkComputationalGeometryWin32Header.h"
38 #include "vtkvmtkWin32Header.h"
39 
40 class VTK_VMTK_COMPUTATIONAL_GEOMETRY_EXPORT vtkvmtkSteepestDescentShooter : public vtkvmtkNonManifoldSteepestDescent
41 {
42  public:
44  void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
45 
47 
48  vtkSetObjectMacro(Target,vtkPolyData);
49  vtkGetObjectMacro(Target,vtkPolyData);
50 
51  vtkSetObjectMacro(Seeds,vtkIdList);
52  vtkGetObjectMacro(Seeds,vtkIdList);
53 
54  vtkSetStringMacro(EdgeArrayName);
55  vtkGetStringMacro(EdgeArrayName);
56 
57  vtkSetStringMacro(TargetVectorsArrayName);
58  vtkGetStringMacro(TargetVectorsArrayName);
59 
60  vtkSetStringMacro(TargetCellIdsArrayName);
61  vtkGetStringMacro(TargetCellIdsArrayName);
62 
63  vtkSetStringMacro(TargetPCoordsArrayName);
64  vtkGetStringMacro(TargetPCoordsArrayName);
65 
66  protected:
69 
70  virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) VTK_OVERRIDE;
71 
72  void Backtrace(vtkPolyData* input, vtkIdType seedId);
73 
74  void FindNearestPolyLinePoint(double* currentPoint, double* lineClosestPoint, int &lineCellId, int &lineCellSubId, double &linePCoord);
75 
76  vtkPolyData* Target;
77  vtkIdList* Seeds;
78 
79  vtkIntArray* TargetArray;
80  vtkDataArray* EdgeArray;
81 
82  vtkDoubleArray* TargetVectors;
83  vtkIntArray* TargetCellIds;
84  vtkDoubleArray* TargetPCoords;
85 
87 
91 
92  private:
94  void operator=(const vtkvmtkSteepestDescentShooter&); // Not implemented.
95 };
96 
97 #endif
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
experimental method attempting movement across voronoi vertices; implement with caution.