+++ /dev/null
-#include <cpPlugins/Interface/PolyLineParametricPath.h>
-
-#include <vtkCellArray.h>
-#include <vtkPoints.h>
-
-#define ITK_MANUAL_INSTANTIATION
-#include <itkPolyLineParametricPath.h>
-#include <itkImageBase.h>
-
-// -------------------------------------------------------------------------
-std::string cpPlugins::Interface::PolyLineParametricPath::
-GetClassName( ) const
-{
- return( "cpPlugins::Interface::PolyLineParametricPath" );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Interface::PolyLineParametricPath::
-SetRealDataObject( itk::DataObject* dobj, itk::DataObject* ref_image )
-{
- typedef itk::PolyLineParametricPath< 2 > _T2;
- typedef itk::PolyLineParametricPath< 3 > _T3;
-
- this->Superclass::SetRealDataObject( dobj );
-
- if( ref_image != NULL )
- {
- if( dynamic_cast< _T2* >( dobj ) != NULL )
- this->_VTK< 2 >( ref_image );
- else if( dynamic_cast< _T3* >( dobj ) != NULL )
- this->_VTK< 3 >( ref_image );
-
- } // fi
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::Interface::PolyLineParametricPath::
-PolyLineParametricPath( )
- : Superclass( )
-{
- this->m_PolyData = vtkSmartPointer< vtkPolyData >::New( );
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::Interface::PolyLineParametricPath::
-~PolyLineParametricPath( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< unsigned int D >
-void cpPlugins::Interface::PolyLineParametricPath::
-_VTK( itk::DataObject* ref_image )
-{
- typedef itk::PolyLineParametricPath< D > _TPath;
- typedef typename _TPath::VertexListType _TVertices;
- typedef typename _TPath::ContinuousIndexType _TIndex;
- typedef itk::ImageBase< D > _TImage;
- typedef typename _TImage::PointType _TPoint;
-
- _TPath* path =
- dynamic_cast< _TPath* >( this->m_RealDataObject.GetPointer( ) );
- if( path == NULL )
- return;
- const _TVertices* vertices = path->GetVertexList( );
- if( vertices == NULL )
- return;
- const _TImage* image = dynamic_cast< const _TImage* >( ref_image );
-
- vtkSmartPointer< vtkPoints > points =
- vtkSmartPointer< vtkPoints >::New( );
- vtkSmartPointer< vtkCellArray > lines =
- vtkSmartPointer< vtkCellArray >::New( );
- double x, y, z;
- for( unsigned int i = 0; i < vertices->Size( ); ++i )
- {
- _TIndex idx = vertices->GetElement( i );
- if( image != NULL )
- {
- _TPoint pnt;
- image->TransformContinuousIndexToPhysicalPoint( idx, pnt );
- x = double( pnt[ 0 ] );
- y = double( pnt[ 1 ] );
- z = ( D >= 3 )? double( pnt[ 2 ] ): double( 0 );
- }
- else
- {
- x = double( idx[ 0 ] );
- y = double( idx[ 1 ] );
- z = ( D >= 3 )? double( idx[ 2 ] ): double( 0 );
-
- } // fi
- points->InsertNextPoint( x, y, z );
- if( i > 0 )
- {
- lines->InsertNextCell( 2 );
- lines->InsertCellPoint( i - 1 );
- lines->InsertCellPoint( i );
-
- } // fi
-
- } // rof
- this->m_PolyData->SetPoints( points );
- this->m_PolyData->SetLines( lines );
-}
-
-// eof - $RCSfile$