/** * @RDE_HEADER@ * Class Camera * $Id$ * $HeadURL$ * $Author$ */ // Own #include "camera.h" // Qt #include //---------------------------------------------------------------------------- namespace SituationMap { Camera::Camera() { resetCamera(); } void Camera::resetCamera() { loc_x_lon = 0; loc_y_lat = 0; loc_z = 0; heading = 0; pitch = 0; roll = 0; } bool Camera::isNull() const { return qFuzzyIsNull(loc_x_lon) && qFuzzyIsNull(loc_y_lat) && qFuzzyIsNull(loc_z) && qFuzzyIsNull(heading) && qFuzzyIsNull(pitch) && qFuzzyIsNull(roll); } Camera Camera::read(const QJsonObject &json) { Camera cam; if (json.contains(QLatin1String("loc_x_lon"))) cam.loc_x_lon = json[QLatin1String("loc_x_lon")].toDouble(); if (json.contains(QLatin1String("loc_y_lat"))) cam.loc_y_lat = json[QLatin1String("loc_y_lat")].toDouble(); if (json.contains(QLatin1String("loc_z"))) cam.loc_z = json[QLatin1String("loc_z")].toDouble(); if (json.contains(QLatin1String("heading"))) cam.heading = json[QLatin1String("heading")].toDouble(); if (json.contains(QLatin1String("loc_x_lon"))) cam.pitch = json[QLatin1String("pitch")].toDouble(); if (json.contains(QLatin1String("roll"))) cam.roll = json[QLatin1String("roll")].toDouble(); return cam; } QJsonObject Camera::toJsonObject() const { QJsonObject json; json[QLatin1String("loc_x_lon")] = loc_x_lon; json[QLatin1String("loc_y_lat")] = loc_y_lat; json[QLatin1String("loc_z")] = loc_z; json[QLatin1String("heading")] = heading; json[QLatin1String("pitch")] = pitch; json[QLatin1String("roll")] = roll; return json; } QString Camera::toString() const { QString str; str.append(QStringLiteral("xLon;yLat=%1;%2[rad").arg(loc_x_lon).arg(loc_y_lat) ); str.append(QStringLiteral("xLon;yLat=%1;%2[deg").arg(loc_x_lon*180.0/M_PI).arg(loc_y_lat*180.0/M_PI) ); str.append(QStringLiteral(" z=%1").arg(loc_z)); str.append(QStringLiteral(" heading=%1").arg(heading)); str.append(QStringLiteral(" pitch=%1").arg(pitch)); str.append(QStringLiteral(" roll=%1").arg(roll)); return str; } std::ostream &operator<< (std::ostream &stream, const Camera &value) { stream << "Camera(" << value.toString() << "): "; return stream; } } // namespace SituationMap