template <class T>
int vtkReadBinaryData(istream *IS, T *data, int numTuples, int numComp)
{
  //SANITY CHECK TO PREVENT READING NONSENSE
  if(!data || numComp*numTuples == 0)
  {
    vtkGenericWarningMacro(<<"Invalid input data for binary read operation!");
    return 0;
  }  
  
  char line[256];
  // suck up newline
  IS->getline(line,256);
  IS->read((char *)data, sizeof(T)*numComp*numTuples);  
  if (IS->eof())
    {
    vtkGenericWarningMacro(<<"Error reading binary data!");
    return 0;
    }
  return 1;
}
