Widgets clés et utilitaires¶
Cette section décrit les composants UI et helpers utilisés dans l'application.
Widgets¶
- NavbarWidget (
widgets/navbar_widget.dart) : barre de navigation inférieure liée àselectedPageNotifier. - HousingCard (
widgets/housing_card.dart) : carte logement (nom, type, département) avec actions. - RoomPainter (
widgets/room_painter.dart) :CustomPainterpour pièces, murs, fenêtres, portes, radiateurs à partir d'un GeoJSON filtré par étage. - EditableRoomWidget (
widgets/editable_room_widget.dart) : couche d'interaction en mode édition (détection des murs, boutons overlay). - FloorSelector (
widgets/floor_selector.dart) : sélecteur d'étage avec ajout (addFloorToGeoJson). - Compass (
widgets/compass.dart) : dialogue d'orientation nord. - EditSnappingBottomSheet (
widgets/edit_snapping_bottom_sheet.dart) : bottom sheet configurée pour le menu d'édition. - HeatMapPainter (
widgets/heat_map_painter.dart) : rendu des matrices de chaleur et radiateurs.
Utilitaires¶
- RoomOperations (
utils/room_operations.dart) : ajout, suppression, extension de pièces; vérification des adjacences et manipulation des coordonnées GeoJSON. - OverlayButtonsCalculator (
utils/overlay_buttons.dart) : positionne les boutons overlay selon le mode (add/edit/delete). - EditMenuConfig (
utils/edit_menu_config.dart) : génère la structure du menu d'édition (titres, actions, callbacks). - GeometryUtils (
utils/geometry_utils.dart) : calculs (normales, projections) pour placer les boutons et agrandir les pièces. - GeoJsonFilter (
utils/geojson_filter.dart) : filtre un GeoJSON par étage en conservant la correspondance d'index. - RoomExtensionManager / RoomPrinterManager / SolutionManager / ScoreCalculator : outils complémentaires pour étendre, diagnostiquer et scorer les plans/chauffages.
Rendu et interaction¶
- Les plans et heatmaps sont affichés dans un
InteractiveViewerpour zoom/pan. - Les overlays sont placés en coordonnées écran après conversion GeoJSON/matrice via
OverlayButtonsCalculator.