<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Vorformatiert Zchn";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
tt
        {mso-style-priority:99;
        font-family:"Courier New";}
span.HTMLVorformatiertZchn
        {mso-style-name:"HTML Vorformatiert Zchn";
        mso-style-priority:99;
        mso-style-link:"HTML Vorformatiert";
        font-family:Consolas;}
span.E-MailFormatvorlage21
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page Section1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=DE link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Hi Stephane,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Thank you for your replay with an overview of the advanced rendering
opportunities in VTK ! I will look at the ParaView-Example for the hidden lines
removal. But the multipass-framework is still of interest for me because I want
to use more sophisticated multipass-rendering techniques later. Ok, but for now
I take a look insight painters. :-)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Best regards,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Rocco<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'>

<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Stephane PLOIX
[mailto:stephane.ploix@edf.fr] <br>
<b>Sent:</b> Tuesday, November 24, 2009 11:58 AM<br>
<b>To:</b> post@rocco-gasteiger.de<br>
<b>Cc:</b> vtkusers@vtk.org<br>
<b>Subject:</b> RE [vtkusers] Request to VTK Multi-Pass Rendering<o:p></o:p></span></p>

</div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal style='margin-bottom:12.0pt'><br>
<span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>Hi Rocco,</span>
<br>
<br>
<span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>Here is a
general picture of the different ways you can implement advanced rendering
effects in VTK : </span><br>
<span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>*shaders : each
vtkProp can have a shader, this is mostly used in single pass algorithms</span>
<br>
<span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>*painters : you
can implement a per-prop multipass algorithm in a painter, as is done in the
plugin example in ParaView/Example/Plugins/HiddenLinesRemoval which does
exactly what you need.</span> <br>
<span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>*renderpass :
this framework is intended for algorithm that need global information of all
props : you can implement post-processing algorithms like screen-space ambient
occlusion or edge-detection filters, and algorithms that require several passes
of all the props, like shadow mapping.</span> <br>
<br>
<span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>Best,</span> <br>
<span style='font-size:10.0pt;font-family:"Arial","sans-serif"'>Stephane<br>
</span><br>
<br>
<o:p></o:p></p>

<table class=MsoNormalTable border=0 cellpadding=0 width="100%"
 style='width:100.0%'>
 <tr>
  <td width="40%" valign=top style='width:40.0%;padding:.75pt .75pt .75pt .75pt'>
  <p class=MsoNormal><b><span style='font-size:7.5pt;font-family:"Arial","sans-serif"'>post@rocco-gasteiger.de</span></b><span
  style='font-size:7.5pt;font-family:"Arial","sans-serif"'> </span><br>
  <span style='font-size:7.5pt;font-family:"Arial","sans-serif"'>Envoyé par :
  vtkusers-bounces@vtk.org</span> <o:p></o:p></p>
  <p><span style='font-size:7.5pt;font-family:"Arial","sans-serif"'>23/11/2009
  10:51</span> <o:p></o:p></p>
  </td>
  <td width="59%" valign=top style='width:59.0%;padding:.75pt .75pt .75pt .75pt'>
  <table class=MsoNormalTable border=0 cellpadding=0 width="100%"
   style='width:100.0%'>
   <tr>
    <td valign=top style='padding:.75pt .75pt .75pt .75pt'>
    <p class=MsoNormal align=right style='text-align:right'><span
    style='font-size:7.5pt;font-family:"Arial","sans-serif"'>A</span><o:p></o:p></p>
    </td>
    <td valign=top style='padding:.75pt .75pt .75pt .75pt'>
    <p class=MsoNormal><span style='font-size:7.5pt;font-family:"Arial","sans-serif"'>vtkusers@vtk.org</span>
    <o:p></o:p></p>
    </td>
   </tr>
   <tr>
    <td valign=top style='padding:.75pt .75pt .75pt .75pt'>
    <p class=MsoNormal align=right style='text-align:right'><span
    style='font-size:7.5pt;font-family:"Arial","sans-serif"'>cc</span><o:p></o:p></p>
    </td>
    <td valign=top style='padding:.75pt .75pt .75pt .75pt'></td>
   </tr>
   <tr>
    <td valign=top style='padding:.75pt .75pt .75pt .75pt'>
    <p class=MsoNormal align=right style='text-align:right'><span
    style='font-size:7.5pt;font-family:"Arial","sans-serif"'>Objet</span><o:p></o:p></p>
    </td>
    <td valign=top style='padding:.75pt .75pt .75pt .75pt'>
    <p class=MsoNormal><span style='font-size:7.5pt;font-family:"Arial","sans-serif"'>[vtkusers]
    Request to VTK Multi-Pass Rendering</span><o:p></o:p></p>
    </td>
   </tr>
  </table>
  <p class=MsoNormal><o:p>&nbsp;</o:p></p>
  <table class=MsoNormalTable border=0 cellpadding=0>
   <tr>
    <td valign=top style='padding:.75pt .75pt .75pt .75pt'></td>
    <td valign=top style='padding:.75pt .75pt .75pt .75pt'></td>
   </tr>
  </table>
  </td>
 </tr>
</table>

<p class=MsoNormal style='margin-bottom:12.0pt'><br>
<br>
<br>
<span style='font-family:"Calibri","sans-serif"'>Dear VTK users,</span> <br>
<span style='font-family:"Calibri","sans-serif"'>&nbsp;</span> <br>
<span style='font-family:"Calibri","sans-serif"'>I want to use the new
mulit-pass framework in VTK implemented by François Bertel. At first, many
thanks François for implementing this framework! I need some multipass
rendering for my research project and I think you have provided a very good
base for start-up with this. </span><br>
<span style='font-family:"Calibri","sans-serif"'>&nbsp;</span> <br>
<span style='font-family:"Calibri","sans-serif"'>For a better understanding how
it works, I tried to adopt a native multi-pass OpenGL example in VTK, with help
of the given framework. In doing so I oriented me at the given examples on the
according VTK Wiki sites. Unfortunately, I did not get the same result in VTK
like in OpenGL. I think I miss some important facts of understanding the VTK
rendering pipeline. So I hope somebody (maybe François directly) can help me to
have a better understanding of how the framework works. &nbsp;Here comes what I
really do:</span> <br>
<span style='font-family:"Calibri","sans-serif"'>&nbsp;</span> <br>
<span style='font-family:"Calibri","sans-serif"'>In OpenGL I implemented an
algorithm for hidden line removing (It is based on the paper of Jarek R.
Rossignac and Maarten van Emerik: Hidden contours on a frame-buffer (1992) ).
Here is a snippet of my OpenGL code, where I have to render my geometry two
times (2-passes).</span> <br>
<span style='font-family:"Calibri","sans-serif"'>&nbsp;</span> <br>
<span style='font-family:"Calibri","sans-serif"'>glClear (GL_COLOR_BUFFER_BIT |
GL_DEPTH_BUFFER_BIT);</span> <br>
<span style='font-family:"Calibri","sans-serif"'>glEnable(GL_DEPTH_TEST);</span>
<br>
<span style='font-family:"Calibri","sans-serif"'>glColor3f(0,0,0);</span> <br>
<span style='font-family:"Calibri","sans-serif"'>&nbsp;</span> <br>
<span style='font-family:"Calibri","sans-serif"'>// Settings for first pass</span>
<br>
<span style='font-family:"Calibri","sans-serif"'>glColorMask(GL_FALSE,
GL_FALSE, GL_FALSE,GL_FALSE);</span> <br>
<span style='font-family:"Calibri","sans-serif"'>glPolygonMode(GL_FRONT_AND_BACK,
GL_FILL);</span> <br>
<span style='font-family:"Calibri","sans-serif"'>drawMyGeometryWithSolidFaces();</span>
<br>
<span style='font-family:"Calibri","sans-serif"'>&nbsp;</span> <br>
<span style='font-family:"Calibri","sans-serif"'>// Settings for second pass</span>
<br>
<span style='font-family:"Calibri","sans-serif"'>glColorMask(GL_TRUE, GL_TRUE,
GL_TRUE,GL_TRUE);</span> <br>
<span style='font-family:"Calibri","sans-serif"'>glPolygonMode(GL_FRONT_AND_BACK,
GL_LINE);</span> <br>
<span style='font-family:"Calibri","sans-serif"'>glEnable(GL_POLYGON_OFFSET_LINE);</span>
<br>
<span style='font-family:"Calibri","sans-serif"'>glPolygonOffset(-1.0,1.0);</span>
<br>
<span style='font-family:"Calibri","sans-serif"'>drawMyGeometryWithSolidFaces();</span>
<br>
<span style='font-family:"Calibri","sans-serif"'>&nbsp;</span> <br>
<span style='font-family:"Calibri","sans-serif"'>// Reset polygon offsest</span>
<br>
<span style='font-family:"Calibri","sans-serif"'>glDisable(GL_POLYGON_OFFSET_FILL);</span>
<br>
<span style='font-family:"Calibri","sans-serif"'>&nbsp;</span> <br>
<span style='font-family:"Calibri","sans-serif"'>&nbsp;</span> <br>
<span style='font-family:"Calibri","sans-serif"'>In VTK I derived a class
“vtkHiddenLineDesignerPass” from “vtkRenderPass” and tried to implement the
same OpenGL steps. The result is, that still all lines are rendered, also the
hidden lines. I use the following lines of code snippets in the “Render(const
vtkRenderState *s)”-function to adopt the OpenGL-code with VTK datastructures
and calls:</span> <br>
<span style='font-family:"Calibri","sans-serif"'>&nbsp;</span> <br>
<span style='font-family:"Calibri","sans-serif"'>//** Getting necessary
VTK-objects to turn on/off some OpenGL-states.**/</span> <br>
<span style='font-family:"Calibri","sans-serif"'>vtkOpenGLRenderer *r=static_cast&lt;vtkOpenGLRenderer
*&gt;(s-&gt;GetRenderer());</span> <br>
<span style='font-family:"Calibri","sans-serif"'>vtkActor *actor =
r-&gt;GetActors()-&gt;GetLastActor();</span> <br>
<span style='font-family:"Calibri","sans-serif"'>vtkPolyDataMapper *actorMapper
= static_cast&lt;vtkPolyDataMapper*&gt;(actor-&gt;GetMapper());</span> <br>
<span style='font-family:"Calibri","sans-serif"'>vtkProperty *actorProp =
actor-&gt;GetProperty();</span> <br>
<span style='font-family:"Calibri","sans-serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><br>
<span style='font-family:"Calibri","sans-serif"'>// Settings for the first pass
//</span> <br>
<span style='font-family:"Calibri","sans-serif"'>glClear (GL_COLOR_BUFFER_BIT |
GL_DEPTH_BUFFER_BIT);</span> <br>
<span style='font-family:"Calibri","sans-serif"'>glColorMask(GL_FALSE,
GL_FALSE, GL_FALSE,GL_FALSE);</span> <br>
<span style='font-family:"Calibri","sans-serif"'>actorProp-&gt;SetRepresentationToSurface();
//** For glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);**//</span> <br>
<span style='font-family:"Calibri","sans-serif"'>this-&gt;DelegatePass-&gt;Render(s);</span>
<br>
<span style='font-family:"Calibri","sans-serif"'>this-&gt;NumberOfRenderedProps
+= this-&gt;DelegatePass-&gt;GetNumberOfRenderedProps();</span> <br>
<span style='font-family:"Calibri","sans-serif"'>&nbsp;</span> <br>
<span style='font-family:"Calibri","sans-serif"'>// Settings for the second
pass //</span> <br>
<span style='font-family:"Calibri","sans-serif"'>actorProp-&gt;SetDiffuseColor(0,0,0);
//** For glColor3f(0,0,0); **//</span> <br>
<span style='font-family:"Calibri","sans-serif"'>glColorMask(GL_TRUE, GL_TRUE,
GL_TRUE,GL_TRUE);</span> <br>
<span style='font-family:"Calibri","sans-serif"'>actorProp-&gt;SetRepresentationToWireframe();&nbsp;
//** For glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); **//</span> <br>
<span style='font-family:"Calibri","sans-serif"'>actorMapper-&gt;SetResolveCoincidentTopology(1);</span>
<br>
<span style='font-family:"Calibri","sans-serif"'>actorMapper-&gt;SetResolveCoincidentTopologyToPolygonOffset();</span>
<br>
<span style='font-family:"Calibri","sans-serif"'>actorMapper-&gt;SetResolveCoincidentTopologyPolygonOffsetFaces(0);
//** For glEnable(GL_POLYGON_OFFSET_LINE);**//</span> <br>
<span style='font-family:"Calibri","sans-serif"'>actorMapper-&gt;SetResolveCoincidentTopologyPolygonOffsetParameters(-1.0,1);
//** For glPolygonOffset(-1.0,1.0);**//</span> <br>
<span style='font-family:"Calibri","sans-serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><br>
<span style='font-family:"Calibri","sans-serif"'>this-&gt;DelegatePass-&gt;Render(s);</span>
<br>
<span style='font-family:"Calibri","sans-serif"'>this-&gt;NumberOfRenderedProps
+= this-&gt;DelegatePass-&gt;GetNumberOfRenderedProps();</span> <br>
<span style='font-family:"Calibri","sans-serif"'>actorMapper-&gt;SetResolveCoincidentTopology(0);
//** For glDisable(GL_POLYGON_OFFSET_FILL);**//</span> <br>
<span style='font-family:"Calibri","sans-serif"'>&nbsp;</span> <br>
<span style='font-family:"Calibri","sans-serif"'>&nbsp;</span> <br>
<span style='font-family:"Calibri","sans-serif"'>In my VTK-class, where I use
this rendering pass, I process following rendering pipeline:</span> <br>
<span style='font-family:"Calibri","sans-serif"'>// The elementary passes.</span>
<br>
<span style='font-family:"Calibri","sans-serif"'>vtkLightsPass
*lights=vtkLightsPass::New();</span> <br>
<span style='font-family:"Calibri","sans-serif"'>vtkDefaultPass
*defaultPass=vtkDefaultPass::New();</span> <br>
<span style='font-family:"Calibri","sans-serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><br>
<span style='font-family:"Calibri","sans-serif"'>// Put them in a sequence.</span>
<br>
<span style='font-family:"Calibri","sans-serif"'>vtkRenderPassCollection
*passes=vtkRenderPassCollection::New();</span> <br>
<span style='font-family:"Calibri","sans-serif"'>passes-&gt;AddItem(lights);</span>
<br>
<span style='font-family:"Calibri","sans-serif"'>passes-&gt;AddItem(defaultPass);</span>
<br>
<span style='font-family:"Calibri","sans-serif"'>&nbsp;</span> <br>
<span style='font-family:"Calibri","sans-serif"'>vtkSequencePass
*seq=vtkSequencePass::New();</span> <br>
<span style='font-family:"Calibri","sans-serif"'>seq-&gt;SetPasses(passes);</span>
<br>
<span style='font-family:"Calibri","sans-serif"'>&nbsp;</span> <br>
<span style='font-family:"Calibri","sans-serif"'>// Make the sequence the
delegate of a camera pass.</span> <br>
<span style='font-family:"Calibri","sans-serif"'>vtkCameraPass
*cameraP=vtkCameraPass::New();</span> <br>
<span style='font-family:"Calibri","sans-serif"'>cameraP-&gt;SetDelegatePass(seq);</span>
<br>
<span style='font-family:"Calibri","sans-serif"'>&nbsp;</span> <br>
<span style='font-family:"Calibri","sans-serif"'>// Create the hidden line
removing pass and attach the camera pass as its delegate</span> <br>
<span style='font-family:"Calibri","sans-serif"'>vtkHiddenLineDesignerPass
*myPass=vtkHiddenLineDesignerPass::New();</span> <br>
<span style='font-family:"Calibri","sans-serif"'>myPass
-&gt;SetDelegatePass(cameraP);</span> <br>
<span style='font-family:"Calibri","sans-serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><br>
<span style='font-family:"Calibri","sans-serif"'>vtkRenderer* renderer01=
vtkRenderer::New();</span> <br>
<span style='font-family:"Calibri","sans-serif"'>renderer01-&gt;SetPass(myPass);</span>
<br>
<span style='font-family:"Calibri","sans-serif"'>&nbsp;</span> <br>
<span style='font-family:"Calibri","sans-serif"'>&nbsp;</span> <br>
<span style='font-family:"Calibri","sans-serif"'>Especially, my
misunderstanding relies on when to use native OpenGL-code and when using
VTK-calls. I tried some variations of &nbsp;the code, presented above but
without success. It would be very helpful if someone can give me some hints.</span>
<br>
<span style='font-family:"Calibri","sans-serif"'>&nbsp;</span> <br>
<span style='font-family:"Calibri","sans-serif"'>Many thanks in advance,</span>
<br>
<span style='font-family:"Calibri","sans-serif"'>Rocco Gasteiger </span><br>
<span style='font-family:"Calibri","sans-serif"'>&nbsp;</span> <br>
<span style='font-family:"Calibri","sans-serif"'>&nbsp;</span> <br>
<span style='font-family:"Courier New"'>--------------------------------------------------</span>
<br>
<span style='font-family:"Courier New"'>Dipl.-Ing. Rocco Gasteiger</span> <br>
<span style='font-family:"Courier New"'>Otto-von-Guericke University<br>
Faculty of Computer Science<br>
Department of Simulation and Graphics<br>
Universitätsplatz 2, 39106 Magdeburg, Germany</span> <br>
<span style='font-family:"Courier New"'>&nbsp;</span> <br>
<span style='font-family:"Courier New"'>Office:&nbsp; G29-223</span> <br>
<span style='font-family:"Courier New"'>Phone:&nbsp;&nbsp; +49 391 67 127 59<br>
Fax: &nbsp;&nbsp;&nbsp; +49 391 67 111 64</span> <br>
<span style='font-family:"Courier New"'>Website:
http://wwwisg.cs.uni-magdeburg.de/cvcms/&nbsp; </span><br>
<span style='font-family:"Courier New"'>--------------------------------------------------</span>
<br>
<span style='font-family:"Calibri","sans-serif"'>&nbsp;</span> <br>
<span style='font-family:"Calibri","sans-serif"'>&nbsp;</span> <br>
<span style='font-family:"Calibri","sans-serif"'>&nbsp;</span> <br>
<span style='font-family:"Calibri","sans-serif"'>&nbsp;</span> <br>
<span style='font-family:"Calibri","sans-serif"'>&nbsp;</span> <br>
<span style='font-family:"Calibri","sans-serif"'>&nbsp;</span> <br>
<span style='font-family:"Calibri","sans-serif"'>&nbsp;</span><tt><span
style='font-size:10.0pt'>_______________________________________________</span></tt><span
style='font-size:10.0pt;font-family:"Courier New"'><br>
<tt>Powered by www.kitware.com</tt><br>
<br>
<tt>Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html</tt><br>
<br>
<tt>Please keep messages on-topic and check the VTK FAQ at:
http://www.vtk.org/Wiki/VTK_FAQ</tt><br>
<br>
<tt>Follow this link to subscribe/unsubscribe:</tt><br>
<tt>http://www.vtk.org/mailman/listinfo/vtkusers</tt></span><o:p></o:p></p>

<pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Ce message et toutes les pièces jointes (ci-après le 'Message') sont établis à l'intention exclusive des destinataires et les informations qui y figurent sont strictement confidentielles. Toute utilisation de ce Message non conforme à sa destination, toute diffusion ou toute publication totale ou partielle, est interdite sauf autorisation expresse.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Si vous n'êtes pas le destinataire de ce Message, il vous est interdit de le copier, de le faire suivre, de le divulguer ou d'en utiliser tout ou partie. Si vous avez reçu ce Message par erreur, merci de le supprimer de votre système, ainsi que toutes ses copies, et de n'en garder aucune trace sur quelque support que ce soit. Nous vous remercions également d'en avertir immédiatement l'expéditeur par retour du message.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Il est impossible de garantir que les communications par messagerie électronique arrivent en temps utile, sont sécurisées ou dénuées de toute erreur ou virus.<o:p></o:p></pre><pre>____________________________________________________<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>This message and any attachments (the 'Message') are intended solely for the addressees. The information contained in this Message is confidential. Any use of information contained in this Message not in accord with its purpose, any dissemination or disclosure, either whole or partial, is prohibited except formal approval.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>If you are not the addressee, you may not copy, forward, disclose or use any part of it. If you have received this message in error, please delete it and all copies from your system and notify the sender immediately by return message.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>E-mail communication cannot be guaranteed to be timely secure, error or virus-free.<o:p></o:p></pre></div>

</body>

</html>