static Region *getRegion(int compnr)
{
   char    name[20];
   Region* regionp = 0;

   sprintf(name, "%d", compnr);

   std::string key = name;

   if (regionTable.find(key) == regionTable.end()) {
      std::cout << "WARNING: region " << key
		<< " not in material list" << std::endl;
      char unknown[] = "UNKNOWN";
      if (regionTable.find(unknown) == regionTable.end()) {
	regionp = new Region(atoi(unknown), unknown);
	regionp->addMaterial(0);
	key = unknown;
	regionTable[key] = regionp;
      }
      else
	regionp = regionTable[unknown];
   }
   else
      regionp = regionTable[key];

   return regionp;
}
int readMaterials(FILE *fp)
{
   char title[LINELEN];
   char name[20];
   int mat;

   if (bu_fgets(title, LINELEN, fp) == NULL)
      return 1;

   char descr[LINELEN];
   while (fscanf(fp, "%s%d%[^\n]", name, &mat, descr) != EOF)
   {
      if (name[0] == '-')
	 continue;

      Region *regionp;

      regionp = new Region(atoi(name), descr);
      regionp->addMaterial(mat);

      std::string key = name;
      regionTable[key] = regionp;

      fgetc(fp);     // newline lezen
   }
   return 0;
}