<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:times new roman, new york, times, serif;font-size:12pt"><DIV>Hi Sercani, </DIV>
<DIV>I just changed vtkCellPicker to vtkPropPicker and everything's fixed. Thanks very much.</DIV>
<DIV> </DIV>
<DIV>Shaadi<BR></DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif"><BR>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">----- Original Message ----<BR>From: Sercani <sercanimailgroups@gmail.com><BR>To: Shady Shidfar <shady_shidfar@yahoo.com><BR>Cc: VTKUsers <vtkusers@vtk.org><BR>Sent: Friday, 26 September, 2008 20:24:55<BR>Subject: RE: [vtkusers] problem with vtkPicker(vtkCellPicker, vtkPointPicker)<BR><BR>
<STYLE>
<!--
_filtered {font-family:Calibri;panose-1:2 15 5 2 2 2 4 3 2 4;}
_filtered {font-family:Tahoma;panose-1:2 11 6 4 3 5 4 4 2 4;}
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
{color:blue;text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{color:purple;text-decoration:underline;}
p
{margin-right:0cm;margin-left:0cm;font-size:12.0pt;font-family:"Times New Roman", "serif";}
p.msochpdefault, li.msochpdefault, div.msochpdefault
{margin-right:0cm;margin-left:0cm;font-size:10.0pt;font-family:"Times New Roman", "serif";}
span.emailstyle18
{font-family:"Calibri", "sans-serif";color:#1F497D;}
span.EmailStyle20
{font-family:"Calibri", "sans-serif";color:#1F497D;}
span.EmailStyle21
{font-family:"Calibri", "sans-serif";color:#1F497D;}
.MsoChpDefault
{font-size:10.0pt;}
_filtered {margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.Section1
{}
-->
</STYLE>
<DIV class=Section1>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri', 'sans-serif'">Hi Shady; </SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri', 'sans-serif'">You must use vtkPropPicker, and when setting picking point you must also transform the display point with the inverse transform of the image’s transform(rotate, scaling etc.)...</SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri', 'sans-serif'"> </SPAN></P>
<P class=MsoNormal><B><SPAN style="FONT-SIZE: 10pt; COLOR: #1f497d; FONT-FAMILY: 'Tahoma', 'sans-serif'">***Sercani***</SPAN></B></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri', 'sans-serif'"> </SPAN></P>
<DIV>
<DIV style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: #b5c4df 1pt solid; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium none; PADDING-TOP: 3pt; BORDER-BOTTOM: medium none">
<P class=MsoNormal><B><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Tahoma', 'sans-serif'">From:</SPAN></B><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Tahoma', 'sans-serif'"> vtkusers-bounces@vtk.org [mailto:vtkusers-bounces@vtk.org] <B>On Behalf Of </B>Sarah Macumber<BR><B>Sent:</B> Friday, September 26, 2008 8:01 PM<BR><B>To:</B> Shady Shidfar<BR><B>Cc:</B> VTKUsers<BR><B>Subject:</B> Re: [vtkusers] problem with vtkPicker(vtkCellPicker, vtkPointPicker)</SPAN></P></DIV></DIV>
<P class=MsoNormal> </P>
<DIV>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri', 'sans-serif'">Hi Shaadi,</SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri', 'sans-serif'"> </SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri', 'sans-serif'">You are working image data so you probably don’t have cells or points, have you tried </SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #548dd4; FONT-FAMILY: 'Arial', 'sans-serif'"><A href="http://www.vtk.org/doc/nightly/html/classvtkPropPicker.html" target=_blank rel=nofollow><SPAN style="COLOR: #548dd4">vtkPropPicker</SPAN></A></SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Arial', 'sans-serif'">? I don’t work with images but you want a picker that will select a point confined to the image plane. Try reading the helps on the pickers.</SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Arial', 'sans-serif'"> </SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Arial', 'sans-serif'">Best of luck,</SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Arial', 'sans-serif'">Sarah</SPAN><SPAN lang=EN-US style="FONT-SIZE: 8pt; COLOR: #1f497d; FONT-FAMILY: 'Arial', 'sans-serif'"></SPAN></P></DIV>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri', 'sans-serif'"> </SPAN></P>
<DIV>
<DIV style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: #b5c4df 1pt solid; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium none; PADDING-TOP: 3pt; BORDER-BOTTOM: medium none">
<P class=MsoNormal><B><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Tahoma', 'sans-serif'">From:</SPAN></B><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Tahoma', 'sans-serif'"> Shady Shidfar [mailto:shady_shidfar@yahoo.com] <BR><B>Sent:</B> Friday, September 26, 2008 5:25 AM<BR><B>To:</B> Sarah Macumber; VTKUsers<BR><B>Subject:</B> Re: [vtkusers] problem with vtkPicker(vtkCellPicker, vtkPointPicker)</SPAN></P></DIV></DIV>
<P class=MsoNormal><SPAN lang=EN-US> </SPAN></P>
<DIV>
<DIV>
<P class=MsoNormal><SPAN lang=EN-US>Hi Sarah,</SPAN></P></DIV>
<DIV>
<P class=MsoNormal><SPAN lang=EN-US>I've tried it with both vtkCellPicker and vtkPointPicker, but the problem is still there. Can someone please help me.</SPAN></P></DIV>
<DIV>
<P class=MsoNormal><SPAN lang=EN-US> </SPAN></P></DIV>
<DIV>
<P class=MsoNormal><SPAN lang=EN-US>Shaadi</SPAN></P></DIV>
<DIV>
<P class=MsoNormal><SPAN lang=EN-US><BR> </SPAN></P></DIV>
<DIV>
<DIV>
<P class=MsoNormal style="MARGIN-BOTTOM: 12pt"><SPAN lang=EN-US>----- Original Message ----<BR>From: Sarah Macumber <S.Macumber@QuestReliability.com><BR>To: Shady Shidfar <shady_shidfar@yahoo.com>; VTKUsers <vtkusers@vtk.org><BR>Sent: Thursday, 25 September, 2008 21:02:36<BR>Subject: RE: [vtkusers] problem with vtkPicker(vtkCellPicker, vtkPointPicker)</SPAN></P>
<DIV>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #1f497d; FONT-FAMILY: 'Arial', 'sans-serif'">Hi Shaadi,</SPAN><SPAN lang=EN-US></SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #1f497d; FONT-FAMILY: 'Arial', 'sans-serif'"> </SPAN><SPAN lang=EN-US></SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #1f497d; FONT-FAMILY: 'Arial', 'sans-serif'">vtkPicker will pick 3D world coordinates which may not have a z value of 0. You will want to use a picker which will return you points confined to your image plane. You could try using </SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Arial', 'sans-serif'"><A href="http://www.vtk.org/doc/nightly/html/classvtkCellPicker.html" target=_blank rel=nofollow>vtkCellPicker</A> or <A href="http://www.vtk.org/doc/nightly/html/classvtkPropPicker.html" target=_blank rel=nofollow>vtkPropPicker</A>.</SPAN><SPAN lang=EN-US></SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #1f497d; FONT-FAMILY: 'Arial', 'sans-serif'"> </SPAN><SPAN lang=EN-US></SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #1f497d; FONT-FAMILY: 'Arial', 'sans-serif'">All the best,</SPAN><SPAN lang=EN-US></SPAN></P>
<DIV>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #1f497d; FONT-FAMILY: 'Arial', 'sans-serif'">Sarah Macumber</SPAN><SPAN lang=EN-US></SPAN></P></DIV>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri', 'sans-serif'"> </SPAN><SPAN lang=EN-US></SPAN></P>
<DIV>
<DIV style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: #b5c4df 1pt solid; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium none; PADDING-TOP: 3pt; BORDER-BOTTOM: medium none">
<P class=MsoNormal><B><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Tahoma', 'sans-serif'">From:</SPAN></B><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Tahoma', 'sans-serif'"> vtkusers-bounces@vtk.org [mailto:vtkusers-bounces@vtk.org] <B>On Behalf Of </B>Shady Shidfar<BR><B>Sent:</B> Thursday, September 25, 2008 4:48 AM<BR><B>To:</B> VTKUsers<BR><B>Subject:</B> [vtkusers] problem with vtkPicker(vtkCellPicker, vtkPointPicker)</SPAN><SPAN lang=EN-US></SPAN></P></DIV></DIV>
<P class=MsoNormal><SPAN lang=EN-US> </SPAN></P>
<DIV>
<DIV>
<DIV>
<DIV>
<DIV>
<P class=MsoNormal><SPAN lang=EN-US style="COLOR: black">Hi Everyone,</SPAN><SPAN lang=EN-US></SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="COLOR: black">I sent this yesterday but I don't know why it didn't apear in the forum. I'm sending it again, please can someone help me with it.</SPAN><SPAN lang=EN-US></SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="COLOR: black">I'm using vtkPicker to pick cells on an image and draw on the image. I've copied a short version of my program. I'm using vtkDotNet and managedItk. I want to draw lines through the picked points on a 2d tif image. Key 'p' is used to pick a point. The lines need to remain in the same place they've been drawn no matter zooming or rotating. The problem is :</SPAN><SPAN lang=EN-US></SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="COLOR: black">1- When I zoom the image and get the picked cell dimension, Z would be a value rather than 0 which I don't understand why.</SPAN><SPAN lang=EN-US></SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="COLOR: black">2- When I rotate the image and pick the points and draw lines. It seems they are in the right place but when I rotate the image the lines would be somewhere outside the image. </SPAN><SPAN lang=EN-US></SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="COLOR: black"> </SPAN><SPAN lang=EN-US></SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="COLOR: black">I'm using picker.GetPickPosition() to get the dimension of the picked point. I'd probably need to change this. Does anyone know how I can fix the problem? Any suggestions would be a great help</SPAN><SPAN lang=EN-US></SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="COLOR: black"> </SPAN><SPAN lang=EN-US></SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="COLOR: black">Thanks</SPAN><SPAN lang=EN-US></SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="COLOR: black">Shaadi</SPAN><SPAN lang=EN-US></SPAN></P></DIV>
<DIV>
<P class=MsoNormal><SPAN lang=EN-US> </SPAN></P></DIV>
<DIV>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue">using</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> System;</SPAN><SPAN lang=EN-US></SPAN></P></DIV>
<DIV>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue">using</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> System.Collections.Generic;</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue">using</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> System.ComponentModel;</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue">using</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> System.Data;</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue">using</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> System.Drawing;</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue">using</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> System.Linq;</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue">using</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> System.Text;</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue">using</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> System.Windows.Forms;</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue">using</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> System.Collections;</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue">using</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> vtk;</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue">using</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> itk;</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue">namespace</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> InteractiveHierarchicalSegmentationDotNet.Test</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">{</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue">public</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> <SPAN style="COLOR: blue">partial</SPAN> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">testPicking</SPAN> : <SPAN style="COLOR: #2b91af">Form</SPAN></SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">{</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #2b91af">vtkCellPicker</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> picker;</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #2b91af">vtkRenderer</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> renderer = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">vtkRenderer</SPAN>();</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue">public</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> testPicking()</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">{</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">InitializeComponent();</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">vtkFormsWindowControl1.GetRenderWindow().AddRenderer(renderer);</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">viewImage();</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">picker = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">vtkCellPicker</SPAN>();</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">picker.PickFromListOn(); <SPAN style="COLOR: green">// to make sure picker won't pick props instead of cells</SPAN></SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">picker.AddObserver((<SPAN style="COLOR: blue">uint</SPAN>)vtk.<SPAN style="COLOR: #2b91af">EventIds</SPAN>.EndPickEvent, <SPAN style="COLOR: blue">new</SPAN> vtk.<SPAN style="COLOR: #2b91af">vtkDotNetCallback</SPAN>(annotatePick));</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">vtkFormsWindowControl1.GetInteractor().SetPicker(picker);</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">}</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue">private</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> <SPAN style="COLOR: blue">void</SPAN> annotatePick(vtk.<SPAN style="COLOR: #2b91af">vtkObject</SPAN> caller, <SPAN style="COLOR: blue">uint</SPAN> eventId,</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue">object</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> clientData, <SPAN style="COLOR: #2b91af">IntPtr</SPAN> callData)</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">{</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #2b91af">vtkActor2D</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> textActor = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">vtkActor2D</SPAN>();</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">{</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue">double</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">[] selPt = picker.GetSelectionPoint();</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue">double</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> x = selPt[0];</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue">double</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> y = selPt[1];</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue">double</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">[] pickPos = picker.GetPickPosition();</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue">double</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> xp = pickPos[0];</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue">double</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> yp = pickPos[1];</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue">double</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> zp = pickPos[2];</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">pointsDataGridView.Rows.Add();</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">pointsDataGridView.Rows[pointsDataGridView.RowCount - 1].Cells[0].Value = xp;</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">pointsDataGridView.Rows[pointsDataGridView.RowCount - 1].Cells[1].Value = yp;</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">pointsDataGridView.Rows[pointsDataGridView.RowCount - 1].Cells[2].Value = zp;</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue">double</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">[] newPoint = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: blue">double</SPAN>[] { xp, yp, zp };</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue">double</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">[] previousPoint = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: blue">double</SPAN>[3];</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue">if</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> (pointsDataGridView.Rows.Count == 1)</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">{</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">previousPoint = newPoint;</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">}</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue">else</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">{</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: green">// retrieve the previous row</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue">double</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> pxp = <SPAN style="COLOR: #2b91af">Convert</SPAN>.ToDouble(pointsDataGridView.Rows[pointsDataGridView.Rows.Count - 2].Cells[0].Value);</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue">double</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> pyp = <SPAN style="COLOR: #2b91af">Convert</SPAN>.ToDouble(pointsDataGridView.Rows[pointsDataGridView.Rows.Count - 2].Cells[1].Value);</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue">double</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> pzp = <SPAN style="COLOR: #2b91af">Convert</SPAN>.ToDouble(pointsDataGridView.Rows[pointsDataGridView.Rows.Count - 2].Cells[2].Value);</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">previousPoint[0] = pxp;</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">previousPoint[1] = pyp;</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">previousPoint[2] = pzp;</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">}</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue">int</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> r = 1, g = 0, b = 0;</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">createLine(previousPoint, newPoint);</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">vtkFormsWindowControl1.Refresh();</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">}</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">}</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue">private</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> <SPAN style="COLOR: blue">void</SPAN> createLine(<SPAN style="COLOR: blue">double</SPAN>[] startPoint, <SPAN style="COLOR: blue">double</SPAN>[] endPoint)</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">{</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #2b91af">vtkPoints</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> VTKpoints = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">vtkPoints</SPAN>();</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">VTKpoints.SetNumberOfPoints(2);</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">VTKpoints.InsertPoint(0, startPoint[0], startPoint[1], startPoint[2]);</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">VTKpoints.InsertPoint(1, endPoint[0], endPoint[1], endPoint[2]);</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt"> </SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #2b91af">vtkLine</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> line = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">vtkLine</SPAN>();</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">line.GetPointIds().SetId(0, 0);</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">line.GetPointIds().SetId(1, 1);</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #2b91af">vtkUnstructuredGrid</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> grid = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">vtkUnstructuredGrid</SPAN>();</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">grid.Allocate(1, 1);</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">grid.InsertNextCell(line.GetCellType(), line.GetPointIds());</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">grid.SetPoints(VTKpoints);</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #2b91af">vtkDataSetMapper</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> aLineMapper = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">vtkDataSetMapper</SPAN>();</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">aLineMapper.SetInput(grid);</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #2b91af">vtkActor</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> aLineActor = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">vtkActor</SPAN>();</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">aLineActor.SetMapper(aLineMapper);</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">aLineActor.AddPosition(0, 0, 0);</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">aLineActor.GetProperty().SetDiffuseColor(1, 0, 0);</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">renderer.AddActor(aLineActor);</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">vtkFormsWindowControl1.GetRenderWindow().AddRenderer(renderer);</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">}</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue">private</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> <SPAN style="COLOR: blue">void</SPAN> viewImage()</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">{</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue">try</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">{</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #2b91af">itkImage_UC3</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> input = <SPAN style="COLOR: #2b91af">itkImage_UC3</SPAN>.New();</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">input.Read(<SPAN style="COLOR: #a31515">"C:/brain.tif"</SPAN>);</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: green">// Import ITK image to VTK</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #2b91af">itkImageToVTKImageFilter_IUC3</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> itk2vtk =</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #2b91af">itkImageToVTKImageFilter_IUC3</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">.New();</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">itk2vtk.SetInput(input);</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">itk2vtk.Update();</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #2b91af">vtkImageData</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> data = itk2vtk.GetOutput();</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #2b91af">vtkImageFlip</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> imageFlip = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">vtkImageFlip</SPAN>();</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">imageFlip.SetFilteredAxis(1);</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">imageFlip.SetInput(data);</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">vtk.<SPAN style="COLOR: #2b91af">vtkImageActor</SPAN> imageActor = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">vtkImageActor</SPAN>();</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">imageActor.SetInput(imageFlip.GetOutput());</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">renderer.AddActor(imageActor);</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">vtkFormsWindowControl1.Update();</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">}</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue">catch</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt"> (<SPAN style="COLOR: #2b91af">Exception</SPAN> ex)</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">{</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #2b91af">Console</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt">.WriteLine(ex);</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">}</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">}</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">}</SPAN><SPAN lang=EN-US></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10pt">}</SPAN><SPAN lang=EN-US></SPAN></P></DIV></DIV></DIV></DIV></DIV>
<P class=MsoNormal><SPAN lang=EN-US> </SPAN></P></DIV></DIV></DIV></DIV>
<P class=MsoNormal><SPAN lang=EN-US> </SPAN></P></DIV></DIV></DIV></div><br>
</body></html>