#include #include #include "camera.hpp" // ================================================================================================= // ================================================================================================= template static const std::string print_matrix(const std::array, M> &matrix) { std::ostringstream out; out << "["; for (size_t j = 0; j < M; ++j) { out << "["; for (size_t i = 0; i < N; ++i) { out << matrix[j][i]; if (i < N - 1) { out << ", "; } } out << "]"; if (j < M - 1) { out << ", "; } } out << "]"; return out.str(); } // ================================================================================================= // ================================================================================================= std::string Camera::to_string() const { std::ostringstream out; out << std::fixed << std::setprecision(6); out << "{"; out << "'name': '" << name << "', "; out << "'K': " << print_matrix(K) << ", "; out << "'DC': ["; for (size_t i = 0; i < DC.size(); ++i) { out << DC[i]; if (i < DC.size() - 1) out << ", "; } out << "], "; out << "'R': " << print_matrix(R) << ", "; out << "'T': " << print_matrix(T) << ", "; out << "'P': " << print_matrix(P) << ", "; out << "'width': " << width << ", "; out << "'height': " << height << ", "; out << "'type': " << type; out << "}"; return out.str(); } // ================================================================================================= std::ostream &operator<<(std::ostream &out, const Camera &cam) { out << cam.to_string(); return out; }