Initial cpp reimplementation.
This commit is contained in:
76
spt/camera.cpp
Normal file
76
spt/camera.cpp
Normal file
@ -0,0 +1,76 @@
|
||||
#include <iomanip>
|
||||
#include <sstream>
|
||||
|
||||
#include "camera.hpp"
|
||||
|
||||
// =================================================================================================
|
||||
// =================================================================================================
|
||||
|
||||
template <size_t M, size_t N>
|
||||
static const std::string print_matrix(const std::array<std::array<double, N>, 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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user