X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcpPluginsBase%2FAppendRawDataFilter.cxx;fp=lib%2FcpPluginsBase%2FAppendRawDataFilter.cxx;h=fc2fa23c73676230019acf34fa240bfd5dbcc260;hb=2e142df11d6f312a2a2b5097b8da73571ed523e8;hp=0000000000000000000000000000000000000000;hpb=61b3659afe961ed248f30e26f9ca8f28fcfafddc;p=cpPlugins.git diff --git a/lib/cpPluginsBase/AppendRawDataFilter.cxx b/lib/cpPluginsBase/AppendRawDataFilter.cxx new file mode 100644 index 0000000..fc2fa23 --- /dev/null +++ b/lib/cpPluginsBase/AppendRawDataFilter.cxx @@ -0,0 +1,57 @@ +// ========================================================================= +// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co) +// ========================================================================= + +#include +#include +#include + +// ------------------------------------------------------------------------- +cpPluginsBase::AppendRawDataFilter:: +AppendRawDataFilter( ) + : Superclass( ) +{ +} + +// ------------------------------------------------------------------------- +cpPluginsBase::AppendRawDataFilter:: +~AppendRawDataFilter( ) +{ +} + +// ------------------------------------------------------------------------- +void cpPluginsBase::AppendRawDataFilter:: +_Configure( ) +{ + this->_ConfigureInput< cpPluginsBase::RawData >( "Input", true, true ); + this->_ConfigureOutput< cpPluginsBase::RawData >( "Output" ); +} + +// ------------------------------------------------------------------------- +void cpPluginsBase::AppendRawDataFilter:: +_GenerateData( ) +{ + typedef cpPluginsBase::RawData _TData; + + unsigned int N = this->GetNumberOfInputs( "Input" ); + std::size_t size = 0; + for( unsigned int i = 0; i < N; ++i ) + { + const _TData* input = this->_GetInput< _TData >( "Input", i ); + size += input->GetSize( ); + + } // rof + + char* buffer = new char[ size ]; + size = 0; + for( unsigned int i = 0; i < N; ++i ) + { + const _TData* input = this->_GetInput< _TData >( "Input", i ); + std::memcpy( buffer + size, input->GetBuffer( ), input->GetSize( ) ); + size += input->GetSize( ); + + } // rof + this->_GetOutput< _TData >( "Output" )->TakeOwnership( buffer, size ); +} + +// eof - $RCSfile$