#include "impulse.h"

impulse::impulse(double startParam, double stopParam, double amplitudeParam, double offsetParam,int X, int Y){
    start = startParam;
    stop = stopParam;
    amplitude = amplitudeParam;
    offset = offsetParam;

    output = new CImg <double>(Y,X,1,3);

    cimg_forXY(*output,x,y) {
        (*output)(x,y,0,0) = 1.0,
        (*output)(x,y,0,1) = 1.0,
        (*output)(x,y,0,2) = 1.0;
    }
}

impulse::impulse(const impulse& copy){

}

impulse::~impulse(void){

}

//------------------------------------------------------------------------------//

CImg<double>* impulse::update(double t){


    if(t>=start && t <=stop){
        cimg_forXY(*output,x,y) {
            (*output)(x,y,0,0) = amplitude + offset,
            (*output)(x,y,0,1) = amplitude + offset,
            (*output)(x,y,0,2) = amplitude + offset;
        }
    }else{
        cimg_forXY(*output,x,y) {
            (*output)(x,y,0,0) = offset,
            (*output)(x,y,0,1) = offset,
            (*output)(x,y,0,2) = offset;
        }
    }


    return output;
}