kopia lustrzana https://github.com/jameshball/osci-render
Selectively flush frames on settings update to make rotation smoother
rodzic
04dc9cb868
commit
c552be2f04
|
@ -24,8 +24,10 @@ public class FrameProducer<T> implements Runnable {
|
||||||
running = false;
|
running = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Object setFrameSettings(Object settings) {
|
public Object setFrameSettings(Object settings, boolean flushFrames) {
|
||||||
|
if (flushFrames) {
|
||||||
renderer.flushFrames();
|
renderer.flushFrames();
|
||||||
|
}
|
||||||
return frames.setFrameSettings(settings);
|
return frames.setFrameSettings(settings);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -171,7 +171,7 @@ public class Controller implements Initializable {
|
||||||
tryParse(cameraXTextField.getText()),
|
tryParse(cameraXTextField.getText()),
|
||||||
tryParse(cameraYTextField.getText()),
|
tryParse(cameraYTextField.getText()),
|
||||||
tryParse(cameraZTextField.getText())
|
tryParse(cameraZTextField.getText())
|
||||||
)));
|
)), true);
|
||||||
|
|
||||||
cameraXTextField.textProperty().addListener(cameraPosUpdate);
|
cameraXTextField.textProperty().addListener(cameraPosUpdate);
|
||||||
cameraYTextField.textProperty().addListener(cameraPosUpdate);
|
cameraYTextField.textProperty().addListener(cameraPosUpdate);
|
||||||
|
@ -182,7 +182,7 @@ public class Controller implements Initializable {
|
||||||
tryParse(rotateXTextField.getText()),
|
tryParse(rotateXTextField.getText()),
|
||||||
tryParse(rotateYTextField.getText()),
|
tryParse(rotateYTextField.getText()),
|
||||||
tryParse(rotateZTextField.getText())
|
tryParse(rotateZTextField.getText())
|
||||||
), null));
|
), null), false);
|
||||||
|
|
||||||
rotateXTextField.textProperty().addListener(rotateUpdate);
|
rotateXTextField.textProperty().addListener(rotateUpdate);
|
||||||
rotateYTextField.textProperty().addListener(rotateUpdate);
|
rotateYTextField.textProperty().addListener(rotateUpdate);
|
||||||
|
@ -219,14 +219,17 @@ public class Controller implements Initializable {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setFocalLength(double focalLength) {
|
private void setFocalLength(double focalLength) {
|
||||||
Vector3 pos = (Vector3) producer.setFrameSettings(new ObjFrameSettings(focalLength));
|
Vector3 pos = (Vector3) producer.setFrameSettings(new ObjFrameSettings(focalLength), true);
|
||||||
cameraXTextField.setText(String.valueOf(pos.getX()));
|
cameraXTextField.setText(String.valueOf(pos.getX()));
|
||||||
cameraYTextField.setText(String.valueOf(pos.getY()));
|
cameraYTextField.setText(String.valueOf(pos.getY()));
|
||||||
cameraZTextField.setText(String.valueOf(pos.getZ()));
|
cameraZTextField.setText(String.valueOf(pos.getZ()));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setObjectRotateSpeed(double rotateSpeed) {
|
private void setObjectRotateSpeed(double rotateSpeed) {
|
||||||
producer.setFrameSettings(new ObjFrameSettings(null, (Math.exp(3 * rotateSpeed) - 1) / 50));
|
producer.setFrameSettings(
|
||||||
|
new ObjFrameSettings(null, (Math.exp(3 * rotateSpeed) - 1) / 50),
|
||||||
|
false
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
private double tryParse(String value) {
|
private double tryParse(String value) {
|
||||||
|
|
Ładowanie…
Reference in New Issue