BuildingSurfaceUtility

Runtime/BuildingSurfaceUtility.cs · 298 linija · ZGConnect

Uloga u sustavu

Stable per-building seed for variant picking (survives reloads). Uses world-space footprint center + instance id so GLB nodes with local (0,0,0) still differ.

Uloga: Building pipeline — mesh obrada, UV, materijali i export

Dizajnerska obrazloženja: Modul BuildingSurfaceUtility izdvojen je radi odvajanja odgovornosti unutar ZG Connect pipeline-a. Implementacija slijedi editor-first pristup s eksplicitnim JSON modelima i determinističkim tile ID-evima u EPSG:3765 sustavu.

Kronologija

Pregled

Stable per-building seed for variant picking (survives reloads). Uses world-space footprint center + instance id so GLB nodes with local (0,0,0) still differ.

Development · Changelog

Metode (17)

public static int StableHash(string s)

Linija 12 · klasa BuildingSurfaceUtility

Metoda StableHash klase BuildingSurfaceUtility — dio ZG Connect modula BuildingSurfaceUtility. Obrađuje poslovnu logiku povezanu s importom, streamingom ili transformacijom geopodataka.

Parametri

ImeOpis
sTip: string

Povratna vrijednost: int — povratna vrijednost prema potpisu.

Algoritam

  1. Provjera ulaznih uvjeta i rani izlaz ako preduvjeti nisu ispunjeni.
  2. Iteracija kroz kolekciju ili niz elemenata.
  3. Vraća rezultat pozivatelju nakon obrade.

Side-effecti

Poziva:

Pozivatelji: VariantIndex

public static string ComposeVariantSeedForBuilding(GameObject building, string buildingId)

Linija 28 · klasa BuildingSurfaceUtility

Stable per-building seed for variant picking (survives reloads). Uses world-space footprint center + instance id so GLB nodes with local (0,0,0) still differ.

Parametri

ImeOpis
buildingTip: GameObject
buildingIdTip: string

Povratna vrijednost: string — povratna vrijednost prema potpisu.

Algoritam

  1. Provjera ulaznih uvjeta i rani izlaz ako preduvjeti nisu ispunjeni.
  2. Iteracija kroz kolekciju ili niz elemenata.
  3. Vraća rezultat pozivatelju nakon obrade.

Side-effecti

Poziva: ComposeVariantSeed

Pozivatelji:

public static string ComposeVariantSeed(

Linija 54 · klasa BuildingSurfaceUtility

Quantized world position + optional Unity instance id for uniqueness within a tile.

Potpis

public static string ComposeVariantSeed(

Povratna vrijednost: string — povratna vrijednost prema potpisu.

Algoritam

  1. Vraća rezultat pozivatelju nakon obrade.

Side-effecti

Poziva:

Pozivatelji: ComposeVariantSeedForBuilding

public static int VariantIndex(string variantSeed, int variantCount, int salt = 0)

Linija 71 · klasa BuildingSurfaceUtility

Picks a variant index in [0, variantCount) from a stable seed and salt. Salt separates facade vs roof; include category in salt at call site when needed.

Parametri

ImeOpis
variantSeedTip: string
variantCountTip: int
0Tip: int salt =

Povratna vrijednost: int — povratna vrijednost prema potpisu.

Algoritam

  1. Provjera ulaznih uvjeta i rani izlaz ako preduvjeti nisu ispunjeni.
  2. Vraća rezultat pozivatelju nakon obrade.

Side-effecti

Poziva: MixHash, StableHash

Pozivatelji:

private static int MixHash(int hash, int salt)

Linija 78 · klasa BuildingSurfaceUtility

Picks a variant index in [0, variantCount) from a stable seed and salt. Salt separates facade vs roof; include category in salt at call site when needed.

Parametri

ImeOpis
hashTip: int
saltTip: int

Povratna vrijednost: int — povratna vrijednost prema potpisu.

Algoritam

  1. Vraća rezultat pozivatelju nakon obrade.

Side-effecti

Poziva:

Pozivatelji: VariantIndex

public static int CategoryVariantSalt(BuildingCategory category) =>

Linija 92 · klasa BuildingSurfaceUtility

Salt separates facade vs roof; include category in salt at call site when needed.

Parametri

ImeOpis
categoryTip: BuildingCategory

Povratna vrijednost: int — povratna vrijednost prema potpisu.

Algoritam

  1. Provjera ulaznih uvjeta i rani izlaz ako preduvjeti nisu ispunjeni.
  2. Vraća rezultat pozivatelju nakon obrade.

Side-effecti

Poziva:

Pozivatelji:

public static int FloorCountFromHeight(float heightMeters, float metersPerFloor)

Linija 95 · klasa BuildingSurfaceUtility

Metoda FloorCountFromHeight klase BuildingSurfaceUtility — dio ZG Connect modula BuildingSurfaceUtility. Obrađuje poslovnu logiku povezanu s importom, streamingom ili transformacijom geopodataka.

Parametri

ImeOpis
heightMetersTip: float
metersPerFloorTip: float

Povratna vrijednost: int — povratna vrijednost prema potpisu.

Algoritam

  1. Provjera ulaznih uvjeta i rani izlaz ako preduvjeti nisu ispunjeni.
  2. Vraća rezultat pozivatelju nakon obrade.

Side-effecti

Poziva:

Pozivatelji: ResolveCategory

public static BuildingCategory CategoryFromFloorCount(int floors)

Linija 101 · klasa BuildingSurfaceUtility

Metoda CategoryFromFloorCount klase BuildingSurfaceUtility — dio ZG Connect modula BuildingSurfaceUtility. Obrađuje poslovnu logiku povezanu s importom, streamingom ili transformacijom geopodataka.

Parametri

ImeOpis
floorsTip: int

Povratna vrijednost: BuildingCategory — povratna vrijednost prema potpisu.

Algoritam

  1. Provjera ulaznih uvjeta i rani izlaz ako preduvjeti nisu ispunjeni.
  2. Vraća rezultat pozivatelju nakon obrade.

Side-effecti

Poziva:

Pozivatelji: ResolveCategory

public static BuildingCategory ResolveCategory(

Linija 108 · klasa BuildingSurfaceUtility

Metoda ResolveCategory klase BuildingSurfaceUtility — dio ZG Connect modula BuildingSurfaceUtility. Obrađuje poslovnu logiku povezanu s importom, streamingom ili transformacijom geopodataka.

Potpis

public static BuildingCategory ResolveCategory(

Povratna vrijednost: BuildingCategory — povratna vrijednost prema potpisu.

Algoritam

  1. Vraća rezultat pozivatelju nakon obrade.

Side-effecti

Poziva: FloorCountFromHeight, CategoryFromFloorCount

Pozivatelji:

public static string ExtractBuildingIdFromObjectName(string objectName)

Linija 126 · klasa BuildingSurfaceUtility

Maps embedded GLB material names to facade/roof profile buckets. neboder → HighRise, building → MidRise, house → House (case-insensitive substring).

Parametri

ImeOpis
objectNameTip: string

Povratna vrijednost: string — povratna vrijednost prema potpisu.

Algoritam

  1. Provjera ulaznih uvjeta i rani izlaz ako preduvjeti nisu ispunjeni.
  2. Vraća rezultat pozivatelju nakon obrade.

Side-effecti

Poziva:

Pozivatelji:

public static string NormalizeMaterialName(string materialName)

Linija 151 · klasa BuildingSurfaceUtility

Metoda NormalizeMaterialName klase BuildingSurfaceUtility — dio ZG Connect modula BuildingSurfaceUtility. Obrađuje poslovnu logiku povezanu s importom, streamingom ili transformacijom geopodataka.

Parametri

ImeOpis
materialNameTip: string

Povratna vrijednost: string — povratna vrijednost prema potpisu.

Algoritam

  1. Provjera ulaznih uvjeta i rani izlaz ako preduvjeti nisu ispunjeni.
  2. Vraća rezultat pozivatelju nakon obrade.

Side-effecti

Poziva:

Pozivatelji: TryResolveCategoryFromMaterialName, TryResolveSurfaceTypeFromMaterialName

public static bool TryResolveCategoryFromMaterialName(

Linija 163 · klasa BuildingSurfaceUtility

Metoda TryResolveCategoryFromMaterialName klase BuildingSurfaceUtility — dio ZG Connect modula BuildingSurfaceUtility. Obrađuje poslovnu logiku povezanu s importom, streamingom ili transformacijom geopodataka.

Potpis

public static bool TryResolveCategoryFromMaterialName(

Povratna vrijednost: bool — povratna vrijednost prema potpisu.

Algoritam

  1. Provjera ulaznih uvjeta i rani izlaz ako preduvjeti nisu ispunjeni.
  2. Vraća rezultat pozivatelju nakon obrade.

Side-effecti

Poziva: NormalizeMaterialName

Pozivatelji: ResolveCategoryFromMaterialNames, CanonicalizeSlotKey

public static BuildingCategory ResolveCategoryFromMaterialNames(

Linija 197 · klasa BuildingSurfaceUtility

Highest-priority category found across material names (neboder > building > house).

Potpis

public static BuildingCategory ResolveCategoryFromMaterialNames(

Povratna vrijednost: BuildingCategory — povratna vrijednost prema potpisu.

Algoritam

  1. Provjera ulaznih uvjeta i rani izlaz ako preduvjeti nisu ispunjeni.
  2. Iteracija kroz kolekciju ili niz elemenata.
  3. Vraća rezultat pozivatelju nakon obrade.

Side-effecti

Poziva: TryResolveCategoryFromMaterialName

Pozivatelji:

public static bool TryResolveSurfaceTypeFromMaterialName(

Linija 232 · klasa BuildingSurfaceUtility

Maps GLB material names to surface slots: facade, roof_flat, roof_sloped.

Potpis

public static bool TryResolveSurfaceTypeFromMaterialName(

Povratna vrijednost: bool — povratna vrijednost prema potpisu.

Algoritam

  1. Provjera ulaznih uvjeta i rani izlaz ako preduvjeti nisu ispunjeni.
  2. Vraća rezultat pozivatelju nakon obrade.

Side-effecti

Poziva: NormalizeMaterialName

Pozivatelji: CanonicalizeSlotKey

public static string CanonicalizeSlotKey(string materialName)

Linija 269 · klasa BuildingSurfaceUtility

Stable slot key for JSON (e.g. house_facade) when the source name is parseable.

Parametri

ImeOpis
materialNameTip: string

Povratna vrijednost: string — povratna vrijednost prema potpisu.

Algoritam

  1. Provjera ulaznih uvjeta i rani izlaz ako preduvjeti nisu ispunjeni.
  2. Vraća rezultat pozivatelju nakon obrade.

Side-effecti

Poziva: TryResolveCategoryFromMaterialName, TryResolveSurfaceTypeFromMaterialName, CategoryToSlotToken, SurfaceToSlotToken

Pozivatelji:

public static string CategoryToSlotToken(BuildingCategory category) =>

Linija 281 · klasa BuildingSurfaceUtility

Stable slot key for JSON (e.g. house_facade) when the source name is parseable.

Parametri

ImeOpis
categoryTip: BuildingCategory

Povratna vrijednost: string — povratna vrijednost prema potpisu.

Algoritam

  1. Izvršava poslovnu logiku metode CategoryToSlotToken prema implementaciji u izvorniku.

Side-effecti

Poziva:

Pozivatelji: CanonicalizeSlotKey

public static string SurfaceToSlotToken(BuildingSurfaceMaterialType surfaceType) =>

Linija 289 · klasa BuildingSurfaceUtility

Metoda SurfaceToSlotToken klase BuildingSurfaceUtility — dio ZG Connect modula BuildingSurfaceUtility. Obrađuje poslovnu logiku povezanu s importom, streamingom ili transformacijom geopodataka.

Parametri

ImeOpis
surfaceTypeTip: BuildingSurfaceMaterialType

Povratna vrijednost: string — povratna vrijednost prema potpisu.

Algoritam

  1. Izvršava poslovnu logiku metode SurfaceToSlotToken prema implementaciji u izvorniku.

Side-effecti

Poziva:

Pozivatelji: CanonicalizeSlotKey