# ParaView/User Created Plugins

From KitwarePublic

< ParaView(Redirected from User Created Plugins)

### General

- Add Vertices - If a dataset contains points (geometry) but no vertices (topology), Paraview will not display anything. Use this filter to add vertices to your dataset.
- Inputs: 1 data set of any type
- Outputs: 1 polydata

### Registration

- Iterative Closest Point Transform Filter - Register one point set to another point set using the Iterative Closest Point (ICP) algorithm.
- Inputs: 2 polydata (Source and Target - the source will attempt to be moved to the target)
- Outputs: 1 polydata - the transformed source dataset

- Landmark Transform Filter - Select three or more corresponding points from two data sets and align the two data sets using a Landmark Transform.
- Inputs: 1 polydata, 2 datasets - 1) SourceLandmarks (vtkDataSet) - A set of points extracted from the source dataset 2) TargetLandmarks (vtkDataSet) - A set of points from the target dataset corresponding (and ordered the same as) the points in the source dataset 3) SourceDataset (vtkPolyData) - The source dataset which will be transformed
- Outputs: 1 polydata - the transformed source dataset

- Tensor Glyph Filter - The filter exposes vtkTensorGlyph and overcomes the class' shortcoming of not naming its output data arrays which prevents ParaView from listing and using them.

It offers ellipsoids, cuboids, cylinder or superquadric tensor glyphs to visualize tensors by scaling each glyph according to a tensor's eigenvalues or the norms of an individual tensor's columns.

The plugin is no superset of Superquadric Tensor Glyph Filter in that merely one set of superquadric glyphs are used for all tensors, in contrast to the mentioned plugin that determines per tensor suitable superquadric glyph settings.

The Tensor Glyph filter operates on any type of data set. Its output is polygonal.

Version 1.0.2 now supports serial and multi-core mode. - Superquadric Tensor Glyph Filter - The filter generates a superquadric glyph at every point in the input data set as suggested by Gordon Kindlmann at VisSym 2004. The glyphs are oriented and scaled according to eigenvalues and eigenvectors of point tensor data of the input data set. If ExtractEigenvalues is false, the entries of the 3x3 matrix are interpreted as principal axes of the superquadric and their norm as the length of these axes.

By default a different glyph is used per tensor, based on its eigenvalues, to distinguish tensors easily for all view angles reducing visual ambiguity (from certain viewpoints, e.g. ellipsoids poorly convey tensor shape). The gamma roundness parameter allows the user to control the visual prominence of orientation information at low anisotropy levels (low differences in eigenvalues). Use values between 1.5 and 3. High values (above about 4) turn the superquadrics back into cuboid glyphs which misleadingly depict under-constrained orientation (problem of eigenvalue indeterminacy).

The behavior of a standard Tensor Glyph filter can be achieved by setting FixedThetaPhiRoundness to true and choosing fixed theta and phi roundness values for all tensors. Set theta and phi roundness to 0.0 to get rectangular glyphs, set them to 1.0 to get ellipsoidal glyphs, set theta roundness to 1.0 and phi roundness to 0.0 to get cylindrical glyphs.

The Superquadric Tensor Glyph filter operates on any type of data set, but assumes positive-definite tensors, negative and vanishing eigenvalues are ignored. Its output is polygonal.

Version 2.0.2 now supports serial and multi-core mode.

Based on experience with large scale data, use of D3 filter is recommended to make the optimum use of multiple-cores.

This filter has been successfully tested on a 128X128X128 grid of tensors, running on a cluster with 5 nodes of 8 cpu's each. Beware though; the current implementation requires large amount of computing power as the data scales up..

Version 3 has sped up the step of combining the superquadrics from order n squared to order n - Joseph Hennessey

### Instructions

To use these plugins, you must have compiled Paraview from source (The plugins have been updated to work with ParaView 3.98.1 - Joseph Hennessey)

- Unzip the plugin
- Create a bin directory in the directory in which you have unzipped the plugin:

```
mkdir bin
```

- From the bin directory, run cmake to create the make files:

```
cmake ../
```

- Compile the plugin:

```
make
```

- Load the plugin in Paraview: 1) Tools -> Manage Plugins/Extensions 2) On the right pane, click Load New. 3) Browse to the bin directory you were just working in and load libYOURPLUGIN.so
- You can now use the plugin by selecting an object in the Pipeline Browser and then selecting the plugin you have just added from the Filters menu.