1 // =========================================================================
2 // @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
3 // =========================================================================
6 #include <cpPluginsBase/RotNRawDataFunctor.h>
8 // -------------------------------------------------------------------------
9 unsigned char cpPluginsBase::RotNRawDataFunctor::
10 Evaluate( const unsigned char& c ) const
12 static const TNatural s =
13 TNatural( std::numeric_limits< unsigned char >::max( ) ) + 1;
14 TNatural d = TNatural( this->GetInValue( "Delta" ) );
15 if( TBool( this->GetInValue( "Invert" ) ) )
19 return( ( unsigned char )( ( TNatural( c ) + d ) % s ) );
22 // -------------------------------------------------------------------------
23 cpPluginsBase::RotNRawDataFunctor::
29 // -------------------------------------------------------------------------
30 cpPluginsBase::RotNRawDataFunctor::
31 ~RotNRawDataFunctor( )
35 // -------------------------------------------------------------------------
36 void cpPluginsBase::RotNRawDataFunctor::
39 this->ConfigureInValue( "Delta", TNatural( 13 ) );
40 this->ConfigureInValue( "Invert", TBool( false ) );
43 // -------------------------------------------------------------------------
44 void cpPluginsBase::RotNRawDataFunctor::
49 // -------------------------------------------------------------------------
51 void cpPluginsBase::RotNRawDataFunctor::
54 typedef cpPluginsBase::RawData _TData;
56 unsigned int N = this->GetNumberOfInputs( "Input" );
58 for( unsigned int i = 0; i < N; ++i )
60 const _TData* input = this->_GetInput< _TData >( "Input", i );
61 size += input->GetSize( );
65 char* buffer = new char[ size ];
67 for( unsigned int i = 0; i < N; ++i )
69 const _TData* input = this->_GetInput< _TData >( "Input", i );
70 std::memcpy( buffer + size, input->GetBuffer( ), input->GetSize( ) );
71 size += input->GetSize( );
74 this->_GetOutput< _TData >( "Output" )->TakeOwnership( buffer, size );