<ServerManagerConfiguration>

  <ProxyGroup name="smtk">
    <SMTKWrapperProxy name="SMTKWrapper" class="vtkSMTKWrapper">

      <InputProperty command="SetActiveResource" label="Active Resource" name="ActiveResource">
        <Documentation>
          This property specifies which algorithm generates the active resource's
          visualization data.
          This is used to register resources on the server and synchronize data
          between the client and server.
        </Documentation>
        <ProxyGroupDomain name="groups">
          <Group name="sources" />
          <Group name="filters" />
        </ProxyGroupDomain>
        <DataTypeDomain name="input_type">
          <DataType value="vtkDataObject" />
        </DataTypeDomain>
      </InputProperty>
      <InputProperty command="SetSelectedPort" label="Selected Port" name="SelectedPort">
        <Documentation>
          This property specifies the dataset which has most
          recently had a user specify a selection.
          When a JSON request is issued to transfer the ParaView selection
          to SMTK, it is this data that the vtkSelection refers to.
        </Documentation>
        <ProxyGroupDomain name="groups">
          <Group name="sources" />
          <Group name="filters" />
        </ProxyGroupDomain>
        <DataTypeDomain name="input_type">
          <DataType value="vtkDataObject" />
        </DataTypeDomain>
      </InputProperty>
      <InputProperty command="SetSelectionObj" label="Selection Object" name="SelectionObj">
        <Documentation>
          This property specifies the selection a user most recently made.
          When a JSON request is issued to transfer the ParaView selection
          to SMTK, it is this vtkSelection that is used.
        </Documentation>
        <ProxyGroupDomain name="groups">
          <Group name="sources" />
          <Group name="filters" />
        </ProxyGroupDomain>
        <DataTypeDomain name="input_type">
          <DataType value="vtkDataObject" />
        </DataTypeDomain>
      </InputProperty>
      <StringVectorProperty
        name="JSONRequest"
        command="SetJSONRequest"
        number_of_elements="1">
      </StringVectorProperty>
      <Property
        name="ProcessJSON"
        command="ProcessJSON">
      </Property>
      <StringVectorProperty
        name="JSONResponse"
        command="GetJSONResponse"
        number_of_elements="1"
        information_only="1"
        default_values="0">
        <SimpleStringInformationHelper />
      </StringVectorProperty>
      <StringVectorProperty
        name="SelectionSource"
        command="GetSelectionSource"
        default_values="paraview"
        information_only="1"
        number_of_elements="1">
        <SimpleStringInformationHelper/>
      </StringVectorProperty>
      <IntVectorProperty
        name="SelectedValue"
        command="GetSelectedValue"
        information_only="1"
        default_values="1"
        number_of_elements="1">
        <SimpleIntInformationHelper/>
      </IntVectorProperty>
      <IntVectorProperty
        name="HoveredValue"
        command="GetHoveredValue"
        information_only="1"
        default_values="2"
        number_of_elements="1">
        <SimpleIntInformationHelper/>
      </IntVectorProperty>
      <ProxyProperty command="SetRepresentation" name="Representation">
        <ProxyGroupDomain name="groups">
          <Group name="representations" />
        </ProxyGroupDomain>
        <ProxyListDomain name="proxy_list">
          <Proxy group="representations" name="SMTKResourceRepresentation"/>
        </ProxyListDomain>
        <Documentation>This property is used by the resource manager
          to invoke methods on representations.</Documentation>
      </ProxyProperty>

    </SMTKWrapperProxy>
  </ProxyGroup>

  <!--
       smtk_internal_sources are the sources that generate SMTK resources and
       their corresponding vtkMultiBlockDataSets. They are not exposed as
       readers or sources because they are used as subproxies to
       vtkSMTKResourceSource, which facilitates the modification of the resource
       in situ without triggering a regeneration of the resource.

       NB: when adding a source proxy to this group, you must also add a source
       proxy that instances vtkSMTKResourceSource and has the new source proxy
       as its subproxy in the "sources" section below.
  -->
  <ProxyGroup name="smtk_internal_sources">
    <SourceProxy name="SMTKResource" class="vtkSMTKResource" label="SMTK Resource">
      <Documentation
        short_help="A proxy for an SMTK resource."
        long_help="A proxy for an SMTK resource.">
      </Documentation>

      <StringVectorProperty
        name="ResourceId"
        command="SetResourceById"
        animateable="0"
        number_of_elements="1"
        panel_visibility="never">
        <Documentation>
          A string representation of a resource Id.
        </Documentation>
      </StringVectorProperty>

      <OutputPort index="0" name="SMTK Resource"/>

      <Hints>
        <Representation view="RenderView" type="SMTKResourceCompositeRepresentation" />
      </Hints>
    </SourceProxy>

    <SourceProxy name="SMTKResourceReader" class="vtkSMTKResourceReader" label="SMTK Resource Reader">
      <Documentation
        short_help="Read an SMTK file."
        long_help="Read an SMTK file as a set of multiblock datasets.">
      </Documentation>

      <StringVectorProperty
        name="FileName"
        command="SetFileName"
        animateable="0"
        number_of_elements="1">
        <FileListDomain name="files"/>
        <Documentation>
          The path to an SMTK JSON file to read.
        </Documentation>
      </StringVectorProperty>

      <OutputPort index="0" name="SMTK Resource"/>

      <Hints>
        <ReaderFactory extensions="smtk" file_description="SMTK Files"/>
        <Representation view="RenderView" type="SMTKResourceCompositeRepresentation" />
        <DefaultFileNameProperty name="FileName" />
      </Hints>
    </SourceProxy>

    <SourceProxy name="SMTKResourceCreator" class="vtkSMTKResourceCreator" label="SMTK Resource Creator">
      <Documentation
        short_help="Create a new SMTK resource."
        long_help="Create a new SMTK resource and represent it as a set of multiblock datasets.">
      </Documentation>

      <StringVectorProperty
        name="TypeName"
        command="SetTypeName"
        animateable="0"
        number_of_elements="1"
        panel_visibility="never">
      </StringVectorProperty>

      <StringVectorProperty
        name="Parameters"
        command="SetParameters"
        animateable="0"
        number_of_elements="1"
        panel_visibility="never">
      </StringVectorProperty>

      <OutputPort index="0" name="SMTK Resource"/>

      <Hints>
        <ReaderFactory extensions="smtk" file_description="SMTK Files"/>
        <Representation view="RenderView" type="SMTKResourceCompositeRepresentation" />
        <DefaultFileNameProperty name="FileName" />
      </Hints>
    </SourceProxy>

    <SourceProxy name="SMTKResourceImporter" class="vtkSMTKResourceImporter" label="SMTK Resource Importer">
      <Documentation
        short_help="Import a file into SMTK."
        long_help="Import a file as a set of multiblock datasets.">
      </Documentation>

      <StringVectorProperty
        name="FileName"
        command="SetFileName"
        animateable="0"
        number_of_elements="1">
        <FileListDomain name="files"/>
        <Documentation>
          The path of a file to read.
        </Documentation>
      </StringVectorProperty>

      <StringVectorProperty
        name="ResourceName"
        command="SetResourceName"
        animateable="0"
        number_of_elements="1"
        default_values="foo"
        panel_visibility="never">
      </StringVectorProperty>

      <OutputPort index="0" name="SMTK Resource"/>

      <Hints>
        <ReaderFactory extensions="smtk" file_description="SMTK Files"/>
        <Representation view="RenderView" type="SMTKResourceCompositeRepresentation" />
        <DefaultFileNameProperty name="FileName" />
      </Hints>
    </SourceProxy>

    <SourceProxy name="CMBGeometryReader"
      class="vtkCMBGeometryReader"
      label="CMB Geometry reader">
      <Documentation
        short_help="Read an CMB Geometry file."
        long_help="Read an CMB Geometry file (several different file formats).">
      </Documentation>

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

      <IntVectorProperty
        name="PrepNonClosedSurfaceForModelCreation"
        command="SetPrepNonClosedSurfaceForModelCreation"
        number_of_elements="1"
        default_values="0" >
        <BooleanDomain name="bool"/>
      </IntVectorProperty>

      <IntVectorProperty
        name="HasBoundaryEdges"
        command="GetHasBoundaryEdges"
        number_of_elements="1"
        default_values="0"
        information_only="1">
        <SimpleIntInformationHelper/>
        <BooleanDomain name="bool"/>
      </IntVectorProperty>

      <IntVectorProperty
        name="RegionIdentifiersModified"
        command="GetRegionIdentifiersModified"
        number_of_elements="1"
        default_values="0"
        information_only="1">
        <SimpleIntInformationHelper/>
        <BooleanDomain name="bool"/>
      </IntVectorProperty>
      <Hints>
        <ReaderFactory extensions="fac obj poly smesh pts sol stl tin xyz"
                       file_description="CMB Point, Edge and Surface Geometry Files" />
        <DefaultFileNameProperty name="FileName" />
      </Hints>
    </SourceProxy>
  </ProxyGroup>

  <ProxyGroup name="sources">
    <SourceProxy class="vtkSMTKResource" name="SMTKResource">
      <Documentation
        short_help="Construct a vtk source from an SMTK resource."
        long_help="Read an SMTK Resource file as a set of multiblock datasets.">
      </Documentation>

      <StringVectorProperty
        name="ResourceId"
        command="SetResourceById"
        animateable="0"
        number_of_elements="1"
        panel_visibility="never">
      </StringVectorProperty>

      <OutputPort index="0" name="SMTK Resource"/>

      <Hints>
        <Representation view="RenderView" type="SMTKResourceCompositeRepresentation" />
      </Hints>
    </SourceProxy>

    <SourceProxy class="vtkSMTKResourceSource" name="SMTKResourceSource">
      <SubProxy command="SetVTKResource">
        <Proxy name="VTKResource"
               proxygroup="smtk_internal_sources"
               proxyname="SMTKResource">
        </Proxy>
        <ExposedProperties>
          <Property name="ResourceId"
                    panel_visibility="never" />
        </ExposedProperties>
      </SubProxy>
      <OutputPort index="0" name="SMTK Resource"/>
      <Hints>
        <Representation view="RenderView" type="SMTKResourceCompositeRepresentation" />
      </Hints>
    </SourceProxy>

    <!--
        We describe an instance of vtkSMTKResourceSource with a subproxy
        for each of the internal sources described in smtk_internal_sources.
        This pattern facilitates the modification of the resource in situ
        without triggering a regeneration of the resource.
    -->
    <SourceProxy class="vtkSMTKResourceSource" name="SMTKResourceReader">
      <Documentation
        short_help="Read an SMTK Resource file."
        long_help="Read an SMTK Resource file as a set of multiblock datasets.">
      </Documentation>
      <SubProxy command="SetVTKResource">
        <Proxy name="VTKResource"
               proxygroup="smtk_internal_sources"
               proxyname="SMTKResourceReader">
        </Proxy>
        <ExposedProperties>
          <Property name="FileName" />
        </ExposedProperties>
      </SubProxy>
      <OutputPort index="0" name="SMTK Resource"/>
      <Hints>
        <ReaderFactory extensions="smtk" file_description="SMTK Files"/>
        <Representation view="RenderView" type="SMTKResourceCompositeRepresentation" />
        <DefaultFileNameProperty name="FileName" />
      </Hints>
    </SourceProxy>

    <SourceProxy class="vtkSMTKResourceSource" name="SMTKResourceCreator">
      <Documentation
        short_help="Create an SMTK resource.">
      </Documentation>
      <SubProxy command="SetVTKResource">
        <Proxy name="VTKResource"
               proxygroup="smtk_internal_sources"
               proxyname="SMTKResourceCreator">
        </Proxy>
        <ExposedProperties>
          <Property name="TypeName" />
          <Property name="Parameters" />
        </ExposedProperties>
      </SubProxy>
      <OutputPort index="0" name="SMTK Resource"/>
      <Hints>
        <Representation view="RenderView" type="SMTKResourceCompositeRepresentation" />
      </Hints>
    </SourceProxy>

    <SourceProxy class="vtkSMTKResourceSource" name="SMTKResourceImporter">
      <Documentation
        short_help="Import an SMTK resource."
        long_help="Import a file as an SMTK Resource.">
      </Documentation>
      <SubProxy command="SetVTKResource">
        <Proxy name="VTKResource"
               proxygroup="smtk_internal_sources"
               proxyname="SMTKResourceImporter">
        </Proxy>
        <ExposedProperties>
          <Property name="FileName" />
          <Property name="ResourceName" />
        </ExposedProperties>
      </SubProxy>
      <OutputPort index="0" name="SMTK Resource"/>
      <Hints>
        <Representation view="RenderView" type="SMTKResourceCompositeRepresentation" />
        <DefaultFileNameProperty name="FileName" />
      </Hints>
    </SourceProxy>

    <SourceProxy name="LIDARReader"
      class="vtkLIDARReader"
      label="LIDAR reader">
      <Documentation
        short_help="Read LIDAR input file">
        long_help="Read a file of format (pts xyz bin.pts or bin) for LIDAR object"
      </Documentation>

      <DoubleVectorProperty
        name = "Origin"
        label = "change the origin"
        command = "SetOrigin"
        argument_is_array="1"
        default_values='0 0 0'
        number_of_elements="3">
        <Documentation>
          subtracts off the value.
        </Documentation>
      </DoubleVectorProperty>

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

      <IntVectorProperty name="LimitToMaxNumberOfPoints"
        command="SetLimitToMaxNumberOfPoints"
        number_of_elements="1"
        default_values="0" >
        <BooleanDomain name="bool"/>
      </IntVectorProperty>

      <IdTypeVectorProperty name="MaxNumberOfPoints"
        command="SetMaxNumberOfPoints"
        number_of_elements="1"
        default_values="1000000" >
      </IdTypeVectorProperty>


      <IdTypeVectorProperty name="GetMaxNumberOfPoints"
        command="GetMaxNumberOfPoints"
        repeat_command="0"
        number_of_elements="1"
        information_only="1"
        default_values="0">
        <SimpleIdTypeInformationHelper/>
      </IdTypeVectorProperty>

      <IntVectorProperty
        name="PieceIndex"
        command="SetPieceIndex"
        number_of_elements="1"
        label="Piece Index"
        default_values="-1">
        <Documentation>
          The index of the piece to set/get values for.
        </Documentation>
      </IntVectorProperty>

      <DoubleVectorProperty
        name="Transform"
        label="Piece Transformation"
        command="SetTransform"
        argument_is_array="1"
        default_values='1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1'
        number_of_elements="16">
        <Documentation>
          Transformation matrix for transforming points after they are read in.  Row major.
        </Documentation>
      </DoubleVectorProperty>

      <IntVectorProperty name="TransformOutputData"
        command="SetTransformOutputData"
        number_of_elements="1"
        default_values="0" >
        <BooleanDomain name="bool"/>
      </IntVectorProperty>

      <IntVectorProperty name="LimitReadToBounds"
        command="SetLimitReadToBounds"
        number_of_elements="1"
        default_values="0" >
        <BooleanDomain name="bool"/>
      </IntVectorProperty>

      <DoubleVectorProperty
        name="ReadBounds"
        command="SetReadBounds"
        number_of_elements="6"
        default_values="0.0 0.0 0.0 0.0 0.0 0.0" >
      </DoubleVectorProperty>

      <DoubleVectorProperty
        name="DataBounds"
        command="GetDataBounds"
        information_only="1">
        <SimpleDoubleInformationHelper/>
      </DoubleVectorProperty>

      <IntVectorProperty name="ConvertFromLatLongToXYZ"
        command="SetConvertFromLatLongToXYZ"
        number_of_elements="1"
        default_values="0" >
        <BooleanDomain name="bool"/>
      </IntVectorProperty>

      <IntVectorProperty name="OutputDataTypeIsDouble"
        command="SetOutputDataTypeIsDouble"
        number_of_elements="1"
        default_values="0" >
        <BooleanDomain name="bool"/>
      </IntVectorProperty>

      <IntVectorProperty name="RequestedPiecesForRead"
        command="AddRequestedPieceForRead"
        clean_command="RemoveAllRequestedReadPieces"
        repeat_command="1"
        number_of_elements_per_command="2">
      </IntVectorProperty>

      <IntVectorProperty name="KnownNumberOfPieces"
        command="GetKnownNumberOfPieces"
        repeat_command="0"
        number_of_elements="1"
        information_only="1"
        default_values="0">
        <SimpleIntInformationHelper/>
      </IntVectorProperty>
      <IdTypeVectorProperty name="RealNumberOfOutputPoints"
        command="GetRealNumberOfOutputPoints"
        repeat_command="0"
        number_of_elements="1"
        information_only="1"
        default_values="0">
        <SimpleIdTypeInformationHelper/>
      </IdTypeVectorProperty>
      <IdTypeVectorProperty name="NumberOfPointsInPiece"
        command="GetNumberOfPointsInPiece"
        repeat_command="0"
        number_of_elements="1"
        information_only="1"
        default_values="0">
        <SimpleIdTypeInformationHelper/>
      </IdTypeVectorProperty>
      <IdTypeVectorProperty name="TotalNumberOfPoints"
        command="GetTotalNumberOfPoints"
        repeat_command="0"
        number_of_elements="1"
        information_only="1"
        default_values="0">
        <SimpleIdTypeInformationHelper/>
      </IdTypeVectorProperty>

      <IntVectorProperty
        name="AbortExecute"
        command="SetAbortExecute"
        number_of_elements="1"
        default_values="0" >
        <BooleanDomain name="bool"/>
        <Documentation>
          vtkAlgorithm::SetAbortExecute()
        </Documentation>
      </IntVectorProperty>

      <Property
        name="ClearTransform"
        command="ClearTransform">
      </Property>
      <Hints>
        <ReaderFactory extensions="pts xyz"
                       file_description="LIDAR Files" />
      </Hints>
    </SourceProxy>

  </ProxyGroup>
  <ProxyGroup name="filters">
    <SourceProxy name="PolyDataStatsFilter" class="vtkPolyDataStatsFilter" label="PolyDataStats">
     <Documentation
        long_help="Calculate the statistics of a PolyDataSet."
        short_help="Get PolyDataSet Statistics.">
     </Documentation>
     <InputProperty
        name="Input"
        command="SetInputConnection">
           <ProxyGroupDomain name="groups">
             <Group name="sources"/>
             <Group name="filters"/>
           </ProxyGroupDomain>
           <DataTypeDomain name="input_type">
             <DataType value="vtkPolyData"/>
           </DataTypeDomain>
      </InputProperty>

      <DoubleVectorProperty
         name="AreaStats"
         label="Area Statistics"
         command="GetAreaStats"
         number_of_elements="3"
         information_only="1"
         default_values="0.0 0.0 0.0" >
        <SimpleDoubleInformationHelper/>
        <Documentation>
          Area Result of the PolyDataSet Statistic calculation.
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="GeometryBounds"
         label="Geometry Bounds"
         command="GetGeometryBounds"
         number_of_elements="6"
         information_only="1"
         default_values="0.0 0.0 0.0 0.0 0.0 0.0" >
        <SimpleDoubleInformationHelper/>
        <Documentation>
          Geometric Bounds Result of the PolyDataSet Statistic calculation.
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="PolygonalSideStats"
         label="Polygonal Side Statistics"
         command="GetPolygonalSideStats"
         number_of_elements="3"
         information_only="1"
         default_values="0.0 0.0 0.0" >
        <SimpleDoubleInformationHelper/>
        <Documentation>
          Polygonal Side Result of the PolyDataSet Statistic calculation.
        </Documentation>
      </DoubleVectorProperty>

      <IdTypeVectorProperty
        name="NumberOfPoints"
        label="Number of Points"
        command="GetNumberOfPoints"
        number_of_elements="1"
        information_only="1"
        default_values="0">
        <SimpleIdTypeInformationHelper/>
      </IdTypeVectorProperty>

      <IdTypeVectorProperty
        name="NumberOfLines"
        label="Number of Lines"
        command="GetNumberOfLines"
        number_of_elements="1"
        information_only="1"
        default_values="0">
        <SimpleIdTypeInformationHelper/>
      </IdTypeVectorProperty>

      <IdTypeVectorProperty
        name="NumberOfPolygons"
        label="Number of Polygons"
        command="GetNumberOfPolygons"
        information_only="1"
        number_of_elements="1"
        default_values="0">
        <SimpleIdTypeInformationHelper/>
      </IdTypeVectorProperty>

      <DoubleVectorProperty
        name="TotalSurfaceArea"
        label="Total Surface Area"
        command="GetTotalSurfaceArea"
        information_only="1"
        number_of_elements="1"
        default_values="0.0">
        <SimpleDoubleInformationHelper/>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="Translation"
         label="Translation"
         command="SetTranslation"
         number_of_elements="3"
         default_values="0.0 0.0 0.0" >
          <Documentation>
           Defines the translation from data space to world space.
         </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="Orientation"
         label="Orientation"
         command="SetOrientation"
         number_of_elements="3"
         default_values="0.0 0.0 0.0" >
          <Documentation>
           Defines the orientation from data space to world space.
         </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="Scale"
         label="Scale"
         command="SetScale"
         number_of_elements="3"
         default_values="1.0 1.0 1.0" >
          <Documentation>
           Defines the scale from data space to world space.
         </Documentation>
      </DoubleVectorProperty>
      <!-- End ClosestPointFilter -->
   </SourceProxy>
   <!-- ==================================================================== -->
   <SourceProxy name="TerrainExtract" class="vtkTerrainExtractionFilter"
      label="Terrain Extraction Filter">

      <InputProperty
         name="Input"
         command="SetInputConnection"
         clean_command="RemoveAllInputs">
        <ProxyGroupDomain name="groups">
          <Group name="sources"/>
          <Group name="filters"/>
        </ProxyGroupDomain>
        <DataTypeDomain name="input_type">
          <DataType value="vtkPolyData"/>
        </DataTypeDomain>
        <Documentation>
          Set the input to the Terrain Extraction filter.
        </Documentation>
      </InputProperty>

      <StringVectorProperty
        name="OutputPath"
        command="SetOutputPath"
        animateable="0"
        number_of_elements="1">
        <FileListDomain name="files"/>
        <Documentation>
          Directory for temporary files.
        </Documentation>
      </StringVectorProperty>

      <StringVectorProperty
        name="OutputBaseFileName"
        command="SetOutputBaseFileName"
        animateable="0"
        number_of_elements="1">
        <FileListDomain name="files"/>
        <Documentation>
          Base filename for output (without extension).
        </Documentation>
      </StringVectorProperty>

      <IntVectorProperty
        name="OutputPtsFormat"
        command="SetOutputPtsFormat"
         number_of_elements="1"
         default_values="0" >
        <EnumerationDomain name="enum">
          <Entry value="0" text="XML PolyData"/>
          <Entry value="1" text="ASCII Pts"/>
          <Entry value="2" text="Binary Pts"/>
        </EnumerationDomain>
        <Documentation>
          Controls the which of the three output formats to use.
        </Documentation>
      </IntVectorProperty>

      <IntVectorProperty
         name="ExecuteMode"
         command="SetExecuteMode"
         number_of_elements="1"
         default_values="0" >
        <EnumerationDomain name="enum">
          <Entry value="0" text="Setup Refine"/>
          <Entry value="1" text="Execute Refine"/>
          <Entry value="2" text="Execute Extract"/>
        </EnumerationDomain>
        <Documentation>
          Controls the which of the two modes/steps to execute.
        </Documentation>
      </IntVectorProperty>

      <IntVectorProperty
        name="NumberOfLevels"
        repeat_command="0"
        label="Number Of Levels"
        command="GetNumberOfLevels"
        number_of_elements="1"
        information_only="1"
        default_values="0" >
        <SimpleIntInformationHelper/>
      </IntVectorProperty>

      <IntVectorProperty
         name="MinExtractLevel"
         label="Minimum Extract Level"
         command="SetMinExtractLevel"
         number_of_elements="1"
         default_values="0" >
        <IntRangeDomain name="range" min="0" />
        <Documentation>
          The minimum extraction level.
        </Documentation>
      </IntVectorProperty>

      <IntVectorProperty
         name="MaxExtractLevel"
         label="Maximum Extract Level"
         command="SetMaxExtractLevel"
         number_of_elements="1"
         default_values="1" >
        <DoubleRangeDomain name="range" min="0"/>
        <Documentation>
          The maximum extraction level.
        </Documentation>
      </IntVectorProperty>

      <IntVectorProperty
        name="AbortExecute"
        command="SetAbortExecute"
        number_of_elements="1"
        default_values="0" >
        <BooleanDomain name="bool"/>
        <Documentation>
          vtkAlgorithm::SetAbortExecute()
        </Documentation>
      </IntVectorProperty>

      <IntVectorProperty
         name="RefineVisualizationOutputMode"
         label="Refine Visualization Output Mode"
         command="SetRefineVisualizationOutputMode"
         number_of_elements="1"
         default_values="1" >
        <EnumerationDomain name="enum">
          <Entry value="0" text="Disk"/>
          <Entry value="1" text="Output Port"/>
          <Entry value="2" text="Off"/>
        </EnumerationDomain>
        <Documentation>
          Control if (and how) refine visualization output is generated.
        </Documentation>
      </IntVectorProperty>

      <IntVectorProperty
         name="WriteExtractionResultsToDisk"
         label="Write Extraction Results to Disk"
         command="SetWriteExtractionResultsToDisk"
         number_of_elements="1"
         default_values="0" >
        <BooleanDomain name="bool"/>
        <Documentation>
          Indicate whether to write Extract phase results to disk.
        </Documentation>
      </IntVectorProperty>

      <IntVectorProperty
         name="CacheRefineResultsToDisk"
         label="Cache Refine Results To Disk"
         command="SetCacheRefineResultsToDisk"
         number_of_elements="1"
         default_values="0" >
        <BooleanDomain name="bool"/>
        <Documentation>
          Indicate whether to cache Refine phase results to disk.
        </Documentation>
      </IntVectorProperty>

      <IntVectorProperty
         name="ComputeDataTransform"
         label="Compute the transform during Setup Refine Stage"
         command="SetComputeDataTransform"
         number_of_elements="1"
         default_values="1">
        <Documentation>
          Indicate whether to compute the internal transform during Setup Refine stage
        </Documentation>
      </IntVectorProperty>

      <DoubleVectorProperty
        name="SetDataTransform"
        label="Set Data Transform"
        command="SetDataTransform"
        argument_is_array="1"
        default_values='1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1'
        number_of_elements="16">
        <Documentation>
          Transformation matrix to apply to points before and after (inverse) extraction calculation
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
           name="GetDataTransform"
           label="Get Data Transform"
           command="GetDataTransform"
           number_of_elements="16"
           information_only="1"
           default_values='1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1'>
        <SimpleDoubleInformationHelper/>
      </DoubleVectorProperty>

      <IntVectorProperty
         name="SetComputeInitialScale"
         label="Compute The Initial Scale During Setup Refine Stage"
         command="SetComputeInitialScale"
         number_of_elements="1"
         default_values="0">
        <Documentation>
          Indicate whether to compute the initial scale during Setup Refine stage
        </Documentation>
      </IntVectorProperty>

      <DoubleVectorProperty name="GetComputeInitialScale"
       label="GetComputeInitialScale"
           command="GetComputeInitialScale"
           number_of_elements="1"
           information_only="1"
           default_values="0">
        <SimpleDoubleInformationHelper/>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="SetInitialScale"
         label="Resolution of the points in the extraction grid"
         command="SetInitialScale"
         number_of_elements="1"
         default_values="0">
        <Documentation>
          Resolution of the points in the extraction grid
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="SetMaskSize"
         label="Mask Size of the refine stage"
         command="SetMaskSize"
         number_of_elements="1"
         default_values="1">
        <DoubleRangeDomain name="range" min="0" max="1" />
        <Documentation>
          Resolution of the mask size
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty name="GetInitialScale"
      command="GetInitialScale"
          number_of_elements="1"
          information_only="1"
          default_values="0">
        <SimpleDoubleInformationHelper/>
      </DoubleVectorProperty>

      <DoubleVectorProperty
           name="InputBounds"
           label="Input Bounds"
           command="GetInputBounds"
           number_of_elements="6"
           information_only="1"
           default_values="0.0 0.0 0.0 0.0 0.0 0.0" >
        <SimpleDoubleInformationHelper/>
      </DoubleVectorProperty>

      <StringVectorProperty
          name="IntermediateResultsPath"
          command="SetIntermediateResultsPath"
          animateable="0"
          number_of_elements="1">
        <FileListDomain name="files"/>
        <Documentation>
          Directory for refine files.
        </Documentation>
      </StringVectorProperty>

      <IntVectorProperty
         name="DetermineIntensityAndColor"
         label="Determine Intensity and Color for Output from Input"
         command="SetDetermineIntensityAndColor"
         number_of_elements="1"
         default_values="1" >
        <BooleanDomain name="bool"/>
        <Documentation>
          Indicate whether to use memory and time resources to find nearest point in input to extract color and intensity info (if present).
        </Documentation>
      </IntVectorProperty>

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

   <!-- ==================================================================== -->
    <SourceProxy name="LIDARElevationFilter" class="vtkLIDARElevationFilter" label="LIDARElevation">
      <Documentation
         long_help="Create point attribute array by projecting points onto an elevation vector."
         short_help="Create a point array representing elevation.">
        The Elevation filter generates point scalar values for an input dataset along a specified direction vector.

        The Input menu allows the user to select the data set to which this filter will be applied. Use the Scalar range entry boxes to specify the minimum and maximum scalar value to be generated. The Low Point and High Point define a line onto which each point of the data set is projected. The minimum scalar value is associated with the Low Point, and the maximum scalar value is associated with the High Point. The scalar value for each point in the data set is determined by the location along the line to which that point projects.
      </Documentation>
      <InputProperty
         name="Input"
         command="SetInputConnection">
        <ProxyGroupDomain name="groups">
          <Group name="sources"/>
          <Group name="filters"/>
        </ProxyGroupDomain>
        <DataTypeDomain name="input_type">
          <DataType value="vtkDataSet"/>
        </DataTypeDomain>
        <Documentation>
          This property specifies the input dataset to the Elevation filter.
        </Documentation>
      </InputProperty>

      <DoubleVectorProperty
        name="Transform"
        label="Transformation"
        command="SetTransform"
        argument_is_array="1"
        default_values='1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1'
        number_of_elements="16">
        <Documentation>
          Transformation matrix to apply to points before assigning a scalar value.
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="ScalarRange"
         command="SetScalarRange"
         number_of_elements="2"
         default_values="0 1" >
        <DoubleRangeDomain name="range"/>
        <Documentation>
          This property determines the range into which scalars will be mapped.
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="LowPoint"
         label="Low Point"
         command="SetLowPoint"
         number_of_elements="3"
         animateable="1"
         default_values="0 0 0" >
        <BoundsDomain name="range" mode="normal" default_mode="min" >
          <RequiredProperties>
            <Property name="Input" function="Input" />
          </RequiredProperties>
        </BoundsDomain>
        <Documentation>
          This property defines one end of the direction vector (small scalar values).
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="HighPoint"
         label="High Point"
         command="SetHighPoint"
         number_of_elements="3"
         animateable="1"
         default_values="0 0 1" >
        <BoundsDomain name="range" mode="normal" default_mode="max" >
          <RequiredProperties>
            <Property name="Input" function="Input" />
          </RequiredProperties>
        </BoundsDomain>
        <Documentation>
          This property defines the other end of the direction vector (large scalar values).
        </Documentation>
      </DoubleVectorProperty>

      <IntVectorProperty
        name="CreateElevation"
        command="SetCreateElevation"
        number_of_elements="1"
        default_values="1" >
        <BooleanDomain name="bool"/>
      </IntVectorProperty>

      <PropertyGroup panel_widget="Line" label="Elevation Widget">
        <Property function="Point1WorldPosition" name="LowPoint" />
        <Property function="Point2WorldPosition" name="HighPoint" />
      </PropertyGroup>
      <Hints>
      </Hints>
      <!-- End LIDARElevationFilter -->
    </SourceProxy>
  </ProxyGroup>

<!-- ====================================================================== -->
  <ProxyGroup name="3d_widget_representations">
    <Proxy
      class="vtkConeRepresentation"
      name="ConeRepresentation">
      <IntVectorProperty
        animateable="1"
        command="SetVisibility"
        default_values="0"
        name="Visibility"
        number_of_elements="1">
        <BooleanDomain name="bool" />
      </IntVectorProperty>
      <DoubleVectorProperty
        argument_is_array="1"
        command="SetBottomPoint"
        default_values="0 0 0"
        information_property="BottomPointInfo"
        name="BottomPoint"
        number_of_elements="3">
        <DoubleRangeDomain name="range" />
      </DoubleVectorProperty>
      <DoubleVectorProperty
        command="GetBottomPoint"
        information_only="1"
        name="BottomPointInfo">
        <SimpleDoubleInformationHelper />
      </DoubleVectorProperty>
      <DoubleVectorProperty
        argument_is_array="1"
        command="SetTopPoint"
        default_values="0 0 0"
        information_property="TopPointInfo"
        name="TopPoint"
        number_of_elements="3">
        <DoubleRangeDomain name="range" />
      </DoubleVectorProperty>
      <DoubleVectorProperty
        command="GetTopPoint"
        information_only="1"
        name="TopPointInfo">
        <SimpleDoubleInformationHelper />
      </DoubleVectorProperty>
      <DoubleVectorProperty
        command="SetBottomRadius"
        default_values="1"
        information_property="BottomRadiusInfo"
        name="BottomRadius"
        number_of_elements="1">
        <DoubleRangeDomain name="range" />
      </DoubleVectorProperty>
      <DoubleVectorProperty
        command="GetBottomRadius"
        information_only="1"
        name="BottomRadiusInfo">
        <SimpleDoubleInformationHelper />
      </DoubleVectorProperty>
      <DoubleVectorProperty
        command="SetTopRadius"
        default_values="0.5"
        information_property="TopRadiusInfo"
        name="TopRadius"
        number_of_elements="1">
        <DoubleRangeDomain name="range" />
      </DoubleVectorProperty>
      <DoubleVectorProperty
        command="GetTopRadius"
        information_only="1"
        name="TopRadiusInfo">
        <SimpleDoubleInformationHelper />
      </DoubleVectorProperty>
      <IntVectorProperty
        command="SetCylindrical"
        information_property="CylindricalInfo"
        default_values="0"
        name="Cylindrical"
        >
        <BooleanDomain name="bool" />
      </IntVectorProperty>
      <IntVectorProperty
        name="CylindricalInfo"
        command="GetCylindrical"
        default_values="0"
        number_of_elements="1"
        information_only="1">
        <SimpleIntInformationHelper />
        <BooleanDomain name="bool"/>
      </IntVectorProperty>
    </Proxy>
  </ProxyGroup>

<!-- ====================================================================== -->
  <ProxyGroup name="3d_widgets">

    <Proxy
      base_proxygroup="3d_widgets"
      base_proxyname="WidgetBase"
      class="vtkConeWidget"
      name="ConeWidget">
    </Proxy>

  </ProxyGroup>

<!-- ====================================================================== -->
  <ProxyGroup name="implicit_functions">

    <Proxy
      name="ImplicitConeFrustum"
      class="vtkImplicitConeFrustum"
      >
      <DoubleVectorProperty
        name="BottomPoint"
        command="SetBottomPoint"
        default_values="0 0 0"
        number_of_elements="3">
        <DoubleRangeDomain name="range"/>
      </DoubleVectorProperty>
      <DoubleVectorProperty
        name="TopPoint"
        command="SetTopPoint"
        default_values="0 0 1"
        number_of_elements="3">
        <DoubleRangeDomain name="range"/>
      </DoubleVectorProperty>
      <DoubleVectorProperty
        name="BottomRadius"
        command="SetBottomRadius"
        default_values="0.5"
        number_of_elements="1">
        <DoubleRangeDomain name="range" min="0.0"/>
      </DoubleVectorProperty>
      <DoubleVectorProperty
        name="TopRadius"
        command="SetTopRadius"
        default_values="0.1"
        number_of_elements="1">
        <DoubleRangeDomain name="range" min="0.0"/>
      </DoubleVectorProperty>
      <PropertyGroup label="Cone Frustum Parameters" panel_widget="InteractiveCone">
        <Property function="BottomPoint" name="BottomPoint" />
        <Property function="BottomRadius" name="BottomRadius" />
        <Property function="TopPoint" name="TopPoint" />
        <Property function="TopRadius" name="TopRadius" />
      </PropertyGroup>
    </Proxy>

  </ProxyGroup>

<!-- ====================================================================== -->
  <ProxyGroup name="representations">
    <RepresentationProxy name="SMTKResourceRepresentation"
                         class="vtkSMTKResourceRepresentation"
                         processes="client|renderserver|dataserver">
      <Documentation>
        This specialized representation uses extended functionality of the
        composite mapper to better integrate with SMTKModel. Handles selection
        of SMTK components.
      </Documentation>
      <InputProperty command="SetInputConnection"
                     name="Input">
        <DataTypeDomain name="input_type">
          <DataType value="vtkMultiBlockDataSet"/>
        </DataTypeDomain>
          <Documentation>SMTK Resource input.</Documentation>
      </InputProperty>

      <IntVectorProperty command="SetVisibility"
                         default_values="1"
                         name="Visibility"
                         number_of_elements="1">
        <BooleanDomain name="bool" />
        <Documentation>Get/Set the visibility of the
        representation.</Documentation>
      </IntVectorProperty>
      <StringVectorProperty command="SetInputArrayToProcess"
                            element_types="0 0 0 0 2"
                            name="ColorArrayName"
                            no_custom_default="1"
                            number_of_elements="5">
        <Documentation>
          Set the array to color with. One must specify the field association and
          the array name of the array. If the array is missing, scalar coloring will
          automatically be disabled.
        </Documentation>
        <RepresentedArrayListDomain name="array_list">
          <RequiredProperties>
            <Property function="Input" name="Input" />
          </RequiredProperties>
        </RepresentedArrayListDomain>
      </StringVectorProperty>
      <StringVectorProperty name="Assembly"
        command="SetActiveAssembly"
        number_of_elements="1"
        default_values="Hierarchy"
        panel_visibility="multiblock_inspector">
        <DataAssemblyListDomain name="data_assembly">
          <RequiredProperties>
            <Property function="Input" name="Input" />
          </RequiredProperties>
        </DataAssemblyListDomain>
        <Documentation>
          Select which assembly is used to specify selectors
          to choose block visibilities, block colors, etc. for composite datasets.
        </Documentation>
      </StringVectorProperty>
      <ProxyProperty command="SetLookupTable"
                     name="LookupTable">
        <Documentation>Set the lookup-table to use to map data array to colors.
        Lookuptable is only used with MapScalars to ON.</Documentation>
        <ProxyGroupDomain name="groups">
          <Group name="lookup_tables" />
        </ProxyGroupDomain>
      </ProxyProperty>
      <IntVectorProperty command="SetMapScalars"
                         default_values="1"
                         name="MapScalars"
                         number_of_elements="1">
        <BooleanDomain name="bool" />
        <Documentation>When set to True, LookupTable will always be
        used for scalar mapping. Otherwise, when up to 4 component
        scalars are present, the components are clamped to a valid
        color interval (0-255 for an integral type and 0.0-1.0 for a
        floating point type) and then directly used as
        color.</Documentation>
      </IntVectorProperty>
      <IntVectorProperty command="SetInterpolateScalarsBeforeMapping"
                         default_values="1"
                         name="InterpolateScalarsBeforeMapping"
                         number_of_elements="1">
        <BooleanDomain name="bool" />
        <Documentation>When set to true (default), texture coordinates
        are sent to and interpolated by the graphics card. This is
        equivalent with interpolating scalars and then mapping them to
        obtain colors between points. Otherwise, colors are sent to
        and interpolated by the graphics card.
        </Documentation>
      </IntVectorProperty>
      <DoubleVectorProperty command="SetLineWidth"
                            default_values="1.0"
                            name="LineWidth"
                            number_of_elements="1">
        <DoubleRangeDomain min="0"
                           name="range" />
      </DoubleVectorProperty>
      <DoubleVectorProperty command="SetLineColor"
                            default_values="0.0 0.0 0.5"
                            name="LineColor"
                            number_of_elements="3"
                            panel_widget="color_selector_with_palette">
        <DoubleRangeDomain max="1 1 1"
                           min="0 0 0"
                           name="range" />
      </DoubleVectorProperty>
      <IntVectorProperty command="SetEdgeVisibility"
                         default_values="0"
                         name="EdgeVisibility"
                         number_of_elements="1">
        <BooleanDomain name="bool" />
        <Documentation>On some renderers it is possible to render the
        edges of geometric primitives separately from the interior.
        </Documentation>
      </IntVectorProperty>
      <IntVectorProperty command="SetRenderLinesAsTubes"
                         default_values="0"
                         name="RenderLinesAsTubes"
                         number_of_elements="1">
        <BooleanDomain name="bool" />
        <Documentation>The width of the line in pixels is controlled
        by the LineWidth attribute. May not be supported on every
        platform and the implementation may be half tubes, or
        something only tube like in appearance.
        </Documentation>
      </IntVectorProperty>
      <IntVectorProperty command="SetRenderPointsAsSpheres"
                         default_values="0"
                         name="RenderPointsAsSpheres"
                         number_of_elements="1">
        <BooleanDomain name="bool" />
        <Documentation>The size of the sphere in pixels is controlled
        by the PointSize attribute. Note that half spheres may be
        rendered instead of spheres.
        </Documentation>
      </IntVectorProperty>
      <IntVectorProperty command="SetVertexVisibility"
                         default_values="0"
                         name="VertexVisibility"
                         number_of_elements="1">
        <BooleanDomain name="bool" />
      </IntVectorProperty>
      <DoubleVectorProperty command="SetPointSize"
                            default_values="6.0"
                            name="PointSize"
                            number_of_elements="1">
        <DoubleRangeDomain min="0"
                           name="range" />
      </DoubleVectorProperty>
      <StringVectorProperty command="SetRepresentation"
                            default_values="Surface"
                            name="Representation"
                            panel_widget="display_representation_selector"
                            number_of_elements="1">
        <StringListDomain name="string_list">
          <String value="Points" />
          <String value="Wireframe" />
          <String value="Surface" />
          <String value="Surface With Edges" />
        </StringListDomain>
      </StringVectorProperty>
      <IntVectorProperty name="SelectionRenderStyle"
        command="SetSelectionRenderStyle"
        default_values="0"
        panel_widget="never"
        number_of_elements="1">
      </IntVectorProperty>
      <StringVectorProperty command="SetColorBy"
                            default_values="Entity"
                            name="ColorBy"
                            number_of_elements="1">
        <StringListDomain name="string_list">
          <String value="Entity" />
          <String value="Volume" />
          <String value="Field" />
        </StringListDomain>
        <Documentation>
          components can be colored in different ways:
          using the color defined on the entity (Entity); or
          using the color defined by the volume bounded by the entity (Volume); or
          mapping field values (scalars) defined on points or cells through a color lookup table (Field),
        </Documentation>
      </StringVectorProperty>
      <DoubleVectorProperty command="SetOpacity"
                            default_values="0.999"
                            name="Opacity"
                            number_of_elements="1">
        <DoubleRangeDomain max="0.999"
                           min="0"
                           name="range" />
      </DoubleVectorProperty>
      <DoubleVectorProperty command="SetPosition"
                            default_values="0 0 0"
                            label="Translation"
                            name="Position"
                            number_of_elements="3">
        <DoubleRangeDomain name="range" />
      </DoubleVectorProperty>
      <DoubleVectorProperty command="SetScale"
                            default_values="1 1 1"
                            name="Scale"
                            number_of_elements="3">
        <DoubleRangeDomain name="range" />
      </DoubleVectorProperty>
      <DoubleVectorProperty command="SetOrientation"
                            default_values="0 0 0"
                            name="Orientation"
                            number_of_elements="3">
        <DoubleRangeDomain name="range" />
      </DoubleVectorProperty>
      <DoubleVectorProperty command="SetOrigin"
                            default_values="0 0 0"
                            name="Origin"
                            number_of_elements="3">
        <DoubleRangeDomain name="range" />
      </DoubleVectorProperty>
      <DoubleVectorProperty argument_is_array="1"
                            command="SetUserTransform"
                            default_values="1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1"
                            name="UserTransform"
                            number_of_elements="16"
                            panel_visibility="never">
        <Documentation>
          In addition to the instance variables such as position and
          orientation, you can add an additional transformation for your own
          use. This transformation is concatenated with the actor's internal
          transformation, which you implicitly create through the use of
          Position, Origin, Orientation. The value is 4x4 matrix for the linear
          tranform to use.
        </Documentation>
      </DoubleVectorProperty>
      <DoubleVectorProperty command="SetSpecular"
                            default_values="0.0"
                            name="Specular"
                            number_of_elements="1">
        <DoubleRangeDomain max="1"
                           min="0"
                           name="range" />
      </DoubleVectorProperty>
      <DoubleVectorProperty command="SetSpecularPower"
                            default_values="100.0"
                            name="SpecularPower"
                            number_of_elements="1">
        <DoubleRangeDomain max="100"
                           min="0"
                           name="range" />
      </DoubleVectorProperty>
      <DoubleVectorProperty command="SetAmbient"
                            default_values="0.0"
                            name="Ambient"
                            number_of_elements="1">
        <DoubleRangeDomain max="1"
                           min="0"
                           name="range" />
      </DoubleVectorProperty>
      <DoubleVectorProperty command="SetDiffuse"
                            default_values="1.0"
                            name="Diffuse"
                            number_of_elements="1">
        <DoubleRangeDomain max="1"
                           min="0"
                           name="range" />
      </DoubleVectorProperty>
      <DoubleVectorProperty command="SetDefaultEdgeColor"
                            default_values="1.0 1.0 0.0"
                            name="DefaultEdgeColor"
                            number_of_elements="3"
                            panel_visibility="never">
        <DoubleRangeDomain max="1 1 1"
                           min="0 0 0"
                           name="range" />
        <Hints>
          <PropertyLink group="settings" proxy="ColorPalette" property="EdgeColor" unlink_if_modified="1" />
        </Hints>
      </DoubleVectorProperty>
      <DoubleVectorProperty command="SetDefaultFaceColor"
                            default_values="1.0 1.0 0.0"
                            name="DefaultFaceColor"
                            number_of_elements="3"
                            panel_visibility="never">
        <DoubleRangeDomain max="1 1 1"
                           min="0 0 0"
                           name="range" />
        <Hints>
          <PropertyLink group="settings" proxy="ColorPalette" property="DefaultFaceColor" unlink_if_modified="1" />
        </Hints>
      </DoubleVectorProperty>
      <DoubleVectorProperty command="SetSelectionColor"
                            default_values="1.0 1.0 0.0"
                            name="SelectionColor"
                            number_of_elements="3"
                            panel_visibility="never">
        <DoubleRangeDomain max="1 1 1"
                           min="0 0 0"
                           name="range" />
        <Hints>
          <PropertyLink group="settings" proxy="ColorPalette" property="SelectionColor" unlink_if_modified="1" />
        </Hints>
      </DoubleVectorProperty>
      <DoubleVectorProperty command="SetHoverColor"
                            default_values="0.0 1.0 1.0"
                            name="HoverColor"
                            number_of_elements="3"
                            panel_visibility="never">
        <DoubleRangeDomain max="1 1 1"
                           min="0 0 0"
                           name="range" />
        <Hints>
          <PropertyLink group="settings" proxy="ColorPalette" property="SMTKHighlightColor" unlink_if_modified="1" />
        </Hints>
      </DoubleVectorProperty>
      <IntVectorProperty command="SetPickable"
                         default_values="1"
                         name="Pickable"
                         number_of_elements="1">
        <Hints>
          <NoDefault />
        </Hints>
        <BooleanDomain name="bool" />
      </IntVectorProperty>
      <ProxyProperty command="SetTexture"
                     name="Texture"
                     panel_widget="texture_selector"
                     null_on_empty="1">
        <ProxyGroupDomain name="groups">
          <Group name="textures" />
        </ProxyGroupDomain>
      </ProxyProperty>
      <DoubleVectorProperty command="SetSelectionPointSize"
                            default_values="8.0"
                            name="SelectionPointSize"
                            number_of_elements="1">
        <DoubleRangeDomain min="0"
                           name="range" />
      </DoubleVectorProperty>
      <DoubleVectorProperty command="SetSelectionLineWidth"
                            default_values="4.0"
                            name="SelectionLineWidth"
                            number_of_elements="1">
        <DoubleRangeDomain min="0"
                           name="range" />
      </DoubleVectorProperty>
      <IntVectorProperty name="BlockVisibility"
                         command="SetBlockVisibility"
                         clean_command="RemoveBlockVisibilities"
                         number_of_elements_per_command="2"
                         repeatable="1">
        <Documentation>
          Set the visibility for a block. Value is (property, visibility).
        </Documentation>
      </IntVectorProperty>
      <DoubleMapProperty name="BlockColor"
                         command="SetBlockColor"
                         clean_command="RemoveBlockColors"
                         number_of_components="3"
                         repeatable="1">
        <Documentation>
          Set the color for a block. Value is (index, r, g, b).
        </Documentation>
      </DoubleMapProperty>
      <DoubleMapProperty name="BlockOpacity"
                         command="SetBlockOpacity"
                         clean_command="RemoveBlockOpacities"
                         number_of_components="1"
                         repeatable="1">
        <Documentation>
          Set the opacity for a block. Value is (index, alpha).
        </Documentation>
      </DoubleMapProperty>
      <IntVectorProperty name="InstanceVisibility"
                         command="SetInstanceVisibility"
                         clean_command="RemoveInstanceVisibilities"
                         number_of_elements_per_command="2"
                         repeatable="1">
        <Documentation>
          Set the visibility for an instance point block (glyph). Value is
          (property, visibility).
        </Documentation>
      </IntVectorProperty>
      <DoubleMapProperty name="InstanceColor"
                         command="SetInstanceColor"
                         clean_command="RemoveInstanceColors"
                         number_of_components="3"
                         repeatable="1">
        <Documentation>
          Set the color for an instance point block (glyph). Value is (index, r, g, b).
        </Documentation>
      </DoubleMapProperty>
      <IntVectorProperty command="SetUseInternalAttributes"
                         default_values="0"
                         name="UseInternalAttributes"
                         number_of_elements="1">
        <BooleanDomain name="bool" />
        <Documentation>Use block attributes set through proxy properties.
        </Documentation>
      </IntVectorProperty>
      <IntVectorProperty
        name="EntitiesActorPickIdInfo"
        command="GetEntitiesActorPickId"
        information_only="1">
      </IntVectorProperty>
      <IntVectorProperty
        name="GlyphEntitiesActorPickIdInfo"
        command="GetGlyphEntitiesActorPickId"
        information_only="1">
      </IntVectorProperty>
      <IntVectorProperty
        name="SelectedEntitiesActorPickIdInfo"
        command="GetSelectedEntitiesActorPickId"
        information_only="1">
      </IntVectorProperty>
      <IntVectorProperty
        name="SelectedGlyphEntitiesActorPickIdInfo"
        command="GetSelectedGlyphEntitiesActorPickId"
        information_only="1">
      </IntVectorProperty>
    <!-- End of SMTKResourceRepresentation -->
    </RepresentationProxy>

    <!-- ================================================================== -->
    <RepresentationProxy class="vtkSMTKSelectionRepresentation"
                         name="SMTKSelectionRepresentation"
                         processes="client|renderserver|dataserver"
                         si_class="vtkSIProxy">
      <Documentation>Proxy to show a selection as geometry.</Documentation>
      <InputProperty command="SetInputConnection"
                     name="Input">
        <InputArrayDomain name="input_array_any"></InputArrayDomain>
      </InputProperty>
      <Hints>
        <ConnectToPortIndex value="2" />
      </Hints>
      <IntVectorProperty command="SetVisibility"
                         default_values="1"
                         name="Visibility"
                         number_of_elements="1">
        <BooleanDomain name="bool" />
        <Documentation>Get/Set the visibility of the representation.</Documentation>
      </IntVectorProperty>
      <DoubleVectorProperty command="SetColor"
                            default_values="1.0 1.0 0.0"
                            name="Color"
                            number_of_elements="3">
        <DoubleRangeDomain max="1 1 1"
                           min="0 0 0"
                           name="range" />
        <Hints>
          <PropertyLink group="settings" type="ColorPalette" property="SelectionColor" unlink_if_modified="1" />
        </Hints>
      </DoubleVectorProperty>
      <DoubleVectorProperty command="SetLineWidth"
                            default_values="2.0"
                            name="LineWidth"
                            number_of_elements="1">
        <DoubleRangeDomain min="0"
                           name="range" />
      </DoubleVectorProperty>
      <DoubleVectorProperty command="SetPointSize"
                            default_values="5.0"
                            name="PointSize"
                            number_of_elements="1">
        <DoubleRangeDomain min="0"
                           name="range" />
      </DoubleVectorProperty>

      <!-- End of SMTKSelectionRepresentation -->
    </RepresentationProxy>

<!-- ====================================================================== -->
    <SMTKResourceRepresentationProxy name="SMTKResourceCompositeRepresentation"
                                  class="vtkPVCompositeRepresentation"
                                  processes="client|dataserver|renderserver">
      <Documentation>SMTK's default representation. It is a stripped down
      version of PVRepresentationBase (selection is handled internally by
      SMTKResourceRepresentation).</Documentation>

      <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>
      <IntVectorProperty command="SetVisibility"
                         default_values="1"
                         name="Visibility"
                         number_of_elements="1"
                         panel_visibility="never">
        <BooleanDomain name="bool" />
        <Documentation>Set the visibility for this
        representation.</Documentation>
      </IntVectorProperty>
      <IntVectorProperty command="SetForceUseCache"
                         default_values="0"
                         is_internal="1"
                         name="ForceUseCache"
                         number_of_elements="1">
        <BooleanDomain name="bool" />
        <Documentation>Typically UseCache and CacheKey are updated by the View
        and representations cache based on what the view tells it. However in
        some cases we may want to force a representation to cache irrespective
        of the view (e.g. comparative views). In which case these ivars can up
        set. If ForcedCacheKey is true, it overrides UseCache and CacheKey.
        Instead, ForcedCacheKey is used.</Documentation>
      </IntVectorProperty>
      <DoubleVectorProperty command="SetForcedCacheKey"
                            default_values="none"
                            is_internal="1"
                            name="ForcedCacheKey"
                            number_of_elements="1">
        <DoubleRangeDomain name="range" />
        <Documentation>Typically UseCache and CacheKey are updated by the View
        and representations cache based on what the view tells it. However in
        some cases we may want to force a representation to cache irrespective
        of the view (e.g. comparative views). In which case these ivars can up
        set. If ForcedCacheKey is true, it overrides UseCache and CacheKey.
        Instead, ForcedCacheKey is used.</Documentation>
      </DoubleVectorProperty>
      <IntVectorProperty command="SetSelectionVisibility"
                         default_values="1"
                         name="SelectionVisibility"
                         number_of_elements="1"
                         panel_visibility="never">
        <BooleanDomain name="bool" />
        <Documentation>Set the visibility for the selection, if any.</Documentation>
      </IntVectorProperty>
      <RepresentationType subproxy="SMTKResourceRepresentation"
                          subtype="Surface"
                          text="Surface"/>
      <RepresentationType subproxy="SMTKResourceRepresentation"
                          subtype="Points"
                          text="Points" />
      <RepresentationType subproxy="SMTKResourceRepresentation"
                          subtype="Wireframe"
                          text="Wireframe" />
      <RepresentationType subproxy="SMTKResourceRepresentation"
                          subtype="Surface With Edges"
                          text="Surface With Edges" />
      <RepresentationType subproxy="OutlineRepresentation"
                          text="Outline" />
      <StringVectorProperty command="GetRepresentationTypes"
                            information_only="1"
                            name="RepresentationTypesInfo"
                            si_class="vtkSIDataArrayProperty">
        <Documentation>Property that lists the available representation types.
        This is used by the domain for "Representation" to setup the list of
        types available correctly.</Documentation>
      </StringVectorProperty>
      <StringVectorProperty command="SetActiveRepresentation"
                            default_values="Surface"
                            name="Representation"
                            number_of_elements="1"
                            panel_visibility="default"
                            panel_widget="display_representation_selector" >
        <Documentation>Choose the type for the representation.</Documentation>
        <RepresentationTypeDomain name="list">
          <RequiredProperties>
            <Property function="StringList"
                      name="RepresentationTypesInfo" />
            <Property function="Input"
                      name="Input" />
          </RequiredProperties>
        </RepresentationTypeDomain>
      </StringVectorProperty>
      <StringVectorProperty command="SetCellFieldDataArrayName"
                            default_values="vtkOriginalCellIds"
                            name="SelectionCellFieldDataArrayName"
                            number_of_elements="1"
                            panel_visibility="never">
        <ArrayListDomain input_domain_name="input_array_cell"
                         name="array_list">
          <RequiredProperties>
            <Property function="Input" name="Input" />
          </RequiredProperties>
        </ArrayListDomain>
      </StringVectorProperty>
      <StringVectorProperty command="SetPointFieldDataArrayName"
                            default_values="vtkOriginalPointIds"
                            name="SelectionPointFieldDataArrayName"
                            number_of_elements="1"
                            panel_visibility="never">
        <ArrayListDomain input_domain_name="input_array_point"
                         name="array_list">
          <RequiredProperties>
            <Property function="Input" name="Input" />
          </RequiredProperties>
        </ArrayListDomain>
      </StringVectorProperty>
      <ProxyProperty name="DataAxesGrid"
                     command="SetGridAxesRepresentation"
                     panel_widget="proxy_editor">
        <ProxyListDomain name="proxy_list">
          <Proxy group="representations" name="GridAxesRepresentation" />
        </ProxyListDomain>
        <Hints>
          <ProxyEditorPropertyWidget property="GridAxesVisibility" />
        </Hints>
      </ProxyProperty>

      <SubProxy>
        <Proxy name="SMTKResourceRepresentation"
          proxygroup="representations"
          proxyname="SMTKResourceRepresentation">
        </Proxy>
        <ExposedProperties>
          <PropertyGroup label="Color Mode">
            <Property name="ColorBy" label="Color by"
                      panel_visibility="default" />
            <Property name="UseInternalAttributes"
                      label="Use Multi-Block Inspector attributes" />
          </PropertyGroup>
          <PropertyGroup panel_visibility="default"
                         panel_widget="ColorEditor"
                         label="Scalar Coloring" >
            <Property name="ColorArrayName" />
            <Property name="LookupTable" />
          </PropertyGroup>
          <PropertyGroup panel_visibility="default" label="Scalar Mapping">
            <Property name="MapScalars"
                      panel_visibility="default" />
            <Property name="InterpolateScalarsBeforeMapping"
                      panel_visibility="default" />
          </PropertyGroup>
          <PropertyGroup label="Styling">
            <Property name="Opacity" panel_visibility="default" />
            <Property name="PointSize" panel_visibility="default"
                      panel_visibility_default_for_representation="points" />
            <Property name="LineWidth"
                      panel_visibility="default"
                      panel_visibility_default_for_representation="wireframe" />
            <Property name="LineColor"
                      panel_visibility="always"
                      panel_visibility_default_for_representation="wireframe" />
            <Property name="SelectionRenderStyle"
                      panel_visibility="never"/>
            <Property name="RenderLinesAsTubes" panel_visibility="default"/>
            <Property name="RenderPointsAsSpheres" panel_visibility="default"/>
            <Property name="EdgeVisibility" panel_visibility="never"/>
            <Property name="VertexVisibility" panel_visibility="never"/>
         </PropertyGroup>

          <PropertyGroup label="Lighting">
            <Property name="SpecularPower"
                      panel_visibility="always" />
            <Property name="Specular" panel_visibility="always" />
            <Property name="Ambient" panel_visibility="always"/>
            <Property name="Diffuse" panel_visibility="always"/>
          </PropertyGroup>

          <PropertyGroup label="Transforming">
            <Property name="Position"
                      panel_visibility="always" />
            <Property name="Scale"
                      panel_visibility="always" />
            <Property name="Orientation"
                      panel_visibility="always" />
            <Property name="Origin"
                      panel_visibility="always" />
            <Property name="UserTransform"
                      panel_visibility="never" />
          </PropertyGroup>

          <PropertyGroup label="Miscellaneous">
            <Property name="Pickable"
                      panel_visibility="always" />
            <Property name="Texture"
                      panel_visibility="always" />
            <Property name="BlockVisibility"
                      panel_visibility="never" />
            <Property name="BlockColor"
                      panel_visibility="never" />
            <Property name="BlockOpacity"
                      panel_visibility="never" />
            <Property name="Assembly"
                      panel_visibility="never" />
            <Property name="HoverColor"
                      panel_visibility="never" />
            <Property name="SelectionColor"
                      panel_visibility="never" />
            <Property name="DefaultFaceColor"
                      panel_visibility="never" />
            <Property name="DefaultEdgeColor"
                      panel_visibility="never" />
          </PropertyGroup>
        </ExposedProperties>
      </SubProxy>
      <SubProxy>
        <Proxy name="OutlineRepresentation"
               proxygroup="representations"
               proxyname="OutlineRepresentation"></Proxy>
        <ShareProperties subproxy="SMTKResourceRepresentation">
          <Exception name="Input" />
          <Exception name="Visibility" />
        </ShareProperties>
      </SubProxy>
    </SMTKResourceRepresentationProxy>

    <!-- Widget representations -->
    <!-- Cone widget -->
    <NewWidgetRepresentationProxy
      class="vtk3DWidgetRepresentation"
      name="ConeWidgetRepresentation">
      <IntVectorProperty
        command="SetEnabled"
        default_values="0"
        name="Enabled"
        number_of_elements="1">
        <BooleanDomain name="bool" />
        <Documentation>Enable/Disable widget interaction.</Documentation>
      </IntVectorProperty>
      <SubProxy>
        <Proxy
          name="Prop"
          proxygroup="3d_widget_representations"
          proxyname="ConeRepresentation"></Proxy>
        <ExposedProperties>
          <Property name="Visibility" />
          <Property name="BottomPointInfo" />
          <Property name="BottomPoint" />
          <Property name="TopPointInfo" />
          <Property name="TopPoint" />
          <Property name="BottomRadiusInfo" />
          <Property name="BottomRadius" />
          <Property name="TopRadiusInfo" />
          <Property name="TopRadius" />
          <Property name="CylindricalInfo" />
          <Property name="Cylindrical" />
        </ExposedProperties>
      </SubProxy>
      <SubProxy>
        <Proxy
          name="Widget"
          proxygroup="3d_widgets"
          proxyname="ConeWidget"></Proxy>
      </SubProxy>
    </NewWidgetRepresentationProxy>

  </ProxyGroup>

  <!-- Expose user preferences -->
  <ProxyGroup name="settings">

    <Extension name="ColorPalette">

      <DoubleVectorProperty
        default_values="0.92549 0.43922 0.43922"
        label="SMTK Highlight Color"
        name="SMTKHighlightColor"
        number_of_elements="3"
        panel_widget="color_selector">
        <DoubleRangeDomain max="1 1 1"
          min="0 0 0"
          name="range" />
        <Documentation>Color used to highlight model or mesh components.</Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
        default_values="1.0 1.0 1.0"
        label="Default Face Color"
        name="DefaultFaceColor"
        number_of_elements="3"
        panel_widget="color_selector">
        <DoubleRangeDomain max="1 1 1"
          min="0 0 0"
          name="range" />
        <Documentation>Default color for model or mesh faces.</Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
        default_values="1.0 1.0 0.5"
        label="Background color for items with default values"
        name="SMTKDefaultValueBackground"
        number_of_elements="3"
        panel_widget="color_selector">
        <DoubleRangeDomain max="1 1 1"
          min="0 0 0"
          name="range" />
        <Documentation>Color for attribute items holding default values.</Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
        default_values="1.0 0.5 0.5"
        label="Background color for items with invalid values"
        name="SMTKInvalidValueBackground"
        number_of_elements="3"
        panel_widget="color_selector">
        <DoubleRangeDomain max="1 1 1"
          min="0 0 0"
          name="range" />
        <Documentation>Color for attribute items holding invalid values.</Documentation>
      </DoubleVectorProperty>

      <PropertyGroup label="SMTK Colors">
        <Documentation>
          Colors used when displaying SMTK model and mesh components.
        </Documentation>
        <Property name="DefaultFaceColor"/>
        <Property name="SMTKHighlightColor"/>
        <Property name="SMTKDefaultValueBackground"/>
        <Property name="SMTKInvalidValueBackground"/>
      </PropertyGroup>

    </Extension>

  </ProxyGroup>

  <ProxyGroup name="smtk_widgets">

    <!-- Point widget -->
    <Proxy name="SMTKHandleWidget"
      base_proxygroup="3d_widgets"
      base_proxyname="HandleWidget"
      >
      <DoubleVectorProperty name = "WorldPosition"
        command = "SetWorldPosition"
        argument_is_array="1"
        default_values='0 0 0'
        number_of_elements="3">
      </DoubleVectorProperty>
      <PropertyGroup panel_widget="InteractiveHandle" label="Handle">
        <Property function="WorldPosition" name="WorldPosition" />
      </PropertyGroup>
    </Proxy>

    <!-- Line widget -->
    <Proxy name="SMTKLineWidget"
      base_proxygroup="3d_widgets"
      base_proxyname="LineWidget2"
      >
      <DoubleVectorProperty name = "WorldPosition1"
        command = "SetPoint1WorldPosition"
        argument_is_array="1"
        default_values='0 0 0'
        number_of_elements="3">
      </DoubleVectorProperty>
      <DoubleVectorProperty name = "WorldPosition2"
        command = "SetPoint1WorldPosition"
        argument_is_array="1"
        default_values='0 0 0'
        number_of_elements="3">
      </DoubleVectorProperty>
      <PropertyGroup panel_widget="InteractiveLine" label="Line">
        <Property function="Point1WorldPosition" name="WorldPosition1" />
        <Property function="Point2WorldPosition" name="WorldPosition2" />
      </PropertyGroup>
    </Proxy>

    <!-- Axis-aligned box widget -->
    <Proxy
      name="SMTKAxisAlignedBoxWidget"
      class="vtkPVBox"
      >
      <DoubleVectorProperty command="SetBounds"
                            default_values="0 1 0 1 0 1"
                            name="Bounds"
                            number_of_elements="6"></DoubleVectorProperty>
      <DoubleVectorProperty animateable="1"
                            command="SetPosition"
                            default_values="0.0 0.0 0.0"
                            name="Position"
                            number_of_elements="3">
        <DoubleRangeDomain name="range" />
        <Documentation>
          Set the position of the box.
        </Documentation>
      </DoubleVectorProperty>
      <DoubleVectorProperty animateable="1"
                            command="SetScale"
                            default_values="1.0 1.0 1.0"
                            name="Scale"
                            number_of_elements="3">
        <DoubleRangeDomain name="range" />
        <Documentation>
          Set the size of the box via a scale factor.
        </Documentation>
      </DoubleVectorProperty>
      <PropertyGroup panel_widget="InteractiveBox" label="Box Parameters">
        <Property function="Position" name="Position" />
        <Property function="Scale" name="Scale" />
        <Property function="PlaceWidget" name="Bounds" />
      </PropertyGroup>
    </Proxy>

  </ProxyGroup>

  <ProxyGroup name="settings">

    <SettingsProxy name="SMTKSettings" label="Sim Pre-processing"
      processes="client|dataserver|renderserver"
      class="vtkSMTKSettings">
      <Documentation>
        Settings related to simulation modeling (pre-processing) with SMTK.
      </Documentation>

      <IntVectorProperty
        name="HighlightOnHover"
        number_of_elements="1"
        default_values="0"
        command="SetHighlightOnHover"
        information_property="HighlightOnHoverInfo"
        panel_visibility="default">
        <Documentation>
          Highlight rendered entities as the mouse hovers over widgets listing them.
        </Documentation>
        <BooleanDomain name="bool" />
        <Hints>
          <SaveInQSettings both="1"/>
        </Hints>
      </IntVectorProperty>
      <IntVectorProperty
        name="HighlightOnHoverInfo"
        command="GetHighlightOnHover"
        information_only="1">
        <BooleanDomain name="bool" />
      </IntVectorProperty>

      <IntVectorProperty
        name="ShowSaveResourceOnClose"
        number_of_elements="1"
        default_values="0"
        command="SetShowSaveResourceOnClose"
        information_property="ShowSaveResourceOnCloseInfo"
        panel_visibility="default">
        <Documentation>
          Show a dialog asking to save or discard changes to a resource,
          when closing a modified resource.
        </Documentation>
        <EnumerationDomain name="enum">
          <Entry text="Ask each time" value="0"/>
          <Entry text="Don't ask and save resource" value="1"/>
          <Entry text="Don't ask and discard changes" value="2"/>
        </EnumerationDomain>
        <Hints>
          <SaveInQSettings both="1"/>
        </Hints>
      </IntVectorProperty>
      <IntVectorProperty
        name="ShowSaveResourceOnCloseInfo"
        command="GetShowSaveResourceOnClose"
        information_only="1">
        <SimpleIntInformationHelper />
      </IntVectorProperty>

      <IntVectorProperty
        name="SelectionRenderStyle"
        number_of_elements="1"
        default_values="0"
        command="SetSelectionRenderStyle"
        information_property="SelectionRenderStyleInfo"
        panel_visibility="default">
        <Documentation>
          Should representations show selected components
          as solids or as wireframees?
        </Documentation>
        <EnumerationDomain name="enum">
          <Entry text="solid" value="0"/>
          <Entry text="wireframe" value="1"/>
        </EnumerationDomain>
        <Hints>
          <SaveInQSettings both="1"/>
        </Hints>
      </IntVectorProperty>
      <IntVectorProperty
        name="SelectionRenderStyleInfo"
        command="GetSelectionRenderStyle"
        information_only="1">
        <SimpleIntInformationHelper />
      </IntVectorProperty>

      <IntVectorProperty
        name="ResourceTreeStyle"
        default_values="hierarchical"
        command="SetResourceTreeStyle"
        information_property="ResourceTreeStyleInfo"
        panel_visibility="default">
        <Documentation>
          By default, resources are presented in a hierarchical fashion:
          only the top-level components appear beneath a resource.
          However, they may be expanded to list their children if they
          have any.
          For model entities, top-level components are those which do
          not serve as geometric boundaries for any others (if they are
          cells) or groups that are not members of any other group (if
          they are groups) or models that are not owned by any other
          model (if they are not models).

          The alternative is a flatter, two-level hierarchy where,
          underneath each resource is a list of entity types. Each
          list of entity types has children that are the given type.
        </Documentation>
        <EnumerationDomain name="enum">
          <Entry text="hierarchical" value="0"/>
          <Entry text="two-level" value="1"/>
        </EnumerationDomain>
      </IntVectorProperty>
      <IntVectorProperty
        name="ResourceTreeStyleInfo"
        command="GetResourceTreeStyle"
        information_only="1">
        <SimpleIntInformationHelper />
      </IntVectorProperty>

      <StringVectorProperty
        name="WorkflowsFolder"
        number_of_elements="1"
        default_values=""
        command="SetWorkflowsFolder"
        information_property="WorkflowsFolderInfo"
        panel_visibility="default">
        <Documentation>
          The default folder for simulation workflow files. Typically
          set to one specific simulation code (ACE3P, ADH, etc.), but
          can also be set to the top-level workflow folder to select
          from all simulation codes.
        </Documentation>
        <FileListDomain name="folder"/>
        <Hints>
          <UseDirectoryName />
        </Hints>
      </StringVectorProperty>
      <StringVectorProperty
        name="WorkflowsFolderInfo"
        command="GetWorkflowsFolder"
        information_only="1">
      </StringVectorProperty>

      <StringVectorProperty
        name="ProjectsRootFolder"
        number_of_elements="1"
        default_values=""
        command="SetProjectsRootFolder"
        information_property="ProjectsRootFolderInfo"
        panel_visibility="default">
        <Documentation>
          The default parent folder for projects.
          If set, this path is used to initialize the
          file dialog for opening projects.
        </Documentation>
        <FileListDomain name="folder"/>
        <Hints>
          <UseDirectoryName />
        </Hints>
      </StringVectorProperty>
      <StringVectorProperty
        name="ProjectsRootFolderInfo"
        command="GetProjectsRootFolder"
        information_only="1">
      </StringVectorProperty>

      <Hints>
        <UseDocumentationForLabels />
      </Hints>

    </SettingsProxy>

      <PropertyGroup label="Display Options">
        <Documentation>
          Options for how SMTK models are displayed in text
          widgets as well as 3-D render windows.
        </Documentation>

        <Property name="HighlightOnHover" />
      </PropertyGroup>

  </ProxyGroup>

</ServerManagerConfiguration>
