]> Creatis software - cpPlugins.git/blob - lib/cpPluginsBase/AppendRawDataFilter.cxx
Moved to version 1.0
[cpPlugins.git] / lib / cpPluginsBase / AppendRawDataFilter.cxx
1 // =========================================================================
2 // @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
3 // =========================================================================
4
5 #include <cstring>
6 #include <cpPluginsBase/AppendRawDataFilter.h>
7 #include <cpPluginsBase/RawData.h>
8
9 // -------------------------------------------------------------------------
10 cpPluginsBase::AppendRawDataFilter::
11 AppendRawDataFilter( )
12   : Superclass( )
13 {
14 }
15
16 // -------------------------------------------------------------------------
17 cpPluginsBase::AppendRawDataFilter::
18 ~AppendRawDataFilter( )
19 {
20 }
21
22 // -------------------------------------------------------------------------
23 void cpPluginsBase::AppendRawDataFilter::
24 _Configure( )
25 {
26   this->_ConfigureInput< cpPluginsBase::RawData >( "Input", true, true );
27   this->_ConfigureOutput< cpPluginsBase::RawData >( "Output" );
28 }
29
30 // -------------------------------------------------------------------------
31 void cpPluginsBase::AppendRawDataFilter::
32 _GenerateData( )
33 {
34   typedef cpPluginsBase::RawData _TData;
35
36   unsigned int N = this->GetNumberOfInputs( "Input" );
37   std::size_t size = 0;
38   for( unsigned int i = 0; i < N; ++i )
39   {
40     const _TData* input = this->_GetInput< _TData >( "Input", i );
41     size += input->GetSize( );
42
43   } // rof
44
45   char* buffer = new char[ size ];
46   size = 0;
47   for( unsigned int i = 0; i < N; ++i )
48   {
49     const _TData* input = this->_GetInput< _TData >( "Input", i );
50     std::memcpy( buffer + size, input->GetBuffer( ), input->GetSize( ) );
51     size += input->GetSize( );
52
53   } // rof
54   this->_GetOutput< _TData >( "Output" )->TakeOwnership( buffer, size );
55 }
56
57 // eof - $RCSfile$