--- /dev/null
+#ifndef __FPA__IO__UNIQUEVALUESCONTAINERWRITER__HXX__
+#define __FPA__IO__UNIQUEVALUESCONTAINERWRITER__HXX__
+
+#include <fstream>
+#include <itkMacro.h>
+
+// -------------------------------------------------------------------------
+template< class T >
+void fpa::IO::UniqueValuesContainerWriter< T >::
+SetInput( const T* input )
+{
+ this->itk::ProcessObject::SetNthInput( 0, const_cast< T* >( input ) );
+}
+
+// -------------------------------------------------------------------------
+template< class T >
+T* fpa::IO::UniqueValuesContainerWriter< T >::
+GetInput( )
+{
+ return( dynamic_cast< T* >( this->itk::ProcessObject::GetInput( 0 ) ) );
+}
+
+// -------------------------------------------------------------------------
+template< class T >
+const T* fpa::IO::UniqueValuesContainerWriter< T >::
+GetInput( ) const
+{
+ return(
+ dynamic_cast< const T* >( this->itk::ProcessObject::GetInput( 0 ) )
+ );
+}
+
+// -------------------------------------------------------------------------
+template< class T >
+void fpa::IO::UniqueValuesContainerWriter< T >::
+Update( )
+{
+ T* input = this->GetInput( );
+ if( input != NULL )
+ {
+ input->UpdateOutputInformation( );
+ input->UpdateOutputData( );
+ this->GenerateData( );
+ this->ReleaseInputs( );
+
+ } // fi
+}
+
+// -------------------------------------------------------------------------
+template< class T >
+fpa::IO::UniqueValuesContainerWriter< T >::
+UniqueValuesContainerWriter( )
+ : Superclass( ),
+ m_FileName( "" )
+{
+ this->SetNumberOfRequiredInputs( 1 );
+}
+
+// -------------------------------------------------------------------------
+template< class T >
+fpa::IO::UniqueValuesContainerWriter< T >::
+~UniqueValuesContainerWriter( )
+{
+}
+
+// -------------------------------------------------------------------------
+template< class T >
+void fpa::IO::UniqueValuesContainerWriter< T >::
+GenerateData( )
+{
+ const T* input = this->GetInput( );
+
+ std::ofstream out( this->m_FileName.c_str( ) );
+ if( !out )
+ {
+ itkExceptionMacro(
+ << "Error opening file to write a minimum spanning tree: \""
+ << this->m_FileName
+ << "\""
+ );
+ return;
+
+ } // fi
+
+ out << T::TValue::Dimension << std::endl;
+
+ const typename T::TDecorated& real_input = input->Get( );
+ out << real_input.size( ) << std::endl;
+ for(
+ typename T::TDecorated::const_iterator iIt = real_input.begin( );
+ iIt != real_input.end( );
+ ++iIt
+ )
+ {
+ for( unsigned int d = 0; d < T::TValue::Dimension; ++d )
+ out << ( *iIt )[ d ] << " ";
+ out << std::endl;
+
+ } // rof
+ out.close( );
+}
+
+#endif // __FPA__IO__UNIQUEVALUESCONTAINERWRITER__HXX__
+
+// eof - $RCSfile$