Aller au contenu

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) : CustomPainter pour 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 InteractiveViewer pour zoom/pan.
  • Les overlays sont placés en coordonnées écran après conversion GeoJSON/matrice via OverlayButtonsCalculator.