Commit 76f34f51 authored by Riegel's avatar Riegel
Browse files

Add NorthArrow in MeshView

parent 2ed18e2e
...@@ -137,6 +137,8 @@ public class CityDoctorController { ...@@ -137,6 +137,8 @@ public class CityDoctorController {
mainWindow.getLod4Btn().setDisable(false); mainWindow.getLod4Btn().setDisable(false);
mainWindow.getWorldBtn().setDisable(false); mainWindow.getWorldBtn().setDisable(false);
mainWindow.getSaveBtn().setDisable(false); mainWindow.getSaveBtn().setDisable(false);
mainWindow.getNorthArrow().setVisible(true);
mainWindow.alignNorthArrow();
setupFeatureTabs(); setupFeatureTabs();
buildTrees(); buildTrees();
}); });
......
...@@ -12,6 +12,7 @@ import java.util.TimerTask; ...@@ -12,6 +12,7 @@ import java.util.TimerTask;
import javax.imageio.ImageIO; import javax.imageio.ImageIO;
import javafx.scene.chart.NumberAxis;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
...@@ -268,6 +269,7 @@ public class MainWindow extends Application { ...@@ -268,6 +269,7 @@ public class MainWindow extends Application {
private MainToolBar mainToolBar; private MainToolBar mainToolBar;
private SubScene geomScene; private SubScene geomScene;
private ImageView northArrow;
private static boolean loadFileAtStartup = false; private static boolean loadFileAtStartup = false;
private static String inputFile; private static String inputFile;
...@@ -856,9 +858,15 @@ public class MainWindow extends Application { ...@@ -856,9 +858,15 @@ public class MainWindow extends Application {
meshGroup = new Group(); meshGroup = new Group();
world.getChildren().add(meshGroup); world.getChildren().add(meshGroup);
Image north = new Image(getClass().getResourceAsStream("icons/north.png"));
northArrow = new ImageView(north);
northArrow.setFitHeight(50);
northArrow.setFitWidth(50);
meshView.getChildren().add(northArrow);
northArrow.setVisible(false);
AmbientLight al = new AmbientLight(Color.WHITE); AmbientLight al = new AmbientLight(Color.WHITE);
root.getChildren().add(al); root.getChildren().add(al);
buildCamera(); buildCamera();
cameraXRotation.setAxis(Rotate.X_AXIS); cameraXRotation.setAxis(Rotate.X_AXIS);
cameraZRotation.setAxis(Rotate.Z_AXIS); cameraZRotation.setAxis(Rotate.Z_AXIS);
...@@ -904,6 +912,7 @@ public class MainWindow extends Application { ...@@ -904,6 +912,7 @@ public class MainWindow extends Application {
cameraZRotation.setAngle(cameraXRot); cameraZRotation.setAngle(cameraXRot);
cameraXRotation.setAngle(cameraYRot); cameraXRotation.setAngle(cameraYRot);
alignNorthArrow();
} }
if (me.getButton() == MouseButton.SECONDARY) { if (me.getButton() == MouseButton.SECONDARY) {
double translationSpeed = Math.abs(camera.getTranslateZ())/1000; double translationSpeed = Math.abs(camera.getTranslateZ())/1000;
...@@ -927,6 +936,16 @@ public class MainWindow extends Application { ...@@ -927,6 +936,16 @@ public class MainWindow extends Application {
cameraXRotation.setAngle(cameraYRot); cameraXRotation.setAngle(cameraYRot);
} }
public void alignNorthArrow(){
double absRotZ = cameraZRotation.getAngle() - 360 * Math.floor(cameraZRotation.getAngle() / 360);
double absRotX = cameraXRotation.getAngle() - 360 * Math.floor(cameraXRotation.getAngle() / 360);
double northRot = ((80 <= absRotX && absRotX <= 260) ? 360-absRotZ: (absRotZ+180)%360 );
northArrow.setRotate(northRot);
}
public void addFileNameToTitle(String fileName) { public void addFileNameToTitle(String fileName) {
String version = Localization.getText(Localization.VERSION); String version = Localization.getText(Localization.VERSION);
stage.setTitle("CityDoctor " + version + " - " + fileName); stage.setTitle("CityDoctor " + version + " - " + fileName);
...@@ -1044,6 +1063,10 @@ public class MainWindow extends Application { ...@@ -1044,6 +1063,10 @@ public class MainWindow extends Application {
return mainToolBar.getWorldBtn(); return mainToolBar.getWorldBtn();
} }
public ImageView getNorthArrow(){
return northArrow;
}
public Button getSaveBtn() { public Button getSaveBtn() {
return mainToolBar.getSaveBtn(); return mainToolBar.getSaveBtn();
} }
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment