VMTK
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
vtkvmtkSteepestDescentLineTracer Class Reference

Trace the steepest descent line over a polygonal non-manifold. More...

#include <vtkvmtkSteepestDescentLineTracer.h>

Inheritance diagram for vtkvmtkSteepestDescentLineTracer:
[legend]
Collaboration diagram for vtkvmtkSteepestDescentLineTracer:
[legend]

Public Types

typedef vtkvmtkNonManifoldSteepestDescent Superclass
 
- Public Types inherited from vtkvmtkNonManifoldSteepestDescent
typedef vtkPolyDataAlgorithm Superclass
 

Public Member Functions

virtual int IsA (const char *type)
 
vtkvmtkSteepestDescentLineTracerNewInstance () 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
vtkvmtkNonManifoldSteepestDescentNewInstance () 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 vtkvmtkSteepestDescentLineTracerSafeDownCast (vtkObjectBase *o)
 
static vtkvmtkSteepestDescentLineTracerNew ()
 
- Static Public Member Functions inherited from vtkvmtkNonManifoldSteepestDescent
static int IsTypeOf (const char *type)
 
static vtkvmtkNonManifoldSteepestDescentSafeDownCast (vtkObjectBase *o)
 
static vtkvmtkNonManifoldSteepestDescentNew ()
 

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
 

Detailed Description

Trace the steepest descent line over a polygonal non-manifold.

Date
2006/04/06 16:46:43
Revision
1.4

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

\[\frac{d\gamma(\tau)}{d\tau}=-\nabla T(\mathbf{x})\]

where $\gamma(\tau)$ 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.

See also
vtkNonManifoldFastMarching vtkVoronoiDiagram3D

Definition at line 52 of file vtkvmtkSteepestDescentLineTracer.h.

Member Typedef Documentation

◆ Superclass

Definition at line 55 of file vtkvmtkSteepestDescentLineTracer.h.

Constructor & Destructor Documentation

◆ vtkvmtkSteepestDescentLineTracer()

vtkvmtkSteepestDescentLineTracer::vtkvmtkSteepestDescentLineTracer ( )
protected

◆ ~vtkvmtkSteepestDescentLineTracer()

vtkvmtkSteepestDescentLineTracer::~vtkvmtkSteepestDescentLineTracer ( )
protected

Member Function Documentation

◆ IsTypeOf()

static int vtkvmtkSteepestDescentLineTracer::IsTypeOf ( const char *  type)
static

◆ IsA()

virtual int vtkvmtkSteepestDescentLineTracer::IsA ( const char *  type)
virtual

Reimplemented from vtkvmtkNonManifoldSteepestDescent.

◆ SafeDownCast()

static vtkvmtkSteepestDescentLineTracer* vtkvmtkSteepestDescentLineTracer::SafeDownCast ( vtkObjectBase *  o)
static

◆ NewInstanceInternal()

virtual vtkObjectBase* vtkvmtkSteepestDescentLineTracer::NewInstanceInternal ( ) const
protectedvirtual

Reimplemented from vtkvmtkNonManifoldSteepestDescent.

◆ NewInstance()

vtkvmtkSteepestDescentLineTracer* vtkvmtkSteepestDescentLineTracer::NewInstance ( ) const

◆ PrintSelf()

void vtkvmtkSteepestDescentLineTracer::PrintSelf ( ostream &  os,
vtkIndent  indent 
)

◆ New()

static vtkvmtkSteepestDescentLineTracer* vtkvmtkSteepestDescentLineTracer::New ( )
static

◆ SetSeeds()

virtual void vtkvmtkSteepestDescentLineTracer::SetSeeds ( vtkIdList *  )
virtual

Set/Get the id of the seeds from which steepest descent starts.

◆ GetSeeds()

virtual vtkIdList* vtkvmtkSteepestDescentLineTracer::GetSeeds ( )
virtual

Set/Get the id of the seeds from which steepest descent starts.

◆ SetTargets()

virtual void vtkvmtkSteepestDescentLineTracer::SetTargets ( vtkIdList *  )
virtual

Set/Get the id of the point on which steepest descent must terminate.

◆ GetTargets()

virtual vtkIdList* vtkvmtkSteepestDescentLineTracer::GetTargets ( )
virtual

Set/Get the id of the point on which steepest descent must terminate.

◆ GetHitTargets()

virtual vtkIdList* vtkvmtkSteepestDescentLineTracer::GetHitTargets ( )
virtual

Set/Get the id of the point on which steepest descent has terminated for each seed point.

◆ SetStopOnTargets()

virtual void vtkvmtkSteepestDescentLineTracer::SetStopOnTargets ( int  )
virtual

◆ GetStopOnTargets()

virtual int vtkvmtkSteepestDescentLineTracer::GetStopOnTargets ( )
virtual

◆ StopOnTargetsOn()

virtual void vtkvmtkSteepestDescentLineTracer::StopOnTargetsOn ( )
virtual

◆ StopOnTargetsOff()

virtual void vtkvmtkSteepestDescentLineTracer::StopOnTargetsOff ( )
virtual

◆ SetDataArrayName()

virtual void vtkvmtkSteepestDescentLineTracer::SetDataArrayName ( const char *  )
virtual

Set/Get the name of the point data array from which path point data is generated.

◆ GetDataArrayName()

virtual char* vtkvmtkSteepestDescentLineTracer::GetDataArrayName ( )
virtual

Set/Get the name of the point data array from which path point data is generated.

◆ SetEdgeArrayName()

virtual void vtkvmtkSteepestDescentLineTracer::SetEdgeArrayName ( const char *  )
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.

◆ GetEdgeArrayName()

virtual char* vtkvmtkSteepestDescentLineTracer::GetEdgeArrayName ( )
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.

◆ SetEdgePCoordArrayName()

virtual void vtkvmtkSteepestDescentLineTracer::SetEdgePCoordArrayName ( const char *  )
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.

◆ GetEdgePCoordArrayName()

virtual char* vtkvmtkSteepestDescentLineTracer::GetEdgePCoordArrayName ( )
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.

◆ SetMergePaths()

virtual void vtkvmtkSteepestDescentLineTracer::SetMergePaths ( int  )
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.

◆ GetMergePaths()

virtual int vtkvmtkSteepestDescentLineTracer::GetMergePaths ( )
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.

◆ MergePathsOn()

virtual void vtkvmtkSteepestDescentLineTracer::MergePathsOn ( )
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.

◆ MergePathsOff()

virtual void vtkvmtkSteepestDescentLineTracer::MergePathsOff ( )
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.

◆ SetMergeTolerance()

virtual void vtkvmtkSteepestDescentLineTracer::SetMergeTolerance ( double  )
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).

◆ GetMergeTolerance()

virtual double vtkvmtkSteepestDescentLineTracer::GetMergeTolerance ( )
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).

◆ RequestData()

virtual int vtkvmtkSteepestDescentLineTracer::RequestData ( vtkInformation *  ,
vtkInformationVector **  ,
vtkInformationVector *   
)
protectedvirtual

Reimplemented from vtkvmtkNonManifoldSteepestDescent.

◆ Backtrace()

void vtkvmtkSteepestDescentLineTracer::Backtrace ( vtkPolyData *  input,
vtkIdType  seedId 
)
protected

Member Data Documentation

◆ Seeds

vtkIdList* vtkvmtkSteepestDescentLineTracer::Seeds
protected

Definition at line 130 of file vtkvmtkSteepestDescentLineTracer.h.

◆ Targets

vtkIdList* vtkvmtkSteepestDescentLineTracer::Targets
protected

Definition at line 131 of file vtkvmtkSteepestDescentLineTracer.h.

◆ HitTargets

vtkIdList* vtkvmtkSteepestDescentLineTracer::HitTargets
protected

Definition at line 133 of file vtkvmtkSteepestDescentLineTracer.h.

◆ StopOnTargets

int vtkvmtkSteepestDescentLineTracer::StopOnTargets
protected

Definition at line 135 of file vtkvmtkSteepestDescentLineTracer.h.

◆ DataArrayName

char* vtkvmtkSteepestDescentLineTracer::DataArrayName
protected

Definition at line 137 of file vtkvmtkSteepestDescentLineTracer.h.

◆ EdgeArrayName

char* vtkvmtkSteepestDescentLineTracer::EdgeArrayName
protected

Definition at line 139 of file vtkvmtkSteepestDescentLineTracer.h.

◆ EdgePCoordArrayName

char* vtkvmtkSteepestDescentLineTracer::EdgePCoordArrayName
protected

Definition at line 140 of file vtkvmtkSteepestDescentLineTracer.h.

◆ MinDistanceArrayName

char* vtkvmtkSteepestDescentLineTracer::MinDistanceArrayName
protected

Definition at line 141 of file vtkvmtkSteepestDescentLineTracer.h.

◆ MergePaths

int vtkvmtkSteepestDescentLineTracer::MergePaths
protected

Definition at line 143 of file vtkvmtkSteepestDescentLineTracer.h.

◆ MergeTolerance

double vtkvmtkSteepestDescentLineTracer::MergeTolerance
protected

Definition at line 144 of file vtkvmtkSteepestDescentLineTracer.h.

◆ Edges

vtkIntArray* vtkvmtkSteepestDescentLineTracer::Edges
protected

Definition at line 146 of file vtkvmtkSteepestDescentLineTracer.h.

◆ EdgeParCoords

vtkDoubleArray* vtkvmtkSteepestDescentLineTracer::EdgeParCoords
protected

Definition at line 147 of file vtkvmtkSteepestDescentLineTracer.h.

◆ EdgePointIds

vtkIdList* vtkvmtkSteepestDescentLineTracer::EdgePointIds
protected

Definition at line 149 of file vtkvmtkSteepestDescentLineTracer.h.

◆ CellIdsArray

vtkIntArray* vtkvmtkSteepestDescentLineTracer::CellIdsArray
protected

Definition at line 150 of file vtkvmtkSteepestDescentLineTracer.h.

◆ PCoordsArray

vtkDoubleArray* vtkvmtkSteepestDescentLineTracer::PCoordsArray
protected

Definition at line 151 of file vtkvmtkSteepestDescentLineTracer.h.

◆ MinDistanceArray

vtkDoubleArray* vtkvmtkSteepestDescentLineTracer::MinDistanceArray
protected

Definition at line 152 of file vtkvmtkSteepestDescentLineTracer.h.

◆ LineDataArray

vtkDataArray* vtkvmtkSteepestDescentLineTracer::LineDataArray
protected

Definition at line 154 of file vtkvmtkSteepestDescentLineTracer.h.

◆ MergeWithExistingPaths

int vtkvmtkSteepestDescentLineTracer::MergeWithExistingPaths
protected

Definition at line 156 of file vtkvmtkSteepestDescentLineTracer.h.

◆ ExistingPaths

vtkPolyData* vtkvmtkSteepestDescentLineTracer::ExistingPaths
protected

Definition at line 157 of file vtkvmtkSteepestDescentLineTracer.h.

◆ ExistingPathsEdgeArrayName

char* vtkvmtkSteepestDescentLineTracer::ExistingPathsEdgeArrayName
protected

Definition at line 158 of file vtkvmtkSteepestDescentLineTracer.h.

◆ ExistingPathsEdgePCoordArrayName

char* vtkvmtkSteepestDescentLineTracer::ExistingPathsEdgePCoordArrayName
protected

Definition at line 159 of file vtkvmtkSteepestDescentLineTracer.h.

◆ ExistingPathsEdges

vtkIntArray* vtkvmtkSteepestDescentLineTracer::ExistingPathsEdges
protected

Definition at line 160 of file vtkvmtkSteepestDescentLineTracer.h.

◆ ExistingPathsEdgeParCoords

vtkDoubleArray* vtkvmtkSteepestDescentLineTracer::ExistingPathsEdgeParCoords
protected

Definition at line 161 of file vtkvmtkSteepestDescentLineTracer.h.


The documentation for this class was generated from the following file: