#ifndef __fpa__Image__SkeletonToPolyDataFilter__hxx__
#define __fpa__Image__SkeletonToPolyDataFilter__hxx__
-#include <vtkCellArray.h>
-#include <vtkInformation.h>
-#include <vtkInformationVector.h>
-#include <vtkSmartPointer.h>
+#ifdef USE_VTK
+# include <vtkCellArray.h>
+# include <vtkInformation.h>
+# include <vtkInformationVector.h>
+# include <vtkPointData.h>
+# include <vtkUnsignedIntArray.h>
+# include <vtkSmartPointer.h>
+#endif // USE_VTK
// -------------------------------------------------------------------------
template< class _TSkeleton >
if( this->m_Skeleton != sk )
{
this->m_Skeleton = sk;
+#ifdef USE_VTK
this->Modified( );
+#endif // USE_VTK
} // fi
}
template< class _TSkeleton >
fpa::Image::SkeletonToPolyDataFilter< _TSkeleton >::
SkeletonToPolyDataFilter( )
+#ifdef USE_VTK
: vtkPolyDataAlgorithm( ),
m_Skeleton( NULL )
+#endif // USE_VTK
{
+#ifdef USE_VTK
this->SetNumberOfInputPorts( 0 );
+#endif // USE_VTK
}
// -------------------------------------------------------------------------
{
}
+#ifdef USE_VTK
// -------------------------------------------------------------------------
template< class _TSkeleton >
int fpa::Image::SkeletonToPolyDataFilter< _TSkeleton >::
out->SetLines( vtkSmartPointer< vtkCellArray >::New( ) );
out->SetPolys( vtkSmartPointer< vtkCellArray >::New( ) );
out->SetStrips( vtkSmartPointer< vtkCellArray >::New( ) );
+ vtkSmartPointer< vtkUnsignedIntArray > darray =
+ vtkSmartPointer< vtkUnsignedIntArray >::New( );
+ darray->SetNumberOfComponents( 1 );
+ out->GetPointData( )->SetScalars( darray );
vtkPoints* points = out->GetPoints( );
vtkCellArray* lines = out->GetLines( );
// Assign all data
- typename TMatrix::const_iterator mIt = this->m_Skeleton->BeginEdgesRows( );
+ unsigned int dcount = 0;
+ typename TSkeleton::TMatrix::const_iterator mIt = this->m_Skeleton->BeginEdgesRows( );
for( ; mIt != this->m_Skeleton->EndEdgesRows( ); ++mIt )
{
// TODO: mIt->first; --> this is the row index. <--
- typename TMatrixRow::const_iterator rIt = mIt->second.begin( );
+ typename TSkeleton::TMatrixRow::const_iterator rIt = mIt->second.begin( );
for( ; rIt != mIt->second.end( ); ++rIt )
{
// TODO: rIt->first; --> this is the column index.
- typename TEdges::const_iterator eIt = rIt->second.begin( );
+ typename TSkeleton::TEdges::const_iterator eIt = rIt->second.begin( );
for( ; eIt != rIt->second.end( ); ++eIt )
{
_TPath* path = *eIt;
points->InsertNextPoint( pnt[ 0 ], pnt[ 1 ], 0 );
else
points->InsertNextPoint( pnt[ 0 ], pnt[ 1 ], pnt[ 2 ] );
+ darray->InsertNextTuple1( double( dcount ) );
if( i > 0 )
{
lines->InsertNextCell( 2 );
} // fi
} // rof
+ dcount++;
} // rof
{
return( 1 );
}
+#endif // USE_VTK
#endif // __fpa__Image__SkeletonToPolyDataFilterFilter__hxx__