VMTK
|
Trace the steepest descent line over a polygonal non-manifold. More...
#include <vtkvmtkSteepestDescentLineTracer.h>
Public Types | |
typedef vtkvmtkNonManifoldSteepestDescent | Superclass |
Public Types inherited from vtkvmtkNonManifoldSteepestDescent | |
typedef vtkPolyDataAlgorithm | Superclass |
Public Member Functions | |
virtual int | IsA (const char *type) |
vtkvmtkSteepestDescentLineTracer * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) VTK_OVERRIDE |
virtual void | SetStopOnTargets (int) |
virtual int | GetStopOnTargets () |
virtual void | StopOnTargetsOn () |
virtual void | StopOnTargetsOff () |
virtual void | SetSeeds (vtkIdList *) |
virtual vtkIdList * | GetSeeds () |
virtual void | SetTargets (vtkIdList *) |
virtual vtkIdList * | GetTargets () |
virtual vtkIdList * | GetHitTargets () |
virtual void | SetDataArrayName (const char *) |
virtual char * | GetDataArrayName () |
virtual void | SetEdgeArrayName (const char *) |
virtual char * | GetEdgeArrayName () |
virtual void | SetEdgePCoordArrayName (const char *) |
virtual char * | GetEdgePCoordArrayName () |
virtual void | SetMergePaths (int) |
virtual int | GetMergePaths () |
virtual void | MergePathsOn () |
virtual void | MergePathsOff () |
virtual void | SetMergeTolerance (double) |
virtual double | GetMergeTolerance () |
Public Member Functions inherited from vtkvmtkNonManifoldSteepestDescent | |
vtkvmtkNonManifoldSteepestDescent * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) VTK_OVERRIDE |
virtual void | SetDirection (int) |
virtual int | GetDirection () |
void | SetDirectionToDownward () |
void | SetDirectionToUpward () |
virtual void | SetDescentArrayName (const char *) |
virtual char * | GetDescentArrayName () |
Static Public Member Functions | |
static int | IsTypeOf (const char *type) |
static vtkvmtkSteepestDescentLineTracer * | SafeDownCast (vtkObjectBase *o) |
static vtkvmtkSteepestDescentLineTracer * | New () |
Static Public Member Functions inherited from vtkvmtkNonManifoldSteepestDescent | |
static int | IsTypeOf (const char *type) |
static vtkvmtkNonManifoldSteepestDescent * | SafeDownCast (vtkObjectBase *o) |
static vtkvmtkNonManifoldSteepestDescent * | New () |
Protected Member Functions | |
virtual vtkObjectBase * | NewInstanceInternal () const |
vtkvmtkSteepestDescentLineTracer () | |
~vtkvmtkSteepestDescentLineTracer () | |
virtual int | RequestData (vtkInformation *, vtkInformationVector **, vtkInformationVector *) VTK_OVERRIDE |
void | Backtrace (vtkPolyData *input, vtkIdType seedId) |
Protected Member Functions inherited from vtkvmtkNonManifoldSteepestDescent | |
vtkvmtkNonManifoldSteepestDescent () | |
~vtkvmtkNonManifoldSteepestDescent () | |
double | GetSteepestDescent (vtkPolyData *input, vtkIdType *edge, double s, vtkIdType *steepestDescentEdge, double &steepestDescentS) |
double | GetSteepestDescentInCell (vtkPolyData *input, vtkIdType cellId, vtkIdType *edge, double s, vtkIdType *steepestDescentEdge, double &steepestDescentS, double &steepestDescentLength) |
Protected Attributes | |
vtkIdList * | Seeds |
vtkIdList * | Targets |
vtkIdList * | HitTargets |
int | StopOnTargets |
char * | DataArrayName |
char * | EdgeArrayName |
char * | EdgePCoordArrayName |
char * | MinDistanceArrayName |
int | MergePaths |
double | MergeTolerance |
vtkIntArray * | Edges |
vtkDoubleArray * | EdgeParCoords |
vtkIdList * | EdgePointIds |
vtkIntArray * | CellIdsArray |
vtkDoubleArray * | PCoordsArray |
vtkDoubleArray * | MinDistanceArray |
vtkDataArray * | LineDataArray |
int | MergeWithExistingPaths |
vtkPolyData * | ExistingPaths |
char * | ExistingPathsEdgeArrayName |
char * | ExistingPathsEdgePCoordArrayName |
vtkIntArray * | ExistingPathsEdges |
vtkDoubleArray * | ExistingPathsEdgeParCoords |
Protected Attributes inherited from vtkvmtkNonManifoldSteepestDescent | |
vtkDataArray * | DescentArray |
char * | DescentArrayName |
int | NumberOfEdgeSubdivisions |
int | Direction |
Trace the steepest descent line over a polygonal non-manifold.
This class takes in input a non-manifold surface made of convex polygons (such as a Voronoi diagram) on which a scalar field is defined (as a point data array) and produces steepest descent paths from an id list of seeds to a target, basically solving the ordinary differential equation
where is a path and T(x) is a scalar field defined over the polygonal non-manifold domain.
The class uses the members of its base class vtkNonManifoldSteepestDescent to compute the steepest descent point at each step. The computed paths are polylines whose points always lie on input polygon edges.
This class is meant to be used for backtracing centerlines after solving the Eikonal equation on the Voronoi diagram of a shape (by means of vtkNonManifoldFastMarching). If MergePaths is off, one polyline for each seed point is produced (the cell id of each polyline corresponds to the list id of input seeds). If MergePaths is on, polylines are merged if they intersect the same Voronoi diagram edge and their distance is below a user-defined tolerance. Actually, if a path visits an edge which has already been visited by a previous path, its endpoint is set to the previous path point, so that a T junction is produced.
The user can specify a point data array whose values are interpolated on path points and presented in output as point data.
If 1) EdgeArrayName and/or 2) EdgePCoordArrayName are provided, the output will contain 1) a 2-component vtkIntArray in which the point ids of the edges intersected by the paths are stored and 2) a 1-component vtkDoubleArray in which the parametric coordinate of the intersection is stored.
Definition at line 52 of file vtkvmtkSteepestDescentLineTracer.h.
Definition at line 55 of file vtkvmtkSteepestDescentLineTracer.h.
|
protected |
|
protected |
|
static |
|
virtual |
Reimplemented from vtkvmtkNonManifoldSteepestDescent.
|
static |
|
protectedvirtual |
Reimplemented from vtkvmtkNonManifoldSteepestDescent.
vtkvmtkSteepestDescentLineTracer* vtkvmtkSteepestDescentLineTracer::NewInstance | ( | ) | const |
void vtkvmtkSteepestDescentLineTracer::PrintSelf | ( | ostream & | os, |
vtkIndent | indent | ||
) |
|
static |
|
virtual |
Set/Get the id of the seeds from which steepest descent starts.
|
virtual |
Set/Get the id of the seeds from which steepest descent starts.
|
virtual |
Set/Get the id of the point on which steepest descent must terminate.
|
virtual |
Set/Get the id of the point on which steepest descent must terminate.
|
virtual |
Set/Get the id of the point on which steepest descent has terminated for each seed point.
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
Set/Get the name of the point data array from which path point data is generated.
|
virtual |
Set/Get the name of the point data array from which path point data is generated.
|
virtual |
Set/Get the name of output point data array where the point ids of the edges intersected by the paths are going to be stored.
|
virtual |
Set/Get the name of output point data array where the point ids of the edges intersected by the paths are going to be stored.
|
virtual |
Set/Get the name of output point data array where the parametric coordinate of the intersection point with input edges are going to be stored.
|
virtual |
Set/Get the name of output point data array where the parametric coordinate of the intersection point with input edges are going to be stored.
|
virtual |
Turn on/off merging paths if they intersect the same Voronoi edge. Paths are merged with T junctions in the same order as defined in the seed list.
|
virtual |
Turn on/off merging paths if they intersect the same Voronoi edge. Paths are merged with T junctions in the same order as defined in the seed list.
|
virtual |
Turn on/off merging paths if they intersect the same Voronoi edge. Paths are merged with T junctions in the same order as defined in the seed list.
|
virtual |
Turn on/off merging paths if they intersect the same Voronoi edge. Paths are merged with T junctions in the same order as defined in the seed list.
|
virtual |
Set/Get the (absolute) tolerance with which two points intersecting the same Voronoi diagram edge are considered coincident. If set to a large value, two paths are merged if they intersect the same Voronoi diagram edge (default behaviour).
|
virtual |
Set/Get the (absolute) tolerance with which two points intersecting the same Voronoi diagram edge are considered coincident. If set to a large value, two paths are merged if they intersect the same Voronoi diagram edge (default behaviour).
|
protectedvirtual |
Reimplemented from vtkvmtkNonManifoldSteepestDescent.
|
protected |
|
protected |
Definition at line 130 of file vtkvmtkSteepestDescentLineTracer.h.
|
protected |
Definition at line 131 of file vtkvmtkSteepestDescentLineTracer.h.
|
protected |
Definition at line 133 of file vtkvmtkSteepestDescentLineTracer.h.
|
protected |
Definition at line 135 of file vtkvmtkSteepestDescentLineTracer.h.
|
protected |
Definition at line 137 of file vtkvmtkSteepestDescentLineTracer.h.
|
protected |
Definition at line 139 of file vtkvmtkSteepestDescentLineTracer.h.
|
protected |
Definition at line 140 of file vtkvmtkSteepestDescentLineTracer.h.
|
protected |
Definition at line 141 of file vtkvmtkSteepestDescentLineTracer.h.
|
protected |
Definition at line 143 of file vtkvmtkSteepestDescentLineTracer.h.
|
protected |
Definition at line 144 of file vtkvmtkSteepestDescentLineTracer.h.
|
protected |
Definition at line 146 of file vtkvmtkSteepestDescentLineTracer.h.
|
protected |
Definition at line 147 of file vtkvmtkSteepestDescentLineTracer.h.
|
protected |
Definition at line 149 of file vtkvmtkSteepestDescentLineTracer.h.
|
protected |
Definition at line 150 of file vtkvmtkSteepestDescentLineTracer.h.
|
protected |
Definition at line 151 of file vtkvmtkSteepestDescentLineTracer.h.
|
protected |
Definition at line 152 of file vtkvmtkSteepestDescentLineTracer.h.
|
protected |
Definition at line 154 of file vtkvmtkSteepestDescentLineTracer.h.
|
protected |
Definition at line 156 of file vtkvmtkSteepestDescentLineTracer.h.
|
protected |
Definition at line 157 of file vtkvmtkSteepestDescentLineTracer.h.
|
protected |
Definition at line 158 of file vtkvmtkSteepestDescentLineTracer.h.
|
protected |
Definition at line 159 of file vtkvmtkSteepestDescentLineTracer.h.
|
protected |
Definition at line 160 of file vtkvmtkSteepestDescentLineTracer.h.
|
protected |
Definition at line 161 of file vtkvmtkSteepestDescentLineTracer.h.