<!--
   ____    _ __           ____               __    ____
  / __/___(_) /  ___ ____/ __ \__ _____ ___ / /_  /  _/__  ____
 _\ \/ __/ / _ \/ -_) __/ /_/ / // / -_|_-</ __/ _/ // _ \/ __/
/___/\__/_/_.__/\__/_/  \___\_\_,_/\__/___/\__/ /___/_//_/\__(_)

Copyright 2012 SciberQuest Inc.
-->

<ServerManagerConfiguration>
<ProxyGroup name="sources">
  <!-- ==================================================================== -->
   <SourceProxy name="vtkSQLogSource" class="vtkSQLogSource" label="SQ Log Source">
      <Documentation
         long_help=""
         short_help="">
         Dummy pipleine object that proviedes a UI for the SciberQuest event and timing log.
         This can be used to enable logging for SciberQuest reader,sources,filters and writers.
         The log is written during the objects destructor and is a collective mpi operation. Thus
         destruction must occur prior to MPI_Finalize.
      </Documentation>

      <IntVectorProperty
         name="GlobalLevel"
         command="SetGlobalLevel"
         number_of_elements="1"
         default_values="1"
         >
        <IntRangeDomain name="range" min="0" />
        <Documentation>
          Set the application wide log level.
        </Documentation>
      </IntVectorProperty>

      <StringVectorProperty
          name="FileName"
          animateable="0"
          command="SetFileName"
          number_of_elements="1"
          default_values="SQTK-Log.log"
          >
      <FileListDomain name="files"/>
      <Documentation>
        This property specifies the file name for the log.
      </Documentation>
      </StringVectorProperty>

   <!-- End Log -->
   </SourceProxy>

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

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

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

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

   <!-- ==================================================================== -->
   <SourceProxy name="vtkSQPointSource" class="vtkSQPointSource" label="SQ Point Source">
      <Documentation long_help="Create a point cloud of a certain size, radius, and center."
                     short_help="Create a point cloud">
          The point source creates a specified number of points within a given radius
          about a specified center point and generates data that may be parallelized on
          cell id.
      </Documentation>
      <DoubleVectorProperty
         name="Center"
         command="SetCenter"
         number_of_elements="3"
         animateable="1"
         default_values="0.0 0.0 0.0"
         >
        <DoubleRangeDomain name="range"/>
        <Documentation>
          This property specifies the center of the point cloud.
        </Documentation>
      </DoubleVectorProperty>

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

      <DoubleVectorProperty
         name="Radius"
         command="SetRadius"
         number_of_elements="1"
         animateable="1"
         default_values="0.0"
         >
        <DoubleRangeDomain name="range" min="0"/>
        <Documentation>
          Specifies the radius of the point cloud.
        </Documentation>
      </DoubleVectorProperty>

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

  <!-- ==================================================================== -->
  <SourceProxy name="vtkSQPlaneSource"
        class="vtkSQPlaneSource"
        label="SQ Plane Source">
      <Documentation
        long_help="Create a parallelogram given an origin and two points. The resolution indicates the number of division along each axis of the plane."
        short_help="Create a parallelogram from an origin and two points">
        The Plane source can be used to add a polygonal parallelogram to the 3D scene.
      </Documentation>

      <StringVectorProperty
         name="Name"
         command="SetDescriptiveName"
         number_of_elements="1"
         >
        <Documentation>
          Give the object a name that may be used downstream to identify it.
        </Documentation>
      </StringVectorProperty>
     <!--<StringVectorProperty name="GetName"
        command="GetDescriptiveName"
        information_only="1" >
        <SimpleStringInformationHelper />
     </StringVectorProperty>-->

      <DoubleVectorProperty
         name="Origin"
         command="SetOrigin"
         number_of_elements="3"
         animateable="1"
         default_values="0.0 0.0 0.0"
         >
        <DoubleRangeDomain name="range"/>
        <Documentation>
          This property specifies the 3D coordinate of the origin (one corner) of the plane.
        </Documentation>
      </DoubleVectorProperty>
      <!--
      information_property="OriginInfo"
      <DoubleVectorProperty name="OriginInfo"
        command="GetOrigin"
        information_only="1"
        number_of_elements="3"
        default_values="0.0 0.0 0.0">
        <SimpleDoubleInformationHelper />
     </DoubleVectorProperty>-->

      <DoubleVectorProperty
         name="Point1"
         command="SetPoint1"
         number_of_elements="3"
         animateable="1"
         default_values="1.0 0.0 0.0"
         >
        <DoubleRangeDomain name="range"/>
        <Documentation>
          This property specifies the 3D coordinate a second corner of the parallelogram.
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="Point2"
         command="SetPoint2"
         number_of_elements="3"
         animateable="1"
         default_values="0.0 1.0 0.0"
         >
        <DoubleRangeDomain name="range"/>
        <Documentation>
          This property specifies the 3D coordinate a third corner of the parallelogram.
        </Documentation>
      </DoubleVectorProperty>

      <IntVectorProperty
         name="Constraint"
         command="SetConstraint"
         number_of_elements="1"
         animateable="0"
         default_values="0"
         >
        <IntRangeDomain name="range"/>
        <Documentation>
          This property specifies a constraint type.
        </Documentation>
      </IntVectorProperty>

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

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

      <IntVectorProperty
         name="DecompType"
         command="SetDecompType"
         number_of_elements="1"
         default_values="0"
         panel_visibility="default">
        <IntRangeDomain name="range" min="0" />
        <Documentation>
          This property specifies the number of divisions along the Y axis of the parallelogram.
        </Documentation>
      </IntVectorProperty>

      <IntVectorProperty
         name="ImmediateMode"
         command="SetImmediateMode"
         number_of_elements="1"
         default_values="1"
         >
        <BooleanDomain name="bool"/>
        <Documentation>
          Switch between immediate and demand mode.
        </Documentation>
      </IntVectorProperty>

   <!-- End Plane -->
   </SourceProxy>

  <!-- ==================================================================== -->
  <SourceProxy
      name="vtkSQVolumeSource"
      class="vtkSQVolumeSource"
      label="SQ Volume Source">
    <Documentation
      long_help="Long Documentation"
      short_help="Short Documentation">
      Generates a hexahedron composed of hexahedral cells of the requested number.
    </Documentation>

    <DoubleVectorProperty
        name="Origin"
        command="SetOrigin"
        number_of_elements="3"
        animateable="1"
        default_values="0.0 0.0 0.0"
        >
      <DoubleRangeDomain name="range"/>
      <Documentation>
        This property specifies the coordinate of the origin (one corner) of the hexaderon.
      </Documentation>
    </DoubleVectorProperty>
    <!--
    information_property="OriginInfo"
    <DoubleVectorProperty name="OriginInfo"
      command="GetOrigin"
      information_only="1"
      number_of_elements="3"
      default_values="0.0 0.0 0.0">
      <SimpleDoubleInformationHelper />
    </DoubleVectorProperty>-->

    <DoubleVectorProperty
        name="Point1"
        command="SetPoint1"
        number_of_elements="3"
        animateable="1"
        default_values="1.0 0.0 0.0"
        >
      <DoubleRangeDomain name="range"/>
      <Documentation>
        This property specifies the coordinate a second corner of the hexaderon.
      </Documentation>
    </DoubleVectorProperty>

    <DoubleVectorProperty
        name="Point2"
        command="SetPoint2"
        number_of_elements="3"
        animateable="1"
        default_values="0.0 1.0 0.0"
        >
      <DoubleRangeDomain name="range"/>
      <Documentation>
        This property specifies the coordinate a third corner of the hexaderon.
      </Documentation>
    </DoubleVectorProperty>

    <DoubleVectorProperty
        name="Point3"
        command="SetPoint3"
        number_of_elements="3"
        animateable="1"
        default_values="0.0 0.0 1.0"
        >
      <DoubleRangeDomain name="range"/>
      <Documentation>
        This property specifies the coordinate a fourth corner of the hexaderon.
      </Documentation>
    </DoubleVectorProperty>

    <!-- Resolution -->
     <IntVectorProperty
        name="Resolution"
        label="Resolution"
        command="SetResolution"
        number_of_elements="3"
        default_values="1 1 1"
        >
     </IntVectorProperty>

      <IntVectorProperty
         name="ImmediateMode"
         command="SetImmediateMode"
         number_of_elements="1"
         default_values="1"
         >
        <BooleanDomain name="bool"/>
        <Documentation>
          Switch between immediate and demand mode.
        </Documentation>
      </IntVectorProperty>

  <!-- End vtkSQVolumeSource -->
  </SourceProxy>

   <!-- ==================================================================== -->
   <SourceProxy
     name="vtkSQSphereSource"
     class="vtkSQSphereSource"
     label="SQ Sphere Source">
      <Documentation
        long_help="Create a 3D sphere given a center and radius."
        short_help="Create a 3D sphere">
          The Sphere source can be used to add a polygonal sphere to the 3D scene. The output
          of the Sphere source is polygonal data with point normals defined.
      </Documentation>

      <StringVectorProperty
         name="Name"
         command="SetDescriptiveName"
         number_of_elements="1"
         >
        <Documentation>
          Give the object a name that may be used downstream to identify it.
        </Documentation>
      </StringVectorProperty>
      <DoubleVectorProperty
         name="Center"
         command="SetCenter"
         number_of_elements="3"
         animateable="1"
         default_values="0.0 0.0 0.0"
         >
        <DoubleRangeDomain name="range"/>
        <Documentation>
          This property specifies the 3D coordinates for the center of the sphere.
        </Documentation>
      </DoubleVectorProperty>

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

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

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

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

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

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

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

  <!-- ==================================================================== -->
  <SourceProxy
    name="vtkSQHemisphereSource"
    class="vtkSQHemisphereSource"
    label="SQ Hemisphere Source">
    <Documentation
      long_help="Create a 3D sphere given a center and radius."
      short_help="Create a 3D sphere">
      The Hemisphere source can be used to add a polygonal sphere to the 3D scene.
      The output of the Hemisphere source is polygonal data with point normals defined.
    </Documentation>

    <!-- Out -->
    <OutputPort name="Northern Hemisphere" index="0" />
    <OutputPort name="Southern Hemisphere" index="1" />

    <DoubleVectorProperty
      name="GetCenter"
      command="GetCenter"
      information_only="1">
      <SimpleDoubleInformationHelper/>
    </DoubleVectorProperty>
    <DoubleVectorProperty
      name="Center"
      command="SetCenter"
      number_of_elements="3"
      animateable="1"
      default_values="0.0 0.0 0.0"
      information_property="GetCenter"
      >
    <DoubleRangeDomain name="range"/>
    <Documentation>
      The center of the sphere.
    </Documentation>
  </DoubleVectorProperty>

  <DoubleVectorProperty
      name="GetNorth"
      command="GetNorth"
      information_only="1">
      <SimpleDoubleInformationHelper/>
    </DoubleVectorProperty>
    <DoubleVectorProperty
      name="North"
      command="SetNorth"
      number_of_elements="3"
      animateable="1"
      default_values="0.0 1.0 0.0"
      information_property="GetNorth"
      >
    <DoubleRangeDomain name="range"/>
    <Documentation>
      The center of the sphere.
    </Documentation>
  </DoubleVectorProperty>

  <DoubleVectorProperty
    name="GetRadius"
    command="GetRadius"
    information_only="1">
    <SimpleDoubleInformationHelper/>
  </DoubleVectorProperty>
  <DoubleVectorProperty
    name="Radius"
    command="SetRadius"
    number_of_elements="1"
    animateable="1"
    default_values="0.5"
    information_property="GetRadius"
    >
    <DoubleRangeDomain name="range" min="1E-15"/>
    <Documentation>
      This property specifies the radius of the sphere.
    </Documentation>
  </DoubleVectorProperty>

  <IntVectorProperty
    name="GetResolution"
    command="GetResolution"
    information_only="1">
    <SimpleIntInformationHelper/>
  </IntVectorProperty>
  <IntVectorProperty
      name="Resolution"
      command="SetResolution"
      number_of_elements="1"
      default_values="32"
      information_property="GetResolution"
      >
    <IntRangeDomain name="range" min="3" max="1024" />
    <Documentation>
      The value of this property controls the number of lat-lon linies in the output.
    </Documentation>
  </IntVectorProperty>

  <!-- End Hemisphere Source -->
  </SourceProxy>

  <!-- ==================================================================== -->
  <SourceProxy name="vtkSQImageSource"
        class="vtkSQImageSource"
        label="SQ Image Source">
      <Documentation
        long_help="Create an empty image dataset with given whole extent, origin and spacing"
        short_help="Create an empty image dataset with given whole extent, origin and spacing">
        Create an empty image dataset with given whole extent, origin and spacing
      </Documentation>

      <DoubleVectorProperty
         name="Origin"
         command="SetOrigin"
         number_of_elements="3"
         animateable="1"
         default_values="0.0 0.0 0.0"
         >
        <DoubleRangeDomain name="range"/>
        <Documentation>
          This property specifies the 3D coordinate of the origin (one corner) of the image.
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="Spacing"
         command="SetSpacing"
         number_of_elements="3"
         animateable="1"
         default_values="1.0 1.0 1.0"
         >
        <DoubleRangeDomain name="range"/>
        <Documentation>
          This property specifies the grid spacing of the dataset.
        </Documentation>
      </DoubleVectorProperty>

    <!-- Extent selection -->
    <IntVectorProperty
        name="IExtent"
        command="SetIExtent"
        number_of_elements="2"
        default_values="0 1"
        animateable="1"
        >
      <IntRangeDomain name="range">
      </IntRangeDomain>
      <Documentation>
        Set data subset range in the z direction.
      </Documentation>
    </IntVectorProperty>
    <IntVectorProperty
        name="JExtent"
        command="SetJExtent"
        number_of_elements="2"
        default_values="0 1"
        animateable="1"
        >
      <IntRangeDomain name="range">
      </IntRangeDomain>
      <Documentation>
        Set data subset range in the z direction.
      </Documentation>
    </IntVectorProperty>
    <IntVectorProperty
        name="KExtent"
        command="SetKExtent"
        number_of_elements="2"
        default_values="0 1"
        animateable="1"
        >
      <IntRangeDomain name="range">
      </IntRangeDomain>
      <Documentation>
        Set data subset range in the z direction.
      </Documentation>
    </IntVectorProperty>

    <Hints>
      <View type="RenderView"/>
    </Hints>

   <!-- End Plane -->
   </SourceProxy>
</ProxyGroup>
</ServerManagerConfiguration>
