public void LoadTileData() { s_Geometry = new Geometry.Geometry(); // First read target tile to verify we have geometry and get bounding box // Read tile s_Tile.Read(); // Generate relevant geometry s_Tile.Generate(); // Append to our geometry s_Geometry.AddADT(s_Tile, false); // Generate the bounding box for the tile // (Because we need to cut the surrounding tiles later) Bounds = Geometry.Geometry.GetBoundingBox(X, Y, s_Geometry.Vertices); // We need to load the surrounding tiles because there sometimes is overlap in geometry to and from different tiles for (var y = Y - 1; y <= Y + 1; y++) { for (var x = X - 1; y <= X + 1; y++) { // Skip target tile as we already added it if (X == x && Y == y) { continue; } // Add a surrounding tile var tile = new ADT(World, x, y); tile.Read(); tile.Generate(); s_Geometry.AddADT(tile, false); } } }
private bool LoadTile(int tileX, int tileY) { if (!WDT.HasTile(tileX, tileY)) { return(false); } if (IsTileLoaded(tileX, tileY)) { return(false); } // Generate tile var tile = new ADT(Continent, tileX, tileY, WDT); tile.Read(); tile.Generate(); // Generate renderer var renderer = new ADTRenderer(Controller, tile); renderer.Generate(); renderer.Bind(Controller.Shader); ADTRenderer.Renderers.Add(renderer); return(true); }
static void ReadADT() { // var adt = new ADT("Kalimdor", 32, 36); //var adt = new ADT("PvPZone01", 32, 30); var adt = new ADT("Azeroth", 28, 28); // var adt = new ADT("Azeroth", 31, 40); adt.Read(); adt.Generate(); var geom = new Geometry(); geom.AddADT(adt); geom.SaveWavefrontObject(Path.GetFileNameWithoutExtension(adt.Filename) + ".obj"); }
static void ReadADTs() { const string continent = "Azeroth"; var allGeom = new Geometry(); var sw = new Stopwatch(); for (int y = 27; y < 29; y++) { for (int x = 28; x < 30; x++) { Console.Write("Parsing {0} [{1}, {2}]", continent, x, y); sw.Start(); var adt = new ADT(continent, x, y); adt.Read(); adt.Generate(); sw.Reset(); Console.WriteLine(" (done! {0}ms)", sw.ElapsedMilliseconds); allGeom.AddADT(adt); } } allGeom.SaveWavefrontObject(continent + ".obj"); }