<ServerManagerConfiguration>
  <ProxyGroup name="lookup_tables">
    <LookupTableProxy name="LookupTable" class="vtkLookupTable"
      processes="dataserver|renderserver|client" >
      <IntVectorProperty
         name="NumberOfTableValues"
         command="SetNumberOfTableValues"
         number_of_elements="1"
         default_values="256" >
        <IntRangeDomain name="range" min="1" />
      </IntVectorProperty>

      <DoubleVectorProperty
         name="HueRange"
         command="SetHueRange"
         number_of_elements="2" 
         default_values="0 0.66667">
        <DoubleRangeDomain name="range" min="0 0" max="1 1" />
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="SaturationRange"
         command="SetSaturationRange"
         number_of_elements="2" 
         default_values="1 1">
        <DoubleRangeDomain name="range" min="0 0" max="1 1" />
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="ValueRange"
         command="SetValueRange"
         number_of_elements="2" 
         default_values="1 1">
        <DoubleRangeDomain name="range" min="0 0" max="1 1" />
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="ScalarRange"
         command="SetTableRange"
         number_of_elements="2" 
         default_values="0 1">
      </DoubleVectorProperty>

      <IntVectorProperty
         name="VectorComponent"
         command="SetVectorComponent"
         number_of_elements="1" 
         default_values="0">
        <EnumerationDomain name="enum">
          <Entry value="0" text="X" />
          <Entry value="1" text="Y" />
          <Entry value="2" text="Z" />
        </EnumerationDomain>
      </IntVectorProperty>

      <IntVectorProperty
         name="VectorMode"
         command="SetVectorMode"
         number_of_elements="1" 
         default_values="1">
       <EnumerationDomain name="enum">
          <Entry value="0" text="Magnitude" />
          <Entry value="1" text="Component" />
       </EnumerationDomain>
      </IntVectorProperty>

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

    </LookupTableProxy>

    <PVLookupTableProxy name="PVLookupTable" class="vtkDiscretizableColorTransferFunction"
      processes="dataserver|renderserver|client" >
      <IntVectorProperty
        name="LockScalarRange"
        number_of_elements="1"
        default_values="0">
        <!-- This is a data-property allowing us to save state of
          scalar range lock in state. SM does not use this at all
          hence the absence of "command" -->
        <BooleanDomain name="bool" />
      </IntVectorProperty>

      <DoubleVectorProperty
        name="ScalarRangeInitialized"
        number_of_elements="1"
        default_values="0">
        <!-- This is used to keep track of whether the 
        user initialized the scalar range -->
        <BooleanDomain name="bool" />
      </DoubleVectorProperty>

      <DoubleVectorProperty
        name="RGBPoints"
        command="AddRGBPoint"
        repeat_command="1"
        number_of_elements_per_command="4"
        clean_command="RemoveAllPoints"
        animateable="0">
      </DoubleVectorProperty>
      
      <IntVectorProperty
        name="ColorSpace"
        command="SetColorSpace"
        number_of_elements="1"
        default_values="0"
        animateable="0">
        <EnumerationDomain name="enum">
          <Entry value="0" text="RGB" />
          <Entry value="1" text="HSV" />
          <Entry value="2" text="Lab" />
          <Entry value="3" text="Diverging" />
        </EnumerationDomain>
      </IntVectorProperty>

      <IntVectorProperty
        name="HSVWrap"
        command="SetHSVWrap"
        number_of_elements="1"
        default_values="0"
        animateable="0">
        <BooleanDomain name="bool" />
      </IntVectorProperty>

      <DoubleVectorProperty
        name="NanColor"
        command="SetNanColor"
        number_of_elements="3"
        default_values="0.5 0 0"
        animateable="0">
      </DoubleVectorProperty>

      <IntVectorProperty
         name="NumberOfTableValues"
         command="SetNumberOfValues"
         number_of_elements="1"
         default_values="256" >
        <IntRangeDomain name="range" min="1" />
      </IntVectorProperty>

      <IntVectorProperty
        name="Discretize"
        command="SetDiscretize"
        number_of_elements="1"
        default_values="1"
        animateable="0">
        <BooleanDomain name="bool" />
      </IntVectorProperty>

      <Property
         name="Build"
         command="Build">
      </Property>

      <IntVectorProperty
         name="VectorComponent"
         command="SetVectorComponent"
         number_of_elements="1" 
         default_values="0">
        <IntRangeDomain name="range" min="0" max="0" /> 
      </IntVectorProperty>

      <IntVectorProperty
         name="VectorMode"
         command="SetVectorMode"
         number_of_elements="1" 
         default_values="1">
       <EnumerationDomain name="enum">
          <Entry value="0" text="Magnitude" />
          <Entry value="1" text="Component" />
       </EnumerationDomain>
      </IntVectorProperty>

      <IntVectorProperty
        name="UseLogScale"
        command="SetUseLogScale"
        number_of_elements="1"
        default_values="0">
        <BooleanDomain name="bool" />
      </IntVectorProperty>

      <!-- End of PVLookupTable -->
    </PVLookupTableProxy>
  </ProxyGroup>

  <ProxyGroup name="parametric_functions">
    <Proxy name="Spline" class="vtkParametricSpline">
      <DoubleVectorProperty name="Points"
        command="SetPoint"
        set_number_command="SetNumberOfPoints"
        use_index="1"
        number_of_elements_per_command="3"
        repeat_command="1"
        number_of_elements="6"
        default_values="0 0 0 1 0 0">
      </DoubleVectorProperty>

      <IntVectorProperty name="Closed"
        command="SetClosed"
        number_of_elements="1"
        default_values="0">
        <BooleanDomain name="bool" />
      </IntVectorProperty>

      <Hints>
        <!-- Hints are metadata associated with the proxy.
             As far as the ServerManager is concerned, Hints have no 
             significance. GUI is free to interpret the hints as
             it chooses. Hints provide a mechanism to add some GUI
             pertinant information to the server manager XML.
        -->
        <PropertyGroup type="Spline">
          <Property name="Points" function="HandlePositions" />
          <Property name="Closed" function="Closed" />
        </PropertyGroup>
      </Hints>
      <!-- end of Spline -->
    </Proxy>
  </ProxyGroup>
  
  <!-- incremental point locators begin -->
  <ProxyGroup name="incremental_point_locators" >
    
    <NullProxy name="None">
    </NullProxy>

    <NullProxy name="Scalar">
    </NullProxy>
    
    <Proxy name="PointLocator" class="vtkPointLocator">
      <Documentation>
        Point locator based on a search structure of uniform fixed-resolution bins / buckets for point location and generic (zero or non-zero) tolerance point insertion.
      </Documentation>
        
      <IntVectorProperty name="Divisions"
        command="SetDivisions"
        number_of_elements="3"
        default_values="50 50 50" >
        <Documentation>
          Specify the number of divisions in each axis / direction (x, y, z) for creating a search structure of uniform fixed-resolution bins / buckets.  
        </Documentation>
      </IntVectorProperty>
        
      <IntVectorProperty name="NumberOfPointsPerBucket"
        command="SetNumberOfPointsPerBucket"
        label="Number of points per bucket"
        number_of_elements="1"
        default_values="8" >
        <Documentation>
          Specify the average number of points in each bin / bucket that determines the initial and growing sizes (in terms of number of points) of each bin / bucket.
        </Documentation>
      </IntVectorProperty>
        
      <DoubleVectorProperty name="Tolerance"
        command="SetTolerance"
        number_of_elements="1"
        default_values="0.001" >
        <Documentation>
          Specify an absolute tolerance for check-based / tolerance-based point insertion.
        </Documentation>
      </DoubleVectorProperty> 
    </Proxy>
      
    <Proxy name="MergePoints" class="vtkMergePoints" label="Uniform Binning" >
      <Documentation>
        A point merger using a search structure of uniform fixed-resolution bins / buckets for zero tolerance point insertion (to avoid exactly duplicate / coincident points).
      </Documentation>
        
      <IntVectorProperty name="Divisions"
        command="SetDivisions"
        number_of_elements="3"
        default_values="50 50 50" >
        <Documentation>
          Specify the number of divisions in each axis / direction (x, y, z) for creating a search structure of uniform fixed-resolution bins / buckets.
        </Documentation>
      </IntVectorProperty>
        
      <IntVectorProperty name="NumberOfPointsPerBucket"
        command="SetNumberOfPointsPerBucket"
        label="Number of points per bucket"
        number_of_elements="1"
        default_values="8" >
        <Documentation>
          Specify the average number of points in each bin / bucket that determines the initial and growing sizes (in terms of number of points) of each bin / bucket.
        </Documentation>
      </IntVectorProperty>
    </Proxy>
    
    <Proxy name="NonMergingPointLocator" class="vtkNonMergingPointLocator" label="Don't Merge Points" >
      <Documentation>
        Perform direct / check-free point insertion (any point is inserted to a vtkPoints object) and therefore there can be duplicate points.
      </Documentation>  
      
      <IntVectorProperty name="Divisions"
        command="SetDivisions"
        number_of_elements="3"
        default_values="50 50 50" >
        <Documentation>
          Specify the number of divisions in each axis / direction (x, y, z) for creating a search structure of uniform fixed-resolution bins / buckets.
        </Documentation>
      </IntVectorProperty>
        
      <IntVectorProperty name="NumberOfPointsPerBucket"
        command="SetNumberOfPointsPerBucket"
        label="Number of points per bucket"
        number_of_elements="1"
        default_values="8" >
        <Documentation>
          Specify the average number of points in each bin / bucket that determines the initial and growing sizes (in terms of number of points) of each bin / bucket.
        </Documentation>
      </IntVectorProperty>
    </Proxy>
      
    <Proxy name="IncrementalOctreePointLocator" class="vtkIncrementalOctreePointLocator">
      <Documentation>
        Point locator based on a fast search structure of data-aware multi-resolution octree nodes for point location and generic (zero or non-zero) tolerance point insertion.
      </Documentation>
        
      <IntVectorProperty name="MaxPointsPerLeaf"
        command="SetMaxPointsPerLeaf"
        label="Max number of points per leaf"
        number_of_elements="1"
        default_values="128" >
        <IntRangeDomain name="range" min="16" max="256" />
        <Documentation>
          Specify the maximum number of points that a leaf node may maintain. This value is a trade-off between the cost of dynamic octree construction (top-down recursive node sub-division into eight children as points are incrementally inserted to the octree) and the speed of point location (particularly within a container leaf node).
        </Documentation>
      </IntVectorProperty>
        
      <DoubleVectorProperty name="Tolerance"
        command="SetTolerance"
        number_of_elements="1"
        default_values="0.001" >
        <Documentation>
          Specify an absolute tolerance for check-based / tolerance-based point insertion.
        </Documentation>
      </DoubleVectorProperty>
    </Proxy>
      
    <Proxy name="IncrementalOctreeMergePoints" class="vtkIncrementalOctreePointLocator" label="Octree Binning" >
      <Documentation>
        A point merger exploiting a fast search structure of data-aware multi-resolution octree nodes for zero-tolerance point insertion (to avoid exactly duplicate / coincident points).
      </Documentation>
        
      <IntVectorProperty name="MaxPointsPerLeaf"
        command="SetMaxPointsPerLeaf"
        label="Max number of points per leaf"
        number_of_elements="1"
        default_values="128" >
        <IntRangeDomain name="range" min="16" max="256" />
        <Documentation>
          Specify the maximum number of points that a leaf node may maintain. This value is a trade-off between the cost of dynamic octree construction (top-down recursive node sub-division into eight children as points are incrementally inserted to the octree) and the speed of point location (particularly within a container leaf node).
        </Documentation>
      </IntVectorProperty>
        
      <DoubleVectorProperty name="Tolerance"
        command="SetTolerance"
        number_of_elements="1"
        default_values="0.0" >
        <Documentation>
          Always specify a zero tolerance for point insertion --- merging points.
        </Documentation>
      </DoubleVectorProperty>
        
      <Hints>
        <Property name="Tolerance" show="0"/>
      </Hints>
    </Proxy>
      
  </ProxyGroup>
  <!-- incremental point locators end -->

  <ProxyGroup name="implicit_functions">
    <NullProxy name="None">
    </NullProxy>

    <NullProxy name="Scalar">
    </NullProxy>

    <ImplicitPlaneProxy name="Plane" class="vtkPlane">
      <InputProperty
        name="Input"
        is_internal="1">
      </InputProperty>

      <DoubleVectorProperty
         name="Origin"
         command="SetOrigin"
         update_self="1"
         number_of_elements="3"
         default_values="0.0 0.0 0.0" >
         <BoundsDomain name="range" mode="normal" default_mode="mid">
           <RequiredProperties>
             <Property name="Input" function="Input" />
           </RequiredProperties>
         </BoundsDomain>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="Normal"
         command="SetNormal"
         number_of_elements="3"
         default_values="1.0 0.0 0.0" >
         <DoubleRangeDomain name="range"/>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="Offset"
         command="SetOffset"
         update_self="1"
         number_of_elements="1"
         animateable="1"
         default_values="0.0" >
        <BoundsDomain name="range" mode="oriented_magnitude" >
         <RequiredProperties>
            <Property name="Origin" function="Origin"/>
            <Property name="Normal" function="Normal"/>
            <Property name="Input" function="Input" />
         </RequiredProperties>
        </BoundsDomain>
      </DoubleVectorProperty>

      <Hints>
        <!-- Hints are metadata associated with the proxy.
             As far as the ServerManager is concerned, Hints have no 
             significance. GUI is free to interpret the hints as
             it chooses. Hints provide a mechanism to add some GUI
             pertinant information to the server manager XML.
        -->
        <PropertyGroup type="Plane">
          <Property name="Origin" function="Origin" />
          <Property name="Normal" function="Normal" />
        </PropertyGroup>

        <ProxyList>
          <!-- 
            ProxyList hints are used when this proxy
            is made a part of a proxy list domain. 
            It provides a mechanism to link certain 
            properties from this proxy with properties
            from the proxy which has the property
            with the proxy list domain.
          -->
          <Link name="Input" with_property="Input" />
        </ProxyList>
      </Hints>

    </ImplicitPlaneProxy>

    <Proxy name="Planes" class="vtkPlanes">
      <ProxyProperty name="Points" command="SetPoints">
        <ProxyGroupDomain name="group">
          <Group name="points"/>
        </ProxyGroupDomain>
      </ProxyProperty>
      <ProxyProperty name="Normals" command="SetNormals">
        <ProxyGroupDomain name="group">
          <Group name="data_arrays"/>
        </ProxyGroupDomain>
      </ProxyProperty>
    </Proxy>

    <BoxProxy name="Box" class="vtkBox">
      <DoubleVectorProperty
        name="Bounds"
        command="SetBounds"
        number_of_elements="6"
        default_values="0 1 0 1 0 1" >
      </DoubleVectorProperty>
      <DoubleVectorProperty
        name="Position"
        command="SetPosition"
        number_of_elements="3"
        update_self="1"
        animateable="1"
        default_values="0.0 0.0 0.0" >
        <DoubleRangeDomain name="range" />
      </DoubleVectorProperty>
      <DoubleVectorProperty
        name="Rotation"
        command="SetRotation"
        number_of_elements="3"
        update_self="1"
        animateable="1"
        default_values="0.0 0.0 0.0" >
        <DoubleRangeDomain name="range" />
      </DoubleVectorProperty>
      <DoubleVectorProperty
        name="Scale"
        command="SetScale"
        number_of_elements="3"
        animateable="1"
        update_self="1"
        default_values="1.0 1.0 1.0" >
        <DoubleRangeDomain name="range" />
      </DoubleVectorProperty>
      <Hints>
        <!-- Hints are metadata associated with the proxy.
             As far as the ServerManager is concerned, Hints have no 
             significance. GUI is free to interpret the hints as
             it chooses. Hints provide a mechanism to add some GUI
             pertinant information to the server manager XML.
        -->
        <PropertyGroup type="Box">
          <Property name="Position" function="Position" />
          <Property name="Rotation" function="Rotation" />
          <Property name="Scale" function="Scale" />
          <Property name="Bounds" function="PlaceWidget" />
        </PropertyGroup>

      </Hints>
      <!-- End of Box -->
    </BoxProxy>
    
    <Proxy name="Sphere" class="vtkSphere">
      <DoubleVectorProperty
        name="Center"
        command="SetCenter"
        number_of_elements="3"
        default_values="none" >
        <DoubleRangeDomain name="range" />
      </DoubleVectorProperty>

      <DoubleVectorProperty
        name="Radius"
        command="SetRadius"
        number_of_elements="1"
        default_values="none" >
        <DoubleRangeDomain name="range" min="0" />
      </DoubleVectorProperty>
      <Hints>
        <!-- Hints are metadata associated with the proxy.
             As far as the ServerManager is concerned, Hints have no 
             significance. GUI is free to interpret the hints as
             it chooses. Hints provide a mechanism to add some GUI
             pertinant information to the server manager XML.
        -->
        <PropertyGroup type="Sphere">
          <Property name="Center" function="Center" />
          <Property name="Radius" function="Radius" />
        </PropertyGroup>

      </Hints>
    </Proxy>
  </ProxyGroup>

  <ProxyGroup name="transforms">
    <Proxy name="Transform" class="vtkTransform">
      <ProxyProperty name="MatrixProxy" command="SetMatrix">
        <ProxyGroupDomain name="groups">
          <Group name="matrices"/>
        </ProxyGroupDomain>
      </ProxyProperty>
      <DoubleVectorProperty
        name="Matrix"
        command="SetMatrix"
        number_of_elements="16"
        argument_is_array="1"
        default_values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" />
    </Proxy>
  </ProxyGroup>

  <ProxyGroup name="matrices">
    <Proxy name="Matrix4x4" class="vtkMatrix4x4">
      <DoubleVectorProperty
        name="DeepCopy"
        command="DeepCopy"
        number_of_elements="16" 
        argument_is_array="1"
        default_values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0">
      </DoubleVectorProperty>
    </Proxy>
  </ProxyGroup>

  <ProxyGroup name="points">
    <Proxy name="Points" class="vtkPoints">
      <DoubleVectorProperty
        name="Points"
        command="SetPoint"
        set_number_command="SetNumberOfPoints"
        number_of_elements="0"
        repeat_command="1"
        number_of_elements_per_command="3"
        use_index="1" />
    </Proxy>
  </ProxyGroup>

  <ProxyGroup name="data_arrays">
    <Proxy name="DoubleArray" class="vtkDoubleArray">
      <DoubleVectorProperty
        name="Values"
        command="SetValue"
        set_number_command="SetNumberOfValues"
        number_of_elements="0"
        repeat_command="1"
        number_of_elements_per_command="1"
        use_index="1" />
      <IntVectorProperty
        name="Components"
        command="SetNumberOfComponents"
        number_of_elements="1"
        default_values="1" />
    </Proxy>
  </ProxyGroup>

  <ProxyGroup name="animation">
    <Proxy name="AnimationCueBase">
      <Documentation>
        Internal base interface for all animation cues.
      </Documentation>

      <IntVectorProperty
         name="TimeMode"
         command="SetTimeMode"
         number_of_elements="1" 
         default_values="0">
        <EnumerationDomain name="enum">
          <Entry value="0" text="Normalized" />
          <Entry value="1" text="Relative" />
        </EnumerationDomain>
      </IntVectorProperty>
   
      <DoubleVectorProperty
        name="StartTime"
        command="SetStartTime"
        number_of_elements="1"
        default_values="0">
      </DoubleVectorProperty>

      <DoubleVectorProperty
        name="EndTime"
        command="SetEndTime"
        number_of_elements="1"
        default_values="1">
      </DoubleVectorProperty>
      
      <ProxyProperty name="AnimatedProxy" 
        command="SetAnimatedProxy"
        clean_command="RemoveAnimatedProxy"
        update_self="1">
        <ProxyGroupDomain name="groups">
          <Group name="sources" />
          <Group name="filters" />
        </ProxyGroupDomain>
      </ProxyProperty>

      <StringVectorProperty
        name="AnimatedPropertyName" 
        command="SetAnimatedPropertyName"
        number_of_elements="1"
        update_self="1">
      </StringVectorProperty>

      <StringVectorProperty
        name="AnimatedDomainName"
        command="SetAnimatedDomainName"
        number_of_elements="1"
        update_self="1">
      </StringVectorProperty>

      <IntVectorProperty
        name="AnimatedElement"
        command="SetAnimatedElement"
        number_of_elements="1"
        update_self="1"
        default_values="0">
      </IntVectorProperty>

      <IntVectorProperty
        name="Enabled"
        command="SetEnabled"
        update_self="1"
        number_of_elements="1"
        default_values="1">
        <BooleanDomain name="bool" />
        <Documentation>
          Enables this animation cue.
        </Documentation>
      </IntVectorProperty>

      <!-- End of AnimationCueBase -->
    </Proxy>

    <ComparativeAnimationCueProxy name="ComparativeAnimationCue" 
      class="vtkAnimationCue"
      base_proxygroup="animation" base_proxyname="AnimationCueBase">
      <Documentation>
        Animation cue used by comparative views.
      </Documentation>

      <!-- No server side objects created. All properties are updateself -->
      <!-- End of ComparativeAnimationCue -->
    </ComparativeAnimationCueProxy>

    <AnimationCueProxy name="AnimationCue" class="vtkAnimationCue"
      base_proxygroup="animation" base_proxyname="AnimationCueBase">
      <Documentation>
        This is old style animation cue, this must be replaced by
        KeyFrameAnimationCue or CameraAnimationCue as the case may be.
        This may be used when using other types of manipulators.
      </Documentation>

      <!-- No server side objects created. All properties are updateself -->
      <ProxyProperty name="Manipulator"
        command="SetManipulator"
        update_self="1">
        <ProxyGroupDomain name="groups">
          <Group name="animation_manipulators" />
        </ProxyGroupDomain>
      </ProxyProperty>
      <!-- End of AnimationCue -->
    </AnimationCueProxy>

    <AnimationCueProxy name="KeyFrameAnimationCue" class="vtkAnimationCue"
      base_proxygroup="animation" base_proxyname="AnimationCueBase">
      <Documentation>
        Animation cue with keyframes.
      </Documentation>

      <SubProxy>
        <Proxy name="Manipulator"
          proxygroup="animation_manipulators"
          proxyname="KeyFrameAnimationCueManipulator">
        </Proxy>
        <ExposedProperties>
          <Property name="KeyFrames" />
          <Property name="LastAddedKeyFrameIndex" />
        </ExposedProperties>
      </SubProxy>

      <!-- End of KeyFrameAnimationCue -->
    </AnimationCueProxy>

    <AnimationCueProxy name="CameraAnimationCue" class="vtkAnimationCue"
      base_proxygroup="animation" base_proxyname="AnimationCueBase">
      <Documentation>
        Animation cue which can be used for animating Camera using keyframes.
      </Documentation>

      <SubProxy>
        <Proxy name="Manipulator"
          proxygroup="animation_manipulators"
          proxyname="CameraManipulator">
        </Proxy>
        <ExposedProperties>
          <Property name="KeyFrames" />
          <Property name="LastAddedKeyFrameIndex" />
          <Property name="Mode" />
        </ExposedProperties>
      </SubProxy>
      <!-- End of CameraAnimationCue -->
    </AnimationCueProxy>

    <TimeAnimationCueProxy name="TimeAnimationCue" class="vtkAnimationCue"
      base_proxygroup="animation" base_proxyname="KeyFrameAnimationCue">
      <Documentation>
        This is same as KeyFrameAnimationCue except that it has a new property 
        "UseAnimationTime" which when set overrides the keyframes all together
        and directly uses the animation clock time to update the animated
        property.
      </Documentation>
      
      <IntVectorProperty name="UseAnimationTime"
        command="SetUseAnimationTime"
        update_self="1"
        number_of_elements="1"
        default_values="1">
        <BooleanDomain name="bool" />
        <Documentation>
          When enabled, the animated property is directly updated with the value 
          of the Animation clock. Default value it true.
        </Documentation>
      </IntVectorProperty>
        
      <!-- end of TimeAnimationCue -->
    </TimeAnimationCueProxy>

    <!--Scene -->
    <AnimationSceneProxy name="AnimationScene" class="vtkPVAnimationScene">
      <Documentation>
        Proxy for animation scene. 
      </Documentation>

      <ProxyProperty name="ViewModules"
        command="AddViewModule"
        clean_command="RemoveAllViewModules"
        repeat_command="1"
        update_self="1">
        <ProxyGroupDomain name="groups">
          <Group name="views" />
        </ProxyGroupDomain>
        <Documentation>
          Add views to this scene. These are all the views that need to be
          updated when playing the animation.
        </Documentation>
      </ProxyProperty>

      <ProxyProperty name="Cues"
        update_self="1"
        command="AddCueProxy"
        repeat_command="1"
        remove_command="RemoveCueProxy">
        <ProxyGroupDomain name="groups">
          <Group name="animation" />
        </ProxyGroupDomain>
        <Documentation>
          Add cues to this scene.
        </Documentation>
      </ProxyProperty>
      
      <DoubleVectorProperty name="AnimationTime"
        command="SetAnimationTime"
        update_self="1"
        number_of_elements="1"
        precision="16"
        default_values="none">
        <Documentation>
          Set the current animation time.
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty name="StartTime"
        label="Start Time"
        command="SetStartTime"
        number_of_elements="1"
        information_property="StartTimeInfo"
        precision="16"
        default_values="0.0">
        <Documentation>
          Set the start time for the animation scene.
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty name="EndTime"
        label="End Time"
        command="SetEndTime"
        number_of_elements="1"
        information_property="EndTimeInfo"
        precision="16"
        default_values="1.0">
        <Documentation>
          Set the end time for the animation scene.
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty name="StartTimeInfo"
        command="GetStartTime"
        information_only="1" >
        <SimpleDoubleInformationHelper />
      </DoubleVectorProperty>

      <DoubleVectorProperty name="EndTimeInfo"
        command="GetEndTime"
        information_only="1" >
        <SimpleDoubleInformationHelper />
      </DoubleVectorProperty>

      <IntVectorProperty name="LockStartTime"
        command="SetLockStartTime"
        number_of_elements="1"
        default_values="0"
        update_self="1">
        <BooleanDomain name="bool" />
        <Documentation>
          When set the StartTime will not be changed when the data time steps
          change. 
        </Documentation>
      </IntVectorProperty>

      <IntVectorProperty name="LockEndTime"
        command="SetLockEndTime"
        number_of_elements="1"
        default_values="0"
        update_self="1">
        <BooleanDomain name="bool" />
        <Documentation>
          When set the EndTime will not be changed when the data time steps
          change. 
        </Documentation>
      </IntVectorProperty>

      <IntVectorProperty name="Caching"
        command="SetCaching"
        number_of_elements="1"
        default_values="0"
        update_self="1">
        <BooleanDomain name="bool" />
        <Documentation>
          Indicates if cache is to be used while playing the animation.
        </Documentation>
      </IntVectorProperty>

      <IntVectorProperty name="CacheLimit"
        command="SetCacheLimit"
        number_of_elements="1"
        update_self="1"
        default_values="102400">
        <IntRangeDomain name="range" />
        <Documentation>
          Cache limit used to limit cache size. 
        </Documentation>
      </IntVectorProperty>

      <ProxyProperty name="TimeKeeper"
        command="SetTimeKeeper"
        update_self="1">
        <Documentation>
          Set the time keeper. Time keeper is used to obtain the information
          about timesteps. This is required to play animation in "Snap To
          Timesteps" mode.
        </Documentation>
      </ProxyProperty>

      <SubProxy>
        <Proxy name="AnimationPlayer"
          proxygroup="animation_players" proxyname="AnimationPlayer">
        </Proxy>
        <ExposedProperties>
          <Property name="Loop" />
          <Property name="Play" />
          <Property name="Stop" />
          <Property name="GoToNext" />
          <Property name="GoToPrevious" />
          <Property name="GoToFirst" />
          <Property name="GoToLast" />
          <Property name="PlayMode" />
          <Property name="NumberOfFrames" />
          <Property name="Duration" />
          <Property name="FramesPerTimestep" />
        </ExposedProperties>
      </SubProxy>

      <!-- End of AnimationScene -->
    </AnimationSceneProxy>

  <!-- End of animation -->
  </ProxyGroup>

  <ProxyGroup name="animation_players">
    <!-- 
    Group for animation players which are used to play an animation scene
    -->
    <Proxy name="AnimationPlayerBase">
      <Documentation>
        base interface for all animation players.
      </Documentation>

      <ProxyProperty name="AnimationScene"
        command="SetAnimationScene">
        <Documentation>
          Set the animation scene to play.
        </Documentation>
      </ProxyProperty>

      <IntVectorProperty name="Loop"
        command="SetLoop"
        number_of_elements="1"
        default_values="0">
        <BooleanDomain name="bool" />
        <Documentation>
          Set to true to play the animation in a loop.
        </Documentation>
      </IntVectorProperty>

      <Property name="Play" command="Play" is_internal="0"/>
      <Property name="Stop" command="Stop" is_internal="0"/>
      <Property name="GoToNext" command="GoToNext" is_internal="0"/>
      <Property name="GoToPrevious" command="GoToPrevious" is_internal="0"/>
      <Property name="GoToFirst" command="GoToFirst" is_internal="0"/>
      <Property name="GoToLast" command="GoToLast" is_internal="0"/>

      <!-- End of AnimationPlayerBase -->
    </Proxy>

    <AnimationPlayerProxy name="SequenceAnimationPlayer" class="vtkSequenceAnimationPlayer"
      base_proxygroup="animation_players" base_proxyname="AnimationPlayerBase">
      <Documentation>
        Plays the animation in a fixed number of frames. The time is evenly
        distributed among all the frames.
      </Documentation>
     
      <IntVectorProperty  name="NumberOfFrames"
        command="SetNumberOfFrames"
        number_of_elements="1"
        default_values="10">
        <IntRangeDomain name="range" min="1" />
        <Documentation>
          Set the number of frames in which to play the animation.
        </Documentation>
      </IntVectorProperty>

      <!-- End of SequenceAnimationPlayer -->
    </AnimationPlayerProxy>

    <AnimationPlayerProxy name="RealtimeAnimationPlayer" class="vtkRealtimeAnimationPlayer"
      base_proxygroup="animation_players" base_proxyname="AnimationPlayerBase">
      <Documentation>
        Realtime animation player which plays the animation in real time i.e. in
        a fixed number of seconds.
      </Documentation>

      <IntVectorProperty name="Duration"
        command="SetDuration"
        number_of_elements="1"
        default_values="10">
        <Documentation>
          Set the duration for playing the animation in seconds.
        </Documentation>
      </IntVectorProperty>

      <!-- End of RealtimeAnimationPlayer -->
    </AnimationPlayerProxy>

    <AnimationPlayerProxy name="TimestepsAnimationPlayer" class="vtkTimestepsAnimationPlayer"
      base_proxygroup="animation_players" base_proxyname="AnimationPlayerBase">
      <Documentation>
        Player to play an animation scene through a discrete set of time values.
        FramesPerTimestep controls how many frames are generated for each time value.
      </Documentation>

      <DoubleVectorProperty name="TimeSteps"
        command="AddTimeStep"
        repeat_command="1"
        number_of_elements_per_command="1"
        clean_command="RemoveAllTimeSteps">
        <Documentation>
          The discrete timesteps to play the animation in. Irrespective of order
          of the time values in this property, the player always plays in the
          animation in sorted order of the time step values.
        </Documentation>
      </DoubleVectorProperty>
      
      <IntVectorProperty name="FramesPerTimestep"
        command="SetFramesPerTimestep"
        number_of_elements="1"
        default_values="1">
        <IntRangeDomain name="range" min="1" />
        <Documentation>
          The number of frames per timestep. 
        </Documentation>
      </IntVectorProperty>

      <!-- End of TimestepsAnimationPlayer -->
    </AnimationPlayerProxy>

    <AnimationPlayerProxy 
      name="AnimationPlayer" class="vtkCompositeAnimationPlayer"
      base_proxygroup="animation_players" base_proxyname="AnimationPlayerBase">
      <Documentation>
        Composite player that combines 3 animation players: sequence, realtime
        and timesteps.
      </Documentation>

      <IntVectorProperty
        name="PlayMode"
        command="SetActive"
        number_of_elements="1"
        default_values="0">
        <EnumerationDomain name="enum">
          <Entry value="0" text="Sequence" />
          <Entry value="1" text="Real Time" />
          <Entry value="2" text="Snap To TimeSteps" />
        </EnumerationDomain>
      </IntVectorProperty>

      <SubProxy>
        <Proxy name="SequenceAnimationPlayer" 
          proxygroup="animation_players" proxyname="SequenceAnimationPlayer">
        </Proxy>
        <ExposedProperties>
          <Property name="NumberOfFrames" />
        </ExposedProperties>
      </SubProxy>

      <SubProxy>
        <Proxy name="RealtimeAnimationPlayer" 
          proxygroup="animation_players" proxyname="RealtimeAnimationPlayer">
        </Proxy>
        <ExposedProperties>
          <Property name="Duration" />
        </ExposedProperties>
      </SubProxy>

      <SubProxy>
        <Proxy name="TimestepsAnimationPlayer"
          proxygroup="animation_players" proxyname="TimestepsAnimationPlayer">
        </Proxy>
        <ExposedProperties>
          <Property name="TimeSteps" />
          <Property name="FramesPerTimestep" />
        </ExposedProperties>
      </SubProxy>
      <!-- End of AnimationPlayer -->
    </AnimationPlayerProxy>

    <!-- End of "animation_players" -->
  </ProxyGroup>

  <ProxyGroup name="animation_manipulators">
    <SimpleAnimationCueManipulatorProxy name="SimpleAnimationCueManipulator">
    </SimpleAnimationCueManipulatorProxy>

    <LinearAnimationCueManipulatorProxy name="LinearAnimationCueManipulator">
      <DoubleVectorProperty
        name="StartValue"
        command="SetStartValue"
        number_of_elements="1"
        update_self="1"
        default_values="0.0">
      </DoubleVectorProperty>
      
      <DoubleVectorProperty
        name="EndValue"
        command="SetEndValue"
        number_of_elements="1"
        update_self="1"
        default_values="0.0">
      </DoubleVectorProperty>

    </LinearAnimationCueManipulatorProxy>

    <KeyFrameAnimationCueManipulatorProxy name="KeyFrameAnimationCueManipulator">
      <ProxyProperty
        name="KeyFrames"
        command="AddKeyFrame"
        remove_command="RemoveKeyFrame"
        repeat_command="1"
        update_self="1">
        <ProxyGroupDomain name="groups">
          <Group name="animation_keyframes" />
        </ProxyGroupDomain>
      </ProxyProperty>  
      <IntVectorProperty
        name="LastAddedKeyFrameIndex"
        command="GetLastAddedKeyFrameIndex"
        update_self="1"
        information_only="1">
        <SimpleIntInformationHelper />
      </IntVectorProperty>

      <SubProxy>
        <Proxy name="CueStarter"
          proxygroup="animation_keyframes"
          proxyname="BooleanKeyFrame">
        </Proxy>
      </SubProxy>

    </KeyFrameAnimationCueManipulatorProxy>

    <CameraManipulatorProxy name="CameraManipulator"
      base_proxygroup="animation_manipulators" 
      base_proxyname="KeyFrameAnimationCueManipulator">

      <IntVectorProperty name="Mode"
        command="SetMode"
        update_self="1"
        number_of_elements="1"
        default_values="0">
        <EnumerationDomain name="enum">
          <Entry text="Interpolate Camera" value="0" />
          <Entry text="Path-based" value="1" />
        </EnumerationDomain>
      </IntVectorProperty>
    </CameraManipulatorProxy>

  </ProxyGroup>

  <ProxyGroup name="animation_keyframes">
    <KeyFrameProxy name="KeyFrame">
      <DoubleVectorProperty
        name="KeyTime"
        command="SetKeyTime"
        number_of_elements="1"
        update_self="1"
        default_values="0.0">
        <DoubleRangeDomain name="range" min="0.0" max="1.0" />
      </DoubleVectorProperty>
    
      <DoubleVectorProperty
        name="KeyValues"
        command="SetKeyValue"
        clean_command="RemoveAllKeyValues"
        number_of_elements="1"
        update_self="1"
        default_values="0.0"
        repeat_command="1"
        number_of_elements_per_command="1"
        use_index="1">
      </DoubleVectorProperty>
    </KeyFrameProxy>

    <CompositeKeyFrameProxy name="CompositeKeyFrame"
      base_proxygroup="animation_keyframes" base_proxyname="KeyFrame">

      <IntVectorProperty
        name="Type"
        command="SetType"
        label="Interpolation"
        number_of_elements="1"
        default_values="2"
        update_self="1">
        <EnumerationDomain name="enum">
          <Entry value="1" text="Boolean" />
          <Entry value="2" text="Ramp" />
          <Entry value="3" text="Exponential" />
          <Entry value="4" text="Sinusoid" />
        </EnumerationDomain>
      </IntVectorProperty>

      <SubProxy>
        <Proxy name="Boolean" 
               proxygroup="animation_keyframes"
               proxyname="BooleanKeyFrame">
        </Proxy>
      </SubProxy>

      <SubProxy>
        <Proxy name="Ramp" 
               proxygroup="animation_keyframes"
               proxyname="RampKeyFrame">
        </Proxy>
      </SubProxy>

      <SubProxy>
        <Proxy name="Exponential" 
               proxygroup="animation_keyframes"
               proxyname="ExponentialKeyFrame">
        </Proxy>
        <ExposedProperties>
          <Property name="Base" />
          <Property name="StartPower" />
          <Property name="EndPower" />
        </ExposedProperties>
      </SubProxy>

      <SubProxy>
        <Proxy name="Sinusoid" 
               proxygroup="animation_keyframes"
               proxyname="SinusoidKeyFrame">
        </Proxy>
        <ExposedProperties>
          <Property name="Phase"/>
          <Property name="Frequency" />
          <Property name="Offset" />
        </ExposedProperties>
      </SubProxy>

    <!-- End of CompositeKeyFrame -->
    </CompositeKeyFrameProxy>
      
    <BooleanKeyFrameProxy name="BooleanKeyFrame"
      base_proxygroup="animation_keyframes" base_proxyname="KeyFrame">
    </BooleanKeyFrameProxy>

    
    <RampKeyFrameProxy name="RampKeyFrame"
      base_proxygroup="animation_keyframes" base_proxyname="KeyFrame">
    </RampKeyFrameProxy>

    <ExponentialKeyFrameProxy name="ExponentialKeyFrame" 
      base_proxygroup="animation_keyframes" base_proxyname="KeyFrame">
      <DoubleVectorProperty
        name="Base"
        command="SetBase"
        number_of_elements="1"
        update_self="1"
        default_values="2.0">
      </DoubleVectorProperty>

      <DoubleVectorProperty
        name="StartPower"
        command="SetStartPower"
        number_of_elements="1"
        update_self="1"
        default_values="0.0">
      </DoubleVectorProperty>

      <DoubleVectorProperty
        name="EndPower"
        command="SetEndPower"
        number_of_elements="1"
        update_self="1"
        default_values="1.0">
      </DoubleVectorProperty>

    </ExponentialKeyFrameProxy>

    <SinusoidKeyFrameProxy name="SinusoidKeyFrame"
      base_proxygroup="animation_keyframes" base_proxyname="KeyFrame">
      <DoubleVectorProperty
        name="Phase"
        command="SetPhase"
        number_of_elements="1"
        update_self="1"
        default_values="0.0">
      </DoubleVectorProperty>

      <DoubleVectorProperty
        name="Frequency"
        command="SetFrequency"
        number_of_elements="1"
        update_self="1"
        default_values="1.0">
      </DoubleVectorProperty>

      <DoubleVectorProperty
        name="Offset"
        command="SetOffset"
        number_of_elements="1"
        update_self="1"
        default_values="0.0">
      </DoubleVectorProperty>

    </SinusoidKeyFrameProxy>

    <CameraKeyFrameProxy name="CameraKeyFrame"
      class="vtkCameraInterpolator2"
      base_proxygroup="animation_keyframes" base_proxyname="KeyFrame">

      <DoubleVectorProperty name="Position"
        command="SetPosition"
        number_of_elements="3"
        update_self="1"
        default_values="0.0 0.0 0.0">
      </DoubleVectorProperty>

      <DoubleVectorProperty name="FocalPoint"
        command="SetFocalPoint"
        number_of_elements="3"
        update_self="1"
        default_values="0.0 0.0 0.0">
      </DoubleVectorProperty>

      <DoubleVectorProperty name="ViewUp"
        command="SetViewUp"
        number_of_elements="3"
        update_self="1"
        default_values="0.0 1.0 0.0">
      </DoubleVectorProperty>

      <DoubleVectorProperty name="ViewAngle"
        command="SetViewAngle"
        number_of_elements="1"
        update_self="1"
        default_values="30">
      </DoubleVectorProperty> 

      <DoubleVectorProperty name="ParallelScale"
        command="SetParallelScale"
        number_of_elements="1"
        update_self="1"
        default_values="1.0">
      </DoubleVectorProperty>

      <!-- These are properties for the new style camera interpolation
           using path
      -->
      <DoubleVectorProperty name="PositionPathPoints"
        command="AddPositionPathPoint"
        clean_command="ClearPositionPath"
        number_of_elements_per_command="3"
        repeat_command="1"
        number_of_elements="9"
        default_values="5 0 0 5 5 0 5 0 0" >
      </DoubleVectorProperty>

      <DoubleVectorProperty name="FocalPathPoints"
        command="AddFocalPathPoint"
        clean_command="ClearFocalPath"
        number_of_elements_per_command="3"
        repeat_command="1"
        number_of_elements="6"
        default_values="0 0 0 1 0 0" >
      </DoubleVectorProperty>

      <IntVectorProperty name="PositionMode"
        command="SetPositionMode"
        number_of_elements="1"
        default_values="0">
        <EnumerationDomain name="enum">
          <Entry text="Path" value="0" />
          <Entry text="FixedDirection" value="1" />
          <Entry text="LookAhead" value="2" />
          <Entry text="Orthogonal" value="3" />
        </EnumerationDomain>
      </IntVectorProperty>

      <IntVectorProperty name="FocalPointMode"
        command="SetFocalPointMode"
        number_of_elements="1"
        default_values="0">
        <EnumerationDomain name="enum">
          <Entry text="Path" value="0" />
          <Entry text="FixedDirection" value="1" />
          <Entry text="LookAhead" value="2" />
          <Entry text="Orthogonal" value="3" />
        </EnumerationDomain>
      </IntVectorProperty>

      <IntVectorProperty name="ClosedFocalPath"
        command="SetClosedFocalPath"
        number_of_elements="1"
        default_values="0">
        <BooleanDomain name="bool" />
      </IntVectorProperty>

      <IntVectorProperty name="ClosedPositionPath"
        command="SetClosedPositionPath"
        number_of_elements="1"
        default_values="0">
        <BooleanDomain name="bool" />
      </IntVectorProperty>
    </CameraKeyFrameProxy>

  </ProxyGroup>

  <ProxyGroup name="piecewise_functions">
    <Proxy name="PiecewiseFunction"  class="vtkPiecewiseFunction"
           processes="client|renderserver|dataserver" >
      <DoubleVectorProperty
        name="Points"
        command="AddPoint"
        number_of_elements_per_command="2"
        repeat_command="1"
        clean_command="RemoveAllPoints"
        animateable="0"
        number_of_elements="4"
        default_values="0.0 0.0 1.0 1.0">
      </DoubleVectorProperty>
    </Proxy>
  </ProxyGroup>

  <ProxyGroup name="transfer_functions">
    <Proxy name="ColorTransferFunction" class="vtkColorTransferFunction"
      processes="client|renderserver|dataserver" >
      <DoubleVectorProperty
        name="RGBPoints"
        command="AddRGBPoint"
        repeat_command="1"
        number_of_elements_per_command="4"
        clean_command="RemoveAllPoints"
        animateable="0">
      </DoubleVectorProperty>

      <IntVectorProperty
        name="ColorSpace"
        command="SetColorSpace"
        number_of_elements="1"
        default_values="0"
        animateable="0">
        <EnumerationDomain name="enum">
          <Entry value="0" text="RGB" />
          <Entry value="1" text="HSV" />
          <Entry value="2" text="Lab" />
          <Entry value="3" text="Diverging" />
        </EnumerationDomain>
      </IntVectorProperty>

      <IntVectorProperty
        name="HSVWrap"
        command="SetHSVWrap"
        number_of_elements="1"
        default_values="0"
        animateable="0">
        <BooleanDomain name="bool" />
      </IntVectorProperty>
    </Proxy>
  </ProxyGroup>

  <ProxyGroup name="annotations">
    <Proxy name="CubeAxesActor2D" class="vtkCubeAxesActor2D">
      <IntVectorProperty name="FlyMode"
        command="SetFlyMode"
        number_of_elements="1"
        default_values="1">
        <EnumerationDomain name="enum">
          <Entry value="0" text="FlyToOuterEdges" />
          <Entry value="1" text="FlyToClosetTriad" />
        </EnumerationDomain>
      </IntVectorProperty>
      <IntVectorProperty
        name="Inertia"
        command="SetInertia"
        number_of_elements="1"
        default_values="1">
        <IntRangeDomain name="range" />
      </IntVectorProperty>
      <ProxyProperty
        name="Camera"
        command="SetCamera">
        <ProxyGroupDomain name="groups">
          <Group name="camera"/>
        </ProxyGroupDomain>
      </ProxyProperty>
      <IntVectorProperty
        name="Visibility"
        command="SetVisibility"
        number_of_elements="1"
        default_values="1">
        <BooleanDomain name="bool" />
      </IntVectorProperty>
    </Proxy>

    <ScalarBarActorProxy name="ScalarBarActor" class="vtkPVScalarBarActor">
      <ProxyProperty
        name="LookupTable"
        command="SetLookupTable"
        number_of_elements="1">
        <ProxyGroupDomain name="groups">
          <Group name="lookup_tables"/>
        </ProxyGroupDomain>
      </ProxyProperty>
      
      <IntVectorProperty
        name="Visibility"
        command="SetVisibility"
        number_of_elements="1"
        default_values="1"
        animateable="0">
        <BooleanDomain name="bool"/>
      </IntVectorProperty>

      <DoubleVectorProperty
        name="Position"
        command="SetPosition"
        number_of_elements="2"
        update_self="1"
        default_values="0.87 0.25"
        animateable="0">
        <DoubleRangeDomain name="range" min="0 0" max="1 1" />
      </DoubleVectorProperty>
      
      <DoubleVectorProperty
        name="Position2"
        command="SetPosition2"
        number_of_elements="2"
        update_self="1"
        default_values="0.13 0.5"
        animateable="0">
        <DoubleRangeDomain name="range" min="0 0" max="1 1" />
      </DoubleVectorProperty>

      <DoubleVectorProperty name="AspectRatio"
                            command="SetAspectRatio"
                            number_of_elements="1"
                            default_values="20">
        <DoubleRangeDomain name="range" min="0.001" />
      </DoubleVectorProperty>
      
      <StringVectorProperty
        name="Title"
        command="SetTitle"
        number_of_elements="1"
        default_values=""
        animateable="0">
      </StringVectorProperty>
      
      <StringVectorProperty
        name="ComponentTitle"
        command="SetComponentTitle"
        number_of_elements="1"
        default_values=""
        animateable="0">
      </StringVectorProperty>

      <IntVectorProperty name="AutomaticLabelFormat"
                         command="SetAutomaticLabelFormat"
                         number_of_elements="1"
                         default_values="1">
        <BooleanDomain name="bool" />
      </IntVectorProperty>
      
      <StringVectorProperty
        name="LabelFormat"
        command="SetLabelFormat"
        number_of_elements="1"
        default_values="%-#6.3g"
        animateable="0">
      </StringVectorProperty>

      <IntVectorProperty
        name="NumberOfLabels"
        command="SetNumberOfLabels"
        number_of_elements="1"
        default_values="5">
       <IntRangeDomain name="range" min="2"/>
      </IntVectorProperty>

      <!--label text property -->
      <SubProxy>
        <Proxy name="LabelTextProperty"
          proxygroup="properties" proxyname="TextProperty">
        </Proxy>
        <ExposedProperties>
          <Property name="Color"      exposed_name="LabelColor"     />
          <Property name="Opacity"    exposed_name="LabelOpacity"   />
          <Property name="FontFamily" exposed_name="LabelFontFamily"/>
          <Property name="Bold"       exposed_name="LabelBold"      />
          <Property name="Italic"     exposed_name="LabelItalic"    />
          <Property name="Shadow"     exposed_name="LabelShadow"    />
          <Property name="FontSize"   exposed_name="LabelFontSize"  />
        </ExposedProperties>
      </SubProxy>

      <!--title text property -->
      <SubProxy>
        <Proxy name="TitleTextProperty" 
          proxygroup="properties" proxyname="TextProperty">
        </Proxy>
        <ExposedProperties>
          <Property name="Color"      exposed_name="TitleColor"     />
          <Property name="Opacity"    exposed_name="TitleOpacity"   />
          <Property name="FontFamily" exposed_name="TitleFontFamily"/>
          <Property name="Bold"       exposed_name="TitleBold"      />
          <Property name="Italic"     exposed_name="TitleItalic"    />
          <Property name="Shadow"     exposed_name="TitleShadow"    />
          <Property name="FontSize"   exposed_name="TitleFontSize"  />
        </ExposedProperties>
      </SubProxy>
    </ScalarBarActorProxy>
    <!-- End of ProxyGroup annotations -->
  </ProxyGroup>

  <ProxyGroup name="file_listing">
    <ServerFileListingProxy name="ServerFileListing" 
      class="vtkPVServerFileListing">
      <IntVectorProperty
        name="ActiveFileIsDirectory"
        command="GetActiveFileIsDirectory"
        number_of_elements="1"
        information_only="1"
        update_self="1"
        default_values="0">
        <SimpleIntInformationHelper />
      </IntVectorProperty>
      <IntVectorProperty
        name="ActiveFileIsReadable"
        command="GetActiveFileIsReadable"
        number_of_elements="1"
        information_only="1"
        update_self="1"
        default_values="0">
        <SimpleIntInformationHelper />
      </IntVectorProperty>

      <StringVectorProperty
        name="ActiveFileName"
        command="SetActiveFileName"
        number_of_elements="1"
        update_self="1">
      </StringVectorProperty>
     
      <StringVectorProperty
        name="CurrentWorkingDirectory"
        command="GetCurrentWorkingDirectory"
        number_of_elements="1"
        information_only="1">
        <SimpleStringInformationHelper />
      </StringVectorProperty>
    </ServerFileListingProxy>
  </ProxyGroup>

  <ProxyGroup name="locators">
    <Proxy name="PKdTree" class="vtkPKdTree">
    <!--
      <ProxyProperty name="DataSets"
                     command="AddDataSet"
                     remove_command="RemoveDataSet"/>
                     -->
      <IntVectorProperty name="MinCells" command="SetMinCells"
                         number_of_elements="1"
                         default_values="0"/>
      <Property
        name="OmitZPartitioning"
        command="OmitZPartitioning"/>
      <Property
        name="BuildLocator"
        command="BuildLocator"/>
      <ProxyProperty
        name="BuildLocatorFromPoints"
        command="BuildLocatorFromPoints"/>
    </Proxy>
  </ProxyGroup>

  <ProxyGroup name="selection_helpers">

    <Proxy name="Selection" class="vtkSelection">
    </Proxy>

    <SourceProxy name="AnnotationLink" class="vtkAnnotationLink">

      <InputProperty name="Input" command="SetInputConnection" port_index="0">
        <ProxyGroupDomain name="groups">
          <Group name="sources"/>
          <Group name="filters"/>
        </ProxyGroupDomain>
        <DataTypeDomain name="input_type">
          <DataType value="vtkAnnotationLayers"/>
          <DataType value="vtkSelection"/>
        </DataTypeDomain>
      </InputProperty>

      <InputProperty name="DomainMaps" command="SetInputConnection" port_index="1">
        <ProxyGroupDomain name="groups">
          <Group name="sources"/>
          <Group name="filters"/>
        </ProxyGroupDomain>
        <DataTypeDomain name="input_type">
          <DataType value="vtkTable"/>
        </DataTypeDomain>
      </InputProperty>

      <ProxyProperty 
        name="Annotations" command="SetAnnotations">
      </ProxyProperty>

      <OutputPort name="Annotations" index="0"/>
      <OutputPort name="Domain Maps" index="1"/>
      <OutputPort name="Selection" index="2"/>

    </SourceProxy>

  </ProxyGroup>

  <ProxyGroup name="connection_cleaners">
    <ConnectionCleanerProxy name="AnimationPlayer" class="vtkSMServerSideAnimationPlayer">

      <ProxyProperty name="Writer"
        command="SetWriter">
      </ProxyProperty>
    <!-- End of AnimationPlayer -->
    </ConnectionCleanerProxy>
  </ProxyGroup>

  <ProxyGroup name="extended_sources">
    <SourceProxy name="LineSource" class="vtkLineSource" label="Line Source">
      <DoubleVectorProperty
         name="Point1"
         command="SetPoint1"
         number_of_elements="3"
         animateable="1"
         default_values="0.0 0.0 0.0" >
         <BoundsDomain name="range" mode="normal" default_mode="min" >
           <RequiredProperties>
             <Property name="DummyInput" function="Input" />
           </RequiredProperties>
         </BoundsDomain>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="Point2"
         command="SetPoint2"
         number_of_elements="3"
         animateable="1"
         default_values="0.0 0.0 0.0" >
         <BoundsDomain name="range" mode="normal" default_mode="max" >
           <RequiredProperties>
             <Property name="DummyInput" function="Input" />
           </RequiredProperties>
         </BoundsDomain>
      </DoubleVectorProperty>

      <IntVectorProperty
         name="Resolution"
         command="SetResolution"
         number_of_elements="1"
         default_values="6" >
        <IntRangeDomain name="range" min="1" />
      </IntVectorProperty>

      <InputProperty name="DummyInput" is_internal="1">
        <!-- Used when this source is added to a proxy list domain. -->
      </InputProperty>

      <Hints>
        <PropertyGroup type="LineSource" >
          <Property function="Point1WorldPosition" name="Point1" />
          <Property function="Point2WorldPosition" name="Point2" />
          <Property function="Resolution"          name="Resolution" />
        </PropertyGroup>

        <ProxyList>
          <Link name="DummyInput" with_property="Input" />
        </ProxyList>
      </Hints>
    <!-- End LineSource -->
    </SourceProxy>

    <SourceProxy name="HighResLineSource" class="vtkLineSource" 
                 label="High Resolution Line Source">
      <DoubleVectorProperty
         name="Point1"
         command="SetPoint1"
         number_of_elements="3"
         animateable="1"
         default_values="0.0 0.0 0.0" >
         <BoundsDomain name="range" mode="normal" default_mode="min" >
           <RequiredProperties>
             <Property name="DummyInput" function="Input" />
           </RequiredProperties>
         </BoundsDomain>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="Point2"
         command="SetPoint2"
         number_of_elements="3"
         animateable="1"
         default_values="0.0 0.0 0.0" >
         <BoundsDomain name="range" mode="normal" default_mode="max" >
           <RequiredProperties>
             <Property name="DummyInput" function="Input" />
           </RequiredProperties>
         </BoundsDomain>
      </DoubleVectorProperty>

      <IntVectorProperty
         name="Resolution"
         command="SetResolution"
         number_of_elements="1"
         default_values="100" >
        <IntRangeDomain name="range" min="1" />
      </IntVectorProperty>

      <InputProperty name="DummyInput" is_internal="1">
        <!-- Used when this source is added to a proxy list domain. -->
      </InputProperty>

      <Hints>
        <PropertyGroup type="LineSource" >
          <Property function="Point1WorldPosition" name="Point1" />
          <Property function="Point2WorldPosition" name="Point2" />
          <Property function="Resolution"          name="Resolution" />
        </PropertyGroup>

        <ProxyList>
          <Link name="DummyInput" with_property="Input" />
        </ProxyList>
      </Hints>
    <!-- End HighResLineSource -->
    </SourceProxy>

    <SourceProxy name="PointSource" class="vtkPointSource" label="Point Source">
       <DoubleVectorProperty
          name="Center"
          command="SetCenter"
          number_of_elements="3"
          animateable="1"
          default_values="0.0 0.0 0.0" >
          <BoundsDomain name="range" mode="normal" default_mode="mid" >
            <RequiredProperties>
              <Property name="DummyInput" function="Input" />
            </RequiredProperties>
          </BoundsDomain>
       </DoubleVectorProperty>

       <IntVectorProperty
          name="NumberOfPoints"
          command="SetNumberOfPoints"
          number_of_elements="1"
          animateable="1"
          default_values="1" >
          <IntRangeDomain name="range" min="1"/>
       </IntVectorProperty>

       <DoubleVectorProperty
          name="Radius"
          command="SetRadius"
          number_of_elements="1"
          animateable="1"
          default_values="1.0" >
          <BoundsDomain name="range" mode="scaled_extent" scale_factor="0.1">
            <RequiredProperties>
              <Property name="DummyInput" function="Input" />
            </RequiredProperties>
          </BoundsDomain>
       </DoubleVectorProperty>

       <InputProperty name="DummyInput" is_internal="1">
         <!-- Used when this source is added to a proxy list domain. -->
       </InputProperty>

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

         <ProxyList>
           <Link name="DummyInput" with_property="Input" />
         </ProxyList>
       </Hints>
    <!-- End PointSource -->
    </SourceProxy>

    <SourceProxy name="FixedRadiusPointSource" class="vtkPointSource"
                 label="Fixed Radius Point Source">
       <DoubleVectorProperty
          name="Center"
          command="SetCenter"
          number_of_elements="3"
          animateable="1"
          default_values="0.0 0.0 0.0" >
          <BoundsDomain name="range" mode="normal" default_mode="mid" >
            <RequiredProperties>
              <Property name="DummyInput" function="Input" />
            </RequiredProperties>
          </BoundsDomain>
       </DoubleVectorProperty>

       <IntVectorProperty
          name="NumberOfPoints"
          command="SetNumberOfPoints"
          number_of_elements="1"
          animateable="1"
          default_values="1" >
          <IntRangeDomain name="range" min="1"/>
       </IntVectorProperty>

       <DoubleVectorProperty
          name="Radius"
          command="SetRadius"
          number_of_elements="1"
          animateable="1"
          default_values="0.0" >
          <DoubleRangeDomain name="range" min="0.0"/>
       </DoubleVectorProperty>

       <InputProperty name="DummyInput" is_internal="1">
         <!-- Used when this source is added to a proxy list domain. -->
       </InputProperty>

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

         <ProxyList>
           <Link name="DummyInput" with_property="Input" />
         </ProxyList>
       </Hints>
    <!-- End PointSource -->
    </SourceProxy>

    <TransformProxy name="Transform2" class="vtkTransform" >
      <!--Transform proxy with unconventional interface, used by BoxWidget -->
      <DoubleVectorProperty
        name="Position"
        command="SetPosition"
        number_of_elements="3"
        update_self="1"
        label="Translate"
        information_property="PositionInfo"
        default_values="0.0 0.0 0.0" >
        <DoubleRangeDomain name="range" />
      </DoubleVectorProperty>

      <DoubleVectorProperty name="PositionInfo"
        command="GetPosition"
        information_only="1"
        number_of_elements="3"
        default_values="0.0 0.0 0.0">
        <SimpleDoubleInformationHelper />
      </DoubleVectorProperty>

      <DoubleVectorProperty
        name="Rotation"
        command="SetRotation"
        number_of_elements="3"
        update_self="1"
        information_property="RotationInfo"
        label="Rotate"
        default_values="0.0 0.0 0.0" >
        <DoubleRangeDomain name="range" />
      </DoubleVectorProperty>

      <DoubleVectorProperty name="RotationInfo"
        command="GetOrientation"
        information_only="1"
        number_of_elements="3"
        default_values="0.0 0.0 0.0">
        <SimpleDoubleInformationHelper />
      </DoubleVectorProperty>

      <DoubleVectorProperty
        name="Scale"
        command="SetScale"
        number_of_elements="3"
        update_self="1"
        label="Scale"
        information_property="ScaleInfo"
        default_values="1.0 1.0 1.0" >
        <DoubleRangeDomain name="range" />
      </DoubleVectorProperty>

      <DoubleVectorProperty name="ScaleInfo"
        command="GetScale"
        information_only="1"
        number_of_elements="3"
        default_values="1.0 1.0 1.0">
        <SimpleDoubleInformationHelper />
      </DoubleVectorProperty>
    </TransformProxy>

    <TransformProxy name="Transform3" class="vtkTransform" label="Transform">
      <DoubleVectorProperty
        name="Position"
        command="SetPosition"
        number_of_elements="3"
        update_self="1"
        label="Translate"
        information_property="PositionInfo"
        default_values="0.0 0.0 0.0" >
        <DoubleRangeDomain name="range" />
      </DoubleVectorProperty>

      <DoubleVectorProperty name="PositionInfo"
        command="GetPosition"
        information_only="1"
        number_of_elements="3"
        default_values="0.0 0.0 0.0">
        <SimpleDoubleInformationHelper />
      </DoubleVectorProperty>

      <DoubleVectorProperty
        name="Rotation"
        command="SetRotation"
        number_of_elements="3"
        update_self="1"
        information_property="RotationInfo"
        label="Rotate"
        default_values="0.0 0.0 0.0" >
        <DoubleRangeDomain name="range" />
      </DoubleVectorProperty>

      <DoubleVectorProperty name="RotationInfo"
        command="GetOrientation"
        information_only="1"
        number_of_elements="3"
        default_values="0.0 0.0 0.0">
        <SimpleDoubleInformationHelper />
      </DoubleVectorProperty>

      <DoubleVectorProperty
        name="Scale"
        command="SetScale"
        number_of_elements="3"
        update_self="1"
        label="Scale"
        information_property="ScaleInfo"
        default_values="1.0 1.0 1.0" >
        <DoubleRangeDomain name="range" />
      </DoubleVectorProperty>

      <DoubleVectorProperty name="ScaleInfo"
        command="GetScale"
        information_only="1"
        number_of_elements="3"
        default_values="1.0 1.0 1.0">
        <SimpleDoubleInformationHelper />
      </DoubleVectorProperty>

       <Hints>
        <PropertyGroup type="Box">
          <Property name="Position" function="Position" />
          <Property name="Rotation" function="Rotation" />
          <Property name="Scale" function="Scale" />
        </PropertyGroup>
<!--
         <ProxyList>
           <Link name="DummyInput" with_property="Input" />
         </ProxyList>
         -->
       </Hints>
    </TransformProxy>
  </ProxyGroup>

  <ProxyGroup name="misc">
    <Proxy name="FileInformationHelper" class="vtkPVFileInformationHelper">

      <StringVectorProperty name="Path" command="SetPath" />

      <IntVectorProperty 
        name="DirectoryListing" 
        command="SetDirectoryListing"
        number_of_elements="1"
        default_values="0">
        <BooleanDomain name="bool"/>
      </IntVectorProperty>

      <IntVectorProperty
        name="SpecialDirectories"
        command="SetSpecialDirectories"
        number_of_elements="1"
        default_values="0">
        <BooleanDomain name="bool"/>
      </IntVectorProperty>

      <StringVectorProperty
        name="PathSeparator"
        command="GetPathSeparator"
        information_only="1"
        number_of_elements="1" >
        <SimpleStringInformationHelper />
      </StringVectorProperty>

      <StringVectorProperty 
        name="WorkingDirectory"
        command="SetWorkingDirectory"
        number_of_elements="1"
        default_values="">
        <Documentation>
          Override the working directory used to resolve relative paths.
        </Documentation>
      </StringVectorProperty>

    <!-- End of FileInformationHelper -->
    </Proxy>
    
    <Proxy name="EnvironmentInformationHelper" class="vtkPVEnvironmentInformationHelper">
      <StringVectorProperty name="Variable" command="SetVariable" />
    <!-- End of FileInformationHelper -->
    </Proxy>

    <TimeKeeperProxy name="TimeKeeper" class="">
      <Documentation>
        TimeKeeper is used to keep the pipeline time for the application.
        All views added to the timekeeper show the same time as that on the time
        keeper.
      </Documentation>

      <DoubleVectorProperty
        name="Time"
        command="SetTime"
        update_self="1"
        immediate_update="1" 
        number_of_elements="1"
        precision="16"
        default_values="0">
        <DoubleRangeDomain name="range" />
      </DoubleVectorProperty>

      <DoubleVectorProperty
        name="TimestepValues"
        information_only="1" >
        <Documentation>
          The timesteps currently available. This property does not have any
          information helper since vtkSMTimeKeeperProxy keeps this updated
          without any need to call UpdatePropertyInformation().
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
        name="TimeRange"
        number_of_elements="2"
        default_values="0.0 0.0"
        precision="16"
        information_only="1" >
        <Documentation>
          This is the time range. It's possible that there are no TimestepValues
          but there is a valid TimeRange since some sources may provide
          continuous time.
        </Documentation>
      </DoubleVectorProperty>

      <ProxyProperty
        name="Views"
        command="AddView"
        remove_command="RemoveView"
        update_self="1"
        repeatable="1">
        <Documentation>
          Views with their view time linked with this time keeper.
        </Documentation>
      </ProxyProperty>

      <ProxyProperty
        name="TimeSources"
        command="AddTimeSource"
        remove_command="RemoveTimeSource"
        update_self="1"
        repeatable="1">
        <Documentation>
          List of proxies that provide time. TimestepValues property has
          a set of timesteps provided by all the sources added to this property
          alone.
        </Documentation>
      </ProxyProperty>

      <!-- End of TimeKeeper -->
    </TimeKeeperProxy>
    
    <PluginProxy name="PluginLoader" class="vtkPVPluginLoader">
      <StringVectorProperty
        name="FileName"
        command="SetFileName"
        number_of_elements="1">
        <FileListDomain name="files"/>
      </StringVectorProperty>
      
      <IntVectorProperty
        name="Loaded"
        command="GetLoaded"
        number_of_elements="1"
        information_only="1"
        default_values="0">
        <SimpleIntInformationHelper />
      </IntVectorProperty>
      
      <StringVectorProperty
        name="Error"
        command="GetError"
        number_of_elements="1"
        information_only="1">
        <SimpleStringInformationHelper />
      </StringVectorProperty>
      
      <StringVectorProperty
        name="SearchPaths"
        command="GetSearchPaths"
        number_of_elements="1"
        information_only="1">
        <SimpleStringInformationHelper />
      </StringVectorProperty>
      
      <StringVectorProperty
        name="ServerManagerXML"
        command="GetServerManagerXML"
        information_only="1">
        <StringArrayHelper />
      </StringVectorProperty>

      <StringVectorProperty name="PythonModuleNames"
                            command="GetPythonModuleNames"
                            information_only="1">
        <StringArrayHelper />
      </StringVectorProperty>

      <StringVectorProperty name="PythonModuleSources"
                            command="GetPythonModuleSources"
                            information_only="1">
        <StringArrayHelper />
      </StringVectorProperty>

      <IntVectorProperty name="PythonPackageFlags"
                         command="GetPythonPackageFlags"
                         information_only="1">
        <IntArrayInformationHelper />
      </IntVectorProperty>

      <!-- End of PluginLoader -->
    </PluginProxy>
    
    <Proxy name="KdTreeManager" class="vtkKdTreeManager">
      <ProxyProperty  
        name="KdTree"
        command="SetKdTree">
        <Documentation>
          Set the KdTree managed by this manager.
        </Documentation>
      </ProxyProperty>

      <ProxyProperty
        name="Producers"
        command="AddProducer"
        remove_command="RemoveProducer" >
        <Documentation>
          Producers/algorithms producing data that needs to be distributed.
        </Documentation>
      </ProxyProperty>
      
      <ProxyProperty
        name="StructuredProducer"
        command="SetStructuredProducer">
        <Documentation>
          The optional producer whose partitioning is used to build the
          KdTree.
        </Documentation>
      </ProxyProperty>

      <Property
        name="Update"
        command="Update">
      </Property>

      <!-- End of KdTreeManager -->
    </Proxy>

    <RepresentationAnimationHelperProxy name="RepresentationAnimationHelper">
      <Documentation>
        Used to help in animation representation properties.
      </Documentation>
      <ProxyProperty name="Source"
        update_self="1"
        command="SetSourceProxy" />

      <IntVectorProperty name="Visibility"
        command="SetVisibility"
        update_self="1"
        number_of_elements="1"
        is_internal="1"
        default_values="none">
        <BooleanDomain name="bool" />
      </IntVectorProperty>

      <DoubleVectorProperty name="Opacity"
        command="SetOpacity"
        update_self="1"
        number_of_elements="1"
        is_internal="1"
        default_values="none">
        <DoubleRangeDomain name="range" min="0.0" max="1.0" />
      </DoubleVectorProperty>

      <!-- End of RepresentationAnimationHelper -->
    </RepresentationAnimationHelperProxy>

    <Proxy name="GlobalProperties" >
      <DoubleVectorProperty name="ForegroundColor"
        label="Foreground"
        number_of_elements="3"
        default_values="1.0 1.0 1.0">
        <DoubleRangeDomain name="range" min="0 0 0" max="1 1 1"/>
        <Documentation>
          Foreground color.
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty name="BackgroundColor"
        label="Background"
        number_of_elements="3"
        default_values="0.32 0.34 0.43">
        <DoubleRangeDomain name="range" min="0 0 0" max="1 1 1"/>
        <Documentation>
          Background color.
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty name="SurfaceColor"
        label="Surface"
        number_of_elements="3"
        default_values="1.0 1.0 1.0">
        <DoubleRangeDomain name="range" min="0 0 0" max="1 1 1"/>
        <Documentation>
          Surface color.
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty name="TextAnnotationColor"
        label="Text"
        number_of_elements="3"
        default_values="1.0 1.0 1.0">
        <DoubleRangeDomain name="range" min="0 0 0" max="1 1 1"/>
        <Documentation>
          Color used for text annotations.
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty name="SelectionColor"
        label="Selection"
        number_of_elements="3"
        default_values="1.0 0.0 1.0">
        <DoubleRangeDomain name="range" min="0 0 0" max="1 1 1"/>
        <Documentation>
          Color used for showing selected cells/points.
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty name="EdgeColor"
        label="Edges"
        number_of_elements="3"
        default_values="0.0 0.0 0.5">
        <DoubleRangeDomain name="range" min="0 0 0" max="1 1 1"/>
        <Documentation>
          Color used for showing selected cells/points.
        </Documentation>
      </DoubleVectorProperty>

    <!-- End of GlobalProperties -->
    </Proxy>

    <Proxy name="GlobalMapperProperties"
           class="vtkPolyDataMapper"
           processes="client|renderserver">
      <Documentation>
        This proxy is useful for changing gloabal mapper settings such as
        the coincident topology resolution setting on all rendering proceses.
      </Documentation>
      <IntVectorProperty name="Mode"
        command="SetResolveCoincidentTopology"
        number_of_elements="1"
        default_values="none">
        <EnumerationDomain name="enum">
          <Entry text="Off" value="0"/>
          <Entry text="PolygonOffset" value="1"/>
          <Entry text="ShiftZBuffer" value="2"/>
        </EnumerationDomain>
      </IntVectorProperty>

      <DoubleVectorProperty name="PolygonOffsetParameters"
        command="SetResolveCoincidentTopologyPolygonOffsetParameters"
        number_of_elements="2"
        default_values="none">
        <Documentation>
          Used to set the polygon offset scale factor and units. Used when
          ResolveCoincidentTopology is set to PolygonOffset. These are global
          variables.
        </Documentation>
      </DoubleVectorProperty>

      <IntVectorProperty name="PolygonOffsetFaces"
        command="SetResolveCoincidentTopologyPolygonOffsetFaces"
        number_of_elements="1"
        default_values="none">
        <BooleanDomain name="bool" />
        <Documentation>
          Used when ResolveCoincidentTopology is set to PolygonOffset. The
          polygon offset can be applied either to the solid polygonal faces or
          the lines/vertices. When set (default), the offset is applied to the
          faces otherwise it is applied to lines and vertices. This is a global
          variable.
        </Documentation>
      </IntVectorProperty>

      <DoubleVectorProperty name="ZShift"
        command="SetResolveCoincidentTopologyZShift"
        number_of_elements="1"
        default_values="none">
        <Documentation>
          Used to set the z-shift if ResolveCoincidentTopology is set to
          ShiftZBuffer. This is a global variable.
        </Documentation>
      </DoubleVectorProperty>

      <IntVectorProperty name="GlobalImmediateModeRendering"
        command="SetGlobalImmediateModeRendering"
        number_of_elements="1"
        default_values="none">
        <BooleanDomain name="bool" />
        <Documentation>
          Turn on/off flag to control whether data is rendered using immediate
          mode or note. Immediate mode rendering tends to be slower but it can
          handle larger datasets.  The default value is immediate mode off. If
          you are having problems rendering a large dataset you might want to
          consider using immediate more rendering.
        </Documentation>
      </IntVectorProperty>

      <!-- End of GlobalMapperProperties -->
    </Proxy>

    <!-- End of group "misc" -->
  </ProxyGroup>

  <ProxyGroup name="palettes">
    <Proxy name="Screen" label="Screen">
      <DoubleVectorProperty name="ForegroundColor"
        label="Foreground"
        number_of_elements="3"
        default_values="1.0 1.0 1.0">
      </DoubleVectorProperty>

      <DoubleVectorProperty name="BackgroundColor"
        label="Background"
        number_of_elements="3"
        default_values="0.32 0.34 0.43">
      </DoubleVectorProperty>

      <DoubleVectorProperty name="SurfaceColor"
        label="Surface"
        number_of_elements="3"
        default_values="1.0 1.0 1.0">
      </DoubleVectorProperty>

      <DoubleVectorProperty name="TextAnnotationColor"
        label="Text"
        number_of_elements="3"
        default_values="1.0 1.0 1.0">
      </DoubleVectorProperty>

      <DoubleVectorProperty name="SelectionColor"
        label="Selection"
        number_of_elements="3"
        default_values="1.0 0.0 1.0">
      </DoubleVectorProperty>

      <DoubleVectorProperty name="EdgeColor"
        label="Edges"
        number_of_elements="3"
        default_values="0.0 0.0 0.5">
      </DoubleVectorProperty>

    <!-- End of (palettes, Screen) -->
    </Proxy>

    <Proxy name="Print" label="Print">
      <DoubleVectorProperty name="ForegroundColor"
        label="Foreground"
        number_of_elements="3"
        default_values="0.0 0.0 0.0">
      </DoubleVectorProperty>

      <DoubleVectorProperty name="BackgroundColor"
        label="Background"
        number_of_elements="3"
        default_values="1.0 1.0 1.0">
      </DoubleVectorProperty>

      <DoubleVectorProperty name="SurfaceColor"
        label="Surface"
        number_of_elements="3"
        default_values="1.0 1.0 1.0">
      </DoubleVectorProperty>

      <DoubleVectorProperty name="TextAnnotationColor"
        label="Text"
        number_of_elements="3"
        default_values="0.0 0.0 0.0">
      </DoubleVectorProperty>

      <DoubleVectorProperty name="SelectionColor"
        label="Selection"
        number_of_elements="3"
        default_values="1.0 0.0 1.0">
      </DoubleVectorProperty>

      <DoubleVectorProperty name="EdgeColor"
        label="Edges"
        number_of_elements="3"
        default_values="0.0 0.0 0.5">
      </DoubleVectorProperty>

    <!-- End of (palettes, Print) -->
    </Proxy>


    <!-- End of group "palettes" -->
  </ProxyGroup>

  <ProxyGroup name="exporters">
    <!-- Proxy group for exporters used to export views.  -->

    <RenderViewExporterProxy name="X3DExporter" class="vtkX3DExporter"
      file_extension="x3d">
      <Documentation short_help="X3D Files" long_help="Export X3D Files">
        vtkX3DExporter is a render window exporter which writes out the
        renderered scene into an X3D file. X3D is an XML-based format for
        representation 3D scenes (similar to VRML). Check out
        http://www.web3d.org/x3d/ for more details.
      </Documentation>

      <StringVectorProperty name="FileName"
        command="SetFileName"
        number_of_elements="1">
        <Documentation>
          Name of the file to be written.
        </Documentation>
      </StringVectorProperty>

      <ProxyProperty name="View"
        command="SetView"
        update_self="1">
        <Documentation>
          The view to export.
        </Documentation>
        <ProxyGroupDomain name="group">
          <Group name="views"/>
        </ProxyGroupDomain>
      </ProxyProperty>

      <Property name="Write" command="Write" 
        update_self="1">
        <Documentation>
          Triggers exporting of the view.
        </Documentation>
      </Property>

      <!-- End of X3DExporter -->
    </RenderViewExporterProxy>

    <RenderViewExporterProxy name="X3DExporterBinary" class="vtkX3DExporter"
      base_proxygroup="exporters" base_proxyname="X3DExporter"
      file_extension="x3db" >
      <Documentation>
        Binary x3d exporter
      </Documentation>
      <IntVectorProperty name="Binary"
        command="SetBinary"
        number_of_elements="1"
        default_values="1">
        <BooleanDomain name="bool" />
        <Documentation>
          Turn on binary mode
        </Documentation>
      </IntVectorProperty>

      <IntVectorProperty name="Fastest"
        command="SetFastest"
        number_of_elements="1"
        default_values="0">
        <BooleanDomain name="bool" />
        <Documentation>
          In binary mode use fastest instead of best compression.
        </Documentation>
      </IntVectorProperty>
    </RenderViewExporterProxy>

    <RenderViewExporterProxy name="VRMLExporter" class="vtkVRMLExporter"
      file_extension="vrml">
      <Documentation>
        Exporter to export a single render view to an VRML file.
      </Documentation>

      <StringVectorProperty name="FileName"
        command="SetFileName"
        number_of_elements="1">
        <Documentation>
          Name of the file to be written.
        </Documentation>
      </StringVectorProperty>

      <ProxyProperty name="View"
        command="SetView"
        update_self="1">
        <Documentation>
          The view to export.
        </Documentation>
        <ProxyGroupDomain name="group">
          <Group name="views"/>
        </ProxyGroupDomain>
      </ProxyProperty>

      <Property name="Write" command="Write" 
        update_self="1">
        <Documentation>
          Triggers exporting of the view.
        </Documentation>
      </Property>

      <!-- End of VRMLExporter -->
    </RenderViewExporterProxy>

    <CSVExporterProxy name="CSVExporter" class="vtkCSVExporter"
      file_extension="csv">
      <Documentation>
        Exporter to export a single render view to an CSV file.
      </Documentation>

      <StringVectorProperty name="FileName"
        command="SetFileName"
        number_of_elements="1">
        <Documentation>
          Name of the file to be written.
        </Documentation>
      </StringVectorProperty>

      <ProxyProperty name="View"
        command="SetView"
        update_self="1">
        <Documentation>
          The view to export.
        </Documentation>
        <ProxyGroupDomain name="group">
          <Group name="views"/>
        </ProxyGroupDomain>
      </ProxyProperty>

      <Property name="Write" command="Write" 
        update_self="1">
        <Documentation>
          Triggers exporting of the view.
        </Documentation>
      </Property>

      <!-- End of VRMLExporter -->
    </CSVExporterProxy>

    <RenderViewExporterProxy name="POVExporter" class="vtkPOVExporter"
      file_extension="pov">
      <Documentation short_help="POV Files" long_help="Export POV Ray Files">
        vtkPOVExporter is a render window exporter which writes out the
        renderered scene into an POV Ray file. 
      </Documentation>

      <StringVectorProperty name="FileName"
        command="SetFileName"
        number_of_elements="1">
        <Documentation>
          Name of the file to be written.
        </Documentation>
      </StringVectorProperty>

      <ProxyProperty name="View"
        command="SetView"
        update_self="1"> 
        <Documentation>  
          The view to export.
        </Documentation>
        <ProxyGroupDomain name="group">
          <Group name="views"/>
        </ProxyGroupDomain>
      </ProxyProperty>

      <Property name="Write" command="Write" 
        update_self="1">
        <Documentation> 
          Triggers exporting of the view.
        </Documentation>
      </Property>

      <!-- End of POVExporter -->
    </RenderViewExporterProxy>

    <!-- End of "exporters" -->
  </ProxyGroup>
  
  <ProxyGroup name="point_placers">
    <Proxy name="PointPlacerBase" class="not-used">
      <Documentation>
        Base API definition for all point placers.
      </Documentation>
      <!-- End of "PointPlacerBase" -->
    </Proxy>
    
    <Proxy name="FocalPlanePointPlacer" class="vtkFocalPlanePointPlacer"
      base_proxygroup="point_placers" base_proxyname="PointPlacerBase">
    </Proxy>
    <Proxy name="BoundedPlanePointPlacer" class="vtkBoundedPlanePointPlacer"
      base_proxygroup="point_placers" base_proxyname="PointPlacerBase">
      
      <IntVectorProperty
         name="ProjectionNormal"
         command="SetProjectionNormal"
         number_of_elements="1"
         default_values="2">
        <EnumerationDomain name="enum">
          <Entry value="0" text="XAxis" />
          <Entry value="1" text="YAxis" />
          <Entry value="2" text="ZAxis" />
          <Entry value="3" text="Oblique" />
        </EnumerationDomain>
      </IntVectorProperty>
      <DoubleVectorProperty
         name="ProjectionPosition"
         command="SetProjectionPosition"
         number_of_elements="1"
         default_values="0.0">
      </DoubleVectorProperty>

      <ProxyProperty name="BoundingPlanes"
        command="AddBoundingPlane"
        repeat_command="1"
        number_of_elements_per_command="1"
        clean_command="RemoveAllBoundingPlanes">
        <ProxyGroupDomain name="groups">
          <Group name="implicit_functions" />
        </ProxyGroupDomain>
        <ProxyListDomain name="proxy_list">
          <Proxy group="implicit_functions" name="Plane" />
          <Proxy group="implicit_functions" name="Box" />
        </ProxyListDomain>
      </ProxyProperty>
    </Proxy>
    <Proxy name="PolygonalSurfacePointPlacer" class="vtkPolygonalSurfacePointPlacer"
      base_proxygroup="point_placers" base_proxyname="PointPlacerBase">
    </Proxy>
  </ProxyGroup>
  
  <ProxyGroup name="contour_line_interpolators">
    <Proxy name="ContourLineInterpolatorBase" class="not-used">
      <Documentation>
        Base API definition for all contour line interpolators.
      </Documentation>
      <!-- End of "ContourLineInterpolatorBase" -->
    </Proxy>
    
    <Proxy name="BezierContourLineInterpolator" class="vtkBezierContourLineInterpolator"
      base_proxygroup="contour_line_interpolators" base_proxyname="ContourLineInterpolatorBase">
    </Proxy>
    <Proxy name="PolyDataContourLineInterpolator" class="vtkPolyDataContourLineInterpolator"
      base_proxygroup="contour_line_interpolators" base_proxyname="ContourLineInterpolatorBase">
    </Proxy>
    <Proxy name="PolygonalSurfaceContourLineInterpolator" class="vtkPolygonalSurfaceContourLineInterpolator"
      base_proxygroup="contour_line_interpolators" base_proxyname="ContourLineInterpolatorBase">
    </Proxy>
  </ProxyGroup>

</ServerManagerConfiguration>
