rendered paste body// Method called each time step before computation
void World::step(){
annarLayer* layer = net_->getLayer(string("input"));
float radius1=0.7f;
float radius2=0.1f;
float sigma=3.0f;
int speed1=5000;
int speed2=1000;
float center_w1=(float)(layer->width()/2+ layer->width()/2 * radius1 * cos(2*M_PI* (net_->nb_step()%speed1)/speed1 ));
float center_h1=((float)(layer->height()/2+ layer->height()/2*radius1* sin(2*M_PI* (net_->nb_step()%speed1)/speed1)));
float center_w2=(float)(layer->width()/2+ layer->width()/2 * radius2 * cos(2*M_PI* (net_->nb_step()%speed2)/speed2 ));
float center_h2=((float)(layer->height()/2+ layer->height()/2*radius2* sin(2*M_PI* (net_->nb_step()%speed2)/speed2)));
float dist1=0.0f;
float dist2=0.0f;
for(int w =0; w<layer->width();w++){
for(int h =0; h<layer->height();h++){
dist1=(w-center_w1)*(w-center_w1)+(h-center_h1)*(h-center_h1);
dist2=(w-center_w2)*(w-center_w2)+(h-center_h2)*(h-center_h2);
if(dist1 < dist2){
layer->neuron(w,h)->setBaseline(exp(-dist1/sigma/sigma)+0.2f*rand_num);
} else{
layer->neuron(w,h)->setBaseline(exp(-dist2/sigma/sigma)+0.5f*rand_num);
}
}
}
}