// Lot STM1 (STM1-SPEC-11, M2) : donnees des monuments d'une ville (ULPCityLandmarks), sans interface. // // Lit une liste JSON tenue a la main, projette chaque monument dans le repere de la carte avec l'origine de l'import (moyenne // des noeuds du .osm, rapport de LPClipCityOSM), retrouve dans l'UStreetMap les batiments OSM du monument (noms exacts, // et/ou rayon) et range leurs centres de boite (comme GI.FindCenterOfPolygon) : maisons generiques a masquer en jeu. // Ecrit /Landmarks/ ; jamais d'ecrasement. -DryRun : rapport seul. Aucun modele n'est importe ici. // // JSON : { "landmarks": [ { "name": "...", "lat": 48.8583, "lon": 2.2945, "mesh": "/lpm_city_paris/Landmarks/X.X", // "yaw": 0, "scale": 1, "z": 0, "osm_names": ["Tour Eiffel"], "hide_radius_m": 0, "credits": "..." } ] } // Options (M3) : "align_osm": true -> lacet = arete la plus longue du batiment OSM nomme (sauf "yaw" donne) ; // "center_from_osm": true -> le centre de la boite du modele tombe sur le centre du batiment OSM nomme ; // "hide_footprint_margin_m": m -> masque aussi les maisons dont le centre est sous l'emprise du modele (boite reduite de m). // 1.2.1 : le bas du maillage (min Z de sa boite, a l'echelle) est pose au sol : Z de pose = "z" - min Z x echelle, sauf // "ground": false (Z de pose = "z"). Le rapport donne, par monument, le min Z, le Z de pose, le lacet et l'echelle. // // Usage : -run=LPBuildCityLandmarks -City= -MapRoot=/StreetMap> // -Origin=, -List= [-DryRun] [-AllowMissingMesh] [-Report=] #pragma once #include "CoreMinimal.h" #include "Commandlets/Commandlet.h" #include "LPBuildCityLandmarksCommandlet.generated.h" UCLASS() class ULPBuildCityLandmarksCommandlet : public UCommandlet { GENERATED_BODY() public: ULPBuildCityLandmarksCommandlet(); virtual int32 Main(const FString& Params) override; };