在vtp(或xml?)文件中,我有一组点,每个点的位置(x,y,z),质量(m)和密度(rho)。
它们看起来像这样
<?xml version="1.0"?>
<VTKFile type="PolyData" version="0.1" byte_order="LittleEndian" header_type="UInt32" compressor="vtkZLibDataCompressor">
<PolyData>
<Piece NumberOfPoints="524288" NumberOfVerts="0" NumberOfLines="0" NumberOfStrips="0" NumberOfPolys="0" >
<PointData>
<DataArray type="Float32" Name="vx" format="appended" RangeMin="-10617.716797" RangeMax="11650.322266" offset="0" />
<DataArray type="Float32" Name="vy" format="appended" RangeMin="-12008.198242" RangeMax="11676.560547" offset="2554076" />
<DataArray type="Float32" Name="vz" format="appended" RangeMin="-10880.447266" RangeMax="11361.508789" offset="5104080" />
<DataArray type="Float32" Name="mass" format="appended" RangeMin="0.16916139424" RangeMax="0.83083856106" offset="7655432" />
<DataArray type="Float32" Name="uu" format="appended" RangeMin="0" RangeMax="117252.91406" offset="7742064" />
<DataArray type="Float32" Name="hh" format="appended" RangeMin="0" RangeMax="4.1185030937" offset="8877700" />
<DataArray type="Float32" Name="mu" format="appended" RangeMin="1.2307692766" RangeMax="1.2307692766" offset="10032668" />
<DataArray type="Float32" Name="rho" format="appended" RangeMin="0" RangeMax="49503150080" offset="10038236" />
<DataArray type="Float32" Name="phi" format="appended" RangeMin="-1.3579902649" RangeMax="1.2645899057" offset="11265024" />
<DataArray type="Int64" Name="id" format="appended" RangeMin="0" RangeMax="524287" offset="13840232" />
<DataArray type="UInt16" Name="mask" format="appended" RangeMin="0" RangeMax="3" offset="15044924" />
</PointData>
<CellData>
</CellData>
<Points>
<DataArray type="Float32" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0.89113022864" RangeMax="110.020575" offset="15133592" />
</Points>
<Verts>
<DataArray type="Int64" Name="connectivity" format="appended" RangeMin="" RangeMax="" offset="22080132" />
<DataArray type="Int64" Name="offsets" format="appended" RangeMin="" RangeMax="" offset="22080148" />
</Verts>
<Lines>
<DataArray type="Int64" Name="connectivity" format="appended" RangeMin="" RangeMax="" offset="22080164" />
<DataArray type="Int64" Name="offsets" format="appended" RangeMin="" RangeMax="" offset="22080180" />
</Lines>
<Strips>
<DataArray type="Int64" Name="connectivity" format="appended" RangeMin="" RangeMax="" offset="22080196" />
<DataArray type="Int64" Name="offsets" format="appended" RangeMin="" RangeMax="" offset="22080212" />
</Strips>
<Polys>
<DataArray type="Int64" Name="connectivity" format="appended" RangeMin="" RangeMax="" offset="22080228" />
<DataArray type="Int64" Name="offsets" format="appended" RangeMin="" RangeMax="" offset="22080244" />
</Polys>
</Piece>
</PolyData>
<AppendedData encoding="base64">
...
</AppendedData>
</VTKFile
我想使用它来进行一些体绘制,因此我需要将其作为ImageData。
[我的第一个愚蠢方法是:使用vtkXMLImageDataReader
而不是vtkXMLPolyDataReader
。显然没有用。
如何将其转换为ImageData
或使其与任何volumeMapper兼容?
谢谢