MantisBT - ParaView | |||||
View Issue Details | |||||
ID | Project | Category | View Status | Date Submitted | Last Update |
0010129 | ParaView | Bug | public | 2010-01-12 16:25 | 2016-08-12 09:57 |
Reporter | Eric Monson | ||||
Assigned To | Utkarsh Ayachit | ||||
Priority | normal | Severity | minor | Reproducibility | always |
Status | closed | Resolution | moved | ||
Platform | OS | OS Version | |||
Product Version | Development | ||||
Target Version | Fixed in Version | ||||
Project | |||||
Topic Name | |||||
Type | |||||
Summary | 0010129: XDMF Reader doesn't create vtkIdType arrays out of GlobalID attributes | ||||
Description | The current Xdmf2 format supports AttributeType="GlobalID", but the reader doesn't really create a vtkIdTypeArray for ParaView when reading in these attributes -- it creates an int type, so ParaView can't really use this as a Global ID. (This is at least true when reading "heavy data" from an HDF5 file -- I'm not sure what happens when the data is just specified within the .xmf file as XML data...) In case it helps, I'm detailing what I see as the major issue, plus an outline of my own hacky solution in the Additional Information. | ||||
Steps To Reproduce | |||||
Additional Information | The reader, as it is implemented now within vtkXdmfHeavyData::ReadAttributes() gets a vtkDataArray back from ReadAttribute(), and then if it has XDMF_ATTRIBUTE_TYPE_GLOBALID it calls SetActiveGlobalIds on that array. This doesn't really do much since the vtkDataArray isn't a vtkIdType. When vtkXdmfHeavyData::ReadAttribute() reads in the data from the HDF5 file, it creates the vtkDataArray using the vtkXdmfDataArray::FromXdmfArray() method. This is where the problem occurs. Since HDF5 doesn't natively support an "ID Type", when FromXdmfArray() calls vtkXdmfDataArray->GetNumberType(), IDs will always just look like integers, so some integer type of vtk array will be created and returned. Since I couldn't figure out how to add a new ID number type to Xdmf, the way I solved this in my own modified Xdmf reader was a bit of a hack, but it worked: when the reader detected that an Xdmf attribute had ID type, ReadAttribute() would call vtkXdmfDataArray::FromXdmfIDArray(), which was basically a duplicate of FromXdmfArray(), but creating a vtkIdTypeArray if an integer type was detected (and giving an error for any other type). I'm sure someone else could come up with a more elegant solution, but this worked fine when I tried it, showing idType in the ParaView Information tab. | ||||
Tags | No tags attached. | ||||
Relationships | |||||
Attached Files | |||||
Issue History | |||||
Date Modified | Username | Field | Change | ||
2010-01-12 16:25 | Eric Monson | New Issue | |||
2011-07-12 14:29 | Utkarsh Ayachit | Assigned To | => Utkarsh Ayachit | ||
2011-07-12 14:29 | Utkarsh Ayachit | Note Added: 0026996 | |||
2011-07-12 14:29 | Utkarsh Ayachit | Status | expired => backlog | ||
2011-07-12 14:29 | Utkarsh Ayachit | Resolution | open => reopened | ||
2016-08-12 09:57 | Kitware Robot | Note Added: 0037766 | |||
2016-08-12 09:57 | Kitware Robot | Status | backlog => closed | ||
2016-08-12 09:57 | Kitware Robot | Resolution | reopened => moved |
Notes | |||||
|
|||||
|
|
||||
|
|||||
|
|