# Copyright (C) 2024-present Naver Corporation. All rights reserved.
# Licensed under CC BY-NC-SA 4.0 (non-commercial use only).
#
# --------------------------------------------------------
# AachenDayNight dataloader
# --------------------------------------------------------
import os
from dust3r_visloc.datasets.base_colmap import BaseVislocColmapDataset


class VislocAachenDayNight(BaseVislocColmapDataset):
    def __init__(self, root, subscene, pairsfile, topk=1, cache_sfm=False):
        assert subscene in [None, "", "day", "night", "all"]
        self.subscene = subscene
        image_path = os.path.join(root, "images")
        map_path = os.path.join(root, "mapping/colmap/reconstruction")
        query_path = os.path.join(root, "kapture", "query")
        pairsfile_path = os.path.join(root, "pairsfile/query", pairsfile + ".txt")
        super().__init__(
            image_path=image_path,
            map_path=map_path,
            query_path=query_path,
            pairsfile_path=pairsfile_path,
            topk=topk,
            cache_sfm=cache_sfm,
        )
        self.scenes = [filename for filename in self.scenes if filename in self.pairs]
        if self.subscene == "day" or self.subscene == "night":
            self.scenes = [filename for filename in self.scenes if self.subscene in filename]
