示例#1
0
文件: util.cpp 项目: MEC402/cruft
std::unique_ptr<float []>
readVolumeData(const std::string& dtype, const std::string& fpath,
    size_t volx, size_t voly, size_t volz)
{
  bd::DataType t = bd::to_dataType(dtype);
  float* rawdata = nullptr;
  switch (t) {
  case bd::DataType::Float:
    {
      bd::DataReader<float, float> reader;
      reader.loadRaw3d(fpath, volx, voly, volz, false);
      rawdata = reader.takeOwnership();
      break;
    }
  case bd::DataType::UnsignedCharacter:
    {
      bd::DataReader<unsigned char, float> reader;
      reader.loadRaw3d(fpath, volx, voly, volz, false);
      rawdata = reader.takeOwnership();
      break;
    }
  case bd::DataType::UnsignedShort:
    {
      DataReader<unsigned short, float> reader;
      reader.loadRaw3d(fpath, volx, voly, volz, false);
      rawdata = reader.takeOwnership();
      break;
    }
  default:
    break;
  }

  return std::unique_ptr<float[]>(rawdata);
}