Skip to content

Better uniform glyphing for surfaces

This adds two new uniform glyphing modes to the vtkPVGlyphFilter and also generalizes a bit its API. The two new modes are based on "inverse transform sampling" algorithm, the first one uses surface area, the second one uses cell volume.

The surface one will actually extract the surface first if needed, so the glyphs will be located on the surface mesh only. The volume one will ignore completely non-3D cells.

Both modes support multiblocks and parallel meshes perfectly, as well as cell centers when using cell data.

Those modes were needed because the current algorithm is only based on the mesh bounds and this have limitations and bad behaviors, especially when dealing with multi pieces mesh.

Below is an example with 50 glyphs. With current "Uniform Spatial Distribution" mode (now called "Uniform Spatial Distribution (Bounds Based)", the bounds are used to determine the amount of seeds: oldGlyph

With the new "Uniform Spatial Distribution (Surface Sampling)" mode, the seeds are distributed according to the surface area of the surface mesh: newGlyphSurf

With the new "Uniform Spatial Distribution (Volume Sampling)" mode, the seeds are distributed according to the volume of the cells, which is quite visible in this case: newGlyphVol

Edited by Joachim Pouderoux

Merge request reports