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

create an approximated network graph (preliminary to centerline) from an input surface with atleast one hole in it. More...

#include <vtkvmtkPolyDataNetworkExtraction.h>

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

Public Types

enum  {
  STEP_ITERATION_PROCEED, STEP_ITERATION_REDEFINE, STEP_ITERATION_STOP_END, STEP_ITERATION_STOP_BIFURCATION,
  STEP_ITERATION_STOP_CLOSED
}
 
enum  { NON_VISITED, VISITED, GLOBAL }
 
typedef vtkPolyDataAlgorithm Superclass
 

Public Member Functions

virtual int IsA (const char *type)
 
vtkvmtkPolyDataNetworkExtractionNewInstance () const
 
void PrintSelf (ostream &os, vtkIndent indent) VTK_OVERRIDE
 
virtual void SetMarksArrayName (const char *)
 
virtual char * GetMarksArrayName ()
 
virtual void SetRadiusArrayName (const char *)
 
virtual char * GetRadiusArrayName ()
 
virtual void SetTopologyArrayName (const char *)
 
virtual char * GetTopologyArrayName ()
 
virtual void SetAdvancementRatio (double)
 
virtual double GetAdvancementRatio ()
 
virtual int GetTotalMarkedPoints ()
 
virtual double GetMinimumStep ()
 
virtual vtkPolyData * GetGraphLayout ()
 

Static Public Member Functions

static int IsTypeOf (const char *type)
 
static vtkvmtkPolyDataNetworkExtractionSafeDownCast (vtkObjectBase *o)
 
static vtkvmtkPolyDataNetworkExtractionNew ()
 

Protected Member Functions

virtual vtkObjectBase * NewInstanceInternal () const
 
 vtkvmtkPolyDataNetworkExtraction ()
 
 ~vtkvmtkPolyDataNetworkExtraction ()
 
void BoundaryExtractor (vtkPolyData *polyInput, vtkPolyData *boundary)
 
void BoundarySeparator (vtkPolyData *appendedBoundaries, vtkPolyDataCollection *boundaries)
 
void InsertInEdgeTable (vtkIdTypeArray *edgeTable, vtkIdType pointId0, vtkIdType pointId1)
 
bool InsertUniqueInEdgeTable (vtkIdTypeArray *edgeTable, vtkIdType pointId0, vtkIdType pointId1)
 
void GetFromEdgeTable (vtkIdTypeArray *edgeTable, vtkIdType position, vtkIdType edge[2])
 
void UpdateEdgeTableCollectionReal (vtkPolyData *model, vtkPolyDataCollection *profiles, vtkCollection *edgeTables)
 
double Distance (double point1[3], double point2[3])
 
double GetFurthestDistance (vtkPolyDataCollection *polyDataCollection, double fromPoint[3])
 
void Barycenter (vtkPoints *points, double barycenter[3])
 
void ProfileBarycenter (vtkPoints *points, double barycenter[3])
 
void DefineVirtualSphere (vtkPolyDataCollection *baseProfiles, double center[3], double &radius, double ratio)
 
vtkIdType CurrentPointId (vtkPolyData *model, vtkIdType currentEdge[2])
 
void InsertEdgeForNewProfiles (vtkPolyData *model, vtkIdType *edge, vtkIdTypeArray *edgeTable, vtkIdTypeArray *cellPairs, vtkIdList *pointIds)
 
bool LookForNeighbors (vtkPolyData *model, vtkIdType pointId, vtkIdList *notVisitedIds, vtkIdTypeArray *edgeTableForIncludedGlobalProfiles)
 
void PropagateFromBaseProfilePoint (vtkPolyData *model, vtkIdList *toVisitPointIds, double center[3], double radius, vtkIdTypeArray *edgeTableForNewProfiles, vtkIdTypeArray *cellPairsForNewProfiles, vtkIdList *pointIdsForNewProfiles, vtkPoints *markedPoints, vtkIdList *markedPointIds, vtkIdTypeArray *edgeTableForIncludedGlobalProfiles)
 
void LocateVirtualPoint (vtkIdType edge[2], double center[3], double radius, vtkIdList *pointIdsForNewProfiles, vtkPoints *pointsForNewProfiles, vtkDoubleArray *pointDistancesForNewProfiles, double virtualPoint[3])
 
void ReconstructNewProfiles (vtkPoints *virtualPoints, vtkIdTypeArray *edgeTable, vtkIdTypeArray *cellPairs, vtkPolyDataCollection *newProfiles, vtkCollection *newProfilesEdgeTables)
 
void GenerateNewProfiles (vtkPolyData *model, double center[3], double radius, vtkIdTypeArray *edgeTableForNewProfiles, vtkIdTypeArray *cellPairsForNewProfiles, vtkIdList *pointIdsForNewProfiles, vtkPolyDataCollection *newProfiles, vtkCollection *newProfilesEdgeTables)
 
void UnmarkPoints (vtkPolyData *model, vtkIdList *markedPointIds)
 
double ComputeStepRadius (vtkPoints *points, double point1[3], double point2[3])
 
double ComputeMeanRadius (vtkPoints *points, double point1[3])
 
void PointsForRadius (vtkPoints *markedPoints, vtkPolyDataCollection *baseProfiles, vtkPolyDataCollection *newProfiles, vtkPoints *pointsForRadius)
 
void LookForIntersectingPoint (vtkPoints *segmentPoints, double center[3], double radius, vtkIdType &intersectingPointId)
 
vtkIdType StepIteration (vtkPolyData *model, vtkPolyDataCollection *baseProfiles, vtkCollection *baseProfilesEdgeTables, vtkPolyDataCollection *globalProfiles, vtkCollection *globalProfilesEdgeTables, vtkPolyDataCollection *newProfiles, vtkCollection *newProfilesEdgeTables, vtkPoints *segmentPoints, vtkDoubleArray *segmentRadii, vtkPoints *bifurcationPoints, vtkDoubleArray *bifurcationRadii, double oldCenter[3], double &oldRadius, double advancementRatio)
 
void MarkModelGlobalProfile (vtkPolyData *model, vtkIdTypeArray *newGlobalProfileEdgeTable)
 
void SegmentTopology (vtkCollection *bifurcations, vtkCollection *bifurcationsRadii, double firstSegmentPoint[3], double lastSegmentPoint[3], double firstPoint[3], double &firstRadius, double lastPoint[3], double &lastRadius, vtkIdType segmentTopology[2])
 
void BuildSegment (vtkPoints *segmentPoints, vtkDoubleArray *segmentRadii, vtkIdType segmentTopology[2], double firstPoint[3], double firstRadius, double lastPoint[3], double lastRadius, const double *centralPoint, vtkPolyData *segment)
 
void InsertNewBifurcation (vtkCollection *bifurcations, vtkCollection *bifurcationsRadii, vtkPoints *bifurcationPoints, vtkDoubleArray *bifurcationRadii, vtkPolyDataCollection *additionalSegments)
 
void SegmentIteration (vtkPolyData *model, vtkPolyData *initialProfile, vtkIdTypeArray *initialProfileEdgeTable, vtkPolyDataCollection *globalProfiles, vtkCollection *globalProfilesEdgeTables, vtkCollection *bifurcations, vtkCollection *bifurcationsRadii, vtkPolyDataCollection *segments, double advancementRatio)
 
void JoinSegments (vtkPolyData *segment0, vtkPolyData *segment1, bool first0, bool first1, vtkPolyData *segment)
 
void RemoveDegenerateBifurcations (vtkPolyDataCollection *segments, vtkCollection *bifurcations)
 
void GlobalIteration (vtkPolyData *model, vtkPolyDataCollection *globalProfiles, vtkPolyData *network, double advancementRatio)
 
void MarkModelRealBoundary (vtkPolyData *model, vtkPolyData *modelBoundary)
 
void Graph (vtkPolyData *network, vtkPolyData *graphLayout)
 
virtual int RequestData (vtkInformation *, vtkInformationVector **, vtkInformationVector *) VTK_OVERRIDE
 

Protected Attributes

vtkPolyData * GraphLayout
 
char * MarksArrayName
 
char * RadiusArrayName
 
char * TopologyArrayName
 
double MinimumStep
 
double AdvancementRatio
 
vtkIdType TotalMarkedPoints
 

Detailed Description

create an approximated network graph (preliminary to centerline) from an input surface with atleast one hole in it.

Date
2006/07/17 09:53:14
Revision
1.5

...

Definition at line 40 of file vtkvmtkPolyDataNetworkExtraction.h.

Member Typedef Documentation

◆ Superclass

typedef vtkPolyDataAlgorithm vtkvmtkPolyDataNetworkExtraction::Superclass

Definition at line 43 of file vtkvmtkPolyDataNetworkExtraction.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

◆ anonymous enum

anonymous enum

Constructor & Destructor Documentation

◆ vtkvmtkPolyDataNetworkExtraction()

vtkvmtkPolyDataNetworkExtraction::vtkvmtkPolyDataNetworkExtraction ( )
protected

◆ ~vtkvmtkPolyDataNetworkExtraction()

vtkvmtkPolyDataNetworkExtraction::~vtkvmtkPolyDataNetworkExtraction ( )
protected

Member Function Documentation

◆ IsTypeOf()

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

◆ IsA()

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

◆ SafeDownCast()

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

◆ NewInstanceInternal()

virtual vtkObjectBase* vtkvmtkPolyDataNetworkExtraction::NewInstanceInternal ( ) const
protectedvirtual

◆ NewInstance()

vtkvmtkPolyDataNetworkExtraction* vtkvmtkPolyDataNetworkExtraction::NewInstance ( ) const

◆ PrintSelf()

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

◆ New()

static vtkvmtkPolyDataNetworkExtraction* vtkvmtkPolyDataNetworkExtraction::New ( )
static

◆ SetMarksArrayName()

virtual void vtkvmtkPolyDataNetworkExtraction::SetMarksArrayName ( const char *  )
virtual

◆ GetMarksArrayName()

virtual char* vtkvmtkPolyDataNetworkExtraction::GetMarksArrayName ( )
virtual

◆ SetRadiusArrayName()

virtual void vtkvmtkPolyDataNetworkExtraction::SetRadiusArrayName ( const char *  )
virtual

◆ GetRadiusArrayName()

virtual char* vtkvmtkPolyDataNetworkExtraction::GetRadiusArrayName ( )
virtual

◆ SetTopologyArrayName()

virtual void vtkvmtkPolyDataNetworkExtraction::SetTopologyArrayName ( const char *  )
virtual

◆ GetTopologyArrayName()

virtual char* vtkvmtkPolyDataNetworkExtraction::GetTopologyArrayName ( )
virtual

◆ SetAdvancementRatio()

virtual void vtkvmtkPolyDataNetworkExtraction::SetAdvancementRatio ( double  )
virtual

◆ GetAdvancementRatio()

virtual double vtkvmtkPolyDataNetworkExtraction::GetAdvancementRatio ( )
virtual

◆ GetTotalMarkedPoints()

virtual int vtkvmtkPolyDataNetworkExtraction::GetTotalMarkedPoints ( )
virtual

◆ GetMinimumStep()

virtual double vtkvmtkPolyDataNetworkExtraction::GetMinimumStep ( )
virtual

◆ GetGraphLayout()

virtual vtkPolyData* vtkvmtkPolyDataNetworkExtraction::GetGraphLayout ( )
virtual

◆ BoundaryExtractor()

void vtkvmtkPolyDataNetworkExtraction::BoundaryExtractor ( vtkPolyData *  polyInput,
vtkPolyData *  boundary 
)
protected

◆ BoundarySeparator()

void vtkvmtkPolyDataNetworkExtraction::BoundarySeparator ( vtkPolyData *  appendedBoundaries,
vtkPolyDataCollection *  boundaries 
)
protected

◆ InsertInEdgeTable()

void vtkvmtkPolyDataNetworkExtraction::InsertInEdgeTable ( vtkIdTypeArray *  edgeTable,
vtkIdType  pointId0,
vtkIdType  pointId1 
)
protected

◆ InsertUniqueInEdgeTable()

bool vtkvmtkPolyDataNetworkExtraction::InsertUniqueInEdgeTable ( vtkIdTypeArray *  edgeTable,
vtkIdType  pointId0,
vtkIdType  pointId1 
)
protected

◆ GetFromEdgeTable()

void vtkvmtkPolyDataNetworkExtraction::GetFromEdgeTable ( vtkIdTypeArray *  edgeTable,
vtkIdType  position,
vtkIdType  edge[2] 
)
protected

◆ UpdateEdgeTableCollectionReal()

void vtkvmtkPolyDataNetworkExtraction::UpdateEdgeTableCollectionReal ( vtkPolyData *  model,
vtkPolyDataCollection *  profiles,
vtkCollection *  edgeTables 
)
protected

◆ Distance()

double vtkvmtkPolyDataNetworkExtraction::Distance ( double  point1[3],
double  point2[3] 
)
protected

◆ GetFurthestDistance()

double vtkvmtkPolyDataNetworkExtraction::GetFurthestDistance ( vtkPolyDataCollection *  polyDataCollection,
double  fromPoint[3] 
)
protected

◆ Barycenter()

void vtkvmtkPolyDataNetworkExtraction::Barycenter ( vtkPoints *  points,
double  barycenter[3] 
)
protected

◆ ProfileBarycenter()

void vtkvmtkPolyDataNetworkExtraction::ProfileBarycenter ( vtkPoints *  points,
double  barycenter[3] 
)
protected

◆ DefineVirtualSphere()

void vtkvmtkPolyDataNetworkExtraction::DefineVirtualSphere ( vtkPolyDataCollection *  baseProfiles,
double  center[3],
double &  radius,
double  ratio 
)
protected

◆ CurrentPointId()

vtkIdType vtkvmtkPolyDataNetworkExtraction::CurrentPointId ( vtkPolyData *  model,
vtkIdType  currentEdge[2] 
)
protected

◆ InsertEdgeForNewProfiles()

void vtkvmtkPolyDataNetworkExtraction::InsertEdgeForNewProfiles ( vtkPolyData *  model,
vtkIdType *  edge,
vtkIdTypeArray *  edgeTable,
vtkIdTypeArray *  cellPairs,
vtkIdList *  pointIds 
)
protected

◆ LookForNeighbors()

bool vtkvmtkPolyDataNetworkExtraction::LookForNeighbors ( vtkPolyData *  model,
vtkIdType  pointId,
vtkIdList *  notVisitedIds,
vtkIdTypeArray *  edgeTableForIncludedGlobalProfiles 
)
protected

◆ PropagateFromBaseProfilePoint()

void vtkvmtkPolyDataNetworkExtraction::PropagateFromBaseProfilePoint ( vtkPolyData *  model,
vtkIdList *  toVisitPointIds,
double  center[3],
double  radius,
vtkIdTypeArray *  edgeTableForNewProfiles,
vtkIdTypeArray *  cellPairsForNewProfiles,
vtkIdList *  pointIdsForNewProfiles,
vtkPoints *  markedPoints,
vtkIdList *  markedPointIds,
vtkIdTypeArray *  edgeTableForIncludedGlobalProfiles 
)
protected

◆ LocateVirtualPoint()

void vtkvmtkPolyDataNetworkExtraction::LocateVirtualPoint ( vtkIdType  edge[2],
double  center[3],
double  radius,
vtkIdList *  pointIdsForNewProfiles,
vtkPoints *  pointsForNewProfiles,
vtkDoubleArray *  pointDistancesForNewProfiles,
double  virtualPoint[3] 
)
protected

◆ ReconstructNewProfiles()

void vtkvmtkPolyDataNetworkExtraction::ReconstructNewProfiles ( vtkPoints *  virtualPoints,
vtkIdTypeArray *  edgeTable,
vtkIdTypeArray *  cellPairs,
vtkPolyDataCollection *  newProfiles,
vtkCollection *  newProfilesEdgeTables 
)
protected

◆ GenerateNewProfiles()

void vtkvmtkPolyDataNetworkExtraction::GenerateNewProfiles ( vtkPolyData *  model,
double  center[3],
double  radius,
vtkIdTypeArray *  edgeTableForNewProfiles,
vtkIdTypeArray *  cellPairsForNewProfiles,
vtkIdList *  pointIdsForNewProfiles,
vtkPolyDataCollection *  newProfiles,
vtkCollection *  newProfilesEdgeTables 
)
protected

◆ UnmarkPoints()

void vtkvmtkPolyDataNetworkExtraction::UnmarkPoints ( vtkPolyData *  model,
vtkIdList *  markedPointIds 
)
protected

◆ ComputeStepRadius()

double vtkvmtkPolyDataNetworkExtraction::ComputeStepRadius ( vtkPoints *  points,
double  point1[3],
double  point2[3] 
)
protected

◆ ComputeMeanRadius()

double vtkvmtkPolyDataNetworkExtraction::ComputeMeanRadius ( vtkPoints *  points,
double  point1[3] 
)
protected

◆ PointsForRadius()

void vtkvmtkPolyDataNetworkExtraction::PointsForRadius ( vtkPoints *  markedPoints,
vtkPolyDataCollection *  baseProfiles,
vtkPolyDataCollection *  newProfiles,
vtkPoints *  pointsForRadius 
)
protected

◆ LookForIntersectingPoint()

void vtkvmtkPolyDataNetworkExtraction::LookForIntersectingPoint ( vtkPoints *  segmentPoints,
double  center[3],
double  radius,
vtkIdType &  intersectingPointId 
)
protected

◆ StepIteration()

vtkIdType vtkvmtkPolyDataNetworkExtraction::StepIteration ( vtkPolyData *  model,
vtkPolyDataCollection *  baseProfiles,
vtkCollection *  baseProfilesEdgeTables,
vtkPolyDataCollection *  globalProfiles,
vtkCollection *  globalProfilesEdgeTables,
vtkPolyDataCollection *  newProfiles,
vtkCollection *  newProfilesEdgeTables,
vtkPoints *  segmentPoints,
vtkDoubleArray *  segmentRadii,
vtkPoints *  bifurcationPoints,
vtkDoubleArray *  bifurcationRadii,
double  oldCenter[3],
double &  oldRadius,
double  advancementRatio 
)
protected

◆ MarkModelGlobalProfile()

void vtkvmtkPolyDataNetworkExtraction::MarkModelGlobalProfile ( vtkPolyData *  model,
vtkIdTypeArray *  newGlobalProfileEdgeTable 
)
protected

◆ SegmentTopology()

void vtkvmtkPolyDataNetworkExtraction::SegmentTopology ( vtkCollection *  bifurcations,
vtkCollection *  bifurcationsRadii,
double  firstSegmentPoint[3],
double  lastSegmentPoint[3],
double  firstPoint[3],
double &  firstRadius,
double  lastPoint[3],
double &  lastRadius,
vtkIdType  segmentTopology[2] 
)
protected

◆ BuildSegment()

void vtkvmtkPolyDataNetworkExtraction::BuildSegment ( vtkPoints *  segmentPoints,
vtkDoubleArray *  segmentRadii,
vtkIdType  segmentTopology[2],
double  firstPoint[3],
double  firstRadius,
double  lastPoint[3],
double  lastRadius,
const double *  centralPoint,
vtkPolyData *  segment 
)
protected

◆ InsertNewBifurcation()

void vtkvmtkPolyDataNetworkExtraction::InsertNewBifurcation ( vtkCollection *  bifurcations,
vtkCollection *  bifurcationsRadii,
vtkPoints *  bifurcationPoints,
vtkDoubleArray *  bifurcationRadii,
vtkPolyDataCollection *  additionalSegments 
)
protected

◆ SegmentIteration()

void vtkvmtkPolyDataNetworkExtraction::SegmentIteration ( vtkPolyData *  model,
vtkPolyData *  initialProfile,
vtkIdTypeArray *  initialProfileEdgeTable,
vtkPolyDataCollection *  globalProfiles,
vtkCollection *  globalProfilesEdgeTables,
vtkCollection *  bifurcations,
vtkCollection *  bifurcationsRadii,
vtkPolyDataCollection *  segments,
double  advancementRatio 
)
protected

◆ JoinSegments()

void vtkvmtkPolyDataNetworkExtraction::JoinSegments ( vtkPolyData *  segment0,
vtkPolyData *  segment1,
bool  first0,
bool  first1,
vtkPolyData *  segment 
)
protected

◆ RemoveDegenerateBifurcations()

void vtkvmtkPolyDataNetworkExtraction::RemoveDegenerateBifurcations ( vtkPolyDataCollection *  segments,
vtkCollection *  bifurcations 
)
protected

◆ GlobalIteration()

void vtkvmtkPolyDataNetworkExtraction::GlobalIteration ( vtkPolyData *  model,
vtkPolyDataCollection *  globalProfiles,
vtkPolyData *  network,
double  advancementRatio 
)
protected

◆ MarkModelRealBoundary()

void vtkvmtkPolyDataNetworkExtraction::MarkModelRealBoundary ( vtkPolyData *  model,
vtkPolyData *  modelBoundary 
)
protected

◆ Graph()

void vtkvmtkPolyDataNetworkExtraction::Graph ( vtkPolyData *  network,
vtkPolyData *  graphLayout 
)
protected

◆ RequestData()

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

Member Data Documentation

◆ GraphLayout

vtkPolyData* vtkvmtkPolyDataNetworkExtraction::GraphLayout
protected

Definition at line 127 of file vtkvmtkPolyDataNetworkExtraction.h.

◆ MarksArrayName

char* vtkvmtkPolyDataNetworkExtraction::MarksArrayName
protected

Definition at line 129 of file vtkvmtkPolyDataNetworkExtraction.h.

◆ RadiusArrayName

char* vtkvmtkPolyDataNetworkExtraction::RadiusArrayName
protected

Definition at line 130 of file vtkvmtkPolyDataNetworkExtraction.h.

◆ TopologyArrayName

char* vtkvmtkPolyDataNetworkExtraction::TopologyArrayName
protected

Definition at line 131 of file vtkvmtkPolyDataNetworkExtraction.h.

◆ MinimumStep

double vtkvmtkPolyDataNetworkExtraction::MinimumStep
protected

Definition at line 133 of file vtkvmtkPolyDataNetworkExtraction.h.

◆ AdvancementRatio

double vtkvmtkPolyDataNetworkExtraction::AdvancementRatio
protected

Definition at line 135 of file vtkvmtkPolyDataNetworkExtraction.h.

◆ TotalMarkedPoints

vtkIdType vtkvmtkPolyDataNetworkExtraction::TotalMarkedPoints
protected

Definition at line 137 of file vtkvmtkPolyDataNetworkExtraction.h.


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