[Paraview] Show Widget in CompoundSourceProxy
Utkarsh Ayachit
utkarsh.ayachit at kitware.com
Tue Feb 15 08:34:49 EST 2011
The "name" in the hints section should match the "exposed_name" for
the exposed properties.
Utkarsh
On Tue, Feb 15, 2011 at 3:49 AM, Christoffer Green
<christoffer.green at gmail.com> wrote:
> Utkarsh,
> Thank you for your response it has helped me make the xml file shorter since
> I don't need to copy the PlaneSource to add a widget to it. Exposing the
> needed properties in the CompoundSourceProxy worked well but I cannot get
> the widget hints to work, whenever I add the hints section to
> the CompoundSourceProxy ParaView crashes when applying the filter to a
> volume. Do you know if I am doing things correctly?
> I am using 32bit ParaView (3.8.1 and 3.10 rc1) on Windows 7
> Here is the xml again (somewhat shorter this time):
> ------
> <ServerManagerConfiguration>
> <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 Source -->
> <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 PlaneSource; used for visualizing the probe filter-->
> <Proxy group="sources" type="PlaneSource" 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="Origin" proxy_name="Plane2" exposed_name="Origin"/>
> <Property name="Point1" proxy_name="Plane2" exposed_name="Point 1"/>
> <Property name="Point2" proxy_name="Plane2" exposed_name="Point 2"/>
> <Property name="XResolution" proxy_name="Plane2" exposed_name="X
> Resolution"/>
> <Property name="YResolution" proxy_name="Plane2" exposed_name="Y
> Resolution"/>
> </ExposedProperties>
> <!-- Uncommenting this crashes ParaView when applying the
> CompoundSourceProxy filter
> <Hints>
> <PropertyGroup type="LineSource" >
> <Property function="Point1WorldPosition" name="Point1" />
> <Property function="Point2WorldPosition" name="Point2" />
> <Property function="Resolution" name="XResolution" />
> </PropertyGroup>
> </Hints>-->
>
> <OutputPort name="ProbeOut" proxy="ProbeFilter2" port_index="0"/>
> </CompoundSourceProxy>
> </ProxyGroup>
> </ServerManagerConfiguration>
> -----
> Thanks
> BR/ Christoffer
> On Mon, Feb 14, 2011 at 6:52 AM, Utkarsh Ayachit
> <utkarsh.ayachit at kitware.com> wrote:
>>
>> Christoffer,
>>
>> You need to redefine the Hints for the "PropertyGroup" on the
>> CompoundSourceProxy as well. Also the properties that the widget is
>> controlling, such as Point1WorldPosition, Point2WorldPosition,
>> Resolution must be exposed from the CompoundSourceProxy.
>>
>> Utkarsh
>>
>> On Mon, Feb 14, 2011 at 9:44 AM, Christoffer Green
>> <christoffer.green at gmail.com> wrote:
>> > 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
>> > _______________________________________________
>> > Powered by www.kitware.com
>> >
>> > Visit other Kitware open-source projects at
>> > http://www.kitware.com/opensource/opensource.html
>> >
>> > Please keep messages on-topic and check the ParaView Wiki at:
>> > http://paraview.org/Wiki/ParaView
>> >
>> > Follow this link to subscribe/unsubscribe:
>> > http://www.paraview.org/mailman/listinfo/paraview
>> >
>> >
>
>
More information about the ParaView
mailing list