LifePlay-Revival/Source/LifePlayEditorTools/LPBuildCityLandmarksCommandlet.h
2026-10-22 21:10:39 +02:00

34 lines
1.9 KiB
C++

// 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 <MapRoot>/Landmarks/<Ville> ; 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=<Ville> -MapRoot=</Game/Heavy/StreetMap | /lpm_city_<v>/StreetMap>
// -Origin=<lat>,<lon> -List=<f.json> [-DryRun] [-AllowMissingMesh] [-Report=<f.md>]
#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;
};