<ServerManagerConfiguration>
  <ProxyGroup name="sources">
   
   <!-- ==================================================================== -->
   <SourceProxy name="GlyphSource2D" class="vtkGlyphSource2D" label="2D Glyph">
     <Documentation
        long_help="Create a 2D glyph (e.g., arrow, cross, dash, etc.)"
        short_help="Create a 2D glyph">
The 2D Glyph source is used for generating a family of 2D glyphs, each of which lies in the x-y plane. The output of the 2D Glyph source is polygonal data.
     </Documentation>
     <IntVectorProperty 
        name="GlyphType" 
        command="SetGlyphType" 
        number_of_elements="1"
        default_values="9" >
       <EnumerationDomain name="enum">
         <Entry value="1" text="Vertex"/>
         <Entry value="2" text="Dash"/>
         <Entry value="3" text="Cross"/>
         <Entry value="4" text="ThickCross"/>
         <Entry value="5" text="Triangle"/>
         <Entry value="6" text="Square"/>
         <Entry value="7" text="Circle"/>
         <Entry value="8" text="Diamond"/>
         <Entry value="9" text="Arrow"/>
         <Entry value="10" text="ThickArrow"/>
         <Entry value="11" text="HookedArrow"/>
         <Entry value="12" text="EdgeArrow"/>
       </EnumerationDomain>
       <Documentation>
         This property specifies the type of the 2D glyph.
       </Documentation>
     </IntVectorProperty>

     <IntVectorProperty 
        name="Filled" 
        command="SetFilled" 
        number_of_elements="1"
        default_values="0" > 
       <BooleanDomain name="bool"/>
       <Documentation>
         If the value of this property is 1, the 2D glyph will be a filled polygon; otherwise, only the edges (line segments) will be included in the output. This only applies to closed 2D glyphs.
       </Documentation>
     </IntVectorProperty>

     <DoubleVectorProperty
        name="Center"
        command="SetCenter"
        number_of_elements="3"
        default_values="0.0 0.0 0.0" >
       <DoubleRangeDomain name="range"/>
       <Documentation>
         Set the x, y, z coordinates of the origin of the 2D glyph.
       </Documentation>
     </DoubleVectorProperty>
   <!-- End 2DGlyph -->
   </SourceProxy>

   <!-- ==================================================================== -->
   <SourceProxy name="VectorText" class="vtkVectorText" label="3D Text">
     <Documentation
        long_help="3D geometric representation of a text string" 
        short_help="Create a 3D text object">
The 3D Text source displays a text string as polygonal data.
     </Documentation>
     <StringVectorProperty
        name="Text"
        command="SetText"
        number_of_elements="1"
        default_values="3D Text">
        <Documentation>
          This property contains the text string to be displayed. The ASCII alphanumeric characters a-z, A-Z, and 0-9 are supported; so are ASCII punctuation marks. The only supported control character is "\n", which inserts a new line in the text string.
        </Documentation>
     </StringVectorProperty>
   <!-- End 3DText -->
   </SourceProxy>

   <!-- ==================================================================== -->
   <SourceProxy name="ArrowSource" class="vtkPVArrowSource" label="Arrow">
      <Documentation
        long_help="3D arrow with a long cylindrical shaft and a cone for the tip"
        short_help="Create a 3D arrow">
The Arrow source appends a cylinder to a cone to form a 3D arrow. The length of the whole arrow is 1.0 unit. The output of the Arrow source is polygonal data. This polygonal data will not contain normals, so rendering of the arrow will be performed using flat shading. The appearance of the arrow can be improved without significantly increasing the resolution of the tip and shaft by generating normals. (Use Normals Generation filter).
      </Documentation>
      <IntVectorProperty
         name="TipResolution"
         command="SetTipResolution"
         number_of_elements="1"
         default_values="6" >
        <IntRangeDomain name="range" min="1" max="128" />
        <Documentation>
          This property specifies the number of faces in the representation of the tip of the arrow (the cone). As the resolution increases, the cone will become smoother.
        </Documentation>
      </IntVectorProperty>

<!-- These arbitrary ranges come from the header file for vtkArrowSource.-->
      <DoubleVectorProperty
         name="TipRadius"
         command="SetTipRadius"
         number_of_elements="1"
         default_values="0.1" >
        <DoubleRangeDomain name="range" min="0" max="10" />
        <Documentation>
          This property specifies the radius of the widest part of the tip of the arrow (the cone).
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="TipLength"
         command="SetTipLength"
         number_of_elements="1"
         default_values="0.35" >
        <DoubleRangeDomain name="range" min="0" max="1" />
        <Documentation>
          This property specifies the length of the tip.
        </Documentation>
      </DoubleVectorProperty>

      <IntVectorProperty
         name="ShaftResolution"
         command="SetShaftResolution"
         number_of_elements="1"
         default_values="6" >
        <IntRangeDomain name="range" min="0" max="128" />
        <Documentation>
          This property specifies the number of faces of the shaft of the arrow (the cylinder). As the resolution increases, the cylinder will become smoother.
        </Documentation>
      </IntVectorProperty>

      <DoubleVectorProperty
         name="ShaftRadius"
         command="SetShaftRadius"
         number_of_elements="1"
         default_values="0.03" >
        <DoubleRangeDomain name="range" min="0" max="5" />
        <Documentation>
          This property specifies the radius of the shaft of the arrow (the cylinder).
        </Documentation>
      </DoubleVectorProperty>

      <IntVectorProperty
         name="Invert"
         command="SetInvert"
         number_of_elements="1"
         default_values="0">
         <BooleanDomain name="bool" />
         <Documentation>
           Inverts the arrow direction.
         </Documentation>
       </IntVectorProperty>
       
   <!-- End Arrow -->
   </SourceProxy>

   <!-- ==================================================================== -->
   <SourceProxy name="Axes" class="vtkAxes" label="Axes">
      <Documentation
         long_help="Three lines representing the axes - red line along X, green line along Y, and blue line along Z"
         short_help="Create three lines representing X, Y and Z axes">
The Axes source can be used to add a representation of the coordinate system axes to the 3D scene. The X axis will be drawn as a blue line, the Y axis as a green line, and the Z axis as a red line. The axes can be drawn either as three lines drawn in the positive direction from the origin or as three lines crossing at the origin (drawn in both the positive and negative directions). The output of the Axes source is polygonal data. This polygonal data has a scalar per line so that the lines can be colored. It also has normals defined.
      </Documentation>
      <DoubleVectorProperty
         name="ScaleFactor"
         command="SetScaleFactor"
         number_of_elements="1"
         default_values="1.0" >
        <DoubleRangeDomain name="range" min="0" />
        <Documentation>
          By default the axes lines have a length of 1 (or 1 in each direction, for a total length of 2, if value of the Symmetric property is 1). Increasing or decreasing the value of this property will make the axes larger or smaller, respectively.
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="Origin"
         command="SetOrigin"
         number_of_elements="3"
         default_values="0.0 0.0 0.0" >
        <DoubleRangeDomain name="range"/>
        <Documentation>
          The values of this property set the X, Y, and Z coordinates of the origin of the axes.
        </Documentation>
      </DoubleVectorProperty>

     <IntVectorProperty 
        name="Symmetric" 
        command="SetSymmetric" 
        number_of_elements="1"
        default_values="0" > 
       <BooleanDomain name="bool"/>
       <Documentation>
         When this property is set to 1, the axes extend along each of the positive and negative directions for a distance equal to the value of the Scale Factor property. When set to 0, the axes extend only in the positive direction.
       </Documentation>
     </IntVectorProperty>
   <!-- End Axes -->
   </SourceProxy>

   <!-- ==================================================================== -->
   <SourceProxy name="OutlineSource" label="Outline" class="vtkOutlineSource">
      <Documentation
         long_help="3D outline of the specified bounds." 
         short_help="Create an outline from the bounds">
         The Outline source creates an axis aligned bounding box given the user-specified minimum and maximum coordinates for each axis.
      </Documentation>
      <DoubleVectorProperty
         name="Bounds"
         command="SetBounds"
         number_of_elements="6"
         default_values="0 1 0 1 0 1" >
         <Documentation>
           The values of this property specify the minimum and maximum X, Y, and Z coordinates (X min, X max, Y min, Y max, Z min, Z max) for drawing the outline.
         </Documentation>
      </DoubleVectorProperty>
   <!-- End OutlineSource -->
   </SourceProxy>

   <!-- ==================================================================== -->
   <SourceProxy name="CubeSource" class="vtkCubeSource" label="Box">
      <Documentation
         short_help="3D box with specified X, Y, and Z lengths" 
         long_help="Create a box with specified X, Y, and Z lengths.">
The Box source can be used to add a box to the 3D scene. The output of the Box source is polygonal data containing both normals and texture coordinates.
      </Documentation>
      <DoubleVectorProperty
         name="XLength"
         command="SetXLength"
         number_of_elements="1"
         animateable="1"
         default_values="1.0" >
        <DoubleRangeDomain name="range" min="0" />
        <Documentation>
          This property specifies the length of the box in the X direction.
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="YLength"
         command="SetYLength"
         number_of_elements="1"
         animateable="1"
         default_values="1.0" >
        <DoubleRangeDomain name="range" min="0" />
        <Documentation>
          This property specifies the length of the box in the Y direction.
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="ZLength"
         command="SetZLength"
         number_of_elements="1"
         animateable="1"
         default_values="1.0" >
        <DoubleRangeDomain name="range" min="0" />
        <Documentation>
          This property specifies the length of the box in the Z direction.
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="Center"
         command="SetCenter"
         number_of_elements="3"
         animateable="1"
         default_values="0.0 0.0 0.0" >
        <DoubleRangeDomain name="range"/>
        <Documentation>
          This property specifies the center of the box.
        </Documentation>
      </DoubleVectorProperty>
   <!-- End Box -->
   </SourceProxy>

   <!-- ==================================================================== -->
   <SourceProxy name="ConeSource" class="vtkConeSource" label="Cone">
      <Documentation
        short_help="3D cone of a given radius and height" 
        long_help="Create a 3D cone of a given radius and height.">
The Cone source can be used to add a polygonal cone to the 3D scene. The output of the Cone source is polygonal data.
      </Documentation>
      <IntVectorProperty
         name="Resolution"
         command="SetResolution"
         number_of_elements="1"
         animateable="1"
         default_values="6" >
        <IntRangeDomain name="range" min="0" max="512" />
        <Documentation>
          This property indicates the number of divisions around the cone. The higher this number, the closer the polygonal approximation will come to representing a cone, and the more polygons it will contain.
        </Documentation>
      </IntVectorProperty>

      <DoubleVectorProperty
         name="Radius"
         command="SetRadius"
         number_of_elements="1"
         animateable="1"
         default_values="0.5" >
        <DoubleRangeDomain name="range" min="0"/>
        <Documentation>
          This property specifies the radius of the base of the cone.
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="Height"
         command="SetHeight"
         number_of_elements="1"
         animateable="1"
         default_values="1.0" >
        <DoubleRangeDomain name="range" min="0" />
        <Documentation>
          This property specifies the height of the cone.
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="Center"
         command="SetCenter"
         number_of_elements="3"
         animateable="1"
         default_values="0.0 0.0 0.0" >
        <DoubleRangeDomain name="range" />
         <Documentation>
           This property specifies the center of the cone.
         </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="Direction"
         command="SetDirection"
         number_of_elements="3"
         animateable="1"
         default_values="1.0 0.0 0.0" >
        <DoubleRangeDomain name="range"/>
        <Documentation>
          Set the orientation vector of the cone.  The vector does not have to be normalized.  The cone will point in the direction specified.
        </Documentation>
      </DoubleVectorProperty>

     <IntVectorProperty 
        name="Capping" 
        command="SetCapping" 
        number_of_elements="1"
        animateable="1"
        default_values="1" > 
       <BooleanDomain name="bool"/>
       <Documentation>
         If this property is set to 1, the base of the cone will be capped with a filled polygon. Otherwise, the base of the cone will be open.
       </Documentation>
     </IntVectorProperty>
   <!-- End Cone -->
   </SourceProxy>

   <!-- ==================================================================== -->
   <SourceProxy name="HierarchicalFractal" class="vtkHierarchicalFractal" 
                label="Hierarchical Fractal">
      <Documentation
        long_help="Test source for AMR with HierarchicalDataSet" 
        short_help="Hierarchical fractal">
The Hierarchical Fractal source is a collection of uniform grids. All have the same dimensions. Each block has a different origin and spacing. This source uses the Mandelbrot source to create cell data. The fractal array is scaled to look like a volme fraction.
      </Documentation>
      <IntVectorProperty
         name="Dimensions"
         command="SetDimensions"
         number_of_elements="1"
         default_values="10" >
        <IntRangeDomain name="range" min="2" max="64" />
        <Documentation>
          This property specifies the X, Y, Z cell dimensions of a block.
        </Documentation>
      </IntVectorProperty>

      <DoubleVectorProperty
         name="FractalValue"
         command="SetFractalValue"
         number_of_elements="1"
         default_values="9.5" >
        <DoubleRangeDomain name="range" min="0" />
        <Documentation>
          The value of this property will be mapped to 0.5 for use as a volume fraction.
        </Documentation>
      </DoubleVectorProperty>

      <IntVectorProperty
         name="MaximumLevel"
         command="SetMaximumLevel"
         number_of_elements="1"
         default_values="5" >
        <IntRangeDomain name="range" min="1" max="10" />
        <Documentation>
          This property specifies how many levels of refinement should be included in this hierarchical dataset.
        </Documentation>
      </IntVectorProperty>

      <IntVectorProperty
         name="GhostLevels"
         command="SetGhostLevels"
         number_of_elements="1"
         default_values="1">
        <BooleanDomain name="bool"/>
        <Documentation>
          This property specifies whether ghost levels should be generated at processor boundaries.
        </Documentation>
      </IntVectorProperty>

      <IntVectorProperty
         name="TwoDimensional"
         command="SetTwoDimensional"
         number_of_elements="1"
         default_values="1">
        <BooleanDomain name="bool"/>
        <Documentation>
          If this property is set to 1, the generated dataset will be 2D; otherwise it will be 3D.
        </Documentation>
      </IntVectorProperty>

      <IntVectorProperty
         name="Asymetric"
         command="SetAsymetric"
         number_of_elements="1"
         default_values="0">
        <BooleanDomain name="bool"/>
        <Documentation>
          If this property is set to 0, all the blocks will be the same size. If it is set to 1, an asymmetric dataset will be created: some blocks will have an X dimension that is larger by 2 units.
        </Documentation>
      </IntVectorProperty>

      <IntVectorProperty
         name="RectilinearGrids"
         command="SetGenerateRectilinearGrids"
         number_of_elements="1"
         default_values="0">
        <BooleanDomain name="bool"/>
        <Documentation>
          If this property is set to 1, the hierarchical dataset will contain rectilinear grids; otherwise it will contain uniform grids.
        </Documentation>
      </IntVectorProperty>

      <IntVectorProperty 
         name="TimeStepRangeInfo"
         command="GetTimeStepRange"
         information_only="1">
         <SimpleIntInformationHelper/>
      </IntVectorProperty>
      <IntVectorProperty 
         name="TimeStep"
         command="SetTimeStep"
         number_of_elements="1"
         animateable="1"
         default_values="0">
        <IntRangeDomain name="range">
           <RequiredProperties>
              <Property name="TimeStepRangeInfo" function="Range"/>
           </RequiredProperties>
        </IntRangeDomain>
        <Documentation>
          This property specifies the timestep to use for this dataset.
        </Documentation>
      </IntVectorProperty>

   <!-- End HierarchicalFractal -->
   </SourceProxy>

   <!-- ==================================================================== -->
   <SourceProxy name="CylinderSource" class="vtkCylinderSource" label="Cylinder">
      <Documentation
         short_help="3D cylinder of a given radius and height"
         long_help="Create a 3D cylinder of a given radius and height.">
The Cylinder source can be used to add a polygonal cylinder to the 3D scene. The output of the Cylinder source is polygonal data containing both normals and texture coordinates.
      </Documentation>
      <IntVectorProperty
         name="Resolution"
         command="SetResolution"
         number_of_elements="1"
         default_values="6" >
        <IntRangeDomain name="range" min="2" max="512" />
        <Documentation>
          This property indicates the number of divisions around the cylinder. The higher this number, the closer the polygonal approximation will come to representing a cylinder, and the more polygons it will contain.
        </Documentation>
      </IntVectorProperty>

      <DoubleVectorProperty
         name="Height"
         command="SetHeight"
         number_of_elements="1"
         animateable="1"
         default_values="1.0" >
        <DoubleRangeDomain name="range" min="0" />
        <Documentation>
          This property specifies the height of the cylinder (along the y axis).
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="Radius"
         command="SetRadius"
         number_of_elements="1"
         default_values="0.5" >
        <DoubleRangeDomain name="range" min="0" />
        <Documentation>
          This property specifies the radius of the cylinder.
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="Center"
         command="SetCenter"
         number_of_elements="3"
         animateable="1"
         default_values="0.0 0.0 0.0" >
        <DoubleRangeDomain name="range"/>
        <Documentation>
          This property specifies the coordinate value at the center of the cylinder.
        </Documentation>
      </DoubleVectorProperty>

     <IntVectorProperty 
        name="Capping" 
        command="SetCapping" 
        number_of_elements="1"
        default_values="1" > 
       <BooleanDomain name="bool"/>
       <Documentation>
         If this property is set to 1, the ends of the cylinder will each be capped with a closed polygon. Otherwise, the ends of the cylinder will be open.
       </Documentation>
     </IntVectorProperty>
   <!-- End Cylinder -->
   </SourceProxy>

   <!-- ==================================================================== -->
   <SourceProxy name="LineSource" class="vtkLineSource" label="Line">
      <Documentation
         long_help="This source creates a line between two points. The resolution indicates how many segments are in the line." 
         short_help="Create a line between two points">
The Line source can be used to interactively (using a 3D widget) or manually (using the entries on the user interface) add a line to the 3D scene. The output of the Line source is polygonal data.
      </Documentation>
      <DoubleVectorProperty
         name="Point1"
         command="SetPoint1"
         number_of_elements="3"
         animateable="1"
         default_values="-0.5 0.0 0.0" >
         <DoubleRangeDomain name="range" />
         <Documentation>
           This property controls the coordinates of the first endpoint of the line.
         </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="Point2"
         command="SetPoint2"
         number_of_elements="3"
         animateable="1"
         default_values="0.5 0.0 0.0" >
         <DoubleRangeDomain name="range" />
         <Documentation>
           This property controls the coordinates of the second endpoint of the line.
         </Documentation>
      </DoubleVectorProperty>

      <IntVectorProperty
         name="Resolution"
         command="SetResolution"
         number_of_elements="1"
         default_values="6" >
        <IntRangeDomain name="range" min="1" />
        <Documentation>
          This property specifies the number of pieces into which to divide the line.
        </Documentation>
      </IntVectorProperty>

      <Hints>
        <PropertyGroup type="LineSource" label="Line">
          <Property function="Point1WorldPosition" name="Point1" />
          <Property function="Point2WorldPosition" name="Point2" />
          <Property function="Resolution"          name="Resolution" />
        </PropertyGroup>
      </Hints>
   <!-- End Line -->
   </SourceProxy>

   <!-- ==================================================================== -->
   <SourceProxy name="Ruler" class="vtkPVNullSource" label="Ruler">
      <Documentation
         long_help="This is a line source that can be used to measure distance between two points"
         short_help="Create a ruler">
        The ruler can be used to interactively (using a 3D widget) or manually
        (using the entries on the user interface) specify two points and then
        determine the distance between the two points. To place points on the
        surface of any dataset, one can use the 'p' key shortcut.
      </Documentation>
      <DoubleVectorProperty
         name="Point1"
         number_of_elements="3"
         default_values="-0.5 0.0 0.0" >
         <DoubleRangeDomain name="range" />
         <Documentation>
           This property controls the coordinates of the first endpoint of the line.
         </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="Point2"
         number_of_elements="3"
         default_values="0.5 0.0 0.0" >
         <DoubleRangeDomain name="range" />
         <Documentation>
           This property controls the coordinates of the second endpoint of the line.
         </Documentation>
      </DoubleVectorProperty>

      <Hints>
        <PropertyGroup type="Distance" label="Distance">
          <Property function="Point1WorldPosition" name="Point1" />
          <Property function="Point2WorldPosition" name="Point2" />
        </PropertyGroup>
      </Hints>
   <!-- End Line -->
   </SourceProxy>

   <!-- ==================================================================== -->
   <SourceProxy name="ImageMandelbrotSource" class="vtkImageMandelbrotSource"
                label="Mandelbrot">
      <Documentation
        long_help="Representation (unsigned char) of the Mandlebrot set in up to 3 dimensions"
        short_help="Create a Mandelbrot representation">
The Mandelbrot source can be used to add a uniform rectilinear grid with scalar values derived from the Mandelbrot set to the 3D scene. The equation used is z = z^2 + C (where z and C are complex, and C is a constant). The scalar values in the grid are the number of iterations of the equation it takes for the magnitude of the value to become greater than 2. In the equation, the initial value of z is 0. By default, the real component of C is mapped onto the X axis; the imaginary component of C is mapped onto the Y axis; and the imaginary component of the initial value is mapped onto the Z axis. If a two-dimensional extent is specified, the resulting image will be displayed. If a three-dimensional extent is used, then the bounding box of the volume will be displayed. The output of the Mandelbrot source is image (uniform rectilinear) data.
      </Documentation>
      <IntVectorProperty
         name="WholeExtent"
         command="SetWholeExtent"
         number_of_elements="6"
         default_values="0 250 0 250 0 0" >
        <IntRangeDomain name="range"/>
        <Documentation>
          The six values in the property indicate the X, Y, and Z extent of the output data. The first two numbers are the minimum and maximum X extent; the next two are the minimum and maximum Y extent; and the final two are the minimum and maximum Z extent. The numbers are inclusive, so values of 0, 250, 0, 250, 0, 0 indicate that the dimensions of the output will be 251 x 251 x 1.
        </Documentation>
      </IntVectorProperty>

      <IntVectorProperty
         name="ProjectionAxes"
         command="SetProjectionAxes"
         number_of_elements="3"
         default_values="0 1 2" >
        <IntRangeDomain name="range"/>
        <Documentation>
          The three values in this property allow you to specify the projection from the 4D space used by the Mandelbrot set to the axes of the 3D volume. By default, the real component of C (represented by 0) is mapped to the X axis; the imaginary component of C (represented by 1) is mapped to the Y axis; and the real component of X, the initial value (represented by 2) is mapped to the Z axis. The imaginary component of X is represented by 3. All values entered must be between 0 and 3, inclusive.
        </Documentation>
      </IntVectorProperty>

      <DoubleVectorProperty
         name="OriginCX"
         command="SetOriginCX"
         number_of_elements="4"
         default_values="-1.75 -1.25 0.0 0.0" >
        <DoubleRangeDomain name="range"/>
        <Documentation>
          The four values of this property indicate (in order) the components of C (real and imaginary) and the components of the initial value, X (real and imaginary).
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="SizeCX"
         command="SetSizeCX"
         number_of_elements="4"
         default_values="2.5 2.5 2.0 1.5" >
        <DoubleRangeDomain name="range"/>
        <Documentation>
          The four values of this property indicate the length of the output in each of the four dimensions (the real and imaginary components of C and the real and imaginary components of X). The three dimensions specified in the Projection Axes property will determine which of these values specify the length of the axes in the output.
        </Documentation>
      </DoubleVectorProperty>

      <IntVectorProperty
         name="MaximumNumberOfIterations"
         command="SetMaximumNumberOfIterations"
         label="Maximum Number of Iterations"
         number_of_elements="1"
         animateable="1"
         default_values="100" >
        <IntRangeDomain name="range" min="1" max="5000" />
        <Documentation>
          The value of this property specifies the limit on computational iterations (i.e., the maximum number of iterations to perform to determine if the value will go above 2). Values less than 2.0 after the specified number of iterations are considered in the fractal set.
        </Documentation>
      </IntVectorProperty>

      <IntVectorProperty
         name="SubsampleRate"
         command="SetSubsampleRate"
         number_of_elements="1"
         default_values="1" >
        <IntRangeDomain name="range" min="1" />
        <Documentation>
          This property specifies the rate at which to subsample the volume. The extent of the dataset in each dimension will be divided by this value.
        </Documentation>
      </IntVectorProperty>
   <!-- End Mandelbrot -->
   </SourceProxy>

   <!-- ==================================================================== -->
   <SourceProxy name="OctreeFractal" class="vtkHyperOctreeFractalSource"
                label="Octree Fractal">
      <Documentation
         long_help="Test source for octree with Mandelbrot fractal" 
         short_help="Octree Fractal">
         Create an octree from a Mandelbrot fractal. See the Mandelbrot source for a description of the variables used.
      </Documentation>
      <IntVectorProperty
         name="Dimension"
         command="SetDimension"
         number_of_elements="1"
         default_values="2" >
        <IntRangeDomain name="range" min="1" max="3" />
        <Documentation>
          This property specifies the dimensionality of the fractal: 1D - Binary tree line, 2D - Quadtree plane, 3D - Octree volume.
        </Documentation>
      </IntVectorProperty>

      <IntVectorProperty
         name="MaximumLevel"
         command="SetMaximumLevel"
         number_of_elements="1"
         default_values="5" >
        <IntRangeDomain name="range" min="2" max="11" />
        <Documentation>
          This property specifies the maximum refinement level for the grid.
        </Documentation>
      </IntVectorProperty>

      <IntVectorProperty
         name="MinimumLevel"
         command="SetMinimumLevel"
         number_of_elements="1"
         default_values="3" >
        <IntRangeDomain name="range" min="1" max="10" />
        <Documentation>
          This property specifies the minimum refinement level for the grid.
        </Documentation>
      </IntVectorProperty>

      <IntVectorProperty
         name="ProjectionAxes"
         command="SetProjectionAxes"
         number_of_elements="3"
         default_values="0 1 2" >
        <IntRangeDomain name="range"/>
        <Documentation>
          This property indicates which axes of the dataset to display. See Mandelbrot source for a description of the possible axes.
        </Documentation>
      </IntVectorProperty>

      <DoubleVectorProperty
         name="OriginCX"
         command="SetOriginCX"
         number_of_elements="4"
         default_values="-1.75 -1.25 0.0 0.0" >
        <DoubleRangeDomain name="range"/>
        <Documentation>
          This property specifies the imaginary and real values for C (constant) and X (initial value). See Mandelbrot source for a description of the C and X variables.
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="SizeCX"
         command="SetSizeCX"
         number_of_elements="4"
         default_values="2.5 2.5 2.0 1.5" >
        <DoubleRangeDomain name="range"/>
        <Documentation>
          The four values of this property indicate the length of the output in each of the four dimensions (the real and imaginary components of C and the real and imaginary components of X). The three dimensions specified in the Projection Axes property will determine which of these values specify the length of the axes in the output.
        </Documentation>
      </DoubleVectorProperty>

      <IntVectorProperty
         name="MaximumNumberOfIterations"
         command="SetMaximumNumberOfIterations"
         label="Maximum Number of Iterations"
         number_of_elements="1"
         animateable="1"
         default_values="100" >
        <IntRangeDomain name="range" min="1" max="5000" />
        <Documentation>
          The value of this property specifies the limit on computational iterations (i.e., the maximum number of iterations to perform to determine if the value will go above 2). Values less than 2.0 after the specified number of iterations are considered in the fractal set.
        </Documentation>
      </IntVectorProperty>

      <DoubleVectorProperty
         name="Threshold"
         command="SetSpanThreshold"
         number_of_elements="1"
         default_values="2.0" >
        <DoubleRangeDomain name="range"/>
        <Documentation>
          This property specifies a threshold value that determines when to subdivide a leaf node.
        </Documentation>
      </DoubleVectorProperty>      

   <!-- End OctreeFractal -->
   </SourceProxy>

   <!-- ==================================================================== -->
   <SourceProxy name="PlaneSource" class="vtkPlaneSource" label="Plane">
      <Documentation
        long_help="Create a parallelogram given an origin and two points. The resolution indicates the number of division along each axis of the plane." 
        short_help="Create a parallelogram from an origin and two points">
The Plane source can be used to add a polygonal parallelogram to the 3D scene. Unlike the sphere, cone, and cylinder sources, the parallelogram is exactly represented at the lowest resolution, but higher resolutions may be desired if this plane is to be used as an input to a filter. The output of the Plane source is polygonal data.
      </Documentation>
      <DoubleVectorProperty
         name="Origin"
         command="SetOrigin"
         number_of_elements="3"
         animateable="1"
         default_values="-0.5 -0.5 0.0" >
        <DoubleRangeDomain name="range"/>
        <Documentation>
          This property specifies the 3D coordinate of the origin (one corner) of the plane.
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="Point1"
         command="SetPoint1"
         number_of_elements="3"
         animateable="1"
         default_values="0.5 -0.5 0.0" >
        <DoubleRangeDomain name="range"/>
        <Documentation>
          This property specifies the 3D coordinate a second corner of the parallelogram. The line connecting this point and that specified by the Origin property define one edge of the parallelogram (its X axis).
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="Point2"
         command="SetPoint2"
         number_of_elements="3"
         animateable="1"
         default_values="-0.5 0.5 0.0" >
        <DoubleRangeDomain name="range"/>
        <Documentation>
          This property specifies the 3D coordinate a third corner of the parallelogram. The line connecting this point and that specified by the Origin property define a second edge of the parallelogram (its Y axis).
        </Documentation>
      </DoubleVectorProperty>

      <IntVectorProperty
         name="XResolution"
         command="SetXResolution"
         number_of_elements="1"
         default_values="1" >
        <IntRangeDomain name="range" min="1" />
        <Documentation>
          This property specifies the number of divisions along the X axis of the parallelogram.
        </Documentation>
      </IntVectorProperty>

      <IntVectorProperty
         name="YResolution"
         command="SetYResolution"
         number_of_elements="1"
         default_values="1" >
        <IntRangeDomain name="range" min="1" />
        <Documentation>
          This property specifies the number of divisions along the Y axis of the parallelogram.
        </Documentation>
      </IntVectorProperty>
   <!-- End Plane -->
   </SourceProxy>

   <!-- ==================================================================== -->
   <SourceProxy name="PointSource" class="vtkPointSource" label="Point Source">
      <Documentation long_help="Create a point cloud of a certain size, radius, and center."
                     short_help="Create a point cloud">
The point source creates a specified number of points within a given radius about a specified center point. 
      </Documentation>
      <DoubleVectorProperty
         name="Center"
         command="SetCenter"
         number_of_elements="3"
         animateable="1"
         default_values="0.0 0.0 0.0" >
        <DoubleRangeDomain name="range"/>
        <Documentation>
          This property specifies the 3D coordinates of the center of the point cloud.
        </Documentation>
      </DoubleVectorProperty>

      <IntVectorProperty
         name="NumberOfPoints"
         command="SetNumberOfPoints"
         number_of_elements="1"
         animateable="1"
         default_values="1" >
         <IntRangeDomain name="range" min="1"/>
         <Documentation>
           This property specifies the number of points in the point cloud.
         </Documentation>
      </IntVectorProperty>

      <DoubleVectorProperty
         name="Radius"
         command="SetRadius"
         number_of_elements="1"
         animateable="1"
         default_values="0.0" >
        <DoubleRangeDomain name="range" min="0"/>
        <Documentation>
          This property specifies the radius of the point cloud, measured from the value of the Center property.
        </Documentation>
      </DoubleVectorProperty>

      <Hints>
        <PropertyGroup type="PointSource" >
          <Property function="WorldPosition"  name="Center" />
          <Property function="Radius"         name="Radius" />
          <Property function="NumberOfPoints" name="NumberOfPoints" />
        </PropertyGroup>
      </Hints>
   <!-- End PointSource -->
   </SourceProxy>

   <!-- ==================================================================== -->
   <SourceProxy name="SphereSource" class="vtkSphereSource" label="Sphere">
      <Documentation
         long_help="Create a 3D sphere given a center and radius." 
         short_help="Create a 3D sphere">
The Sphere source can be used to add a polygonal sphere to the 3D scene. The output of the Sphere source is polygonal data with point normals defined.
      </Documentation>
       
      <DoubleVectorProperty
         name="Center"
         command="SetCenter"
         number_of_elements="3"
         animateable="1"
         default_values="0.0 0.0 0.0" >
        <DoubleRangeDomain name="range"/>
        <Documentation>
          This property specifies the 3D coordinates for the center of the sphere.
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="Radius"
         command="SetRadius"
         number_of_elements="1"
         animateable="1"
         default_values="0.5" >
        <DoubleRangeDomain name="range" min="0"/>
        <Documentation>
          This property specifies the radius of the sphere.
        </Documentation>
      </DoubleVectorProperty>

      <IntVectorProperty
         name="ThetaResolution"
         command="SetThetaResolution"
         number_of_elements="1"
         default_values="8" >
        <IntRangeDomain name="range" min="3" />
        <Documentation>
          The value of this property represents the number of divisions between Start Theta and End Theta around the sphere. (See the Start Theta and End Theta properties.) The theta divisions are similar to longitude lines on the earth. The higher the resolution, the closer the approximation will come to a sphere, and the more polygons there will be.
        </Documentation>
      </IntVectorProperty>

      <DoubleVectorProperty
         name="StartTheta"
         command="SetStartTheta"
         number_of_elements="1"
         animateable="1"
         default_values="0" >
        <DoubleRangeDomain name="range" min="0" max="360" />
        <Documentation>
          To form a complete sphere, the value of this property should be 0 degrees, and the value of the End Theta property should be 360 degrees. The value of this property can be adjusted to form only a portion of a sphere.
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="EndTheta"
         command="SetEndTheta"
         number_of_elements="1"
         animateable="1"
         default_values="360" >
        <DoubleRangeDomain name="range" min="0" max="360" />
        <Documentation>
          The value of this property can be adjusted to form only a portion of a sphere. This value is measured in degrees.
        </Documentation>
      </DoubleVectorProperty>

      <IntVectorProperty
         name="PhiResolution"
         command="SetPhiResolution"
         number_of_elements="1"
         default_values="8" >
        <IntRangeDomain name="range" min="3" />
        <Documentation>
          The value of this property represents the number of divisions between Start Phi and End Phi on the sphere. (See the Start Phi and End Phi properties.) The phi divisions are similar to latitude lines on the earth.
        </Documentation>
      </IntVectorProperty>

      <DoubleVectorProperty
         name="StartPhi"
         command="SetStartPhi"
         number_of_elements="1"
         animateable="1"
         default_values="0" >
        <DoubleRangeDomain name="range" min="0" max="180" />
        <Documentation>
          To form a complete sphere, the value of this property should be 0 degrees, and the value of the End Phi property should be 180 degrees. The value of this property can be adjusted to form only a portion of a sphere.
          Set the starting angle (in degrees) in the latitudinal direction.
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="EndPhi"
         command="SetEndPhi"
         number_of_elements="1"
         animateable="1"
         default_values="180" >
        <DoubleRangeDomain name="range" min="0" max="180" />
        <Documentation>
          The value of this property can be adjusted to form only a portion of a sphere. The value is measured in degrees.
        </Documentation>
      </DoubleVectorProperty>
   <!-- End Sphere -->
   </SourceProxy>


   <!-- ==================================================================== -->
   <SourceProxy name="DiskSource" class="vtkDiskSource" label="Disk">
      <Documentation
         long_help="Create a 3D disk with a specified inner and outer radius." 
         short_help="Create a 3D disk">
The Disk source can be used to add a polygonal disk to the 3D scene. The output of the Disk source is polygonal data.
      </Documentation>
       
      <DoubleVectorProperty
         name="InnerRadius"
         command="SetInnerRadius"
         number_of_elements="1"
         animateable="1"
         default_values="0.5" >
        <DoubleRangeDomain name="range" min="0"/>
        <Documentation>
          Specify inner radius of hole in disc.
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="OuterRadius"
         command="SetOuterRadius"
         number_of_elements="1"
         animateable="1"
         default_values="1.0" >
        <DoubleRangeDomain name="range" min="0"/>
        <Documentation>
          Specify outer radius of disc. 
        </Documentation>
      </DoubleVectorProperty>

      <IntVectorProperty
         name="RadialResolution"
         command="SetRadialResolution"
         number_of_elements="1"
         default_values="8" >
        <IntRangeDomain name="range" min="3" max="1024" />
        <Documentation>
          Set the number of points in radial direction.
        </Documentation>
      </IntVectorProperty>

      <IntVectorProperty
         name="CircumferentialResolution"
         command="SetCircumferentialResolution"
         number_of_elements="1"
         default_values="8" >
        <IntRangeDomain name="range" min="3" max="1024" />
        <Documentation>
          Set the number of points in circumferential direction.
        </Documentation>
      </IntVectorProperty>

   <!-- End DiscSource -->
   </SourceProxy>



   <!-- ==================================================================== -->
   <SourceProxy name="SuperquadricSource" class="vtkSuperquadricSource"
                label="Superquadric">
      <Documentation
         long_help="Create a superquadric according to the theta and phi roundness parameters. This one source can generate a wide variety of 3D objects including a box, a sphere, or a torus." 
         short_help="Create a superquadric according to the theta and phi roundness parameters">
The Superquadric source can be used to add a polygonal superquadric to the 3D scene. This source can be used to create a wide variety of shapes (e.g., a sphere, a box, or a torus) by adjusting the roundness parameters. The output of the Superquadric source is polygonal data with point normals and texture coordinates defined.
      </Documentation>
       
      <DoubleVectorProperty
         name="Center"
         command="SetCenter"
         number_of_elements="3"
         animateable="1"
         default_values="0.0 0.0 0.0" >
        <DoubleRangeDomain name="range"/>
        <Documentation>
          This property specifies the 3D coordinates of the center of the superquadric.
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="Scale"
         command="SetScale"
         number_of_elements="3"
         default_values="1.0 1.0 1.0" >
        <DoubleRangeDomain name="range"/>
        <Documentation>
          The three values in this property are used to scale the superquadric in X, Y, and Z. The surface normals will be computed correctly even with anisotropic scaling.
        </Documentation>
      </DoubleVectorProperty>

      <IntVectorProperty
         name="ThetaResolution"
         command="SetThetaResolution"
         number_of_elements="1"
         default_values="16" >
        <IntRangeDomain name="range" min="8" max="1024" />
        <Documentation>
          The value of this property represents the number of divisions in the theta (longitudinal) direction. This value will be rounded to the nearest multiple of 8.
        </Documentation>
      </IntVectorProperty>

      <IntVectorProperty
         name="PhiResolution"
         command="SetPhiResolution"
         number_of_elements="1"
         default_values="16" >
        <IntRangeDomain name="range" min="4" max="1024" />
        <Documentation>
          The value of this property represents the number of divisions in the phi (latitudinal) direction. This number will be rounded to the nearest multiple of 4.
        </Documentation>
      </IntVectorProperty>

      <DoubleVectorProperty
         name="Thickness"
         command="SetThickness"
         number_of_elements="1"
         default_values="0.3333" >
        <DoubleRangeDomain name="range" min="0.0001" max="1" />
        <Documentation>
          If the value of the Toroidal property is 1, this value represents the thickness of the superquadric as a value between 0 and 1. A value close to 0 leads to a thin object with a large hole, and a value near 1 leads to a thick object with a very small hole. Changing the thickness does not change the outer radius of the superquadric.
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="ThetaRoundness"
         command="SetThetaRoundness"
         number_of_elements="1"
         animateable="1"
         default_values="1" >
        <DoubleRangeDomain name="range" min="0.01" />
        <Documentation>
          This property defines the roundness of the superquadric in the theta (longitudinal) direction. A value of 0 represents a rectangular shape, a value of 1 represents a circular shape, and values greater than 1 produce higher order shapes.
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="PhiRoundness"
         command="SetPhiRoundness"
         number_of_elements="1"
         animateable="1"
         default_values="1" >
        <DoubleRangeDomain name="range" min="0.01" />
        <Documentation>
          This property defines the roundness in the phi (latitudinal) direction. A value of 0 represents a rectangular shape, a value of 1 represents a circular shape, and values greater than 1 produce higher order shapes.
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="Size"
         command="SetSize"
         number_of_elements="1"
         default_values="0.5" >
        <DoubleRangeDomain name="range"/>
        <Documentation>
          The value of this property represents the isotropic size of the superquadric. Note that both the Size and Thickness properties control coefficients of superquadric generation, so the value of this property may not exactly describe the size of the superquadric.
        </Documentation>
      </DoubleVectorProperty>

     <IntVectorProperty 
        name="Toroidal" 
        command="SetToroidal" 
        number_of_elements="1"
        animateable="1"
        default_values="1" > 
       <BooleanDomain name="bool"/>
       <Documentation>
         If the value of this property is 0, the generated superquadric will not contain a hole (i.e., the superquadric will be ellipsoidal). Otherwise, a toroidal object is generated.
       </Documentation>
     </IntVectorProperty>
   <!-- End SuperQuadric -->
   </SourceProxy>

   <!-- ==================================================================== -->
   <SourceProxy name="RTAnalyticSource" class="vtkRTAnalyticSource" label="Wavelet">
      <Documentation
         long_help="Create a regular rectilinear grid in up to three dimensions with values varying according to a periodic function."
         short_help="Create a rectilinear grid containing a wavelet">
The Wavelet source can be used to create a uniform rectilinear grid in up to three dimensions with values varying according to the following periodic function.
OS = M * G * (XM * sin(XF * x) + YM * sin(YF * y) + ZM * cos(ZF * z))
OS is the output scalar; M represents the maximum value; G represents the Gaussian; XM, YM, and ZM are the X, Y, and Z magnitude values; and XF, YF, and ZF are the X, Y, and Z frequency values. If a two-dimensional extent is specified, the resulting image will be displayed. If a three-dimensional extent is used, then the bounding box of the volume will be displayed.
      </Documentation>
      <IntVectorProperty
         name="WholeExtent"
         command="SetWholeExtent"
         number_of_elements="6"
         default_values="-10 10 -10 10 -10 10" >
        <IntRangeDomain name="range"/>
        <Documentation>
          The six values in this property indicate the X, Y, and Z extent of the output data. The first two values represent the minimum and maximum X indices, the next two are the minimum and maximum Y indices, and the last two are the minimum and maximum Z indices.
        </Documentation>
      </IntVectorProperty>

      <DoubleVectorProperty
         name="Center"
         command="SetCenter"
         number_of_elements="3"
         animateable="1"
         default_values="0.0 0.0 0.0" >
        <DoubleRangeDomain name="range"/>
        <Documentation>
          This property specifies the 3D coordinates of the center of the dataset.
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="Maximum"
         command="SetMaximum"
         number_of_elements="1"
         default_values="255.0" >
        <DoubleRangeDomain name="range"/>
        <Documentation>
          This parameter specifies the maximum value (M) of the function.
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="XFreq"
         command="SetXFreq"
         number_of_elements="1"
         animateable="1"
         default_values="60.0" >
        <DoubleRangeDomain name="range"/>
        <Documentation>
          This property specifies the natural frequency in X (XF in the equation).
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="YFreq"
         command="SetYFreq"
         number_of_elements="1"
         animateable="1"
         default_values="30.0" >
        <DoubleRangeDomain name="range"/>
        <Documentation>
          This property specifies the natural frequency in Y (YF in the equation).
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="ZFreq"
         command="SetZFreq"
         number_of_elements="1"
         animateable="1"
         default_values="40.0" >
        <DoubleRangeDomain name="range"/>
        <Documentation>
          This property specifies the natural frequency in Z (ZF in the equation).
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="XMag"
         command="SetXMag"
         number_of_elements="1"
         default_values="10.0" >
        <DoubleRangeDomain name="range"/>
        <Documentation>
          This property specifies the wave amplitude in X (XM in the equation).
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="YMag"
         command="SetYMag"
         number_of_elements="1"
         default_values="18.0" >
        <DoubleRangeDomain name="range"/>
        <Documentation>
          This property specifies the wave amplitude in Y (YM in the equation).
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="ZMag"
         command="SetZMag"
         number_of_elements="1"
         default_values="5.0" >
        <DoubleRangeDomain name="range"/>
        <Documentation>
          This property specifies the wave amplitude in Z (ZM in the equation).
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="StandardDeviation"
         command="SetStandardDeviation"
         number_of_elements="1"
         default_values="0.5" >
        <DoubleRangeDomain name="range"/>
        <Documentation>
          This property specifies the standard deviation of the Gaussian used in computing this function.
        </Documentation>
      </DoubleVectorProperty>

      <IntVectorProperty
         name="SubsampleRate"
         command="SetSubsampleRate"
         number_of_elements="1"
         default_values="1" >
        <IntRangeDomain name="range" min="1" />
        <Documentation>
          This property specifies the rate at which to subsample the volume. The extent of the dataset in each dimension will be divided by this value. (See the Whole Extent property.)
        </Documentation>
      </IntVectorProperty>
   <!-- End Wavelet -->
   </SourceProxy>

   <!-- ==================================================================== -->
   <SourceProxy name="Test3DWidget" class="vtkConeSource">
      <IntVectorProperty
         name="Resolution"
         command="SetResolution"
         number_of_elements="1"
         default_values="6" >
        <IntRangeDomain name="range" min="1" max="128" />
        <Documentation>
          Set the number of faces used to generate the cone.
        </Documentation>
      </IntVectorProperty>
   <!-- End Test3DWidget -->
   </SourceProxy>

   <!-- ==================================================================== -->
   <SourceProxy name="TextSource" class="vtkPVTextSource" 
      label="Text">
     <Documentation
       short_help="Display text"
       long_help="The Text source generates a table containing text." >
       The Text source is used to generate a 1x1 vtkTable with a single text string.
     </Documentation>
     <StringVectorProperty
       name="Text"
       command="SetText"
       number_of_elements="1"
       default_values="Text">
             <Hints>
              <Widget type="multi_line"/>
            </Hints>
        <Documentation>
          This property specifies the text to display.
        </Documentation>
     </StringVectorProperty>

     <Hints>
       <OutputPort name="Output-0" index="0" type="text" />
     </Hints>
   <!-- End of TextSource -->
   </SourceProxy>

   <!-- ==================================================================== -->
   <SourceProxy name="SelectionQuerySource" class="vtkQuerySelectionSource">
     <IntVectorProperty name="FieldType"
        command="SetFieldType"
        number_of_elements="1"
        default_values="0">
        <Documentation>
          The location of the array the selection came from (ex, point, cell).
        </Documentation>
        <EnumerationDomain name="enum">
          <Entry value="0" text="CELL" />
          <Entry value="1" text="POINT" />
          <Entry value="2" text="FIELD" />
          <Entry value="3" text="VERTEX" />
          <Entry value="4" text="EDGE" />
          <Entry value="5" text="ROW" />
        </EnumerationDomain>
     </IntVectorProperty>

     <IntVectorProperty name="TermMode"
        command="SetTermMode"
        number_of_elements="1"
        default_values="0">
        <EnumerationDomain name="enum">
          <Entry value="0" text="None" />
          <Entry value="1" text="ID" />
          <Entry value="2" text="GLOBALID" />
          <Entry value="3" text="ARRAY" />
          <Entry value="4" text="LOCATION" />
          <Entry value="5" text="BLOCK" />
        </EnumerationDomain>
      </IntVectorProperty>

      <IntVectorProperty name="Operator"
        command="SetOperator"
        number_of_elements="1"
        default_values="0">
        <EnumerationDomain name="enum">
          <Entry value="0" text="None" />
          <Entry value="1" text="IS_ONE_OF" />
          <Entry value="2" text="IS_BETWEEN" />
          <Entry value="3" text="IS_GE" />
          <Entry value="4" text="IS_LE" />
        </EnumerationDomain>
      </IntVectorProperty>

      <StringVectorProperty name="ArrayName"
        command="SetArrayName"
        number_of_elements="1"
        default_values="">
      </StringVectorProperty>

      <IntVectorProperty name="ArrayComponent"
        command="SetArrayComponent"
        number_of_elements="1"
        default_values="0">
      </IntVectorProperty>

      <IdTypeVectorProperty name="IdTypeValues"
        command="SetIdTypeValues"
        set_number_command="SetNumberOfIdTypeValues"
        argument_is_array="1">
      </IdTypeVectorProperty>

      <DoubleVectorProperty name="DoubleValues"
        command="SetDoubleValues"
        set_number_command="SetNumberOfDoubleValues"
        argument_is_array="1">
      </DoubleVectorProperty>

      <IntVectorProperty name="CompositeIndex"
        command="SetCompositeIndex"
        number_of_elements="1"
        default_values="-1">
      </IntVectorProperty>

      <IntVectorProperty name="HierarchicalLevel"
        command="SetHierarchicalLevel"
        number_of_elements="1"
        default_values="-1">
      </IntVectorProperty>


      <IntVectorProperty name="HierarchicalIndex"
        command="SetHierarchicalIndex"
        number_of_elements="1"
        default_values="-1">
      </IntVectorProperty>

      <IntVectorProperty name="ProcessID"
        command="SetProcessID"
        number_of_elements="1"
        default_values="-1">
      </IntVectorProperty>

      <IntVectorProperty name="ContainingCells"
        command="SetContainingCells"
        number_of_elements="1"
        default_values="0">
        <BooleanDomain name="bool" />
        <Documentation>
          Useful only when FieldType==POINT. This results in selecting the cells
          that contain the matching points.
        </Documentation>
      </IntVectorProperty>

      <StringVectorProperty name="UserFriendlyText"
        information_only="1"
        command="GetUserFriendlyText">
        <SimpleStringInformationHelper/>
        <Documentation>
          Reconstructs the query as a user friendly text eg. "IDs >= 12".
        </Documentation>
      </StringVectorProperty>

      <IntVectorProperty 
         name="InsideOut" 
         command="SetInverse" 
         number_of_elements="1"
         default_values="0" >
        <BooleanDomain name="bool"/>
        <Documentation>
          When this property is false the selection describes everything that
          should be extracted. When this is true the selection describes
          everything that should NOT be extracted.
        </Documentation>
      </IntVectorProperty>
    <!-- end of SelectionQuerySource -->
   </SourceProxy>

   <!-- ==================================================================== -->
   <Proxy name="SelectionSourceBase" >
     <Documentation>
       Internal proxy used to define the common API for Selection Source
       proxies. Do not use.
     </Documentation>

     <IntVectorProperty name="FieldType"
        command="SetFieldType"
        number_of_elements="1"
        default_values="0">
        <Documentation>
          The location of the array the selection came from (ex, point, cell).
        </Documentation>
        <EnumerationDomain name="enum">
          <Entry value="0" text="CELL" />
          <Entry value="1" text="POINT" />
          <Entry value="2" text="FIELD" />
          <Entry value="3" text="VERTEX" />
          <Entry value="4" text="EDGE" />
          <Entry value="5" text="ROW" />
        </EnumerationDomain>
     </IntVectorProperty>

     <IntVectorProperty 
        name="ContainingCells"
        command="SetContainingCells"
        number_of_elements="1"
        default_values="0">
        <Documentation>
          When field type is POINT, this controls whether single vertex cells
          will be produced for each selected point, or whether the cells that
          contain each selected point will be produced. When field type is CELL
          this has no effect.
        </Documentation>
        <BooleanDomain name="bool"/>
     </IntVectorProperty>

     <IntVectorProperty 
        name="InsideOut" 
        command="SetInverse" 
        number_of_elements="1"
        default_values="0" >
       <BooleanDomain name="bool"/>
       <Documentation>
         When this property is false the selection describes everything that
         should be extracted. When this is true the selection describes
         everything that should NOT be extracted.
       </Documentation>
     </IntVectorProperty>
   </Proxy>
   
   <!-- ==================================================================== -->
   <SourceProxy name="BlockSelectionSource" class="vtkPVSelectionSource"
      base_proxygroup="sources" base_proxyname="SelectionSourceBase">
      <Documentation>
        BlockSelectionSource is a source producing a block-based selection used
        to select blocks from a composite dataset.
      </Documentation>
      <IdTypeVectorProperty name="Blocks"
        command="AddBlock" 
        clean_command="RemoveAllBlocks"
        repeat_command="1"
        number_of_elements_per_command="1"
        number_of_elements="1"
        default_values="0"
        label="Blocks">
        <Documentation>
          The list of blocks that will be added to the selection produced by the
          selection source. The blocks are identified using their composite
          index (flat index).
        </Documentation>
     </IdTypeVectorProperty> 

      <!-- End of BlockSelectionSource -->
   </SourceProxy>
   
   <!-- ==================================================================== -->
   <SourceProxy name="FrustumSelectionSource" class="vtkPVSelectionSource"
      base_proxygroup="sources" base_proxyname="SelectionSourceBase">
      <Documentation>
        FrustumSelectionSource is a source producing a frustum selection.
      </Documentation>

     <DoubleVectorProperty name="Frustum"
        command="SetFrustum" 
        number_of_elements="32"
        argument_is_array="1"
        default_values=
        "0.0 0.0 1.0 0.0
         0.0 0.0 0.0 0.0
         0.0 1.0 1.0 0.0
         0.0 1.0 0.0 0.0
         1.0 0.0 1.0 0.0
         1.0 0.0 0.0 0.0
         1.0 1.0 1.0 0.0
         1.0 1.0 0.0 0.0"
        label="Frustum">
        <Documentation>
          Vertices that define a frustum for the selection source.
        </Documentation>
     </DoubleVectorProperty> 

     <!-- End of FrustumSelectionSource -->
   </SourceProxy>

   <!-- ==================================================================== -->
   <SourceProxy name="GlobalIDSelectionSource" class="vtkPVSelectionSource"
      base_proxygroup="sources" base_proxyname="SelectionSourceBase">
      <Documentation>
        GlobalIDSelectionSource is a source producing a global ID based
        selection. 
      </Documentation>

     <IdTypeVectorProperty name="IDs"
        command="AddGlobalID" 
        clean_command="RemoveAllGlobalIDs"
        repeat_command="1"
        number_of_elements_per_command="1"
        number_of_elements="1"
        default_values="0"
        label="Global IDs">
        <Documentation>
          The list of IDs that will be added to the selection produced by the
          selection source.
        </Documentation>
     </IdTypeVectorProperty> 
     <!-- End of GlobalIDSelectionSource -->
   </SourceProxy>

   <!-- ==================================================================== -->
   <SourceProxy name="PedigreeIDSelectionSource" class="vtkPVSelectionSource"
      base_proxygroup="sources" base_proxyname="SelectionSourceBase">
      <Documentation>
        PedigreeIDSelectionSource is a source producing a pedigree ID based
        selection. 
      </Documentation>

     <StringVectorProperty name="IDs"
        command="AddPedigreeID" 
        clean_command="RemoveAllPedigreeIDs"
        repeat_command="1"
        number_of_elements_per_command="2"
        number_of_elements="2"
        element_types="2 0"
        default_values="id 0"
        label="Pedigree IDs">
        <Documentation>
          The list of integer IDs that will be added to the selection produced by the
          selection source, specified by the pair (domain, id).
        </Documentation>
     </StringVectorProperty>

     <StringVectorProperty name="StringIDs"
        command="AddPedigreeStringID" 
        clean_command="RemoveAllPedigreeStringIDs"
        repeat_command="1"
        number_of_elements_per_command="2"
        number_of_elements="2"
        element_types="2 2"
        default_values="id foo"
        label="Pedigree String IDs">
        <Documentation>
          The list of string IDs that will be added to the selection produced by the
          selection source, specified by the pair (domain, id).
        </Documentation>
     </StringVectorProperty>
     <!-- End of PedigreeIDSelectionSource -->
   </SourceProxy>

   <!-- ==================================================================== -->
   <SourceProxy name="IDSelectionSource" class="vtkPVSelectionSource"
      base_proxygroup="sources" base_proxyname="SelectionSourceBase">
     <Documentation>
        IDSelectionSource is a source producing a ID based selection. This
        cannot be used for selecting composite datasets.
     </Documentation>

     <IdTypeVectorProperty
        name="IDs"
        command="AddID"
        clean_command="RemoveAllIDs"
        repeat_command="1"
        number_of_elements_per_command="2"
        number_of_elements="2"
        default_values="0 0">
        <Documentation>
          The list of IDs that will be added to the selection produced by the
          selection source. This takes pairs of values as
          (process number, id).
        </Documentation>
     </IdTypeVectorProperty>

     <!-- End of IDSelectionSource -->
   </SourceProxy>
      
   <!-- ==================================================================== -->
   <SourceProxy name="CompositeDataIDSelectionSource" class="vtkPVSelectionSource"
      base_proxygroup="sources" base_proxyname="SelectionSourceBase">
     <Documentation>
        CompositeDataIDSelectionSource used to create an ID based selection for
        composite datasets (Multiblock or HierarchicalBox dataset).
     </Documentation>

     <IdTypeVectorProperty name="IDs"
        command="AddCompositeID" 
        clean_command="RemoveAllCompositeIDs"
        repeat_command="1"
        number_of_elements_per_command="3"
        number_of_elements="3"
        default_values="0 0 0">
        <Documentation>
          The list of IDs that will be added to the selection produced by the
          selection source. This takes 3-tuple of values as
          (flat-index, process number, id).
        </Documentation>
     </IdTypeVectorProperty>

     <!-- End of CompositeDataIDSelectionSource -->
   </SourceProxy>

   <!-- ==================================================================== -->
   <SourceProxy name="HierarchicalDataIDSelectionSource" class="vtkPVSelectionSource"
      base_proxygroup="sources" base_proxyname="SelectionSourceBase">
     <Documentation>
        HierarchicalDataIDSelectionSource used to create an ID based selection for
        HierarchicalBox datasets.
     </Documentation>

     <IdTypeVectorProperty name="IDs"
        command="AddHierarhicalID"
        clean_command="RemoveAllHierarchicalIDs"
        repeat_command="1"
        number_of_elements_per_command="3"
        number_of_elements="3"
        default_values="0 0 0">
        <Documentation>
          The list of IDs that will be added to the selection produced by the
          selection source. This takes 3-tuple of values as
          (level, index, id).
        </Documentation>
     </IdTypeVectorProperty>

     <!-- End of HierarchicalDataIDSelectionSource -->
   </SourceProxy>

   <!-- ==================================================================== -->
   <SourceProxy name="ThresholdSelectionSource" class="vtkPVSelectionSource"
      base_proxygroup="sources" base_proxyname="SelectionSourceBase">
     <Documentation>
        ThresholdSelectionSource is used to create a threshold based selection.
     </Documentation>

     <DoubleVectorProperty name="Thresholds"
        command="AddThreshold"
        clean_command="RemoveAllThresholds"
        repeat_command="1"
        number_of_elements_per_command="2"
        number_of_elements="0">
        <Documentation>
          The list of thresholds that will be added to the selection produced by
          the selection source.
        </Documentation> 
     </DoubleVectorProperty>

     <StringVectorProperty name="ArrayName"
       command="SetArrayName"
       number_of_elements="1"
       default_values="none">
        <Documentation>
           For threshold and value selection, this controls the name of the
           scalar array that will be thresholded within.
        </Documentation>
     </StringVectorProperty>

     <!-- End of ThresholdSelectionSource -->
   </SourceProxy>

   <!-- ==================================================================== -->
   <SourceProxy name="LocationSelectionSource" class="vtkPVSelectionSource"
      base_proxygroup="sources" base_proxyname="SelectionSourceBase">
     <Documentation>
        LocationSelectionSource is used to create a location based selection.
     </Documentation>

     <DoubleVectorProperty name="Locations"
        command="AddLocation"
        clean_command="RemoveAllLocations"
        repeat_command="1"
        number_of_elements_per_command="3"
        number_of_elements="3"
        default_values="0 0 0">
        <Documentation>
          The list of locations that will be added to the selection produced by
          the selection source.
        </Documentation>
     </DoubleVectorProperty>

     <!-- End of LocationSelectionSource -->
   </SourceProxy>
   
   <!-- ==================================================================== -->
   <SourceProxy name="TimeToTextConvertorSource" class="vtkTimeToTextConvertor"
     label="Annotate Time" >
     <Documentation
        short_help="Show animation time as text"
        long_help="Shows the animation time as text annnotation in the view." >
      The Annotate Time source can be used to show the animation time in text annotation.
     </Documentation>
     <StringVectorProperty
       name="Format"
       command="SetFormat"
       number_of_elements="1"
       default_values="Time: %f">
       <Documentation>
         This property specifies the format used to display the input time (using printf style).
       </Documentation>
     </StringVectorProperty>

     <Hints>
       <OutputPort name="Output-0" index="0" type="text" />
     </Hints>
     <!-- End of TimeToTextConvertorSource -->
   </SourceProxy>

   <!-- ==================================================================== -->
   <SourceProxy name="TimeSource" class="vtkTimeSourceExample"
                label="Time Source">
      <Documentation
        long_help="Produces a single cell uniform grid with data values that vary over a sin(t) wave from t=0 to t=1 (radian)."
        short_help="Produces a sine wave over time">
        Produces a single cell uniform grid with data values that vary over a
        sin(t) wave from t=0 to t=1 (radian).
      </Documentation>

     <IntVectorProperty 
        name="Analytic"
        command="SetAnalytic"
        number_of_elements="1"
        default_values="0">
        <BooleanDomain name="bool"/>
        <Documentation>
        Makes the time source produce discrete steps of or an analytic sin wave.
        </Documentation>
     </IntVectorProperty>

     <DoubleVectorProperty 
        name="X Amplitude"
        command="SetXAmplitude"
        number_of_elements="1"
        default_values="0.0">
        <Documentation>
        Controls how far the data set moves along X over time.
        </Documentation>
     </DoubleVectorProperty>

     <DoubleVectorProperty 
        name="Y Amplitude"
        command="SetYAmplitude"
        number_of_elements="1"
        default_values="0.0">
        <Documentation>
        Controls how far the data set moves along Y over time.
        </Documentation>
     </DoubleVectorProperty>

     <IntVectorProperty 
        name="Growing"
        command="SetGrowing"
        number_of_elements="1"
        default_values="0">
        <BooleanDomain name="bool"/>
        <Documentation>
        Makes the time source grow and shrink along Y over time.
        </Documentation>
     </IntVectorProperty>

      <DoubleVectorProperty 
          name="TimestepValues"
          repeatable="1"
          information_only="1">
        <TimeStepsInformationHelper/>
      </DoubleVectorProperty>

     <!-- End of TimeSource -->
   </SourceProxy>

   <!-- ==================================================================== -->
   <SourceProxy name="DataObjectGenerator" 
                 class="vtkDataObjectGenerator"
                 label="Data Object Generator">
     <Documentation
       long_help="Parses a string to produce composite data objects consisting of simple templated datasets."
       short_help="Produces simple (composite or atomic) data sets for testing.">

vtkDataObjectGenerator parses a string and produces dataobjects from the
dataobject template names it sees in the string. For example, if the string
contains &quot;ID1&quot; the generator will create a vtkImageData. &quot;UF1&quot;, &quot;RG1&quot;, 
&quot;SG1&quot;, &quot;PD1&quot;, and &quot;UG1&quot; will produce vtkUniformGrid, vtkRectilinearGrid,
vtkStructuredGrid, vtkPolyData and vtkUnstructuredGrid respectively. 
&quot;PD2&quot; will produce an alternate vtkPolydata.
You can compose composite datasets from the atomic ones listed above
by placing them within one of the two composite dataset identifiers
- &quot;MB{}&quot; or &quot;HB[]&quot;. &quot;MB{ ID1 PD1 MB{} }&quot; for example will create a 
vtkMultiBlockDataSet consisting of three blocks: image data, poly data, 
multi-block (empty). Hierarchical Box data sets additionally require
the notion of groups, declared within &quot;()&quot; braces, to specify AMR depth.
&quot;HB[ (UF1)(UF1)(UF1) ]&quot; will create a vtkHierarchicalBoxDataSet representing
an octree that is three levels deep, in which the firstmost cell in each level
is refined.
     </Documentation>

     <StringVectorProperty 
       name="Program" 
       command="SetProgram"
       number_of_elements="1"
       default_values="ID1">
       <Hints>
         <Widget type="multi_line"/>
       </Hints>
       <Documentation>
         This property contains the string that is parsed to determine the structured of the output data object to produce.
       </Documentation>
     </StringVectorProperty>

   <!-- End DataObjectGenerator -->
   </SourceProxy>

   <!-- ==================================================================== -->
   <NetworkImageSourceProxy name="NetworkImageSource"
     class="vtkNetworkImageSource">
     <StringVectorProperty name="FileName"
      command="SetFileName"
      number_of_elements="1"
      update_self="1">
      <Documentation>
        Set the name of image file to load.
      </Documentation>
     </StringVectorProperty>

     <IntVectorProperty name="SourceProcess"
      command="SetSourceProcess"
      number_of_elements="1"
      update_self="1"
      default_values="0">
      <EnumerationDomain name="enum" >
        <Entry value="2" text="DataServer" /> 
        <Entry value="8" text="RenderServer" /> 
        <Entry value="16" text="Client" /> 
      </EnumerationDomain>
      <Documentation>
        Set the process on which the image is available.
      </Documentation>
     </IntVectorProperty>

     <!-- End of NetworkImageSource -->
   </NetworkImageSourceProxy>

   <!-- ==================================================================== -->
   <SourceProxy name="SplineSource"
    class="vtkParametricFunctionSource">
    <Documentation
      short_help="Tessellate parametric functions."
      long_help="Tessellate parametric functions.">
      This class tessellates parametric functions. The user must specify how
      many points in the parametric coordinate directions are required (i.e.,
      the resolution), and the mode to use to generate scalars.
    </Documentation>

    <ProxyProperty name="ParametricFunction"
      command="SetParametricFunction"
      label="Parametric Function">
      <ProxyListDomain name="proxy_list">
        <Proxy group="parametric_functions" name="Spline" />
      </ProxyListDomain>
    </ProxyProperty>
   </SourceProxy>

   <!-- ==================================================================== -->
   <SourceProxy name="TrivialProducer" 
                class="vtkTrivialProducer">
   </SourceProxy>
   <!-- ==================================================================== -->
   <SourceProxy name="PVTrivialProducer"
                class="vtkPVTrivialProducer">
     <IntVectorProperty
        name="WholeExtent"
        command="SetWholeExtent"
        number_of_elements="6"
        default_values="0 -1 0 -1 0 -1" >
       <Documentation>
         The values of this property specify the whole extent of the topologically regular grid.
       </Documentation>
     </IntVectorProperty>

   </SourceProxy>

  </ProxyGroup>
</ServerManagerConfiguration>
