def parse_meshroom_sfm_file(
        cls,
        sfm_ifp,
        image_idp,
        image_fp_type,
        suppress_distortion_warnings,
        op=None,
    ):
        """Parse a :code:`Meshroom` (:code:`.sfm` or :code:`.json`) file.

        Parse different file formats created with the
        :code:`StructureFromMotion` / :code:`ConvertSfMFormat` node in
        :code:`Meshroom`.
        """
        log_report("INFO", "parse_meshroom_sfm_file: ...", op)
        log_report("INFO", "sfm_ifp: " + sfm_ifp, op)
        input_file = open(sfm_ifp, "r")
        json_data = json.load(input_file)

        (
            cams,
            image_index_to_camera_index,
        ) = cls._parse_cameras_from_json_data(
            json_data,
            image_idp,
            image_fp_type,
            suppress_distortion_warnings,
            op,
        )
        if "structure" in json_data:
            points = cls._parse_points_from_json_data(
                json_data, image_index_to_camera_index, op
            )
        else:
            points = []
        log_report("INFO", "parse_meshroom_sfm_file: Done", op)
        return cams, points
Parse a :code:`Meshroom` (:code:`.sfm` or :code:`.json`) file.

        Parse different file formats created with the
        :code:`StructureFromMotion` / :code:`ConvertSfMFormat` node in
        :code:`Meshroom`.
        
photogrammetry_importer/file_handlers/meshroom_file_handler.py