From 8f58bcafbf6ed731a7c5f5be63e5875c8b91faa3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thomas=20M=C3=BCller?= <thomas94@gmx.net>
Date: Fri, 8 Jul 2022 07:53:42 +0200
Subject: [PATCH] Infer mode from snapshot when possible

---
 scripts/run.py    | 14 +++-----------
 scripts/scenes.py | 12 ++++++++++++
 2 files changed, 15 insertions(+), 11 deletions(-)

diff --git a/scripts/run.py b/scripts/run.py
index 5be1cc2..d4e4383 100644
--- a/scripts/run.py
+++ b/scripts/run.py
@@ -71,17 +71,9 @@ def parse_args():
 if __name__ == "__main__":
 	args = parse_args()
 
-	if args.mode == "":
-		if args.scene in scenes_sdf:
-			args.mode = "sdf"
-		elif args.scene in scenes_nerf:
-			args.mode = "nerf"
-		elif args.scene in scenes_image:
-			args.mode = "image"
-		elif args.scene in scenes_volume:
-			args.mode = "volume"
-		else:
-			raise ValueError("Must specify either a valid '--mode' or '--scene' argument.")
+	args.mode = args.mode or mode_from_scene(args.scene) or mode_from_scene(args.load_snapshot)
+	if not args.mode:
+		raise ValueError("Must specify either a valid '--mode' or '--scene' argument.")
 
 	if args.mode == "sdf":
 		mode = ngp.TestbedMode.Sdf
diff --git a/scripts/scenes.py b/scripts/scenes.py
index 35e96b0..baa507d 100644
--- a/scripts/scenes.py
+++ b/scripts/scenes.py
@@ -230,3 +230,15 @@ def default_snapshot_filename(scene):
 	if scene["dataset"]:
 		filename = f"{os.path.splitext(scene['dataset'])[0]}_{filename}"
 	return os.path.join(scene["data_dir"], filename)
+
+def mode_from_scene(scene):
+	if scene in scenes_sdf:
+		return "sdf"
+	elif scene in scenes_nerf:
+		return "nerf"
+	elif scene in scenes_image:
+		return "image"
+	elif scene in scenes_volume:
+		return "volume"
+	else:
+		return ""
-- 
GitLab