git-svn-id: svn://db.shs.com.ru/libs@1 a8b55f48-bf90-11e4-a774-851b48703e85
37 lines
1.1 KiB
C++
37 lines
1.1 KiB
C++
#include "brick_emits.h"
|
|
|
|
|
|
bool BrickEmitLinear::tick_body(double time) {
|
|
outputs[0] = time * inputs[Slope] + inputs[StartValue];
|
|
return true;
|
|
}
|
|
|
|
|
|
bool BrickEmitSin::tick_body(double time) {
|
|
outputs[0] = inputs[Amplitude] * sin(inputs[Frequency] * time * (M_PI + M_PI) + inputs[PhaseShift]);
|
|
//cout << time << "\t: " << outputs[0] << endl;
|
|
return true;
|
|
}
|
|
|
|
|
|
bool BrickEmitDelta::tick_body(double time) {
|
|
outputs[0] = (pt < inputs[Time] && time >= inputs[Time]) ? 1. / dt : 0.;
|
|
//cout << time << "\t: " << outputs[0] << endl;
|
|
return true;
|
|
}
|
|
|
|
|
|
bool BrickEmitStep::tick_body(double time) {
|
|
if (time == inputs[Time]) outputs[0] = (inputs[StartValue] + inputs[FinishValue]) / 2.;
|
|
else outputs[0] = (time > inputs[Time]) ? inputs[FinishValue] : inputs[StartValue];
|
|
//cout << time << "\t: " << outputs[0] << endl;
|
|
return true;
|
|
}
|
|
|
|
|
|
bool BrickEmitPulse::tick_body(double time) {
|
|
outputs[0] = time < inputs[StartDelay] ? 0. : (residue(time - inputs[StartDelay], inputs[Period]) <= inputs[Duration]) ? inputs[Amplitude] : 0.;
|
|
//cout << time << "\t: " << outputs[0] << endl;
|
|
return true;
|
|
}
|