/*
 * Copyright 2020 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#pragma once

#include <string>
#include <vector>
#include "core_lib.h"

using namespace std;

// TODO(b/150412555): The helper method should only be used for testing
// purposes once EVS camera is used.
namespace android_auto {
namespace surround_view {

vector<SurroundViewCameraParams> GetCameras();

SurroundView2dParams Get2dParams();

SurroundView3dParams Get3dParams();

BoundingBox GetBoundingBox();

vector<float> GetUndistortionScales();

}  // namespace surround_view
}  // namespace android_auto

