summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common/accel-lookup.hpp12
-rw-r--r--wrapper/wrapper.cpp5
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)]