/** * @RDE_HEADER@ * $Id$ * $HeadURL$ * $Author$ * Created by Philipp Last, SLSY, 2017-09-22 */ #pragma once #include #include #include #include namespace BuildingViewer { struct BuildingTuple { QString buildingId; QString description; int entityId = 0; bool isShown = false; }; // merge with BuildingTuple? struct BuildingInfo { QString name; LtsUtils::QPoint3D position; double angleDegree = 0; int id = 0; bool operator==(const BuildingInfo &o) const { return id == o.id; // id is the key so this is enough } static BuildingInfo fromJson(const QJsonObject &obj) { BuildingInfo ret; ret.name = obj[QStringLiteral("name")].toString(); ret.position.rx() = obj[QStringLiteral("positionX")].toDouble(); ret.position.ry() = obj[QStringLiteral("positionY")].toDouble(); ret.position.rz() = obj[QStringLiteral("positionZ")].toDouble(); ret.angleDegree = obj[QStringLiteral("angleDegree")].toDouble(); ret.id = obj[QStringLiteral("id")].toInt(); return ret; } QJsonObject toJson() const { return { {QStringLiteral("name"), name}, {QStringLiteral("positionX"), position.x()}, {QStringLiteral("positionY"), position.y()}, {QStringLiteral("positionZ"), position.z()}, {QStringLiteral("angleDegree"), angleDegree}, {QStringLiteral("id"), id}, }; } bool isValid() const { return id > 0; } }; QString BUILDINGVIEWERCOMMON_EXPORT databaseId2FeatureId(int32_t buildingDatabaseId); int32_t BUILDINGVIEWERCOMMON_EXPORT featureId2DatabaseId(const QString& strFeatureId); }