+#ifndef __CPEXTENSIONS__DATASTRUCTURES__POLYLINEPARAMETRICPATH__H__
+#define __CPEXTENSIONS__DATASTRUCTURES__POLYLINEPARAMETRICPATH__H__
+
+#include <itkPolyLineParametricPath.h>
+#include <itkImageBase.h>
+
+namespace cpExtensions
+{
+ namespace DataStructures
+ {
+ /**
+ */
+ template< unsigned int _NDim >
+ class PolyLineParametricPath
+ : public itk::PolyLineParametricPath< _NDim >
+ {
+ public:
+ typedef PolyLineParametricPath Self;
+ typedef itk::PolyLineParametricPath< _NDim > Superclass;
+ typedef itk::SmartPointer< Self > Pointer;
+ typedef itk::SmartPointer< const Self > ConstPointer;
+
+ typedef itk::ImageBase< _NDim > TImageBase;
+
+ public:
+ itkNewMacro( Self );
+ itkTypeMacro( PolyLineParametricPath, itk::PolyLineParametricPath );
+
+ public:
+ TImageBase* GetReferenceImage( )
+ { return( this->m_ReferenceImage ); }
+ const TImageBase* GetReferenceImage( ) const
+ { return( this->m_ReferenceImage ); }
+ void SetReferenceImage( const TImageBase* image )
+ {
+ this->m_ReferenceImage = TImageBase::New( );
+ this->m_ReferenceImage->SetDirection( image->GetDirection( ) );
+ this->m_ReferenceImage->SetOrigin( image->GetOrigin( ) );
+ this->m_ReferenceImage->SetSpacing( image->GetSpacing( ) );
+ this->Modified( );
+ }
+
+ protected:
+ PolyLineParametricPath( ) { }
+ virtual ~PolyLineParametricPath( ) { }
+
+ private:
+ // Purposely not implemented
+ PolyLineParametricPath( const Self& other );
+ Self& operator=( const Self& other );
+
+ protected:
+ typename TImageBase::Pointer m_ReferenceImage;
+ };
+
+ } // ecapseman
+
+} // ecapseman
+
+#endif // __CPEXTENSIONS__DATASTRUCTURES__POLYLINEPARAMETRICPATH__H__
+
+// eof - $RCSfile$