@@ -0,0 +1,1562 @@
+package com.edinarobotics.utils.gamepad.filters;%0A%0Aimport com.edinarobotics.utils.gamepad.GamepadFilter;%0Aimport com.edinarobotics.utils.gamepad.GamepadResult;%0A%0A/**%0A * Applies a linear scale to all axes of a gamepad's joysticks. This filter%0A * is computed by multiplying the value of all axes by a given constant.%0A */%0Apublic class ScalingLinearFilter implements GamepadFilter%7B%0A    double slope;%0A    %0A    /**%0A     * Constructs a new ScalingLinearFilter that applies the linear function%0A     * with given slope to all axes of a gamepad's joysticks.%0A     * @param slope %0A     */%0A    public ScalingLinearFilter(double slope)%7B%0A        this.slope = slope;%0A    %7D%0A    %0A    /**%0A     * Applies this filter to the given GamepadResult.%0A     * @param toFilter The GamepadResult to which this filter is to be applied.%0A     * @return A new GamepadResult that is equivalent to %7B@code toFilter%7D after%0A     * this filter is applied.%0A     */%0A    public GamepadResult filter(GamepadResult toFilter)%7B%0A        return new GamepadResult(filter(toFilter.getLeftX()),%0A                filter(toFilter.getLeftY()),%0A                filter(toFilter.getRightX()),%0A                filter(toFilter.getRightY()));%0A    %7D%0A    %0A    /**%0A     * Internal function used to apply the filter value to %7B@code double%7D%0A     * values. It multiplies the value by the given constant, %7B@code slope%7D.%0A     * @param value The %7B@code double%7D that is to be filtered.%0A     * @return A double with this filter operation applied to it.%0A     */%0A    private double filter(double value)%7B%0A        return slope*value;%0A    %7D%0A%7D%0A

Add ScalingLinearFilter to the project.