Spaces:
Build error
Build error
/* | |
* SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | |
* SPDX-License-Identifier: Apache-2.0 | |
* | |
* 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. | |
*/ | |
/** @file json_binding.h | |
* @author Thomas Müller, NVIDIA | |
* @brief Conversion between some ngp types and nlohmann::json. | |
*/ | |
namespace ngp { | |
inline void to_json(nlohmann::json& j, const BoundingBox& box) { | |
j["min"] = box.min; | |
j["max"] = box.max; | |
} | |
inline void from_json(const nlohmann::json& j, BoundingBox& box) { | |
box.min = j.at("min"); | |
box.max = j.at("max"); | |
} | |
inline void to_json(nlohmann::json& j, const Lens& lens) { | |
if (lens.mode == ELensMode::OpenCV) { | |
j["is_fisheye"] = false; | |
j["k1"] = lens.params[0]; | |
j["k2"] = lens.params[1]; | |
j["p1"] = lens.params[2]; | |
j["p2"] = lens.params[3]; | |
} else if (lens.mode == ELensMode::OpenCVFisheye) { | |
j["is_fisheye"] = true; | |
j["k1"] = lens.params[0]; | |
j["k2"] = lens.params[1]; | |
j["k3"] = lens.params[2]; | |
j["k4"] = lens.params[3]; | |
} else if (lens.mode == ELensMode::FTheta) { | |
j["ftheta_p0"] = lens.params[0]; | |
j["ftheta_p1"] = lens.params[1]; | |
j["ftheta_p2"] = lens.params[2]; | |
j["ftheta_p3"] = lens.params[3]; | |
j["ftheta_p4"] = lens.params[4]; | |
j["w"] = lens.params[5]; | |
j["h"] = lens.params[6]; | |
} else if (lens.mode == ELensMode::LatLong) { | |
j["latlong"] = true; | |
} else if (lens.mode == ELensMode::Equirectangular) { | |
j["equirectangular"] = true; | |
} else if (lens.mode == ELensMode::Orthographic) { | |
j["orthographic"] = true; | |
} | |
} | |
inline void from_json(const nlohmann::json& j, Lens& lens) { | |
if (j.contains("k1")) { | |
if (j.value("is_fisheye", false)) { | |
lens.mode = ELensMode::OpenCVFisheye; | |
lens.params[0] = j.at("k1"); | |
lens.params[1] = j.at("k2"); | |
lens.params[2] = j.at("k3"); | |
lens.params[3] = j.at("k4"); | |
} else { | |
lens.mode = ELensMode::OpenCV; | |
lens.params[0] = j.at("k1"); | |
lens.params[1] = j.at("k2"); | |
lens.params[2] = j.at("p1"); | |
lens.params[3] = j.at("p2"); | |
} | |
} else if (j.contains("ftheta_p0")) { | |
lens.mode = ELensMode::FTheta; | |
lens.params[0] = j.at("ftheta_p0"); | |
lens.params[1] = j.at("ftheta_p1"); | |
lens.params[2] = j.at("ftheta_p2"); | |
lens.params[3] = j.at("ftheta_p3"); | |
lens.params[4] = j.at("ftheta_p4"); | |
lens.params[5] = j.at("w"); | |
lens.params[6] = j.at("h"); | |
} else if (j.contains("latlong")) { | |
lens.mode = ELensMode::LatLong; | |
} else if (j.contains("equirectangular")) { | |
lens.mode = ELensMode::Equirectangular; | |
} else if (j.contains("orthographic")) { | |
lens.mode = ELensMode::Orthographic; | |
} else { | |
lens.mode = ELensMode::Perspective; | |
} | |
} | |
inline void from_json(const nlohmann::json& j, TrainingXForm& x) { | |
x.start = j.at("start"); | |
x.end = j.at("end"); | |
} | |
inline void to_json(nlohmann::json& j, const TrainingXForm& x) { | |
j["start"] = x.start; | |
j["end"] = x.end; | |
} | |
} | |