public override void Write(BinaryReaderWriter bw, uint headeroffset = 0, UInt16 headerlength = 0x29, uint gapoffset = 0, uint dataoffset = 0, bool setsectiondata = true) { HeaderOffset = headeroffset; if (headerlength > 0) { Headerlength = headerlength; } CreationDate = DateTime.Now; GapOffset = gapoffset; DataOffset = dataoffset; PtrZoomlevel = Headerlength; for (int z = 0; z < ZoomlevelCount; z++) { ZoomLevel[z].CalculateStructureLength(); ZoomLevel[z].ZoomlevelItem.PtrSubtileTable = PtrZoomlevel; PtrZoomlevel += (uint)ZoomLevel[z].GetTablelength(); ZoomLevel[z].ZoomlevelItem.PtrHeightdata = PtrZoomlevel; PtrZoomlevel += (uint)ZoomLevel[z].GetDatalength(); } Encode_Header(bw); bw.Seek(headerlength); for (int z = 0; z < ZoomlevelCount; z++) { // Subtile-Tabelle schreiben for (int i = 0; i < ZoomLevel[z].Subtiles.Count; i++) { ZoomlevelTableitem zti = ZoomLevel[z].ZoomlevelItem; ZoomLevel[z].Subtiles[i].Tableitem.Write(bw, zti.Structure_OffsetSize, zti.Structure_BaseheightSize, zti.Structure_DiffSize, zti.Structure_CodingtypeSize); } // Subtile-Daten schreiben for (int i = 0; i < ZoomLevel[z].Subtiles.Count; i++) { bw.Write(ZoomLevel[z].Subtiles[i].Data); } } // Zoomleveltabelle schreiben for (int z = 0; z < ZoomlevelCount; z++) { ZoomLevel[z].ZoomlevelItem.Write(bw); } bw.Flush(); }