Skip to content

Commit

Permalink
Fixes #3383
Browse files Browse the repository at this point in the history
  • Loading branch information
AlexisDrogoul committed May 7, 2022
1 parent 2eff8d5 commit 8680a18
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 32 deletions.
Expand Up @@ -589,6 +589,14 @@ public static class Displays {
create("pref_display_zoom_factor", "Set the zoom factor (0 for slow, 1 fast)", 0.5, IType.FLOAT, true)
.in(NAME, RENDERING).between(0, 1);

public static final Pref<Double> OPENGL_KEYBOARD = create("pref_display_keyboard_factor",
"Set the sensitivity of the keyboard movements (0 for slow, 1 for fast)", 0.5, IType.FLOAT, true)
.in(NAME, RENDERING).between(0.01, 1);

public static final Pref<Double> OPENGL_MOUSE = create("pref_display_mouse_factor",
"set the sensitivity of the mouse/trackpad movements (0 for slow, 1 fast)", 0.5, IType.FLOAT, true)
.in(NAME, RENDERING).between(0.01, 1);

/** The Constant OPENGL_CAP_FPS. */
public static final Pref<Boolean> OPENGL_CAP_FPS =
create("pref_display_cap_fps", "Limit the number of frames per second", false, IType.BOOL, true)
Expand Down
Expand Up @@ -76,12 +76,6 @@ public class CameraHelper extends AbstractRendererHelper implements IMultiListen
/** The up. */
protected final GamaPoint up = new GamaPoint();

/** The keyboard sensivity. */
private final double _keyboardSensivity = 1d;

/** The sensivity. */
private final double _sensivity = 1;

/** The goes forward. */
// Mouse and keyboard state
private boolean goesForward;
Expand Down Expand Up @@ -263,77 +257,77 @@ public void animate() {
if (isForward()) {
if (ctrlPressed) {
if (flipped) {
if (phi - getKeyboardSensivity() * getSensivity() > 0) {
phi -= getKeyboardSensivity() * getSensivity();
if (phi - getKeyboardSensivity() > 0) {
phi -= getKeyboardSensivity();
} else {
phi = -phi + getKeyboardSensivity() * getSensivity();
phi = -phi + getKeyboardSensivity();
flipped = false;
theta += 180;
}
} else if (phi + getKeyboardSensivity() * getSensivity() < 180) {
phi += getKeyboardSensivity() * getSensivity();
} else if (phi + getKeyboardSensivity() < 180) {
phi += getKeyboardSensivity();
} else {
phi = 360 - phi - getKeyboardSensivity() * getSensivity();
phi = 360 - phi - getKeyboardSensivity();
flipped = true;
theta += 180;
}
updateCartesianCoordinatesFromAngles();
} else if (flipped) {
translateCameraFromScreenPlan(0.0, getKeyboardSensivity() * getSensivity());
translateCameraFromScreenPlan(0.0, getKeyboardSensivity());
} else {
translateCameraFromScreenPlan(0.0, -getKeyboardSensivity() * getSensivity());
translateCameraFromScreenPlan(0.0, -getKeyboardSensivity());
}
}
if (isBackward()) {
if (ctrlPressed) {
if (flipped) {
if (phi + getKeyboardSensivity() * getSensivity() < 180) {
phi += getKeyboardSensivity() * getSensivity();
if (phi + getKeyboardSensivity() < 180) {
phi += getKeyboardSensivity();
} else {
phi = 360 - phi - getKeyboardSensivity() * getSensivity();
phi = 360 - phi - getKeyboardSensivity();
flipped = false;
theta += 180;
}
} else if (phi - getKeyboardSensivity() * getSensivity() > 0) {
phi -= getKeyboardSensivity() * getSensivity();
} else if (phi - getKeyboardSensivity() > 0) {
phi -= getKeyboardSensivity();
} else {
phi = -phi + getKeyboardSensivity() * getSensivity();
phi = -phi + getKeyboardSensivity();
flipped = true;
theta += 180;
}
updateCartesianCoordinatesFromAngles();
} else if (flipped) {
translateCameraFromScreenPlan(0.0, -getKeyboardSensivity() * getSensivity());
translateCameraFromScreenPlan(0.0, -getKeyboardSensivity());
} else {
translateCameraFromScreenPlan(0.0, getKeyboardSensivity() * getSensivity());
translateCameraFromScreenPlan(0.0, getKeyboardSensivity());
}
}
if (isStrafeLeft()) {
if (ctrlPressed) {
if (flipped) {
theta = theta + -getKeyboardSensivity() * getSensivity();
theta = theta + -getKeyboardSensivity();
} else {
theta = theta - -getKeyboardSensivity() * getSensivity();
theta = theta - -getKeyboardSensivity();
}
updateCartesianCoordinatesFromAngles();
} else if (flipped) {
translateCameraFromScreenPlan(getKeyboardSensivity() * getSensivity(), 0.0);
translateCameraFromScreenPlan(getKeyboardSensivity(), 0.0);
} else {
translateCameraFromScreenPlan(-getKeyboardSensivity() * getSensivity(), 0.0);
translateCameraFromScreenPlan(-getKeyboardSensivity(), 0.0);
}
}
if (isStrafeRight()) {
if (ctrlPressed) {
if (flipped) {
theta = theta + getKeyboardSensivity() * getSensivity();
theta = theta + getKeyboardSensivity();
} else {
theta = theta - getKeyboardSensivity() * getSensivity();
theta = theta - getKeyboardSensivity();
}
updateCartesianCoordinatesFromAngles();
} else if (flipped) {
translateCameraFromScreenPlan(-getKeyboardSensivity() * getSensivity(), 0.0);
translateCameraFromScreenPlan(-getKeyboardSensivity(), 0.0);
} else {
translateCameraFromScreenPlan(getKeyboardSensivity() * getSensivity(), 0.0);
translateCameraFromScreenPlan(getKeyboardSensivity(), 0.0);
}
}
}
Expand Down Expand Up @@ -856,14 +850,14 @@ private boolean isViewInXYPlan() {
*
* @return the keyboard sensivity
*/
protected double getKeyboardSensivity() { return _keyboardSensivity; }
protected double getKeyboardSensivity() { return GamaPreferences.Displays.OPENGL_KEYBOARD.getValue(); }

/**
* Gets the sensivity.
*
* @return the sensivity
*/
protected double getSensivity() { return _sensivity; }
protected double getSensivity() { return GamaPreferences.Displays.OPENGL_MOUSE.getValue(); }

/**
* Checks if is forward.
Expand Down

0 comments on commit 8680a18

Please sign in to comment.