/** * @RDE_HEADER@ * Interface * $Id$ * $HeadURL$ * $Author$ */ #pragma once // Own #include "plugin_provider.h" #include #include #include #include // Qt #include #include namespace SituationMap { // forward: class Map; class BuildingContamination : public QObject { Q_OBJECT using BaseClass = QObject; public: explicit BuildingContamination(int drawOrder, QObject *parent = nullptr); ~BuildingContamination(); bool init(Map *map, PluginProvider *pluginProvider); void clearInterfaces(); void removeAllObjects(); void clearObjects() { removeAllObjects(); } bool run(); void stop(); bool isVisible() const; bool setVisible(bool visible); Q_SIGNALS: protected Q_SLOTS: void onBuildingStateChanged(const Buildings::BuildingState &data, DataModification modType); void onResetBuildingState(); protected: void updateBuilding(int buildingId); int findFloorIdByRoomId(int roomId); bool getRoom(int roomSeId, InfrastructureManagement::StructureElement &roomSe); PositionCont retrieveBuildingGeometry(int buildingId, int floorId) const; QMap retrieveBuildingAbsHeight(int buildingId) const; private: LOGGER_T m_logger; ///< Interface of the Logging-Facility QMap m_roomToFloorCache; QMap m_roomStructureElementCache; class Private; /** * The private d->pointer to not break BC when changing internals of this class */ Private *d = nullptr; // DDS: std::shared_ptr m_bldDtc; std::shared_ptr m_ismDtc; }; } // namespace