Browse Source

Switch pers-top camera

trethaller 7 years ago
parent
commit
af4a0e200c
1 changed files with 12 additions and 7 deletions
  1. 12 7
      hide/view/Level3D.hx

+ 12 - 7
hide/view/Level3D.hx

@@ -477,12 +477,16 @@ class Level3D extends FileView {
 	}
 
 
-	function resetCamera() {
-		var bounds = context.shared.root2d.getBounds();
-		context.shared.root2d.x = -Std.int(bounds.xMin + bounds.width * 0.5);
-		context.shared.root2d.y = -Std.int(bounds.yMin + bounds.height * 0.5);
-		scene.resetCamera(context.shared.root3d, 1.5);
-		cameraController.loadFromCamera();
+	function resetCamera(?top = false) {
+		var targetPt = new h3d.col.Point(0, 0, 0);
+		if(curEdit != null && curEdit.rootObjects.length > 0) {
+			targetPt = curEdit.rootObjects[0].getAbsPos().pos().toPoint();
+		}
+		if(top) 
+			cameraController.set(50, Math.PI/2, 0.001, targetPt);
+		else
+			cameraController.set(50, -4.7, 0.8, targetPt);
+		cameraController.toTarget();
 	}
 
 	function addObject( e : PrefabElement ) {
@@ -562,7 +566,8 @@ class Level3D extends FileView {
 		scene.init(props);
 		tools.saveDisplayKey = "SceneTools";
 
-		tools.addButton("video-camera", "Reset Camera", resetCamera);
+		tools.addButton("video-camera", "Perspective camera", () -> resetCamera(false));
+		tools.addButton("arrow-down", "Top camera", () -> resetCamera(true));
 		tools.addToggle("sun-o", "Enable Lights/Shadows", function(v) {
 			if( !v ) {
 				for( m in context.shared.root3d.getMaterials() ) {