void TileStorage::WriteToFile(FILE* f, std::vector< uint64_t >& tile_order)
{
  char magic[16];
  strcpy(magic,"spring tilefile");
  int version = 1;
  int numtiles = m_tiles_compressed.size();
  int tileSize = 32;
  int compressionType = 1;
  fwrite(magic,16,1,f);
  fwrite(&version,4,1,f);
  fwrite(&numtiles,4,1,f);
  fwrite(&tileSize,4,1,f);
  fwrite(&compressionType,4,1,f);
  for ( std::vector< uint64_t >::const_iterator it = tile_order.begin(); it != tile_order.end(); it++ )
  {
    if ( m_tiles_compressed.find(*it) == m_tiles_compressed.end() )
    {
      CompressAll();
      
      
    }
    if ( m_tiles_compressed.find(*it) == m_tiles_compressed.end() )
    {
      throw InvalidTileIndexException();
    }
    fwrite(m_tiles_compressed[*it],680,1,f);
  }
  fflush(f);
}
Beispiel #2
0
//enumerates the sets to which the items belong
void UnionFind::EnumerateSets(std::vector<int>& sets)
{
  CompressAll();
  sets.resize(parents.size());
  for(int i=0;i<(int)parents.size();i++) sets[i]=FindRoot(i);
}