<ModuleInterfaces>
  <Module name="Balance"
          root_name="Balance" module_type="Filter"
          multiprocess_support="multiple_processes"
          long_help="Balance data among available processes."
          short_help="Load balance filter.">
    <Filter class="vtkBalancedRedistributePolyData">
      <Input name="Input"
             class="vtkPolyData"/>
    </Filter>
    <InputMenu trace_name="Input" label="Input"
               help="Balance the number of cells on all processes."
               input_name="Input"/>
  </Module>
  <Module name="AllToN"
          root_name="AllToN" module_type="Filter"
          multiprocess_support="multiple_processes"
          long_help="Redistribute data to a subset of available processes."
          short_help="Repartition data filter.">
    <Filter class="vtkAllToNRedistributePolyData">
      <Input name="Input"
             class="vtkPolyData"/>
    </Filter>
    <InputMenu trace_name="Input" label="Input"
               help="Redistribute polydata to a subset of processes."
               input_name="Input"/>
  <!-- dependent on number of processes being used -->
    <VectorEntry trace_name="NumberOfProcesses"
                 variable="NumberOfProcesses"
                 type="int"
                 default_value="1"/>
  </Module>
  <Module name="AppendAttributes"
          menu_name="Append Attributes"
          root_name="AppendAttr"
          module_type="Filter"
          long_help="Copies geometry from first input.  Puts all of the arrays into the output."
          short_help="Puts all input arrays into the single output.">
    <Filter class="vtkMergeArrays">
      <Input name="Input"
             class="vtkDataSet" quantity="Multiple">
        <GroupRequirement quantity="Multiple"/>
      </Input>
    </Filter>
  </Module>
  <Module name="AppendPolyData"
          menu_name="Append Geometry"
          root_name="AppendGeo"
          module_type="Filter"
          long_help="Takes an input of multiple poly data parts and output has only one part."
          short_help="Append multiple parts into one.">
    <Filter class="vtkAppendPolyData">
      <Input name="Input"
             class="vtkPolyData" quantity="Multiple">
        <GroupRequirement quantity="Multiple"/>
      </Input>
    </Filter>
  </Module>
  <Module name="Append"
          menu_name="Append Datasets"
          root_name="Append"
          module_type="Filter"
          long_help="Takes an input of multiple datasets and output has only one unstructured grid."
          short_help="Append multiple datasets into one.">
    <Filter class="vtkAppendFilter">
      <Input name="Input"
             class="vtkDataSet" quantity="Multiple">
        <GroupRequirement quantity="Multiple"/>
      </Input>
    </Filter>
  </Module>
  <Module name="CellCenters"
          menu_name="Cell Centers"
          root_name="Centers"
          module_type="Filter"
          long_help="Create a point (no geometry) at the center of each input cell."
          short_help="Convert cells to vertices.">
    <Filter class="vtkCellCenters">
      <Input name="Input"
             class="vtkDataSet"/>
    </Filter>
    <InputMenu trace_name="Input" label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
    <LabeledToggle label="Generate vertices"
                   trace_name="VertexCells"
                   variable="VertexCells"
                   help="Generate vertex as geometry of just points."
                   default_value="0"/>
  </Module>
  <Module name="CellDataToPointData"
          root_name="CellToPoint"
          module_type="Filter"
          long_help="Create point attributes by averaging cell attributes."
          short_help="Convert cell data to point data.">
    <Filter class="vtkPCellDataToPointData">
      <Input name="Input"
             class="vtkDataSet">
        <ArrayRequirement attribute="Cell"/>
        <FixedTypeRequirement/>
      </Input>
    </Filter>
    <InputMenu trace_name="Input" label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
    <LabeledToggle label="Pass cell data"
                   trace_name="PassCellData"
                   variable="PassCellData"
                   help=" Control whether the input cell data is to be passed to the output. If on, then the input cell data is passed through to the output; otherwise, only generated point data is placed into the output."
                   default_value="0"/>
  </Module>
  <Module name="CleanPolyData"
          menu_name="Clean" root_name="CleanPD"
          module_type="Filter"
          long_help="Merge coincident points if they do not meet a feature edge critera."
          short_help="Merge coincident points.">
    <Filter class="vtkCleanPolyData">
      <Input name="Input"
             class="vtkPolyData"/>
    </Filter>
    <InputMenu trace_name="Input" label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
    <LabeledToggle label="Piece invariant"
                   trace_name="PieceInvariant"
                   variable="PieceInvariant"
                   help="Turn this on to remove seams when running in parallel."
                   default_value="1"/>
    <Scale variable="Tolerance"
           trace_name="Tolerance"
           help="The tolerance in terms of fraction of bounding box length."
           default_value="0.0"
           resolution="0.01" range="0 1"
           display_entry="1"
           entry_and_label_on_top="0" display_value="0"/>
  <!-- AbsoluteTolerance dependent on world-space size of data -->
  <!-- should use a widget that keeps value non-negative -->
    <VectorEntry label="Absolute tolerance"
                 variable="AbsoluteTolerance"
                 trace_name="AbsoluteTolerance" type="float"
                 help="The tolerance in absolute terms."
                 default_value="1.0"/>
    <LabeledToggle label="Tolerance is absolute"
                   trace_name="ToleranceIsAbsolute"
                   variable="ToleranceIsAbsolute"
                   help="Turn this on to use the absolute tolerance."
                   default_value="0"/>
    <LabeledToggle label="Convert lines to points"
                   trace_name="ConvertLinesToPoints"
                   variable="ConvertLinesToPoints"
                   help="Turn on/off conversion of degenerate lines to points."
                   default_value="1"/>
    <LabeledToggle label="Convert polys to lines"
                   trace_name="ConvertPolysToLines"
                   variable="ConvertPolysToLines"
                   help="Turn on/off conversion of degenerate polys to lines."
                   default_value="1"/>
    <LabeledToggle label="Convert strips to polys"
                   trace_name="ConvertStripsToPolys"
                   variable="ConvertStripsToPolys"
                   help="Turn on/off conversion of degenerate strips to polys."
                   default_value="1"/>
    <LabeledToggle label="Point merging"
                   trace_name="PointMerging"
                   variable="PointMerging"
                   help="Turn this On to control wheter points merging is performed."
                   default_value="1"/>
  </Module>
  <Module name="CleanUnstructuredGrid"
          menu_name="CleanToGrid"
          root_name="CleanUGrid"
          module_type="Filter"
          long_help="This filter shrinks merges points and converts to unstructured grid."
          short_help="Merge points.">
    <Filter class="vtkCleanUnstructuredGrid">
      <Input name="Input"
             class="vtkDataSet"/>
    </Filter>
    <InputMenu trace_name="Input" label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
  </Module>
  <Module name="PVConnectivityFilter"
          menu_name="Connectivity"
          root_name="Connect"
          module_type="Filter"
          long_help="Mark connected components with integer point attribute array."
          short_help="Find connected components.">
    <Filter class="vtkPVConnectivityFilter">
      <Input name="Input"
             class="vtkDataSet"/>
    </Filter>
    <InputMenu trace_name="Input" label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
  </Module>
  <Module name="ImageClip"
          menu_name="Crop" root_name="ImageClip"
          module_type="Filter"
          replace_input="0"
          long_help="Efficiently extract an area/volume of interest from a 2-d image or 3-d volume."
          short_help="Extract a volume of interest.">
    <Filter class="vtkImageClip">
      <Input name="Input"
             class="vtkImageData"/>
    </Filter>
    <InputMenu trace_name="Input"
               id="im" label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
    <ExtentEntry label="Extent to crop"
                 trace_name="OutputWholeExtent"
                 variable="OutputWholeExtent"
                 input_menu="im"
                 help="Set the min/max extents in each dimension of the output"/>
  </Module>
  <Module name="Curvatures"
          menu_name="Curvature"
          root_name="Curvatures"
          module_type="Filter"
          long_help="This filter will compute the gaussian or mean curvature of the mesh at each point."
          short_help="Compute the curvature at each point.">
    <Filter class="vtkCurvatures">
      <Input name="Input"
             class="vtkPolyData"/>
    </Filter>
    <InputMenu trace_name="Input" label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
    <LabeledToggle label="Invert mean curvature"
                   trace_name="InvertMeanCurvature"
                   variable="InvertMeanCurvature"
                   help="Turn this on to invert the mean curvature calculation for meshes with inward pointing normals."
                   default_value="0"/>
    <SelectionList variable="CurvatureType"
                   label="Curvature type"
                   trace_name="CurvatureType"
                   help="Select the curvature type."
                   default_value="0">
      <Item name="Gaussian" value="0"/>
      <Item name="Mean" value="1"/>
    </SelectionList>
  </Module>
  <Module name="DecimatePro"
          menu_name="Decimate"
          root_name="Deci"
          module_type="Filter"
          long_help="Simplify a polygonal model using an adaptive edge collapse algorithm.  This filter works with triangles only."
          short_help="Reduce the number of triangles in a model.">
    <Filter class="vtkDecimatePro">
      <Input name="Input"
             class="vtkPolyData"/>
    </Filter>
    <InputMenu trace_name="Input" label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
    <Scale label="Reduction target"
           trace_name="TargetReduction"
           variable="TargetReduction"
           help="Value between 0 and 1. Desired reduction of the total number of triangles."
           default_value="0.90"
           resolution="0.01" range="0 1"
           display_entry="1"
           entry_and_label_on_top="0" display_value="0"/>
    <LabeledToggle label="Preserve topology"
                   trace_name="PreserveTopology"
                   variable="PreserveTopology"
                   help="If off, better reduction can occur, but model may break up."
                   default_value="0"/>
    <Scale label="Feature angle"
           trace_name="FeatureAngle"
           variable="FeatureAngle"
           help="This angle is used to define a feature edge. (i.e., if the surface normal between two adjacent triangles is >= Feature angle, an edge exists). Topology can be split along feature edges."
           default_value="15.0"
           resolution="0.01" range="0 180"
           display_entry="1"
           entry_and_label_on_top="0"
           display_value="0"/>
    <LabeledToggle label="Boundary deletable"
                   trace_name="BoundaryVertexDeletion"
                   variable="BoundaryVertexDeletion"
                   help="If off, decimate will not remove points on the boundary."
                   default_value="1"/>
  </Module>
  <Module name="D3"
          menu_name="D3" root_name="D3"
          module_type="Filter"
          multiprocess_support="multiple_processes"
          long_help="Repartition a data set into load-balanced spatially convex regions."
          short_help="Repartition a data set.">
    <Filter class="vtkDistributedDataFilter">
      <Input name="Input"
             class="vtkDataSet"/>
    </Filter>
    <InputMenu trace_name="Input" label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
    <LabeledToggle label="Assign cells uniquely" 
                   trace_name="AssignBoundaryCellsToOneRegion" 
                   variable="AssignBoundaryCellsToOneRegion" 
                   help="Each cell is assigned to one process only (isosurfacing)" 
                   default_value="1"/>
    <LabeledToggle label="or Duplicate cells" 
                   trace_name="AssignBoundaryCellsToAllIntersectingRegions" 
                   variable="AssignBoundaryCellsToAllIntersectingRegions" 
                   help="Cells on processor boundaries will be duplicated" 
                   default_value="0"/>
    <LabeledToggle label="or Divide cells" 
                   trace_name="DivideBoundaryCells" 
                   variable="DivideBoundaryCells" 
                   help="Cells on processor boundaries will be split (volume rendering)" 
                   default_value="0"/>
    <StringEntry variable="GlobalIdArrayName"
                 trace_name="GlobalIdArrayName"
                 help="Provide name of global node ID array so redistributed data does not duplicate node IDs" />
  </Module>
  <Module name="ElevationFilter"
          menu_name="Elevation"
          root_name="Elevation"
          module_type="Filter"
          long_help="Create point attribute array by projecting points onto an elevation vector."
          short_help="Create a point array representing elevation.">
    <Filter class="vtkElevationFilter">
      <Input name="Input"
             class="vtkDataSet">
        <FixedTypeRequirement/>
      </Input>
    </Filter>
    <InputMenu trace_name="Input"
               label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
  <!-- keeping vector entries with length > 1 -->
    <VectorEntry label="Scalar range"
                 trace_name="ScalarRange"
                 variable="ScalarRange"
                 type="float" length="2"
                 default_value="0.0 1.0"
                 help="Set the range of scalar values to generate" />
    <LineWidget trace_name="Line"
                point1_variable="LowPoint"
                point2_variable="HighPoint"
                point1_label="Low Point"
                point2_label="High Point"
                use_label="0"
                show_resolution="0"
                help="Set the minimum and maximum point for elevation"/>
  </Module>
#ifdef PARAVIEW_BUILD_DEVELOPMENT
  <Module name="CTHPartAMR"
          menu_name="Extract CTH Parts"
          root_name="CTHPartAMR"
          module_type="Filter"
          long_help="Create a surface from a CTH volume fraction."
          short_help="Extract a part from a CTH dataset.">
    <Filter class="vtkCTHExtractAMRPart">
      <Input name="Input"
             class="vtkCTHData">
        <ArrayRequirement attribute="Cell" components="1"/>
      </Input>
    </Filter>
    <InputMenu trace_name="Input"
               id="im" label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
    <SelectCTHArrays input_menu="im"
                     trace_name="ArraySelection"
                     help="Select the volume fraction arrays for generating parts."/>
    <SelectWidget variable="Clipping"
                  trace_name="Clipping" type="int">
      <Item label="On" value="1">
        <ImplicitPlaneWidget use_label="0" trace_name="Plane"
                             variable="ClipPlane" input_menu="im"
                             help="Adjusts the parameters of the plane to clip with."/>
      </Item>
      <Item label="Off" value="0">
        <DummyWidget trace_name="Dummy"/>
      </Item>
    </SelectWidget>
  </Module>
#endif
  <Module name="CTHPart"
          menu_name="Extract CTH Parts"
          root_name="CTHPart"
          module_type="Filter"
          long_help="Create a surface from a CTH volume fraction."
          short_help="Extract a part from a CTH dataset.">
    <Filter class="vtkExtractCTHPart">
      <Input name="Input"
             class="vtkRectilinearGrid">
        <ArrayRequirement attribute="Cell" components="1"/>
      </Input>
    </Filter>
    <InputMenu trace_name="Input"
               id="im" label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
    <SelectCTHArrays input_menu="im"
                     trace_name="ArraySelection"
                     help="Select the volume fraction arrays for generating parts."/>
    <SelectWidget variable="Clipping"
                  trace_name="Clipping" type="int">
      <Item label="On" value="1">
        <ImplicitPlaneWidget use_label="0" trace_name="Plane"
                             variable="ClipPlane" input_menu="im"
                             help="Adjusts the parameters of the plane to clip with."/>
      </Item>
      <Item label="Off" value="0">
        <DummyWidget trace_name="Dummy"/>
      </Item>
    </SelectWidget>
  </Module>
  <Module name="ExtractEdges"
          menu_name="Extract Edges"
          root_name="ExtractEdges"
          module_type="Filter"
          long_help="Extract edges of 2-d and 3-d cells as lines."
          short_help="Covert data to wireframe.">
    <Filter class="vtkExtractEdges">
      <Input name="Input"
             class="vtkDataSet"/>
    </Filter>
    <InputMenu trace_name="Input" label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
  </Module>
  <Module name="ExtractParts"
          menu_name="Extract Parts"
          root_name="ExtractParts"
          module_type="Filter"
          long_help="Extract a subset of parts from a group."
          short_help="Extract a subset of parts from a group.">
    <Filter class="vtkSelectInputs">
      <Input name="Input"
             class="vtkDataSet" quantity="Multiple">
        <GroupRequirement quantity="Multiple"/>
      </Input>
    </Filter>
    <ExtractPartsWidget trace_name="parts"
                        help="Choose the parts to extract."/>
  </Module>
  <Module name="DataSetSurfaceFilter"
          menu_name="Extract Surface"
          root_name="Surface"
          module_type="Filter"
          long_help="Extract a 2-d boundary surface using neighbor relations to eliminate internal faces."
          short_help="Extract 2-d boundary surface.">
    <Filter class="vtkDataSetSurfaceFilter">
      <Input name="Input"
             class="vtkDataSet"/>
    </Filter>
    <InputMenu trace_name="Input" label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
  </Module>
  <Module name="Calculator"
          class="vtkPVSource"
          root_name="Calc"
          button_image="PVCalculatorButton"
          button_help="Create new arrays using mathematical operations and existing arrays."
          module_type="Filter"
          long_help="Compute new attribute arrays as function of existing arrays."
          short_help="Compute new attribute arrays.">
    <Filter class="vtkArrayCalculator">
      <Input name="Input"
             class="vtkDataSet">
        <ArrayRequirement/>
        <FixedTypeRequirement/>
      </Input>
    </Filter>
    <InputMenu trace_name="Input" label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
    <StringEntry variable="ResultArrayName"
                 trace_name="ResultArray"
                 help="Set the name of the array to hold the results of this computation"
                 default_value="Result"/>
    <CalculatorWidget trace_name="Equation"
                      help="Enter the equation for the new array."/>
  </Module>
  <Module name="FeatureEdges"
          menu_name="Feature Edges"
          root_name="FeatureEdges"
          module_type="Filter"
          replace_input="0"
          long_help="This filter will extract edges along sharp edges of surfaces or boundaries of surfaces."
          short_help="Extract edges that meet the feature critera.">
    <Filter class="vtkFeatureEdges">
      <Input name="Input"
             class="vtkPolyData"/>
    </Filter>
    <InputMenu trace_name="Input" label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
    <LabeledToggle label="Boundary edges"
                   trace_name="BoundaryEdges"
                   variable="BoundaryEdges"
                   help="Turn this off if you do not want to extract boundary edges."
                   default_value="1"/>
    <LabeledToggle label="Feature edges"
                   trace_name="FeatureEdges"
                   variable="FeatureEdges"
                   help="Turn this off if you do not want to extract feature edges."
                   default_value="1"/>
    <LabeledToggle label="Non-manifold edges"
                   trace_name="NonManifoldEdges"
                   variable="NonManifoldEdges"
                   help="Turn this off if you do not want to extract non-manifold edges."
                   default_value="1"/>
    <LabeledToggle variable="Coloring"
                   trace_name="Coloring"
                   help="Turn this off if you do not want to color the edges by type."
                   default_value="1"/>
    <Scale label="Feature angle"
           trace_name="FeatureAngle"
           variable="FeatureAngle"
           help="This angle is used to define a feature edge. (i.e., if the surface normal between two adjacent triangles is >= Feature angle, an edge exists).."
           default_value="30.0"
           resolution="0.01"
           range="0 180"
           display_entry="1"
           entry_and_label_on_top="0"
           display_value="0"/>
  </Module>
  <Module name="Gradient"
          menu_name="Gradient" root_name="Grad"
          module_type="Filter">
    <Filter class="vtkPVImageGradient">
      <Input name="Input"
             class="vtkImageData">
        <ArrayRequirement attribute="Point" components="1"/>
      </Input>
    </Filter>
    <InputMenu trace_name="Input"
               id="im" label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
    <ArrayMenu input_name="Input"
               attribute_type="Scalars" label="Scalars"
               trace_name="ArrayMenu"
               input_menu="im" number_of_components="1"
               help="Select the input scalars to process."/>
    <SelectionList variable="Dimensionality"
                   trace_name="Dimensionality"
                   default_value="3"
                   help="Select whether to perform a 2d or 3d gradient">
      <Item name="2"
            value="2"/>
      <Item name="3"
            value="3"/>
    </SelectionList>
  </Module>
  <Module name="GradientMagnitude"
          menu_name="Gradient Magnitude"
          root_name="GradM"
          module_type="Filter">
    <Filter class="vtkPVImageGradientMagnitude">
      <Input name="Input"
             class="vtkImageData">
        <ArrayRequirement attribute="Point" components="1"/>
      </Input>
    </Filter>
    <InputMenu trace_name="Input"
               id="im" label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
    <ArrayMenu input_name="Input"
               attribute_type="Scalars" label="Scalars"
               trace_name="ArrayMenu"
               input_menu="im"
               help="Select the input scalars to process."/>
  </Module>
  <Module name="GroupParts"
          menu_name="Group Parts"
          root_name="GroupParts"
          module_type="Filter"
          replace_input="1"
          long_help="Group parts."
          short_help="Group multiple inputs into one collection.">
    <Filter class="vtkGroup">
      <Input name="Input"
             class="vtkDataSet" quantity="Multiple"/>
    </Filter>
    <GroupInputsWidget trace_name="inputs"
                       help="Choose inputs to group."/>
  </Module>
  <Module name="LinearExtrusionFilter"
          menu_name="Linear Extrusion"
          root_name="LinExtrude"
          module_type="Filter"
          long_help="This filter creates a swept surface defined by translating the input along a vector."
          short_help="Generate a linear swept surface.">
    <Filter class="vtkPLinearExtrusionFilter">
      <Input name="Input"
             class="vtkPolyData"/>
    </Filter>
    <InputMenu trace_name="Input" label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
    <!-- ScaleFactor value chosen does not change processing speed of this filter or cause it to crash. -->
    <VectorEntry label="Scale factor"
                 trace_name="ScaleFactor"
                 variable="ScaleFactor" type="float"
                 help="Set the extrusion scale factor"
                 default_value="1.0"/>
    <!-- keeping vector entries with length > 1 -->
    <VectorEntry variable="Vector"
                 trace_name="Vector"
                 type="float" length="3"
                 help="Set the direction for the extrusion"
                 default_value="0.0 0.0 1.0"/>
    <LabeledToggle variable="Capping"
                   trace_name="Capping"
                   help="Select whether to draw endcaps" 
                   default_value="1"/>
    <LabeledToggle label="Piece invariant"
                   trace_name="PieceInvariant"
                   variable="PieceInvariant"
                   help="Turn this off if you do want to process ghost levels and do not mind seams."
                   default_value="0"/>
  </Module>
  <Module name="LoopSubdivisionFilter"
          menu_name="Loop Subdivision"
          root_name="LoopSubDiv"
          module_type="Filter"
          long_help="This filter iteratively divides each triangle into four triangles.  New points are placed so the output surface is smooth."
          short_help="Create a higher resolution and smoother surface.">
    <Filter class="vtkLoopSubdivisionFilter">
      <Input name="Input"
             class="vtkPolyData"/>
    </Filter>
    <InputMenu trace_name="Input" label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
    <Scale label="Number of divisions"
           trace_name="NumberOfSubdivisions"
           variable="NumberOfSubdivisions"
           help="Each subdivision changes single triangles into four triangles."
           default_value="1"
           resolution="1" range="1 4"
           display_entry="1"
           entry_and_label_on_top="0"
           display_value="0"/>
  </Module>
  <Module name="MaskPoints"
          menu_name="Mask Points"
          root_name="MaskPts"
          module_type="Filter"
          long_help="Reduce the number of points.  This filter is often used before glyphing.  Generating vertices is an option."
          short_help="Reduce the number of points.">
   <Filter class="vtkMaskPoints">
      <Input name="Input"
             class="vtkDataSet"/>
    </Filter>
    <InputMenu trace_name="Input" label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
    <!-- should use widget that keeps value positive -->
    <VectorEntry label="On ratio"
                 trace_name="OnRatio"
                 variable="OnRatio"
                 help="The ratio of points retained."
                 type="int"
                 default_value="2"/>
    <!-- should use widget that keeps value non-negative -->
    <VectorEntry label="Max. points"
                 trace_name="MaximumNumberOfPoints"
                 variable="MaximumNumberOfPoints"
                 help="Limit the number of points."
                 type="int"
                 default_value="5000"/>
    <!-- should use widget that keeps value non-negative -->
    <VectorEntry variable="Offset"
                 trace_name="Offset"
                 help="Start with this point."
                 type="int"
                 default_value="0"/>
    <LabeledToggle label="Random" trace_name="Random"
                   variable="RandomMode"
                   help="Select whether to randomly select points, or subsample regularly."
                   default_value="0"/>
    <LabeledToggle label="Generate vertices"
                   trace_name="GenerateVertices"
                   variable="GenerateVertices"
                   help="Convienience feature to display points."
                   default_value="0"/>
  </Module>
  <Module name="Median"
          root_name="Median" module_type="Filter">
    <Filter class="vtkPVImageMedian3D">
      <Input name="Input"
             class="vtkImageData">
        <ArrayRequirement attribute="Point" components="1"/>
      </Input>
    </Filter>
    <InputMenu trace_name="Input"
               id="im" label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
    <ArrayMenu input_name="Input"
               attribute_type="Scalars"
               label="Scalars"
               trace_name="Scalars"
               input_menu="im"
               number_of_components="1"
               help="Select the input scalars to process."/>
    <!-- keeping vector entries with length > 1 -->
    <VectorEntry label="Kernel Size"
                 trace_name="KernelSize"
                 variable="KernelSize" type="int"
                 length="3"
                 help="Determines the smoothing nieghborhood."
                 default_value="1 1 1"/>
  </Module>
  <Module name="PolyDataNormals"
          menu_name="Normals generation"
          root_name="PDNormals"
          module_type="Filter"
          long_help="This filter will produce surface normals used for smooth shading.  Spltting is used to avoid smoothing across feature edges."
          short_help="Produce surface point normals.">
    <Filter class="vtkPPolyDataNormals">
      <Input name="Input"
             class="vtkPolyData"/>
    </Filter>
    <InputMenu trace_name="Input" label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
    <Scale label="Feature angle"
           trace_name="FeatureAngle"
           variable="FeatureAngle"
           help="Points are duplicated along features over this angle (0->180)"
           default_value="30.0"
           resolution="0.01" range="0 180"
           display_entry="1"
           entry_and_label_on_top="0" display_value="0"/>
    <LabeledToggle variable="Splitting"
                   trace_name="Splitting"
                   help="Turn on/off the splitting of sharp edges."
                   default_value="1"/>
    <LabeledToggle variable="Consistency"
                   trace_name="Consistency"
                   help="Turn on/off the enforcement of consistent polygon ordering."
                   default_value="1"/>
    <LabeledToggle label="Cell normals"
                   trace_name="ComputeCellNormals"
                   variable="ComputeCellNormals"
                   help="Turn on/off the computation of cell normals."
                   default_value="0"/>
    <LabeledToggle label="Flip normals"
                   trace_name="FlipNormals"
                   variable="FlipNormals"
                   help="Flipping reverves the meaning of front and back."
                   default_value="0"/>
    <LabeledToggle label="Non-manifold"
                   trace_name="NonManifoldTraversal"
                   variable="NonManifoldTraversal"
                   help="Turn on/off traversal across non-manifold edges. This will prevent problems where the consistency of polygonal ordering is corrupted due to topological loops."
                   default_value="1"/>
    <LabeledToggle label="Piece invariant"
                   trace_name="PieceInvariant"
                   variable="PieceInvariant"
                   help="Turn this off if you do not want to process ghost levels and do not mind seams."
                   default_value="1"/>
  </Module>
#ifdef PARAVIEW_BUILD_DEVELOPMENT
  <Module name="CTHOutlineFilter"
          menu_name="Outline (CTH AMR)"
          root_name="CTHOutline"
          module_type="Filter">
    <Filter class="vtkCTHOutlineFilter">
      <Input name="Input"
             class="vtkCTHData"/>
    </Filter>
    <InputMenu trace_name="Input" label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
  </Module>
  <Module name="StructuredGridOutlineFilter"
          menu_name="Outline (curvilinear)"
          root_name="GOutline"
            module_type="Filter">
    <Filter class="vtkStructuredGridOutlineFilter">
      <Input name="Input"
             class="vtkStructuredGrid"/>
    </Filter>
    <InputMenu trace_name="Input" label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
  </Module>
#endif
  <Module name="OutlineFilter"
          menu_name="Outline"
          root_name="Outline"
          module_type="Filter"
          replace_input="0"
          long_help="This filter generates a bounding box representation of the input."
          short_help="Generates a bounding box.">
    <Filter class="vtkPOutlineFilter">
      <Input name="Input"
             class="vtkDataSet"/>
    </Filter>
    <InputMenu trace_name="Input" label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
  </Module>
  <Module name="OutlineCornerFilter"
          menu_name="Outline Corners"
          root_name="COutline"
          module_type="Filter"
          replace_input="0"
          long_help="This filter generates a bounding box representation of the input.  It only displays the corners of the bounding box."
          short_help="Generates corners of a bounding box.">
    <Filter class="vtkPOutlineCornerFilter">
      <Input name="Input"
             class="vtkDataSet"/>
    </Filter>
    <InputMenu trace_name="Input"
               label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
    <Scale label="Corner factor"
           trace_name="CornerFactor"
           variable="CornerFactor"
           help="The relative size of the corners to the length of the corresponding bounds. (0.001 -> 0.5)"
           default_value="0.2"
           resolution="0.001"
           range="0.001 0.5"
           display_entry="1"
           entry_and_label_on_top="0"
           display_value="0"/>
  </Module>
  <Module name="PartScalars"
          menu_name="Part Id Scalars"
          root_name="ColorParts"
          module_type="Filter"
          long_help="This filter uses colors to show how data is partitioned across parts."
          short_help="Generate point scalars from part id.">
    <Filter class="vtkColorByPart">
      <Input name="Input"
             class="vtkDataSet"
             quantity="Multiple">
        <GroupRequirement quantity="Multiple"/>
      </Input>
    </Filter>
    <InputMenu trace_name="Input"
               label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
  </Module>
  <Module name="PieceScalars"
          menu_name="Process Id Scalars"
          root_name="ColorPieces"
          module_type="Filter"
          multiprocess_support="multiple_processes"
          long_help="This filter uses colors to show how data is partitioned across processes."
          short_help="Generate point scalars from process id.">
    <Filter class="vtkPieceScalars">
      <Input name="Input"
             class="vtkDataSet"/>
    </Filter>
    <InputMenu trace_name="Input"
               label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
    <LabeledToggle label="Random"
                   trace_name="RandomMode"
                   variable="RandomMode"
                   help="Select whether to use random colors for the various pieces"
                   default_value="0"/>
  </Module>
    <!--
  <Module name="Pick"
          root_name="Pick"
          button_help="Pick cell or point closest to the widget"
          module_type="Filter">
    <Filter class="vtkPickDataSetFilter">
      <Input name="Input"
             class="vtkDataSet" />
    </Filter>
    <LabeledToggle label="Search cells"
                   trace_name="SearchCells"
                   variable="SearchCells"
                   help="Set when cells are supposed to be searched. Otherwise points will be searched."/>
    <PointWidget variable="SamplePoint"
                 help="Sample point that we are picking."/>
  </Module>
    -->
  <Module name="PointDataToCellData"
          root_name="PointToCell"
          module_type="Filter"
          long_help="Create cell attributes by averaging point attributes."
          short_help="Convert point data to cell data.">
    <Filter class="vtkPointDataToCellData">
      <Input name="Input"
             class="vtkDataSet">
        <ArrayRequirement attribute="Point"/>
      <FixedTypeRequirement/>
      </Input>
    </Filter>
    <InputMenu trace_name="Input"
               label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
    <LabeledToggle label="Pass point data"
                   trace_name="PassPointData"
                   variable="PassPointData"
                   help="If on, then the input point data is passed through to the output; otherwise, only generated cell data is placed into the output."
                   default_value="0"/>
  </Module>
  <Module name="QuadricClustering"
          menu_name="Quadric Clustering"
          root_name="QC"
          module_type="Filter"
          long_help="This filter is the same filter used to generate level of detail for ParaView.  It uses a structure grid of bins and merges all points contained in each bin."
          short_help="Simplify polygonal models.">
    <Filter class="vtkQuadricClustering">
      <Input name="Input"
             class="vtkPolyData"/>
    </Filter>
    <InputMenu trace_name="Input"
               label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
    <!-- keeping vector entries with length > 1 -->
    <VectorEntry label="Divisions"
                 trace_name="NumberOfDivisions"
                 variable="NumberOfDivisions"
                 type="int"
                 length="3"
                 help="Set the number of bins in each dimension"
                 default_value="50 50 50"/>
    <LabeledToggle label="Use input points"
                   trace_name="UseInputPoints"
                   variable="UseInputPoints"
                   help="Select whether to use points from the input in the output or to calculate optimum representative points for each bin"
                   default_value="0"/>
    <LabeledToggle label="Use feature edges"
                   trace_name="UseFeatureEdges"
                   variable="UseFeatureEdges"
                   help="Select whether to use feature edge quadrics to match up the boundaries between pieces"
                   default_value="0"/>
    <LabeledToggle label="Use feature points"
                   trace_name="UseFeaturePoints"
                   variable="UseFeaturePoints"
                   help="Select whether to use feature point quadrics to align piece boundaries"
                   default_value="0"/>
    <LabeledToggle label="Copy cell data"
                   trace_name="CopyCellData"
                   variable="CopyCellData"
                   help="Should cell data be copied from output to input?"
                   default_value="0"/>
  </Module>
  <Module name="BrownianPoints"
          menu_name="Random Vectors"
          root_name="BPts"
          module_type="Filter"
          long_help="This filter creates a new 3 component point data array and sets it as the default vectors.  It uses a random number generator to create values."
          short_help="Create a new random vector array.">
    <Filter class="vtkBrownianPoints">
      <Input name="Input"
             class="vtkDataSet"/>
    </Filter>
    <InputMenu trace_name="Input"
               label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
    <!-- should use a widget that keeps the value non-negative -->
    <VectorEntry label="Min. speed"
                 trace_name="MinimumSpeed"
                 variable="MinimumSpeed"
                 help="The minimum size of the random point vectors generated."
                 type="float"
                 default_value="0.0"/>
    <!-- should use a widget that keeps the value non-negative -->
    <VectorEntry label="Max. speed"
                 trace_name="MaximumSpeed"
                 variable="MaximumSpeed"
                 help="The maximum size of the random point vectors generated."
                 type="float"
                 default_value="1.0"/>
  </Module>
  <Module name="ReflectionFilter"
          menu_name="Reflection"
          root_name="Reflect"
          module_type="Filter"
          long_help="This filter takes the union of the input and its reflection over an axis alligned plane."
          short_help="Reflect input over an axis alligned plane.">
    <Filter class="vtkReflectionFilter">
      <Input name="Input"
             class="vtkDataSet"/>
    </Filter>
    <InputMenu trace_name="Input"
               label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
    <SelectionList variable="Plane"
                   trace_name="Plane"
                   help="Select which plane of the bounding box to reflect across"
                   default_value="0">
      <Item name="X"
            value="6"/>
      <Item name="Y"
            value="7"/>
      <Item name="Z"
            value="8"/>
      <Item name="X Min"
            value="0"/>
      <Item name="Y Min"
            value="1"/>
      <Item name="Z Min"
            value="2"/>
      <Item name="X Max"
            value="3"/>
      <Item name="Y Max"
            value="4"/>
      <Item name="Z Max"
            value="5"/>
    </SelectionList>
    <!-- dependent on scalar range of the data -->
    <VectorEntry label="Center"
                 trace_name="Center"
                 variable="Center"
                 type="float"
                 help="The center of the mirror plane."
                 default_value="0.0"/>
  </Module>
  <Module name="RibbonFilter"
          menu_name="Ribbon"
          root_name="Ribbon"
          module_type="Filter"
          long_help="This filter generates ribon surface from lines.  It is useful for displaying streamlines."
          short_help="Create ribon surfaces from lines.">
    <Filter class="vtkPVRibbonFilter">
      <Input name="Input"
             class="vtkPolyData">
        <ArrayRequirement attribute="Point" components="3"/>
      </Input>
    </Filter>
    <InputMenu trace_name="Input"
               id="im"
               label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
    <ArrayMenu input_name="Input"
               trace_name="Vectors"
               attribute_type="Vectors"
               label="Vectors"
               input_menu="im"
               number_of_components="3"
               help="Select the input normals to process."/>
    <ScaleFactorEntry variable="Width"
                      input_menu="im"
                      trace_name="Width"
                      type="float"
                      scale_factor="0.01"
                      help="The half width of the ribbon (or minimum)."/>
    <Scale variable="Angle"
           trace_name="Angle"
           help="The offset angle of the ribbon from the line normal (0->360)."
           default_value="0.0"
           resolution="0.01"
           range="0 360"
           display_entry="1"
           entry_and_label_on_top="0"
           display_value="0"/>
    <!-- keeping vector entries with length > 1 -->
    <VectorEntry label="Default normal"
                 trace_name="DefaultNormal"
                 variable="DefaultNormal"
                 type="float"
                 length="3"
                 help="When this option is on, default normals will be calculated if the input contains no normals"
                 default_value="0.0 0.0 1.0"/>
    <LabeledToggle label="Vary width"
                   trace_name="VaryWidth"
                   variable="VaryWidth"
                   help="Turn on/off the variation of ribbon width with scalar value."
                   default_value="0"/>
  </Module>
  <Module name="RotationalExtrusionFilter"
          menu_name="Rotational Extrusion"
          root_name="RotExtrude"
          module_type="Filter"
          long_help="This filter generates a swept surface while translates the input along a circular path."
          short_help="Generates a swept surface using a rotational path.">
    <Filter class="vtkRotationalExtrusionFilter">
      <Input name="Input"
             class="vtkPolyData"/>
    </Filter>
    <InputMenu trace_name="Input"
               label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
    <!-- should use widget that keeps value positive -->
    <VectorEntry variable="Resolution"
                 trace_name="Resolution"
                 type="int"
                 default_value="12"/>
    <LabeledToggle variable="Capping"
                   trace_name="Capping" default_value="1"/>
    <VectorEntry variable="Angle"
                 trace_name="Angle"
                 help="Set the angle of rotation."
                 type="float"
                 default_value="360.0"/>
    <!-- Translation value chosen does not change processing speed of this filter or cause it to crash. -->
    <VectorEntry variable="Translation"
                 trace_name="Translation"
                 type="float"
                 help="The total amount of translation along the z-axis."
                 default_value="0.0"/>
    <!-- DeltaRadius value chosen does not change processing speed of this filter or cause it to crash. -->
    <VectorEntry label="Delta radius"
                 trace_name="DeltaRadius"
                 variable="DeltaRadius"
                 type="float"
                 help="The change in radius during sweep process."
                 default_value="0.0"/>
  </Module>
  <Module name="ShrinkFilter"
          menu_name="Shrink"
          root_name="Shrink"
          module_type="Filter"
          long_help="This filter shrinks each input cell so they pull away from their neighbors."
          short_help="Shrink each input cell.">
    <Filter class="vtkShrinkFilter">
      <Input name="Input"
             class="vtkDataSet"/>
    </Filter>
    <InputMenu trace_name="Input"
               label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
    <Scale label="Shrink factor"
           trace_name="ShrinkFactor"
           variable="ShrinkFactor"
           help="Set the amount to shrink by"
           default_value="0.5"
           resolution="0.01"
           range="0 1"
           display_entry="1"
           entry_and_label_on_top="0"
           display_value="0"/>
  </Module>
    <!--
  <Module name="ShrinkPolyData"
          menu_name="Shrink (polygons)"
          root_name="ShrinkPD" module_type="Filter"
          long_help="This filter shrinks each input cell so they pull away from their neighbors.  The output is always of type unstructured grid."
          short_help="Shrink each input cell.">
    <Filter class="vtkShrinkPolyData">
      <Input name="Input"
             class="vtkPolyData" />
    </Filter>
    <InputMenu trace_name="Input"
               label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
    <VectorEntry label="Shrink factor"
                 trace_name="ShrinkFactor"
                 variable="ShrinkFactor"
                 type="float"
                 help="Set the amount to shrink by"
                 default_value="0.5"/>
  </Module>
    -->
  <Module name="SmoothPolyDataFilter"
          menu_name="Smooth"
          root_name="Smooth"
          module_type="Filter"
          long_help="This filter smooths a polygonal surface by iteratively moving points toward their neighbors."
          short_help="Smooth a polygonal surface without adding more points.">
    <Filter class="vtkSmoothPolyDataFilter">
      <Input name="Input"
           class="vtkPolyData"/>
    </Filter>
    <InputMenu trace_name="Input"
               label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
    <!-- should use widget that keeps value non-negative -->
    <VectorEntry label="Num. iterations"
                 trace_name="NumberOfIterations"
                 variable="NumberOfIterations"
                 help="Number of iterations. More iterations produces better smoothing."
                 type="int"
                 default_value="20"/>
    <Scale variable="Convergence"
           trace_name="Convergence"
           help="Convergence criterion for the iteration process. Smaller numbers result in more smoothing iterations (0->1)."
           default_value="0.0"
           resolution="0.01"
           range="0 1"
           display_entry="1"
           entry_and_label_on_top="0"
           display_value="0"/>
  </Module>
  <Module name="Stripper"
          menu_name="Triangle Strips"
          root_name="Strip"
          module_type="Filter"
          long_help="This filter uses a greedy algorythm to convert triangles into triangle strips"
          short_help="Convert triangles into triangle strips.">
    <Filter class="vtkStripper">
      <Input name="Input"
             class="vtkPolyData"/>
    </Filter>
    <InputMenu trace_name="Input"
               label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
    <Scale label="Max. length"
           trace_name="MaximumLength"
           variable="MaximumLength"
           help="Stop stripping after this many triangles."
           default_value="1000"
           resolution="1"
           range="4 100000"
           display_entry="1"
           entry_and_label_on_top="0"
           display_value="0"/>
  </Module>
  <Module name="Subdivide"
          root_name="Subdivide"
          module_type="Filter"
          button_help="Subdivide the poly data into more polygons"
          long_help="This filter iteratively divide triangles into four smaller triangles.  New points are placed linearly so the output surface matches the input surface."
          short_help="Creates a surface with more triangles than the input.">
    <Scale label="Num. divisions"
           trace_name="NumberOfSubdivisions"
           variable="NumberOfSubdivisions"
           help="Set the number of subdivisions"
           default_value="1"
           resolution="1"
           range="1 4"
           display_entry="1"
           entry_and_label_on_top="0"
           display_value="0"/>
    <Filter class="vtkLinearSubdivisionFilter">
      <Input name="Input"
             class="vtkPolyData"/>
    </Filter>
  </Module>
  <Module name="DataSetTriangleFilter"
          menu_name="Tetrahedralize"
          root_name="Tetra"
          module_type="Filter"
          long_help="This filter converts 3-d cells to tetrahedrons and polygons to triangles.  The output is always of type unstructured grid."
          short_help="Convert to tetrahedrons and triangles.">
    <Filter class="vtkDataSetTriangleFilter">
      <Input name="Input"
             class="vtkDataSet"/>
    </Filter>
    <InputMenu trace_name="Input"
               label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
  </Module>
  <Module name="TriangleFilter"
          menu_name="Triangulate"
          root_name="Tri"
          module_type="Filter"
          long_help="This filter converts polygons and traingle strips to basic triangles."
          short_help="Convert polygonal data to triangles.">
    <Filter class="vtkTriangleFilter">
      <Input name="Input"
             class="vtkPolyData"/>
    </Filter>
    <InputMenu trace_name="Input"
               label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
  </Module>
  <Module name="TransformFilter"
          menu_name="Transform"
          root_name="Trans"
          module_type="Filter"
          long_help="This filter applies transformation to the polygons."
          short_help="Transform polygonal data.">
    <Filter class="vtkTransformFilter">
      <Input name="Input"
             class="vtkPointSet"/>
    </Filter>
    <InputMenu trace_name="Input"
               label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
    <SelectWidget label="Transform Widget"
                  trace_name="Transform Widget"
                  variable="Transform"
                  type="object">
      <Item label="Box"
            value="BoxTransform">
      <BoxWidget use_label="0"
                 trace_name="Box"
                 help="Adjusts the parameters of the box to clip with."/>
      </Item>
    </SelectWidget>
  </Module>
  <Module name="TubeFilter"
          menu_name="Tube"
          root_name="Tuber"
          module_type="Filter"
          long_help="Convert lines into tubes.  Normals are used to avoid cracks between tube segments."
          short_help="Convert lines into tubes.">
    <Filter class="vtkTubeFilter">
      <Input name="Input"
             class="vtkPolyData"/>
    </Filter>
    <InputMenu trace_name="Input"
               id="im"
               label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
    <!-- should use widget that keeps value > 2 -->
    <VectorEntry label="Num. sides"
                 variable="NumberOfSides"
                 trace_name="NumberOfSides"
                 help="Set the number of sides for the tube"
                 type="int"
                 default_value="6"/>
    <LabeledToggle variable="Capping"
                   trace_name="Capping"
                   help="Select whether to draw endcaps on the tube"
                   default_value="0"/>
    <ScaleFactorEntry variable="Radius"
                      input_menu="im"
                      trace_name="Radius"
                      type="float"
                      scale_factor="0.01"
                      help="Set the radius of the tube" />
    <SelectionList label="Vary radius"
                   trace_name="VaryRadius"
                   variable="VaryRadius"
                   help="Select whether/how to vary the radius of the tube"
                   default_value="0">
      <Item name="Off"
            value="0"/>
      <Item name="ByScalar"
            value="1"/>
      <Item name="ByVector"
            value="2"/>
    </SelectionList>
    <!-- RadiusFactor value chosen does not change processing speed of this filter or cause it to crash. -->
    <VectorEntry label="Radius factor"
                 trace_name="RadiusFactor"
                 variable="RadiusFactor"
                 type="float"
                 help="Set the maximum tube radius in terms of a multiple of the minimum radius"
                 default_value="10"/>
  </Module>
  <Module name="WarpScalar"
          menu_name="Warp"
          root_name="WarpS"
          default="scalars"
          module_type="Filter"
          long_help="This filter moves point coordinates along a vector scaled by a point attribute.  It can be used to produce carpet plots."
          short_help="Warp point scalars into a spatial elevation plot.">
    <Filter class="vtkPVWarpScalar">
      <Input name="Input"
             class="vtkPointSet">
        <ArrayRequirement attribute="Point" components="1"/>
      </Input>
    </Filter>
    <InputMenu trace_name="Input"
               id="im"
               label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
    <ArrayMenu input_name="Input"
               attribute_type="Scalars"
               trace_name="Scalars"
               label="Scalars"
               input_menu="im"
               help="Select the input scalars to process."/>
    <!-- ScaleFactor value chosen does not change processing speed of this filter or cause it to crash. -->
    <VectorEntry label="Scale factor"
                 variable="ScaleFactor"
                 trace_name="ScaleFactor"
                 type="float"
                 help="Displacement is vector times scale."
                 default_value="1.0"/>
    <!-- keeping vector entries with length > 1 -->
    <VectorEntry variable="Normal"
                 trace_name="Normal"
                 type="float"
                 length="3"
                 help="Warp direction."
                 default_value="0.0 0.0 1.0"/>
    <LabeledToggle label="Use normal"
                   trace_name="UseNormal"
                   variable="UseNormal"
                   help="Use instance model normals rather than instance normal."
                   default_value="0"/>
    <LabeledToggle label="X-Y plane"
                   trace_name="XYPlane"
                   variable="XYPlane"
                   help="Z value is used to warp the surface, scalars to color surface."
                   default_value="0"/>
  </Module>
  <Module name="WarpVector"
          root_name="WarpV"
          button_image="PVVectorDisplacementButton"
          button_help="Warp (displace) the geometry with a given vector field."
          default="vectors"
          module_type="Filter"
          long_help="This filter displaces point coordinates along a vector attribute.  It is useful for showing mechanical deformation."
          short_help="Warp (displace) the geometry with a given vector field.">
    <Filter class="vtkPVWarpVector">
      <Input name="Input"
             class="vtkPointSet">
        <ArrayRequirement attribute="Point" components="3"/>
      </Input>
    </Filter>
    <InputMenu trace_name="Input"
               id="im"
               label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
    <ArrayMenu input_name="Input"
               attribute_type="Vectors"
               trace_name="Vectors"
               label="Vectors"
               input_menu="im"
               number_of_components="3"
               help="Select the input vectors to process."/>
    <!-- ScaleFactor value chosen does not change processing speed of this filter or cause it to crash. -->
    <VectorEntry label="Scale factor"
                 trace_name="ScaleFactor"
                 variable="ScaleFactor"
                 type="float"
                 help="Displacement is vector times scale."
                 default_value="1.0"/>
  </Module>
  <Module name="Cut"
          root_name="Cut"
          replace_input="0"
          module_type="Filter"
          button_image="PVCutButton"
          button_help="Cut with an implicit plane or sphere. Cutting typically reduces the dimensionality of the data."
          long_help="This filter cuts a data set with a plane or sphere.  Cutting is similar to a contour.  It creates surfaces from volumes and lines from surfaces."
          short_help="Cut datasets with planes or spheres.">
#ifdef VTK_USE_PATENTED
    <Filter class="vtkKitwareCutter">
      <Input name="Input"
             class="vtkDataSet"/>
    </Filter>
#else
    <Filter class="vtkCutter">
      <Input name="Input"
             class="vtkDataSet"/>
    </Filter>
#endif
    <InputMenu trace_name="Input"
               id="im1"
               label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
    <BoundsDisplay show_hide_frame="1"
                   label="Input Bounds"
                   trace_name="Input Bounds"
                   input_menu="im1"/>
    <SelectWidget type="object"
                  label="Cut Function"
                  trace_name="Cut Function"
                  variable="CutFunction">
      <Item label="Plane"
            value="Plane">
      <ImplicitPlaneWidget trace_name="Plane"
                           use_label="0"
                           input_menu="im1"
                           help="Adjusts the parameters of the plane to cut with."/>
      </Item>
      <Item label="Sphere"
            value="Sphere">
      <SphereWidget trace_name="Sphere"
                    use_label="0"
                    help="Adjusts the parameters of the sphere to cut with."/>
      </Item>
    </SelectWidget>
    <CutEntry label="Cut Offset Values"
              trace_name="Cut Values"
              initial_value="0"
              input_menu="im1"
              help="List of current offset values. This can be used to create multiple cut planes/spheres with different centers. Each entry represents a new cut with center shifted by the offset value."
              set_number_command="SetNumberOfContours"
              set_contour_command="SetValue"/>
  </Module>
  <Module name="Clip"
          root_name="Clip"
          module_type="Filter"
          button_image="PVClipButton"
          button_help="Clip with an implicit plane, sphere or with scalars.Clipping does not reduce the dimensionality of the data set."
          long_help="Clip with an implicit plane, sphere or with scalars. Clipping does not reduce the dimensionality of the data set.  This output data type of this filter is always an unstructured grid."
          short_help="Clip with an implicit plane, sphere or with scalars.">
    <Filter class="vtkPVClipDataSet">
      <Input name="Input"
             class="vtkDataSet"/>
    </Filter>
    <InputMenu trace_name="Input"
               id="im1"
               label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
    <BoundsDisplay show_hide_frame="1"
                   label="Input Bounds"
                   trace_name="Input Bounds"
                   input_menu="im1"/>
    <SelectWidget type="object"
                  label="Clip Function"
                  trace_name="Clip Function"
                  variable="ClipFunction">
      <Item label="Plane"
            value="Plane">
        <ImplicitPlaneWidget use_label="0"
                             trace_name="Plane"
                             input_menu="im1"
                             help="Adjusts the parameters of the plane to clip with."/>
      </Item>
      <Item label="Sphere"
            value="Sphere">
        <SphereWidget use_label="0"
                      trace_name="Sphere"
                      help="Adjusts the parameters of the sphere to clip with."/>
      </Item>
      <Item label="Box"
            value="Box">
        <BoxWidget use_label="0"
                   trace_name="Box"
                   help="Adjusts the parameters of the box to clip with."/>
      </Item>
      <Item label="Scalars">
        <ContainerWidget trace_name="ScalarClip">
          <Item>
            <ScalarRangeLabel trace_name="ScalarRange" array_menu="it3.am1"/>
          </Item>
          <Item id="it3">
          <ArrayMenu id="am1"
                     input_name="Input"
                     attribute_type="Scalars"
                     trace_name="Scalars"
                     label="Scalars"
                     help="Choose the clipping scalar array."
                     input_menu="im1"/>
          </Item>
          <Item>
            <!-- Value depends on scalar range of input -->
            <VectorEntry label="Clip value"
                         trace_name="Offset"
                         type="float"
                         variable="Value"
                         help="Choose the scalar value to clip with"/>
          </Item>
        </ContainerWidget>
      </Item>
    </SelectWidget>
    <LabeledToggle label="Inside Out"
                   trace_name="InsideOut"
                   variable="InsideOut"
                   help="Switches which part to keep."
                   default_value="0"/>
  </Module>
  <Module name="Threshold"
          root_name="Threshold"
          button_image="PVThresholdButton"
          module_type="Filter"
          button_help="Extract cells that satisfy a threshold criterion."
          long_help="This filter extracts cells that have point scalars in the specified range."
          short_help="Extract cells that satisfy a threshold criterion.">
    <Filter class="vtkPVThresholdFilter">
      <Input name="Input"
             class="vtkDataSet">
        <ArrayRequirement components="1"/>
      </Input>
    </Filter>
    <InputMenu trace_name="Input"
               id="im"
               label="Input"
               input_name="Input"
               help="Set the input to this filter." />
    <FieldMenu id="fm"
               trace_name="FieldMenu"
               input_menu="im"
               help="Choose cell or point field to threshold." />
    <ArrayMenu id="am"
               input_name="Input"
               attribute_type="Scalars"
               trace_name="Scalars"
               label="Scalars"
               field_menu="fm"
               help="Choose the threshold scalar array."/>
    <MinMax trace_name="MinMax"
            array_menu="am"
            min_label="Lower Threshold"
            max_label="Upper Threshold"
            min_help="Choose the lower value of the threshold"
            max_help="Choose the upper value of the threshold"
            get_min_command="GetLowerThreshold"
            get_max_command="GetUpperThreshold"
            set_command="ThresholdBetween"/>
    <LabeledToggle label="All Scalars"
                   trace_name="AllScalars"
                   variable="AllScalars"
                   default_value="1"
                   help="If AllScalars is checked, then a cell is only included if all its points are within the threshold. This is only relevant for point data."/>
  </Module>
  <Module name="Contour"
          root_name="Contour"
          button_image="PVContourButton"
          module_type="Filter"
          replace_input="0"
          button_help="Generate isolines or isosurfaces."
          long_help="Generate isolines or isosurfaces using point scalars."
          short_help="Generate isolines or isosurfaces.">
#ifdef VTK_USE_PATENTED
    <Filter class="vtkPVKitwareContourFilter">
      <Input name="Input"
             class="vtkDataSet">
        <ArrayRequirement attribute="Point" components="1"/>
      </Input>
    </Filter>
#else
    <Filter class="vtkPVContourFilter">
      <Input name="Input"
             class="vtkDataSet">
        <ArrayRequirement attribute="Point" components="1"/>
      </Input>
    </Filter>
#endif
    // Do not change the tracename of the input menu, it is used by vtkPVContour
    <InputMenu trace_name="Input"
               id="im"
               label="Input"
               input_name="Input"
               help="Set the input to this filter." />
    // Do not change the tracename of the array menu, it is used by vtkPVContour
    <ArrayMenu id="am"
               input_name="Input"
               attribute_type="Scalars"
               label="Scalars"
               trace_name="Scalars"
               input_menu="im"
               number_of_components="1"
               help="Choose which scalar array you want to contour."/>
    <ScalarRangeLabel id="srl"
                      trace_name="ScalarRangeLabel"
                      array_menu="am"/>
    <ContourEntry label="Contour Values"
                  trace_name="Contour Values"
                  array_menu="am"
                  set_number_command="SetNumberOfContours"
                  set_contour_command="SetValue"
                  help="List of current contour values." />
    <LabeledToggle label="Compute Normals"
                   variable="ComputeNormals"
                   default_value="1"
                   trace_name="Compute Normals"
                   help="Select whether to compute normals" />
    <LabeledToggle label="Compute Gradients"
                   variable="ComputeGradients"
                   default_value="0"
                   trace_name="Compute Gradients"
                   help="Select whether to compute gradients"/>
    <LabeledToggle label="Compute Scalars"
                   variable="ComputeScalars"
                   default_value="0"
                   trace_name="Compute Scalars"
                   help="Select whether to compute scalars" />
  </Module>
  <Module name="Glyph"
          root_name="Glyph"
          module_type="Filter"
          button_image="PVGlyphButton"
          replace_input="0"
          button_help="Generate a glyph (symbol) at each point of the dataset. These can be colored, scaled and oriented"
          long_help="This filters generates an arrow, sphere, or cone at each point of the input data set.  The glyphs can be oriented and scale by the input point attributes."
          short_help="Generate a glyph symbol at each point of the input data set.">
    <Filter class="vtkPVGlyphFilter">
      <Input name="Input"
             class="vtkDataSet"/>
      <Input name="Source"
             class="vtkPolyData"/>
    </Filter>
    <InputMenu trace_name="Input"
               id="im"
               label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
    <InputMenu trace_name="Glyph"
               id="im2"
               label="Glyph"
               help="Select the glyph source."
               input_name="Source"
               source_list="GlyphSources"/>
    <OrientScaleWidget trace_name="OrientScale" input_menu="im"
                       scalars_command="SelectInputScalars"
                       vectors_command="SelectInputVectors"
                       orient_command="SetOrient"
                       scale_mode_command="SetScaleMode"
                       scale_factor_command="SetScaleFactor"
                       default_orient_mode="1"
    default_scale_mode ="1"/>
    <!-- should use a widget to keep value non-negative -->
    <VectorEntry label="Max. Number of Glyphs"
                 trace_name="Max Glyphs"
                 variable="MaximumNumberOfPoints"
                 type="int"
                 default_value="5000"
                 help="Set the maximum number of points to glyph" />
    <LabeledToggle label="Mask Points"
                   trace_name="MaskPoints"
                   variable="UseMaskPoints"
                   default_value="1"
                   help="Create no more than specified maximum number of glyphs" />
    <LabeledToggle label="Random Masking"
                   trace_name="RandomMask"
                   variable="RandomMode"
                   default_value="1"
                   help="Choose points at random to mask" />
  </Module>
  <Module name="Probe"
          class="vtkPVProbe"
          root_name="Probe"
          button_image="PVProbeButton"
          button_help="Sample data values at a point or along a line"
          module_type="Filter"
          long_help="Sample data attributes at a point or along a line.  Probed lines will be displayed in a graph of the attributes."
          short_help="Sample data values at a point or along a line.">
    <Filter class="vtkPProbeFilter">
      <Input name="Source"
             class="vtkDataSet">
        <GroupRequirement quantity="Single"/>
        <ArrayRequirement attribute="Point"/>
      </Input>
    </Filter>
    <SelectWidget type="object"
                  label="Probe object"
                  trace_name="Probe object"
                  variable="Input">
      <Item label="Point"
            value="Output">
      <PointSourceWidget trace_name="Point"
                         default_radius="0"
                         default_number_fof_points="1"
                         show_entries="0"/>
      </Item>
        <Item label="Line"
              value="Output">
        <LineSourceWidget trace_name="Line"/>
      </Item>
    </SelectWidget>
  </Module>
  <Module name="StreamTracer"
          root_name="Stream"
          module_type="Filter"
          replace_input="0"
          button_image="PVStreamTracerButton"
          button_help="Generate streamtraces from a collection of seed points."
          long_help="Integrate streamlines in a vector field."
          short_help="Integrate streamlines in a vector field.">
    <Filter class="vtkDistributedStreamTracer">
      <Input name="Input"
             class="vtkDataSet"
             quantity="Multiple">
        <ArrayRequirement attribute="Point" components="3"/>
      </Input>
    </Filter>
    <InputMenu trace_name="Input"
               id="im"
               label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
    <ArrayMenu input_name="Input"
               attribute_type="Vectors"
               trace_name="Vectors"
               label="Vectors"
               input_menu="im"
               number_of_components="3"
               help="Select the input vectors to use."/>
    <SelectWidget type="object"
                  trace_name="Seed"
                  label="Seed"
                  variable="Source">
      <Item label="Point Cloud"
            value="Output">
        <PointSourceWidget trace_name="Point"
                           radius_scale_factor=".1"
                           input_menu="im"
                           default_number_of_points="100"
                           show_entries="1"/>
      </Item>
      <Item label="Line"
            value="Output">
        <LineSourceWidget trace_name="Line"/>
      </Item>
    </SelectWidget>
    <ContainerWidget pack_direction="left" trace_name="MaxProp">
      <Item>
        <SelectionList variable="MaximumPropagationUnit"
                       trace_name="MaximumPropagationUnit"
                       label="Max. Propagation"
                       option_width="15"
                       help="Maximum propagation"
                       default_value="1">
          <Item name="Time"
                value="0"/>
          <Item name="Length"
                value="1"/>
        </SelectionList>
      </Item>
      <Item>
        <ScaleFactorEntry label=""
                          variable="MaximumPropagation"
                          type="float"
                          trace_name="MaxPropLen"
                          scale_factor="1.0"
                          input_menu="im"
                          help="Maximum propagation" />
      </Item>
    </ContainerWidget>
    <ContainerWidget pack_direction="left" trace_name="InitLen">
      <Item>
        <SelectionList trace_name="InitialIntegrationStepUnit"
                       variable="InitialIntegrationStepUnit"
                       label="Init. Step Len."
                       option_width="15"
                       help="Initial step length"
                       default_value="2">
          <Item name="Time"
                value="0"/>
          <Item name="Length"
                value="1"/>
          <Item name="Cell Length"
                value="2"/>
        </SelectionList>
      </Item>
      <Item>
        <VectorEntry label=""
                     variable="InitialIntegrationStep"
                     type="float"
                     trace_name="InitLen"
                     help="Initial step length"
                     default_value="0.5"/>
      </Item>
    </ContainerWidget>
    <SelectionList trace_name="IntegrationDirection"
                   variable="IntegrationDirection" 
                   option_width="15"
                   default_value="2">
      <Item name="FORWARD"
            value="0"/>
      <Item name="BACKWARD"
            value="1"/>
      <Item name="BOTH"
            value="2"/>
    </SelectionList>
    <SelectWidget type="int"
                  variable="IntegratorType"
                  trace_name="IntegrationType">
      <Item label="Runge-Kutta 2" value="0">
        <DummyWidget trace_name="Dummy1"/>
      </Item>
      <Item label="Runge-Kutta 4" value="1">
        <DummyWidget trace_name="Dummy2"/>
      </Item>
      <Item label="Runge-Kutta 4-5" value="2">
        <ContainerWidget trace_name="MinLen">
      <Item>
        <ContainerWidget pack_direction="left" trace_name="MinLen">
          <Item>
            <SelectionList variable="MinimumIntegrationStepUnit"
                           trace_name="MinimumIntegrationStepUnit"
                           label="Min. Step Len."
                           option_width="15"
                           help="Minimum step length used in the integation"
                           default_value="2">
              <Item name="Time"
                    value="0"/>
              <Item name="Length"
                    value="1"/>
              <Item name="Cell Length"
                    value="2"/>
            </SelectionList>
          </Item>
          <Item>
            <VectorEntry label=""
                         variable="MinimumIntegrationStep"
                         type="float"
                         trace_name="MinLen"
                         help="Minimum step length  used in the integation"
                         default_value="0.01"/>
          </Item>
        </ContainerWidget>
      </Item>
      <Item>
        <ContainerWidget pack_direction="left" trace_name="MaxLen">
          <Item>
            <SelectionList variable="MaximumIntegrationStepUnit"
                           trace_name="MaximumIntegrationStepUnit"
                           label="Max. Step Len."
                           option_width="15"
                           help="Maximum step length used in the integration"
                           default_value="2">
              <Item name="Time"
                    value="0"/>
              <Item name="Length"
                    value="1"/>
              <Item name="Cell Length"
                    value="2"/>
            </SelectionList>
          </Item>
          <Item>
            <VectorEntry label=""
                         variable="MaximumIntegrationStep"
                         type="float"
                         trace_name="MaxLen"
                         help="Maximum step length used in the integration"
                         default_value="1.0"/>
          </Item>
        </ContainerWidget>
      </Item>
      <Item>
      <VectorEntry label="Maximum Error"
                   trace_name="MaximumError"
                   variable="MaximumError"
                   type="float"
                   help="Maximum error allowed in the integration"
                   default_value="0.000001"/>
      </Item>
      </ContainerWidget>
      </Item>
    </SelectWidget>
    <VectorEntry label="Max. Steps"
                 trace_name="MaximumNumberOfSteps"
                 variable="MaximumNumberOfSteps"
                 type="int"
                 help="Maximum number of steps."
                 default_value="2000"/>
    <VectorEntry label="Term. Speed"
                 trace_name="TerminalSpeed"
                 variable="TerminalSpeed"
                 type="float"
                 help="Terminal speed. The integration will be stopped if the speed (absolute value) is smaller than this threshold"
                 default_value="0.000000000001"/>
  </Module>
  <Module name="ExtractGrid"
          root_name="ExtractGrid"
          module_type="Filter"
          button_image="PVExtractGridButton"
          replace_input="0"
          button_help="Extract a subgrid or subsample."
          long_help="Extract a subgrid from a structured grid with the option of setting subsample strides."
          short_help="Extract a subgrid or subsample.">
    <Filter class="vtkPVExtractVOI">
      <Input name="Input"
             class="vtkStructuredData"/>
    </Filter>
    <InputMenu trace_name="Input"
               id="im"
               label="Input"
               help="Set the input to this filter."
               input_name="Input"/>
    <ExtentEntry variable="VOI"
                 trace_name="VOI"
                 input_menu="im"
                 help="Set the min/max values of the volume of interest (VOI). The output will have the (I,J,K) extent specified here."/>
    <!-- keeping vector entries with length > 1 -->
    <VectorEntry label="Sample rate"
                 trace_name="SampleRate"
                 variable="SampleRate"
                 type="int" length="3"
                 default_value="1 1 1"
                 help="Set the sampling rate for each dimension" />
    <LabeledToggle label="Include boundary"
                   variable="IncludeBoundary"
                   trace_name="IncludeBoundary"
                   default_value="0"
                   help="Select whether to always include the boundary of the grid in the output"/>
  </Module>
</ModuleInterfaces>
