diff options
Diffstat (limited to 'grapher/Form1.cs')
| -rw-r--r-- | grapher/Form1.cs | 76 |
1 files changed, 74 insertions, 2 deletions
diff --git a/grapher/Form1.cs b/grapher/Form1.cs index e0953eb..3807d2a 100644 --- a/grapher/Form1.cs +++ b/grapher/Form1.cs @@ -8,9 +8,51 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; +using System.Runtime.InteropServices; namespace grapher { + public enum accel_mode + { + linear=1, classic, natural, logarithmic, sigmoid, power, noaccel + } + + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] + public struct vec2d + { + public double x; + public double y; + } + + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] + public struct accel_args + { + public double offset; + public double accel; + public double limit; + public double exponent; + public double midpoint; + public double power_scale; + public vec2d weight; + } + + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] + public struct accel_fn_args + { + public accel_args acc_args; + public int accel_mode; + public double time_min; + public vec2d cap; + } + + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] + public struct modifier_args + { + public double degrees; + public vec2d sens; + public accel_fn_args acc_fn_args; + } + public partial class RawAcceleration : Form { public struct MagnitudeData @@ -27,8 +69,31 @@ namespace grapher public RawAcceleration() { InitializeComponent(); + modifier_args args; + + args.degrees = 0; + args.sens.x = 1; + args.sens.y = 1; + args.acc_fn_args.acc_args.offset = 0; + args.acc_fn_args.acc_args.accel = 0.01; + args.acc_fn_args.acc_args.limit = 2; + args.acc_fn_args.acc_args.exponent = 1; + args.acc_fn_args.acc_args.midpoint = 0; + args.acc_fn_args.acc_args.power_scale = 1; + args.acc_fn_args.acc_args.weight.x = 1; + args.acc_fn_args.acc_args.weight.y = 1; + args.acc_fn_args.accel_mode = (int)accel_mode.natural; + args.acc_fn_args.time_min = 0.4; + args.acc_fn_args.cap.x = 0; + args.acc_fn_args.cap.y = 0; + + IntPtr args_ptr = Marshal.AllocHGlobal(Marshal.SizeOf(args)); + Marshal.StructureToPtr(args, args_ptr, false); + + ManagedAcceleration = new ManagedAccel(args_ptr); + + Marshal.FreeHGlobal(args_ptr); - ManagedAcceleration = new ManagedAccel(5, 0, 0.3, 1.25, 15); Sensitivity = new OptionXY(sensitivityBoxX, sensitivityBoxY, sensXYLock, this, 1, sensitivityLabel, "Sensitivity"); Rotation = new Option(rotationBox, this, 0, rotationLabel, "Rotation"); Weight = new OptionXY(weightBoxFirst, weightBoxSecond, weightXYLock, this, 1, weightLabel, "Weight"); @@ -44,10 +109,17 @@ namespace grapher accelTypeDrop, new Option[] { + Offset, Acceleration, LimitOrExponent, Midpoint, - }); + }, + new OptionXY[] + { + Weight, + Cap, + }, + writeButton); UpdateGraph(); |