[Paraview] Show Widget in CompoundSourceProxy

Christoffer Green christoffer.green at gmail.com
Mon Feb 14 09:44:50 EST 2011


Hello!

I am trying to write an xml definition for a CompoundSourceProxy in ParaView
3.8.1 that produces a plane that is used by a probe filter to
show the ParaView input (volume data in my case) on the plane. The position
and orientation of the plane should be controlled by a widget.

The problem:
I have been able to create a plane as a SourceProxy that is controlled by a
widget and I have been able to create a CompoundSourceProxy that shows the
volume data on a plane but the CompoundSourceProxy does not show the Widget
that is defined with the PropertyGroup hints in the SourceProxy plane. If I
create an instance of the plane without the CompoundSourceProxy then the
widget is displayed as it should. Does hint widget information disappear
when sources are used in a CompoundSourceProxy? How does one use widgets to
control properties in subproxies in a CompoundSourceProxy?

The xml definition I have written follows here (sorry about the length):
-----------------------
The structure of this file is like so:
ParaViewInput(Volume)-->Calculator--(source)-->Probe
Filter<--(input)--PlaneSource<--Widget

<ServerManagerConfiguration>
  <ProxyGroup name="sources">
   <!-- Plane Source -->
   <SourceProxy name="PlaneSourceWithWidget" class="vtkPlaneSource"
label="PlaneWithWidget">
      <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. Unlike the sphere, cone, and cylinder sources, the parallelogram is
exactly represented at the lowest resolution, but higher resolutions may be
desired if this plane is to be used as an input to a filter. The output of
the Plane source is polygonal data.
      </Documentation>
      <DoubleVectorProperty
         name="Origin"
         command="SetOrigin"
         number_of_elements="3"
         animateable="1"
         default_values="-0.5 -0.5 0.0" >
        <DoubleRangeDomain name="range"/>
        <Documentation>
          This property specifies the 3D coordinate of the origin (one
corner) of the plane.
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="Point1"
         command="SetPoint1"
         number_of_elements="3"
         animateable="1"
         default_values="0.5 -0.5 0.0" >
        <DoubleRangeDomain name="range"/>
        <Documentation>
          This property specifies the 3D coordinate a second corner of the
parallelogram. The line connecting this point and that specified by the
Origin property define one edge of the parallelogram (its X axis).
        </Documentation>
      </DoubleVectorProperty>

      <DoubleVectorProperty
         name="Point2"
         command="SetPoint2"
         number_of_elements="3"
         animateable="1"
         default_values="-0.5 0.5 0.0" >
        <DoubleRangeDomain name="range"/>
        <Documentation>
          This property specifies the 3D coordinate a third corner of the
parallelogram. The line connecting this point and that specified by the
Origin property define a second edge of the parallelogram (its Y axis).
        </Documentation>
      </DoubleVectorProperty>

      <IntVectorProperty
         name="XResolution"
         command="SetXResolution"
         number_of_elements="1"
         default_values="100" >
        <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="100" >
        <IntRangeDomain name="range" min="1" />
        <Documentation>
          This property specifies the number of divisions along the Y axis
of the parallelogram.
        </Documentation>
      </IntVectorProperty>
      <Hints>
        <PropertyGroup type="LineSource" >
          <Property function="Point1WorldPosition" name="Point1" />
          <Property function="Point2WorldPosition" name="Point2" />
          <Property function="Resolution"          name="XResolution" />
        </PropertyGroup>
      </Hints>
    </SourceProxy>
  </ProxyGroup>


  <ProxyGroup name="filters">
    <!-- Probe Filter -->
    <SourceProxy name="Probe Filter" class="vtkCompositeDataProbeFilter">
     <InputProperty
        name="Input"
        command="AddInputConnection"
        clean_command="RemoveAllInputs"
        multiple_input="1">
       <ProxyGroupDomain name="groups">
         <Group name="sources"/>
         <Group name="filters"/>
       </ProxyGroupDomain>
       <DataTypeDomain name="input_type" composite_data_supported="1">
         <DataType value="vtkDataObject"/>
       </DataTypeDomain>
     </InputProperty>

      <InputProperty
         name="Source"
         command="SetSourceConnection"
         multiple_input="1">
        <ProxyGroupDomain name="groups">
          <Group name="sources"/>
          <Group name="filters"/>
        </ProxyGroupDomain>
        <DataTypeDomain name="input_type">
          <DataType value="vtkDataSet"/>
        </DataTypeDomain>
      </InputProperty>
   </SourceProxy>

   <!-- Compound -->
   <CompoundSourceProxy id="3316" servers="1" name="ProbePlane">
      <!-- Instance of Calculator so we can get the magnitude of the volume
data source for the probe filter-->
      <Proxy group="filters" type="Calculator" id="2154" servers="1"
compound_name="Calculator2">
        <Property name="AttributeMode" id="2154.AttributeMode"
number_of_elements="1">
          <Element index="0" value="1"/>
          <Domain name="enum" id="2154.AttributeMode.enum">
            <Entry value="1" text="point_data"/>
            <Entry value="2" text="cell_data"/>
            <Entry value="5" text="field_data"/>
          </Domain>
        </Property>
        <Property name="CoordinateResults" id="2154.CoordinateResults"
number_of_elements="1">
          <Element index="0" value="0"/>
          <Domain name="bool" id="2154.CoordinateResults.bool"/>
        </Property>
        <Property name="Function" id="2154.Function" number_of_elements="1">
          <Element index="0" value="V_3D_01_X^2+V_3D_01_Y^2+V_3D_01_Z^2"/>
        </Property>
        <Property name="Input" id="2154.Input" number_of_elements="1">
          <Domain name="groups" id="2154.Input.groups">
            <Group value="sources"/>
            <Group value="filters"/>
          </Domain>
          <Domain name="input_type" id="2154.Input.input_type">
            <DataType value="vtkDataSet"/>
          </Domain>
        </Property>
        <Property name="ReplaceInvalidValues" id="2154.ReplaceInvalidValues"
number_of_elements="1">
          <Element index="0" value="1"/>
          <Domain name="bool" id="2154.ReplaceInvalidValues.bool"/>
        </Property>
        <Property name="ReplacementValue" id="2154.ReplacementValue"
number_of_elements="1">
          <Element index="0" value="0"/>
          <Domain name="range" id="2154.ReplacementValue.range"/>
        </Property>
        <Property name="ResultArrayName" id="2154.ResultArrayName"
number_of_elements="1">
          <Element index="0" value="Result"/>
        </Property>
      </Proxy>

      <!-- instance of PlaneSourceWithWidget -->
      <Proxy group="sources" type="PlaneSourceWithWidget" id="2453"
servers="1" compound_name="Plane2">
      </Proxy>

      <!-- instance of Probe Filter -->
      <Proxy group="filters" type="Probe Filter" id="2867" servers="1"
compound_name="ProbeFilter2">
        <Property name="Input" id="2867.Input" number_of_elements="1">
          <Proxy value="2453" output_port="0"/>
          <Domain name="groups" id="2867.Input.groups">
            <Group value="sources"/>
            <Group value="filters"/>
          </Domain>
          <Domain name="input_type" id="2867.Input.input_type">
            <DataType value="vtkDataObject"/>
          </Domain>
        </Property>
        <Property name="Source" id="2867.Source" number_of_elements="1">
          <Proxy value="2154" output_port="0"/>
          <Domain name="groups" id="2867.Source.groups">
            <Group value="sources"/>
            <Group value="filters"/>
          </Domain>
          <Domain name="input_type" id="2867.Source.input_type">
            <DataType value="vtkDataSet"/>
          </Domain>
        </Property>
      </Proxy>
      <ExposedProperties>
        <Property name="Input" proxy_name="Calculator2"
exposed_name="Calcinput"/>
        <Property name="Function" proxy_name="Calculator2"
exposed_name="Function"/>
        <Property name="XResolution" proxy_name="Plane2" exposed_name="X
Resolution"/>
        <Property name="YResolution" proxy_name="Plane2" exposed_name="Y
Resolution"/>
      </ExposedProperties>
      <OutputPort name="ProbeOut" proxy="ProbeFilter2" port_index="0"/>
    </CompoundSourceProxy>
  </ProxyGroup>
</ServerManagerConfiguration>

-------------------------------------------

Thanks
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.paraview.org/pipermail/paraview/attachments/20110214/2b9a7ff1/attachment-0001.htm>


More information about the ParaView mailing list