mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: vtkUnstructuredReader: handle more vtk file types
This commit is contained in:
@ -36,14 +36,18 @@ defineTypeNameAndDebug(Foam::vtkUnstructuredReader, 0);
|
||||
|
||||
template<>
|
||||
const char*
|
||||
Foam::NamedEnum<Foam::vtkUnstructuredReader::vtkDataType, 4>::names[] =
|
||||
Foam::NamedEnum<Foam::vtkUnstructuredReader::vtkDataType, 8>::names[] =
|
||||
{
|
||||
"int",
|
||||
"unsigned_int",
|
||||
"long",
|
||||
"unsigned_long",
|
||||
"float",
|
||||
"double",
|
||||
"string",
|
||||
"vtkIdType"
|
||||
};
|
||||
const Foam::NamedEnum<Foam::vtkUnstructuredReader::vtkDataType, 4>
|
||||
const Foam::NamedEnum<Foam::vtkUnstructuredReader::vtkDataType, 8>
|
||||
Foam::vtkUnstructuredReader::vtkDataTypeNames;
|
||||
|
||||
|
||||
@ -385,6 +389,9 @@ void Foam::vtkUnstructuredReader::readField
|
||||
switch (vtkDataTypeNames[dataType])
|
||||
{
|
||||
case VTK_INT:
|
||||
case VTK_UINT:
|
||||
case VTK_LONG:
|
||||
case VTK_ULONG:
|
||||
case VTK_ID:
|
||||
{
|
||||
autoPtr<labelIOField> fieldVals
|
||||
@ -406,6 +413,7 @@ void Foam::vtkUnstructuredReader::readField
|
||||
break;
|
||||
|
||||
case VTK_FLOAT:
|
||||
case VTK_DOUBLE:
|
||||
{
|
||||
autoPtr<scalarIOField> fieldVals
|
||||
(
|
||||
@ -627,7 +635,7 @@ void Foam::vtkUnstructuredReader::read(ISstream& inFile)
|
||||
}
|
||||
|
||||
word primitiveTag(inFile);
|
||||
if (primitiveTag != "float")
|
||||
if (primitiveTag != "float" && primitiveTag != "double")
|
||||
{
|
||||
FatalIOErrorIn("vtkUnstructuredReader::read(..)", inFile)
|
||||
<< "Expected 'float' entry but found "
|
||||
@ -809,7 +817,11 @@ void Foam::vtkUnstructuredReader::read(ISstream& inFile)
|
||||
3*wantedSize
|
||||
);
|
||||
|
||||
if (vtkDataTypeNames[dataType] == VTK_FLOAT)
|
||||
if
|
||||
(
|
||||
vtkDataTypeNames[dataType] == VTK_FLOAT
|
||||
|| vtkDataTypeNames[dataType] == VTK_DOUBLE
|
||||
)
|
||||
{
|
||||
objectRegistry::iterator iter = reg.find(dataName);
|
||||
scalarField s(*dynamic_cast<const scalarField*>(iter()));
|
||||
|
||||
@ -28,6 +28,8 @@ Description
|
||||
Reader for vtk unstructured_grid legacy files. Supports single CELLS, POINTS
|
||||
etc. entry only.
|
||||
|
||||
- all integer types (int, unsigned_int, long etc.) become Foam::label
|
||||
- all real types (float, double) become Foam::scalar
|
||||
- POINTS becomes OpenFOAM points
|
||||
- CELLS gets split into OpenFOAM
|
||||
- cells
|
||||
@ -69,12 +71,16 @@ public:
|
||||
enum vtkDataType
|
||||
{
|
||||
VTK_INT,
|
||||
VTK_UINT,
|
||||
VTK_LONG,
|
||||
VTK_ULONG,
|
||||
VTK_FLOAT,
|
||||
VTK_DOUBLE,
|
||||
VTK_STRING,
|
||||
VTK_ID
|
||||
};
|
||||
|
||||
static const NamedEnum<vtkDataType, 4> vtkDataTypeNames;
|
||||
static const NamedEnum<vtkDataType, 8> vtkDataTypeNames;
|
||||
|
||||
|
||||
//- Enumeration defining the vtk dataset types
|
||||
|
||||
Reference in New Issue
Block a user