Line data Source code
1 : /** 2 : * \file OffsetVolumeFilter.hxx 3 : */ 4 : 5 : #include "OffsetVolumeFilter.h" 6 : 7 : namespace ATK 8 : { 9 : template<typename DataType_> 10 8 : OffsetVolumeFilter<DataType_>::OffsetVolumeFilter(gsl::index nb_channels) 11 8 : :Parent(nb_channels, nb_channels) 12 : { 13 8 : } 14 : 15 : template<typename DataType_> 16 5 : void OffsetVolumeFilter<DataType_>::set_volume(DataType_ volume) 17 : { 18 5 : this->volume = volume; 19 5 : } 20 : 21 : template<typename DataType_> 22 1 : DataType_ OffsetVolumeFilter<DataType_>::get_volume() const 23 : { 24 1 : return volume; 25 : } 26 : 27 : template<typename DataType_> 28 3 : void OffsetVolumeFilter<DataType_>::set_offset(DataType_ offset) 29 : { 30 3 : this->offset = offset; 31 3 : } 32 : 33 : template<typename DataType_> 34 1 : DataType_ OffsetVolumeFilter<DataType_>::get_offset() const 35 : { 36 1 : return offset; 37 : } 38 : 39 : template<typename DataType_> 40 8 : void OffsetVolumeFilter<DataType_>::process_impl(gsl::index size) const 41 : { 42 16 : for(gsl::index channel = 0; channel < nb_input_ports; ++channel) 43 : { 44 8 : const DataType* ATK_RESTRICT input = converted_inputs[channel]; 45 8 : DataType* ATK_RESTRICT output = outputs[channel]; 46 4150 : for(gsl::index i = 0; i < size; ++i) 47 : { 48 4142 : output[i] = offset + volume * input[i]; 49 : } 50 : } 51 8 : } 52 : }