<ServerManagerConfiguration>
  <ProxyGroup name="representations">
    <RepresentationProxy name="StreamingParticlesRepresentation"
      class="vtkStreamingParticlesRepresentation"
      processes="client|renderserver|dataserver">
      <Documentation>
        This is the new representation type we are adding. This is identical to
        the SurfaceRepresentation except that we are overriding the mapper with
        our mapper.
      </Documentation>
      <InputProperty command="SetInputConnection"
                     name="Input">
        <DataTypeDomain composite_data_supported="1"
                        name="input_type">
          <DataType value="vtkDataSet" />
        </DataTypeDomain>
        <InputArrayDomain name="input_array_any">
        </InputArrayDomain>
        <Documentation>Set the input to the representation.</Documentation>
      </InputProperty>
      <IntVectorProperty command="SetUseOutline"
                         default_values="0"
                         name="UseOutline"
                         number_of_elements="1">
        <BooleanDomain name="bool" />
      </IntVectorProperty>
      <IntVectorProperty command="SetUseBlockDetailInformation"
                         default_values="0"
                         name="UseBlockDetailInformation"
                         number_of_elements="1">
        <BooleanDomain name="bool" />
      </IntVectorProperty>
      <IntVectorProperty command="SetProcessesCanLoadAnyBlock"
                         default_values="1"
                         name="ProcessesCanLoadAnyBlock"
                         number_of_elements="1">
        <BooleanDomain name="bool" />
      </IntVectorProperty>
      <DoubleVectorProperty command="SetDetailLevelToLoad"
                            default_values="2"
                            name="DetailLevel"
                            number_of_elements="1">
        <DoubleRangeDomain min="0"
                           max="5e-4"
                           range="range" />
      </DoubleVectorProperty>
      <IntVectorProperty command="SetStreamingRequestSize"
                         default_values="1"
                         name="StreamingRequestSize"
                         number_of_elements="1">
        <IntRangeDomain name="range" min="1" max="1000" />
        <Documentation>
        Set the number of blocks to request at a given time on a single process
        when streaming.
        </Documentation>
      </IntVectorProperty>
      <DoubleVectorProperty command="SetPointSize"
                            default_values="2.0"
                            name="PointSize"
                            number_of_elements="1">
        <DoubleRangeDomain min="0"
                           name="range" />
      </DoubleVectorProperty>
      <StringVectorProperty command="SetInputArrayToProcess"
                            element_types="0 0 0 0 2"
                            name="ColorArrayName"
                            number_of_elements="5">
        <Documentation>
          Set the array to color with. One must specify the field association and
          the array name of the array. If the array is missing, scalar coloring will
          automatically be disabled.
        </Documentation>
        <RepresentedArrayListDomain name="array_list"
                         input_domain_name="input_array_any">
          <RequiredProperties>
            <Property function="Input" name="Input" />
          </RequiredProperties>
        </RepresentedArrayListDomain>
        <FieldDataDomain name="field_list"
                         disable_update_domain_entries="1"
                         force_point_cell_data="1">
          <RequiredProperties>
            <Property function="Input" name="Input" />
          </RequiredProperties>
        </FieldDataDomain>
      </StringVectorProperty>
      <ProxyProperty command="SetLookupTable"
                     name="LookupTable"
                     skip_dependency="1">
        <Documentation>Set the lookup-table to use to map data array to colors.
        Lookuptable is only used with MapScalars to ON.</Documentation>
        <ProxyGroupDomain name="groups">
          <Group name="lookup_tables" />
        </ProxyGroupDomain>
      </ProxyProperty>
      <DoubleVectorProperty command="SetOpacity"
                            default_values="1.0"
                            name="Opacity"
                            number_of_elements="1">
        <DoubleRangeDomain max="1" min="0" name="range" />
      </DoubleVectorProperty>
    <!-- End of StreamingParticlesRepresentation -->
    </RepresentationProxy>

    <Extension name="GeometryRepresentation">
      <Documentation>
        Extends standard GeometryRepresentation by adding
        StreamingParticlesRepresentation as a new type of representation.
      </Documentation>

      <!-- this adds to what is already defined in PVRepresentationBase -->
      <RepresentationType subproxy="StreamingParticlesRepresentation"
        text="Streaming Particles" />

      <SubProxy>
        <Proxy name="StreamingParticlesRepresentation"
          proxygroup="representations" proxyname="StreamingParticlesRepresentation">
        </Proxy>
        <ShareProperties subproxy="SurfaceRepresentation">
          <Exception name="Input" />
          <Exception name="Visibility" />
        </ShareProperties>
        <ExposedProperties>
          <Property name="UseOutline" />
          <Property name="UseBlockDetailInformation" />
          <Property name="ProcessesCanLoadAnyBlock" />
          <Property name="DetailLevel" />
          <Property name="StreamingRequestSize" />
        </ExposedProperties>
      </SubProxy>
    </Extension>

    <Extension name="UnstructuredGridRepresentation">
      <Documentation>
        Extends standard UnstructuredGridRepresentation by adding
        StreamingParticlesRepresentation as a new type of representation.
      </Documentation>

      <!-- this adds to what is already defined in PVRepresentationBase -->
      <RepresentationType subproxy="StreamingParticlesRepresentation"
        text="Streaming Particles" />

      <SubProxy>
        <Proxy name="StreamingParticlesRepresentation"
          proxygroup="representations" proxyname="StreamingParticlesRepresentation">
        </Proxy>
        <ShareProperties subproxy="SurfaceRepresentation">
          <Exception name="Input" />
          <Exception name="Visibility" />
        </ShareProperties>
        <ExposedProperties>
          <Property name="UseOutline" />
          <Property name="UseBlockDetailInformation" />
          <Property name="ProcessesCanLoadAnyBlock" />
          <Property name="DetailLevel" />
          <Property name="StreamingRequestSize" />
        </ExposedProperties>
      </SubProxy>
    </Extension>

  </ProxyGroup>
  <!-- ==================================================================== -->
  <ProxyGroup name="sources">
    <SourceProxy class="vtkPVRandomPointsStreamingSource" label="Random Streaming Points"
                 name="RandomPoints">
      <IntVectorProperty command="SetNumLevels" default_values="5"
                         number_of_elements="1" name="NumberOfLevels">
        <IntRangeDomain max="6"
                        min="1"
                        name="range" />
        <Documentation>Set the number of levels in the octree of blocks
        </Documentation>
      </IntVectorProperty>
      <IntVectorProperty command="SetPointsPerBlock" default_values="100"
                         number_of_elements="1" name="PointsPerBlock">
        <Documentation>Set the number of points generated in each block
        </Documentation>
      </IntVectorProperty>
      <IntVectorProperty command="SetSeed" default_values="1"
                         number_of_elements="1" name="Seed">
        <Documentation>Set the seed of the random number generator
        </Documentation>
      </IntVectorProperty>
      <Documentation>This source creates random points in an octree of blocks to be
        used with the Streaming Particles representation</Documentation>
    </SourceProxy>
  </ProxyGroup>

</ServerManagerConfiguration>
