<ServerManagerConfiguration>
   <ProxyGroup name="views">
      <QuadViewProxy name="QuadView" class="vtkPVQuadRenderView"
         processes="client|renderserver|dataserver"
         base_proxygroup="views" base_proxyname="RenderView">
         <Documentation>
          QuadView comprises for 4 render views (3 orthogonal, 1 3D view) for
          showing slices from a 3D dataset.
         </Documentation>

         <IntVectorProperty command="SetLabelFontSize"
                            default_values="20"
                            name="LabelFontSize"
                            number_of_elements="1">
         </IntVectorProperty>

         <DoubleVectorProperty name="SplitLocation"
                               command="SetSplitRatio"
                               number_of_elements="2"
                               default_values="50 50"/>

         <IntVectorProperty command="SetShowCubeAxes"
                            default_values="0"
                            name="ShowCubeAxes"
                            number_of_elements="1">
         </IntVectorProperty>

         <IntVectorProperty command="SetShowOutline"
                            default_values="1"
                            name="ShowOutline"
                            number_of_elements="1">
         </IntVectorProperty>

         <IntVectorProperty command="SetSliceOrientationAxesVisibility"
                            default_values="0"
                            name="SliceOrientationAxesVisibility"
                            number_of_elements="1">
         </IntVectorProperty>

         <IntVectorProperty command="SetSizeTopLeft"
                            default_values="400 400"
                            ignore_synchronization="1"
                            name="ViewSizeTopLeft"
                            number_of_elements="2"
                            state_ignored="1">
           <Hints>
             <NoDefault />
           </Hints>
         </IntVectorProperty>

         <IntVectorProperty command="SetSizeBottomLeft"
                            default_values="400 400"
                            ignore_synchronization="1"
                            name="ViewSizeBottomLeft"
                            number_of_elements="2"
                            state_ignored="1">
           <Hints>
             <NoDefault />
           </Hints>
         </IntVectorProperty>

         <IntVectorProperty command="SetSizeTopRight"
                            default_values="400 400"
                            ignore_synchronization="1"
                            name="ViewSizeTopRight"
                            number_of_elements="2"
                            state_ignored="1">
           <Hints>
             <NoDefault />
           </Hints>
         </IntVectorProperty>

         <IntVectorProperty command="SetSizeBottomRight"
                            default_values="400 400"
                            ignore_synchronization="1"
                            name="ViewSizeBottomRight"
                            number_of_elements="2"
                            state_ignored="1">
           <Hints>
             <NoDefault />
           </Hints>
         </IntVectorProperty>

         <IntVectorProperty default_values="400 400"
                            ignore_synchronization="1"
                            name="ViewSize"
                            number_of_elements="2"
                            state_ignored="1"
                            override="1" >
           <Hints>
             <NoDefault />
           </Hints>
           <!-- This overrides RenderView's 'ViewSize' for
           vtkSMViewLayoutProxy's sake so that it takes into consideration the
           "full size" of the view (include all 4 components) when managing layout.
           -->
         </IntVectorProperty>

      <IntVectorProperty command="SetViewPosition"
                         default_values="0 0"
                         name="ViewPosition"
                         number_of_elements="2"
                         override="1">
        <Hints>
          <NoDefault />
        </Hints>
        <Documentation>Set the position on this view in the multiview
        configuration.</Documentation>
      </IntVectorProperty>

         <DoubleVectorProperty name="XSlicesValues"
                               command="SetSliceX"
                               repeat_command="1"
                               set_number_command="SetNumberOfSliceX"
                               number_of_elements_per_command="1"
                               use_index="1"/>

         <DoubleVectorProperty name="XSlicesNormal"
                               command="SetViewNormalTopLeft"
                               number_of_elements="3"
                               default_values="1 0 0"/>

         <DoubleVectorProperty name="XSlicesOrigin"
                               command="SetSliceXOrigin"
                               number_of_elements="3"
                               default_values="0 0 0"/>

         <DoubleVectorProperty name="YSlicesValues"
                               command="SetSliceY"
                               repeat_command="1"
                               set_number_command="SetNumberOfSliceY"
                               number_of_elements_per_command="1"
                               use_index="1"/>

         <DoubleVectorProperty name="YSlicesNormal"
                               command="SetViewNormalTopRight"
                               number_of_elements="3"
                               default_values="0 1 0"/>

         <DoubleVectorProperty name="YSlicesOrigin"
                               command="SetSliceYOrigin"
                               number_of_elements="3"
                               default_values="0 0 0"/>

         <DoubleVectorProperty name="ZSlicesValues"
                               command="SetSliceZ"
                               repeat_command="1"
                               set_number_command="SetNumberOfSliceZ"
                               number_of_elements_per_command="1"
                               use_index="1"/>

         <DoubleVectorProperty name="ZSlicesNormal"
                               command="SetViewNormalBottomLeft"
                               number_of_elements="3"
                               default_values="0 0 1"/>

         <DoubleVectorProperty name="ZSlicesOrigin"
                               command="SetSliceZOrigin"
                               number_of_elements="3"
                               default_values="0 0 0"/>

         <DoubleVectorProperty name="TopLeftViewUp"
                               command="SetViewUpTopLeft"
                               number_of_elements="3"
                               default_values="0 1 0"/>

         <DoubleVectorProperty name="TopRightViewUp"
                               command="SetViewUpTopRight"
                               number_of_elements="3"
                               default_values="-1 0 0"/>

         <DoubleVectorProperty name="BottomLeftViewUp"
                               command="SetViewUpBottomLeft"
                               number_of_elements="3"
                               default_values="0 1 0"/>

         <ProxyProperty command="AddRepresentationToTopLeft"
                        is_internal="1"
                        name="TopLeftRepresentations"
                        remove_command="RemoveRepresentationToTopLeft"
                        repeatable="1"/>

         <ProxyProperty command="AddRepresentationToTopRight"
                        is_internal="1"
                        name="TopRightRepresentations"
                        remove_command="RemoveRepresentationToTopRight"
                        repeatable="1"/>

         <ProxyProperty command="AddRepresentationToBottomLeft"
                        is_internal="1"
                        name="BottomLeftRepresentations"
                        remove_command="RemoveRepresentationToBottomLeft"
                        repeatable="1"/>

         <ProxyProperty command="SetSliceOriginSource"
                        name="SliceOriginSource"/>

         <SubProxy>
            <Proxy name="WidgetTopLeft"
                   proxygroup="representations"
                   proxyname="PointSourceWidgetRepresentation">
            </Proxy>
         </SubProxy>

         <SubProxy>
            <Proxy name="WidgetTopRight"
                   proxygroup="representations"
                   proxyname="PointSourceWidgetRepresentation">
            </Proxy>
         </SubProxy>

         <SubProxy>
            <Proxy name="WidgetBottomLeft"
                   proxygroup="representations"
                   proxyname="PointSourceWidgetRepresentation">
            </Proxy>
         </SubProxy>

         <SubProxy>
            <Proxy name="WidgetBottomRight"
                   proxygroup="representations"
                   proxyname="PointSourceWidgetRepresentation">
            </Proxy>
         </SubProxy>

         <SubProxy>
            <Proxy name="SliceOrigin"
                   class="vtkPointSource"
                   processes="client|renderserver|dataserver">
                   <DoubleVectorProperty animateable="1"
                                         command="SetCenter"
                                         default_values="0.0 0.0 0.0"
                                         name="WorldPosition"
                                         number_of_elements="3"
                                         panel_visibility="never">
                     <DoubleRangeDomain name="range" />
                     <Documentation>This property specifies the 3D coordinates of the center
                     of the point cloud.</Documentation>
                   </DoubleVectorProperty>
            </Proxy>
            <ExposedProperties>
              <Property exposed_name="SlicesCenter" name="WorldPosition"/>
            </ExposedProperties>
         </SubProxy>

      </QuadViewProxy>
   </ProxyGroup>

   <!-- ================================================================== -->

   <ProxyGroup name="representations">

      <PVRepresentationProxy name="QuadViewCompositeMultiSliceRepresentation"
                             class="vtkQuadRepresentation"
                             processes="client|renderserver|dataserver"
                             base_proxygroup="internal_representations"
                             base_proxyname="PVRepresentationBase">

         <InputProperty command="SetInputConnection"
                        name="Input">
           <DataTypeDomain composite_data_supported="1"
                           name="input_type">
              <DataType value="vtkDataSet" />
              <DataType value="vtkGenericDataSet" />
           </DataTypeDomain>
           <InputArrayDomain attribute_type="cell"
                             name="input_array_cell"
                             optional="1"></InputArrayDomain>
           <InputArrayDomain attribute_type="point"
                             name="input_array_point"
                             optional="1"></InputArrayDomain>
           <Documentation>Set the input to the representation.</Documentation>
         </InputProperty>

         <RepresentationType  subproxy="MultiSliceRepresentation" text="Slices"
                              subtype="Surface" />
         <SubProxy>
            <Proxy name="MultiSliceRepresentation"
                   proxygroup="representations"
                   proxyname="SliceFriendRepresentation">
            </Proxy>
            <ShareProperties subproxy="SurfaceRepresentation">
              <Exception name="Visibility" />
              <Exception name="Representation" />
            </ShareProperties>
         </SubProxy>

         <RepresentationType  subproxy="MultiSliceRepresentation1" text="Slice1"
                              subtype="Surface" />
         <SubProxy>
            <Proxy name="MultiSliceRepresentation1"
                   proxygroup="representations"
                   proxyname="SliceFriendRepresentation">
            </Proxy>
            <ShareProperties subproxy="SurfaceRepresentation">
              <Exception name="Visibility" />
              <Exception name="Representation" />
              <Exception name="Opacity" />
            </ShareProperties>
         </SubProxy>

         <RepresentationType  subproxy="MultiSliceRepresentation2" text="Slice2"
                              subtype="Surface" />
         <SubProxy>
            <Proxy name="MultiSliceRepresentation2"
                   proxygroup="representations"
                   proxyname="SliceFriendRepresentation">
            </Proxy>
            <ShareProperties subproxy="SurfaceRepresentation">
              <Exception name="Visibility" />
              <Exception name="Representation" />
              <Exception name="Opacity" />
            </ShareProperties>
         </SubProxy>

         <RepresentationType  subproxy="MultiSliceRepresentation3" text="Slice3"
                              subtype="Surface" />
         <SubProxy>
            <Proxy name="MultiSliceRepresentation3"
                   proxygroup="representations"
                   proxyname="SliceFriendRepresentation">
            </Proxy>
            <ShareProperties subproxy="SurfaceRepresentation">
              <Exception name="Visibility" />
              <Exception name="Representation" />
              <Exception name="Opacity" />
            </ShareProperties>
         </SubProxy>

      </PVRepresentationProxy>
   </ProxyGroup>
</ServerManagerConfiguration>
