mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-01-19 04:52:12 +01:00
OP-1769 ground actuator
code review comment addressed to reduce code size
This commit is contained in:
parent
616cd466d2
commit
5e7a3c30e1
@ -560,27 +560,7 @@ float ProcessMixer(const int index, const float curve1, const float curve2,
|
|||||||
*/
|
*/
|
||||||
static float MixerCurveFullRangeProportional(const float input, const float *curve, uint8_t elements)
|
static float MixerCurveFullRangeProportional(const float input, const float *curve, uint8_t elements)
|
||||||
{
|
{
|
||||||
float abs_input = fabsf(input);
|
float unsigned_value = MixerCurveFullRangeAbsolute(input, curve, elements);
|
||||||
float scale = abs_input * (float)(elements - 1);
|
|
||||||
int idx1 = scale;
|
|
||||||
|
|
||||||
scale -= (float)idx1; // remainder
|
|
||||||
if (curve[0] < -1) {
|
|
||||||
return input;
|
|
||||||
}
|
|
||||||
if (idx1 < 0) {
|
|
||||||
idx1 = 0; // clamp to lowest entry in table
|
|
||||||
scale = 0;
|
|
||||||
}
|
|
||||||
int idx2 = idx1 + 1;
|
|
||||||
if (idx2 >= elements) {
|
|
||||||
idx2 = elements - 1; // clamp to highest entry in table
|
|
||||||
if (idx1 >= elements) {
|
|
||||||
idx1 = elements - 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
float unsigned_value = curve[idx1] * (1.0f - scale) + curve[idx2] * scale;
|
|
||||||
if (input < 0.0f) {
|
if (input < 0.0f) {
|
||||||
return -unsigned_value;
|
return -unsigned_value;
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user