diff --git a/pom.xml b/pom.xml
index d625df9a..3ac0a2ce 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
sh.ball
osci-render
- 1.19.1
+ 1.19.2
osci-render
diff --git a/src/main/java/sh/ball/audio/effect/PhaseEffect.java b/src/main/java/sh/ball/audio/effect/PhaseEffect.java
index 1312bf71..e4cf6937 100644
--- a/src/main/java/sh/ball/audio/effect/PhaseEffect.java
+++ b/src/main/java/sh/ball/audio/effect/PhaseEffect.java
@@ -16,7 +16,7 @@ public abstract class PhaseEffect implements Effect {
this.speed = speed;
}
- protected void resetTheta() {
+ public void resetTheta() {
phase = -LARGE_VAL;
}
diff --git a/src/main/java/sh/ball/audio/effect/RotateEffect.java b/src/main/java/sh/ball/audio/effect/RotateEffect.java
index c8d520b3..d3c3ef79 100644
--- a/src/main/java/sh/ball/audio/effect/RotateEffect.java
+++ b/src/main/java/sh/ball/audio/effect/RotateEffect.java
@@ -15,12 +15,6 @@ public class RotateEffect extends PhaseEffect {
@Override
public Vector2 apply(int count, Vector2 vector) {
- if (speed != 0) {
- return vector.rotate(nextTheta());
- }
-
- resetTheta();
-
- return vector;
+ return vector.rotate(nextTheta());
}
}
diff --git a/src/main/java/sh/ball/gui/Gui.java b/src/main/java/sh/ball/gui/Gui.java
index 0aef835b..677a6da9 100644
--- a/src/main/java/sh/ball/gui/Gui.java
+++ b/src/main/java/sh/ball/gui/Gui.java
@@ -65,11 +65,12 @@ public class Gui extends Application {
scene.addEventFilter(MouseEvent.MOUSE_MOVED, event -> {
if (controller.mouseRotate()) {
- controller.setObjRotate(new Vector3(
+ Vector3 rotate = new Vector3(
3 * Math.PI * (event.getSceneY() / scene.getHeight()),
3 * Math.PI * (event.getSceneX() / scene.getWidth()),
0
- ));
+ );
+ controller.setObjRotate(rotate, rotate);
}
if (controller.mouseTranslate()) {
controller.setTranslation(new Vector2(
diff --git a/src/main/java/sh/ball/gui/controller/ImageController.java b/src/main/java/sh/ball/gui/controller/ImageController.java
index fa644091..d14f64df 100644
--- a/src/main/java/sh/ball/gui/controller/ImageController.java
+++ b/src/main/java/sh/ball/gui/controller/ImageController.java
@@ -4,6 +4,7 @@ import javafx.beans.property.DoubleProperty;
import javafx.beans.property.SimpleDoubleProperty;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
+import javafx.scene.control.Button;
import javafx.scene.control.CheckBox;
import javafx.scene.control.Slider;
import javafx.scene.control.TextField;
@@ -84,6 +85,8 @@ public class ImageController implements Initializable, SubController {
private SVGPath visibilityMidi;
@FXML
private CheckBox visibilityMic;
+ @FXML
+ private Button resetRotationButton;
public ImageController() {
this.frequency = new SimpleDoubleProperty(0);
@@ -140,6 +143,8 @@ public class ImageController implements Initializable, SubController {
)
);
+ resetRotationButton.setOnAction(e -> rotateEffect.resetTheta());
+
translationXTextField.textProperty().addListener(e -> updateTranslation());
translationXTextField.setOnScroll((e) -> changeTranslation(e.getDeltaY() > 0, translationXTextField));
translationYTextField.textProperty().addListener(e -> updateTranslation());
diff --git a/src/main/java/sh/ball/gui/controller/MainController.java b/src/main/java/sh/ball/gui/controller/MainController.java
index 67aabe9c..7baf5c95 100644
--- a/src/main/java/sh/ball/gui/controller/MainController.java
+++ b/src/main/java/sh/ball/gui/controller/MainController.java
@@ -461,13 +461,8 @@ public class MainController implements Initializable, FrequencyListener, MidiLis
imageController.disableMouseTranslate();
}
- // updates the 3D object base rotation angle
- public void setObjRotate(Vector3 vector) {
- objController.setObjRotate(vector);
- }
-
// updates the 3D object base and current rotation angle
- protected void setObjRotate(Vector3 baseRotation, Vector3 currentRotation) {
+ public void setObjRotate(Vector3 baseRotation, Vector3 currentRotation) {
objController.setObjRotate(baseRotation, currentRotation);
}
diff --git a/src/main/java/sh/ball/gui/controller/ObjController.java b/src/main/java/sh/ball/gui/controller/ObjController.java
index a63b3e4f..8501b87a 100644
--- a/src/main/java/sh/ball/gui/controller/ObjController.java
+++ b/src/main/java/sh/ball/gui/controller/ObjController.java
@@ -2,6 +2,7 @@ package sh.ball.gui.controller;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
+import javafx.scene.control.Button;
import javafx.scene.control.CheckBox;
import javafx.scene.control.Slider;
import javafx.scene.shape.SVGPath;
@@ -32,6 +33,8 @@ public class ObjController implements Initializable, SubController {
private CheckBox objectRotateSpeedMic;
@FXML
private CheckBox rotateCheckBox;
+ @FXML
+ private Button resetObjectRotationButton;
@Override
public Map getMidiButtonMap() {
@@ -96,6 +99,7 @@ public class ObjController implements Initializable, SubController {
objectRotateSpeedSlider.valueProperty().addListener((source, oldValue, newValue) ->
setObjectRotateSpeed(newValue.doubleValue())
);
+ resetObjectRotationButton.setOnAction(e -> setObjRotate(new Vector3(2 * Math.PI, 2 * Math.PI, 0), new Vector3()));
}
@Override
diff --git a/src/main/java/sh/ball/parser/obj/ObjFrameSource.java b/src/main/java/sh/ball/parser/obj/ObjFrameSource.java
index d713efdf..5209b0b4 100644
--- a/src/main/java/sh/ball/parser/obj/ObjFrameSource.java
+++ b/src/main/java/sh/ball/parser/obj/ObjFrameSource.java
@@ -26,11 +26,7 @@ public class ObjFrameSource implements FrameSource> {
@Override
public List next() {
currentRotation = currentRotation.add(baseRotation.scale(rotateSpeed));
- if (rotateSpeed == 0) {
- object.setRotation(baseRotation);
- } else {
- object.setRotation(currentRotation);
- }
+ object.setRotation(currentRotation);
return camera.draw(object);
}
diff --git a/src/main/resources/fxml/image.fxml b/src/main/resources/fxml/image.fxml
index 48fc0fd2..850c148a 100644
--- a/src/main/resources/fxml/image.fxml
+++ b/src/main/resources/fxml/image.fxml
@@ -1,5 +1,6 @@
+
@@ -12,7 +13,7 @@
-
diff --git a/src/main/resources/fxml/obj.fxml b/src/main/resources/fxml/obj.fxml
index 3b780a71..f3587861 100644
--- a/src/main/resources/fxml/obj.fxml
+++ b/src/main/resources/fxml/obj.fxml
@@ -1,5 +1,6 @@
+
@@ -11,8 +12,9 @@
-
+
+