// Path: src/integeruser/jglsdk/glutil/MousePoles.java
// public enum MouseButtons {
//     MB_LEFT_BTN,
//     MB_RIGHT_BTN,
//     MB_MIDDLE_BTN
// }
// 
// Path: src/integeruser/jglsdk/glutil/MousePoles.java
// public enum MouseModifiers {
//     MM_KEY_SHIFT,
//     MM_KEY_CTRL,
//     MM_KEY_ALT
// }
// 
// Path: src/integeruser/jglsdk/glutil/MousePoles.java
// public static abstract class Pole {
//     public abstract void mouseMove(Vector2i vec2);
// 
//     public abstract void mouseClick(MouseButtons button, boolean isPressed, MouseModifiers modifiers, Vector2i position);
// 
//     public abstract void mouseWheel(int direction, MouseModifiers modifiers, Vector2i position);
// 
// 
//     public abstract void charPress(int key, boolean isShiftPressed, float lastFrameDuration);
// }


import integeruser.jglsdk.glutil.MousePoles.MouseButtons;
import integeruser.jglsdk.glutil.MousePoles.MouseModifiers;
import integeruser.jglsdk.glutil.MousePoles.Pole;
import org.joml.Vector2i;
import static org.lwjgl.glfw.GLFW.*;
package integeruser.jgltut.framework;




/**
 * Visit https://github.com/integeruser/jgltut for info and updates.
 * Original: https://bitbucket.org/alfonse/gltut/src/default/framework/MousePole.h
 */
public class MousePole {
    public static void forwardMouseMotion(Pole forward, int x, int y) {
        forward.mouseMove(new Vector2i(x, y));
    }

    public static void forwardMouseButton(long window, Pole forwardPole, int button, boolean state, int x, int y) {
// Path: src/integeruser/jglsdk/glutil/MousePoles.java
// public enum MouseButtons {
//     MB_LEFT_BTN,
//     MB_RIGHT_BTN,
//     MB_MIDDLE_BTN
// }
// 
// Path: src/integeruser/jglsdk/glutil/MousePoles.java
// public enum MouseModifiers {
//     MM_KEY_SHIFT,
//     MM_KEY_CTRL,
//     MM_KEY_ALT
// }
// 
// Path: src/integeruser/jglsdk/glutil/MousePoles.java
// public static abstract class Pole {
//     public abstract void mouseMove(Vector2i vec2);
// 
//     public abstract void mouseClick(MouseButtons button, boolean isPressed, MouseModifiers modifiers, Vector2i position);
// 
//     public abstract void mouseWheel(int direction, MouseModifiers modifiers, Vector2i position);
// 
// 
//     public abstract void charPress(int key, boolean isShiftPressed, float lastFrameDuration);
// }


// Path: src/integeruser/jgltut/framework/MousePole.java
import integeruser.jglsdk.glutil.MousePoles.MouseButtons;
import integeruser.jglsdk.glutil.MousePoles.MouseModifiers;
import integeruser.jglsdk.glutil.MousePoles.Pole;
import org.joml.Vector2i;
import static org.lwjgl.glfw.GLFW.*;

package integeruser.jgltut.framework;




/**
 * Visit https://github.com/integeruser/jgltut for info and updates.
 * Original: https://bitbucket.org/alfonse/gltut/src/default/framework/MousePole.h
 */
public class MousePole {
    public static void forwardMouseMotion(Pole forward, int x, int y) {
        forward.mouseMove(new Vector2i(x, y));
    }

    public static void forwardMouseButton(long window, Pole forwardPole, int button, boolean state, int x, int y) {
        MouseModifiers modifiers = calcModifiers(window);