<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 14 (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;}
/* 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.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";
        mso-fareast-language:DE;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></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=WordSection1><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Hi Andrew,<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> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>thanks for your answer! I will definitely try this! I guess there is no description how to make a DartClient use Xvfg? This could definitely solve my Linux issues. <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> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>@All: Regarding Windows and Rendering tests: We observe strange rendering results if a user uses some remote desktop software to connect to his machine before a DartClient started. Did anyone experience similar things in VTK?<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> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>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'>Thomas<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> </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> </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> </o:p></span></p><p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Andrew Maclean [mailto:andrew.amaclean@gmail.com] <br><b>Sent:</b> Freitag, 25. Januar 2013 02:15<br><b>To:</b> vtk-developers@vtk.org; Kilgus, Thomas<br><b>Cc:</b> Moreland, Kenneth; David E DeMarle<br><b>Subject:</b> Re: [vtk-developers] How can I test my PolyData Algorithm? #2<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Hi Thomas,<o:p></o:p></p><div><p class=MsoNormal>  Have you thought about using xvfb?<o:p></o:p></p></div><div><p class=MsoNormal>See for example: <a href="http://kovyrin.net/2007/10/01/how-to-run-gui-programs-on-a-server-without-any-monitor/">http://kovyrin.net/2007/10/01/how-to-run-gui-programs-on-a-server-without-any-monitor/</a><o:p></o:p></p></div><div><div><p class=MsoNormal>Also see: <a href="http://en.wikipedia.org/wiki/Xvfb">http://en.wikipedia.org/wiki/Xvfb</a> but is is not very informative.<o:p></o:p></p></div><div><p class=MsoNormal>You may be able to use this to set up VTK regression testing in a headless environment.<br>Regards<o:p></o:p></p></div><div><p class=MsoNormal>   Andrew<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p><div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm'><p class=MsoNormal style='margin-bottom:12.0pt'><br><br>---------- Forwarded message ----------<br>From: "Kilgus, Thomas" <<a href="mailto:t.kilgus@Dkfz-Heidelberg.de">t.kilgus@Dkfz-Heidelberg.de</a>><br>To: "Moreland, Kenneth" <<a href="mailto:kmorel@sandia.gov">kmorel@sandia.gov</a>>, "<a href="mailto:vtk-developers@vtk.org">vtk-developers@vtk.org</a>" <<a href="mailto:vtk-developers@vtk.org">vtk-developers@vtk.org</a>><br>Cc: <br>Date: Thu, 24 Jan 2013 19:30:57 +0100<br>Subject: Re: [vtk-developers] How can I test my PolyData Algorithm? #2<br>Ok that is very interessting.<br><br>My deparment has no real experience with the rendering tests. I was trying to configure everything to unleash the power ;), but I struggled with Linux (which doesnt work at all) and Windows (which delivers strange rendered images, when a users connects to his machine via Remote Desktop). It was hard for me to get to know everything. In fact, I was looking into the code to understand how to insert multiple reference images for a single test (which is very easy once you know it, but I could not find any documentation).<br><br>Is there any documentation like "How to set up linux dartclients to use vtkRegressionTestImage" or stuff like that? Maybe I should solve our iissues regarding vtkRegressionTestImage, instead of programming my own functions to compare data objects.<br><br>Regards,<br>Thomas<br>________________________________________<br>Von: Moreland, Kenneth [<a href="mailto:kmorel@sandia.gov">kmorel@sandia.gov</a>]<br>Gesendet: Donnerstag, 24. Januar 2013 17:32<br>An: Kilgus, Thomas; <a href="mailto:vtk-developers@vtk.org">vtk-developers@vtk.org</a><br>Betreff: RE: [vtk-developers] How can I test my PolyData Algorithm? #2<br><br>To my knowledge there is no built in mechanism for comparing data objects and the like.  The VTK regression tests rely pretty much exclusively on the rendering tests.  I won't prattle on about the advantages of them, but suffice it to say that once configured the rendering tests are easy to set up to test a large fraction of what can be done with VTK.  So I am not aware of anyone bothering to implement anything else.<br><br>-Ken<br><br>From: <Kilgus>, Thomas <t.kilgus@Dkfz-Heidelberg.de<mailto:<a href="mailto:t.kilgus@Dkfz-Heidelberg.de">t.kilgus@Dkfz-Heidelberg.de</a>>><br>Date: Thursday, January 24, 2013 9:14 AM<br>To: Kenneth Moreland <<a href="mailto:kmorel@sandia.gov">kmorel@sandia.gov</a><mailto:<a href="mailto:kmorel@sandia.gov">kmorel@sandia.gov</a>>>, "<a href="mailto:vtk-developers@vtk.org">vtk-developers@vtk.org</a><mailto:<a href="mailto:vtk-developers@vtk.org">vtk-developers@vtk.org</a>>" <<a href="mailto:vtk-developers@vtk.org">vtk-developers@vtk.org</a><mailto:<a href="mailto:vtk-developers@vtk.org">vtk-developers@vtk.org</a>>><br>Subject: [EXTERNAL] RE: [vtk-developers] How can I test my PolyData Algorithm? #2<br><br>Hi Kenneth,<br><br>Thank you very much for your answer! I know the regression tests and really like them, however, in this case I would like to test the data itself and not the rendering. One problem I have with rendering tests is that they do not run in Linux DartClients. (We use a CMake Script to run the nightlies and it somehow opens an environment without any X-Server so there is no possibility to actually open any render window. I know that it is possible to use Mesa Software rendering, but that is huge configuration effort. But this is really off topic …).<br><br>Is there no way to make the test on a lower level? vtkRegressionTestImage would also test the rendering, which slightly overkill here in my opinion. Just out of curiosity: Are most VTK algorithms (even they just modify data and do not render anything themselves) tested with vtkRegressionTestImage?<br><br>Regards,<br>Thomas<br><br>From: <a href="mailto:vtk-developers-bounces@vtk.org">vtk-developers-bounces@vtk.org</a><mailto:<a href="mailto:vtk-developers-bounces@vtk.org">vtk-developers-bounces@vtk.org</a>> [mailto:<a href="mailto:vtk-developers-bounces@vtk.org">vtk-developers-bounces@vtk.org</a>] On Behalf Of Moreland, Kenneth<br>Sent: Donnerstag, 24. Januar 2013 16:53<br>To: Kilgus, Thomas; <a href="mailto:vtk-developers@vtk.org">vtk-developers@vtk.org</a><mailto:<a href="mailto:vtk-developers@vtk.org">vtk-developers@vtk.org</a>><br>Subject: Re: [vtk-developers] How can I test my PolyData Algorithm? #2<br><br>The typical way this type of testing is done within the VTK regression tests is to run your algorithm, render the result, and then test the image to some ground truth image.  There is a utility in VTK (vtkRegressionTestImage) that performs this test with the requisite tolerance to compensate for slight variations in hardware (as well as the ability to provide multiple ground truth images for instances where the difference is more than a little but still correct).<br><br>There are lots of examples in the VTK source.  A basic one is called Mace.cxx.  Take a look at that example first.<br><br>-Ken<br><br>From: <Kilgus>, Thomas <t.kilgus@Dkfz-Heidelberg.de<mailto:<a href="mailto:t.kilgus@Dkfz-Heidelberg.de">t.kilgus@Dkfz-Heidelberg.de</a>>><br>Date: Thursday, January 24, 2013 3:32 AM<br>To: "<a href="mailto:vtk-developers@vtk.org">vtk-developers@vtk.org</a><mailto:<a href="mailto:vtk-developers@vtk.org">vtk-developers@vtk.org</a>>" <<a href="mailto:vtk-developers@vtk.org">vtk-developers@vtk.org</a><mailto:<a href="mailto:vtk-developers@vtk.org">vtk-developers@vtk.org</a>>><br>Subject: [EXTERNAL] [vtk-developers] How can I test my PolyData Algorithm? #2<br><br>Hi there,<br><br>I didn’t get any answer last time (also on the user’s list) so I try again ☺:<br><br><br>I have an algorithm generating a vtkPolyData as output. I would like to write a test, in order to make sure that my algorithm generates the same output every day (even though there might be changes to the algorithm or to surrounding classes). What is a nice way to do this?<br><br>I thought I could save a generated PolyData as “ground truth” and compare it point wise to the generated output. However, my output data contains lots of 3D floating-point points and thus I have to perform lots of comparisons between floating-point numbers and this can be difficult for different data or 32Bit/64Bit Systems.<br><br>I was wondering if there are any methods/classes already meant general testing purposes? Anything I could reuse for comparing two PolyDatas or anything to make sure my algorithm provides the same result for the same data. I tried to look into tests of other VTK classes but couldn’t really find anything. Any suggestions?<br><br>Regards<br>Thomas<o:p></o:p></p></blockquote></div><div><p class=MsoNormal><o:p> </o:p></p></div><p class=MsoNormal>-- <br>___________________________________________<br>Andrew J. P. Maclean<br><br>___________________________________________ <o:p></o:p></p></div></div></div></body></html>