diff --git a/vtkm/io/reader/VTKRectilinearGridReader.h b/vtkm/io/reader/VTKRectilinearGridReader.h index 64389901e..c03163ba2 100644 --- a/vtkm/io/reader/VTKRectilinearGridReader.h +++ b/vtkm/io/reader/VTKRectilinearGridReader.h @@ -61,21 +61,25 @@ private: std::string dataType; std::size_t numPoints[3]; vtkm::cont::DynamicArrayHandle X,Y,Z; + + // Always read coordinates as vtkm::FloatDefault + std::string readDataType = + vtkm::io::internal::DataTypeName::Name(); this->DataFile->Stream >> tag >> numPoints[0] >> dataType >> std::ws; if (tag != "X_COORDINATES") throw vtkm::io::ErrorIO("X_COORDINATES tag not found"); - this->DoReadDynamicArray(dataType, numPoints[0], 1, X); + this->DoReadDynamicArray(readDataType, numPoints[0], 1, X); this->DataFile->Stream >> tag >> numPoints[1] >> dataType >> std::ws; if (tag != "Y_COORDINATES") throw vtkm::io::ErrorIO("Y_COORDINATES tag not found"); - this->DoReadDynamicArray(dataType, numPoints[1], 1, Y); + this->DoReadDynamicArray(readDataType, numPoints[1], 1, Y); this->DataFile->Stream >> tag >> numPoints[2] >> dataType >> std::ws; if (tag != "Z_COORDINATES") throw vtkm::io::ErrorIO("Z_COORDINATES tag not found"); - this->DoReadDynamicArray(dataType, numPoints[2], 1, Z); + this->DoReadDynamicArray(readDataType, numPoints[2], 1, Z); if (dim != vtkm::Id3(static_cast(numPoints[0]), static_cast(numPoints[1]),