diff options
| -rw-r--r-- | common/accel-lookup.hpp | 12 | ||||
| -rw-r--r-- | wrapper/wrapper.cpp | 5 |
2 files changed, 8 insertions, 9 deletions
diff --git a/common/accel-lookup.hpp b/common/accel-lookup.hpp index 6eb16d9..f70f2b1 100644 --- a/common/accel-lookup.hpp +++ b/common/accel-lookup.hpp @@ -165,6 +165,7 @@ namespace rawaccel { enum { capacity = SPACED_LUT_CAPACITY / 4 }; fp_rep_range range; +; arbitrary_lut_point data[capacity] = {}; int log_lookup[capacity] = {}; double first_point_speed; @@ -238,7 +239,7 @@ namespace rawaccel { } - void init(vec2d* points, int length) + void fill(vec2<float>* points, int length) { first_point_speed = points[0].x; // -2 because the last index in the arbitrary array is used for slope-intercept only @@ -251,8 +252,8 @@ namespace rawaccel { range = fp_rep_range{ start, end, num }; last_log_lookup_index = num * (end - start) - 1; - vec2d current = {0, 0}; - vec2d next; + vec2<float> current = {0, 0}; + vec2<float> next; int log_index = 0; double log_inner_iterator = range.start; double log_inner_slice = 1 / range.num; @@ -284,11 +285,8 @@ namespace rawaccel { } } - arbitrary_lut(vec2d* points, int length) + arbitrary_lut(const accel_args&) { - init(points, length); } - - arbitrary_lut(const accel_args&) {} }; } diff --git a/wrapper/wrapper.cpp b/wrapper/wrapper.cpp index f7da5d4..f901ce1 100644 --- a/wrapper/wrapper.cpp +++ b/wrapper/wrapper.cpp @@ -186,9 +186,10 @@ public ref struct ArbitraryLut sealed : public LutBase virtual void SetData(ra::accel_union& accel) override { - throw gcnew NotImplementedException(); - } + pin_ptr<float> pdata = &data[0,0]; + accel.arb_lut.fill(pdata, data->Length); + } }; [JsonObject(ItemRequired = Required::Always)] |