void GenerateIsometric(WallGrid grid, IHeightMap floorHeightMap, IHeightMap ceilingHeightMap)
 {
     ceilingMesh = MeshBuilder.BuildCeiling(grid, ceilingHeightMap);
     outlines    = OutlineGenerator.Generate(ceilingMesh);
     wallMesh    = MeshBuilder.BuildWalls(outlines, floorHeightMap, ceilingHeightMap);
     floorMesh   = MeshBuilder.BuildFloor(grid, floorHeightMap);
 }
 void GenerateEnclosed(WallGrid grid, IHeightMap floorHeightMap, IHeightMap enclosureHeightMap)
 {
     floorMesh   = MeshBuilder.BuildFloor(grid, floorHeightMap);
     outlines    = OutlineGenerator.Generate(floorMesh, reverseOutlines: true);
     ceilingMesh = MeshBuilder.BuildEnclosure(floorMesh, enclosureHeightMap);
     wallMesh    = MeshBuilder.BuildWalls(outlines, floorHeightMap, enclosureHeightMap);
     PruneWallsAtGlobalSeams(grid.Scale);
 }