<html>

<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">


<meta name=Generator content="Microsoft Word 10 (filtered)">

<style>
<!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {font-family:Arial;
        color:windowtext;}
@page Section1
        {size:612.0pt 792.0pt;
        margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.Section1
        {page:Section1;}
-->
</style>

</head>

<body lang=EN-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><font size=2 face=Arial><span lang=EN-GB style='font-size:
10.0pt;font-family:Arial'>Hi users,</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span lang=EN-GB style='font-size:
10.0pt;font-family:Arial'>&nbsp;</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span lang=EN-GB style='font-size:
10.0pt;font-family:Arial'>In a recent thread, </span></font><font size=2
face=Arial><span style='font-size:10.0pt;font-family:Arial'>Berk Geveci
referred to a new pipeline architecture which is currently under design/development.
Not wanting to miss an opportunity&#8230; I was wondering whether the new
design would make modifying the behaviour of visualization pipelines easier.</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>As an example, consider the following filter sequence</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=MsoNormal style='text-indent:36.0pt'><font size=2 face=Arial><span
style='font-size:10.0pt;font-family:Arial'>vtkUnstructuredGrid -&gt; vtkThreshold
-&gt; vtkShrinkFilter-&gt; vtkWarpVector</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>to select cells from an unstructured grid, shrink cells and
deform cells. The selection, shrink and deform are all optional. To enable any
arbitrary combination of the filters, I keep the pipeline topology fixed and
override the Execute() method of each filter with an option to simply shallow
copy the input to the output effectively bypassing the filtering. An
alternative approach would have been to reconstruct the pipeline but each
filter&#8217;s state information must be persisted to return to a previous
selection. Keeping the filter objects and providing a method to bypass the actual
filtering process makes this kind of interaction very simple to code. I
appreciate that there may only be a limited number of filters where FilterOn()/FilterOff()
would be possible or appropriate, but it would improve pipeline flexibility.</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Another problem I have is integrating the &#8220;reading&#8221;
of attribute data into the pipeline execution. In Finite Element applications, there
is typically too much field data to permanently associate with the grid. I use lean
grids containing only cell scalars (element numbers) and point scalars (node
numbers) which is sufficient to reference any future data to display. The
actual data is merged later using vtkMergeDataObjectFilter. This all works fine
until the cell selection is changed. This requires the attribute data to be re-read
to match exactly the new cell/point selection. I have modified vtkMergeDataObjectFilter
to call a user supplied method to read the attribute data as part of Execute().
The attribute data update now becomes automatic. Does the new design help with
this requirement?</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Thanks for your time.</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>John.</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span lang=EN-GB style='font-size:
10.0pt;font-family:Arial'>&nbsp;</span></font></p>

</div>

</body>

</html>