<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=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
/* Font Definitions */
@font-face
{font-family:Gulim;
panose-1:2 11 6 0 0 1 1 1 1 1;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:"Malgun Gothic";
panose-1:2 11 5 3 2 0 0 2 0 4;}
@font-face
{font-family:DotumChe;
panose-1:2 11 6 9 0 1 1 1 1 1;}
@font-face
{font-family:Gulim;
panose-1:2 11 6 0 0 1 1 1 1 1;}
@font-face
{font-family:DotumChe;
panose-1:2 11 6 9 0 1 1 1 1 1;}
@font-face
{font-family:"Malgun Gothic";
panose-1:2 11 5 3 2 0 0 2 0 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-autospace:none;
word-break:break-hangul;
font-size:10.0pt;
font-family:"Malgun Gothic";}
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;}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Malgun Gothic";
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;}
/* Page Definitions */
@page Section1
{size:612.0pt 792.0pt;
margin:3.0cm 72.0pt 72.0pt 72.0pt;}
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=KO link=blue vlink=purple>
<div class=Section1>
<p class=MsoNormal><span lang=EN-US>Hello, vtkusers!<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>Can anyone help me?<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>Below code is to display 2D raw image in
SDI application.<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>The code works well.<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>The problem is about mouse interaction.<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>Once the image displays, mouse interaction is
already applied (in 3 dimensional coordinate).<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>I don’t want to have mouse
interaction in 3 dimensional coordinate.<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>I tried to change it to my manual
interaction.<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>But I don’t know how to use “</span><b><span
lang=EN-US style='font-family:DotumChe;color:red'>pvtkRenderWindowInteractor</span></b><b><span
lang=EN-US style='font-family:"Times New Roman","serif";color:red'>”</span></b><b><span
lang=EN-US style='font-family:DotumChe;color:red'> MFC </span></b><b><span
lang=EN-US style='font-family:DotumChe'>SDI application.<o:p></o:p></span></b></p>
<p class=MsoNormal><b><span lang=EN-US style='font-family:DotumChe'><o:p> </o:p></span></b></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><b><span
lang=EN-US style='font-family:DotumChe;color:red'>//vtkRenderWindow
*pvtkRenderWindow = vtkRenderWindow::New();<o:p></o:p></span></b></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><b><span
lang=EN-US style='font-family:DotumChe;color:red'>//pvtkRenderWindow->AddRenderer(pVOXA_Ver10View->GetRenderer());<o:p></o:p></span></b></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><b><span
lang=EN-US style='font-family:DotumChe;color:red'>//vtkRenderWindowInteractor
*pvtkRenderWindowInteractor = vtkRenderWindowInteractor::New();<o:p></o:p></span></b></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><b><span
lang=EN-US style='font-family:DotumChe;color:red'>//pvtkRenderWindowInteractor->SetRenderWindow(pvtkRenderWindow);<o:p></o:p></span></b></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><b><span
lang=EN-US style='font-family:DotumChe;color:red'><o:p> </o:p></span></b></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><b><span
lang=EN-US style='font-family:DotumChe;color:red'>//pvtkRenderWindowInteractor->Initialize();<o:p></o:p></span></b></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><b><span
lang=EN-US style='font-family:DotumChe;color:red'>//pvtkRenderWindowInteractor->Start();<o:p></o:p></span></b></p>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US>If I insert the code above, new
renderwindow appear with image.<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>Can any one help me?<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe;color:blue'>void</span><span lang=EN-US
style='font-family:DotumChe'> CVOXA_Ver10Doc::TestSlice(<span style='color:
blue'>void</span>){<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'><o:p> </o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> POSITION
pos = <span style='color:blue'>this</span>->GetFirstViewPosition();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> CVOXA_Ver10View
*pVOXA_Ver10View = NULL;<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> <span
style='color:blue'>unsigned</span> <span style='color:blue'>short</span>
max(0);<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> <span
style='color:blue'>if</span> (pos)<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> {<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> pVOXA_Ver10View
= (CVOXA_Ver10View *)GetNextView(pos);<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> }<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> <span
style='color:blue'>else</span> <span style='color:green'>// return<o:p></o:p></span></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> {<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> ASSERT(FALSE);<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> <span
style='color:blue'>return</span>;<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> }<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> <span
style='color:blue'>int</span> dims[2];<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> <span
style='color:blue'>this</span>->pvtkImageReader1 = vtkImageReader::New();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> <span
style='color:blue'>this</span>->pvtkImageReader1->SetFileName(<span
style='color:#A31515'>"Image.slice"</span>);<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> <span
style='color:blue'>this</span>->pvtkImageReader1->SetDataExtent(0,255,0,255,0,0);<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> <span
style='color:blue'>this</span>->pvtkImageReader1->SetFileDimensionality(2);<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> <span
style='color:blue'>this</span>->pvtkImageReader1->SetDataOrigin(0,0,0);<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> <span
style='color:blue'>this</span>->pvtkImageReader1->SetDataScalarTypeToUnsignedChar();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> <span
style='color:blue'>this</span>->pvtkImageReader1->
SetDataByteOrderToLittleEndian();<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='font-family:DotumChe'> <span
style='color:blue'>this</span>->pvtkImageReader1->Update();<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='font-family:DotumChe'><o:p> </o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;text-indent:40.0pt;
word-break:keep-all'><span lang=EN-US style='font-family:DotumChe;color:blue'>this</span><span
lang=EN-US style='font-family:DotumChe'>->pvtkImageActor=vtkImageActor::New();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> <span
style='color:blue'>this</span>->pvtkImageActor->SetInput(<span
style='color:blue'>this</span>->pvtkImageReader1->GetOutput());<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> pVOXA_Ver10View->GetRenderer()->SetBackground(1,1,1);<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> pVOXA_Ver10View->GetRenderer()->AddActor(<span
style='color:blue'>this</span>->pvtkImageActor);<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> pVOXA_Ver10View->GetRenderer()->ResetCamera();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'><o:p> </o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> <b><span
style='color:red'>//vtkRenderWindow *pvtkRenderWindow = vtkRenderWindow::New();<o:p></o:p></span></b></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><b><span
lang=EN-US style='font-family:DotumChe;color:red'> //pvtkRenderWindow->AddRenderer(pVOXA_Ver10View->GetRenderer());<o:p></o:p></span></b></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><b><span
lang=EN-US style='font-family:DotumChe;color:red'><o:p> </o:p></span></b></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><b><span
lang=EN-US style='font-family:DotumChe;color:red'> //vtkRenderWindowInteractor
*pvtkRenderWindowInteractor = vtkRenderWindowInteractor::New();<o:p></o:p></span></b></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><b><span
lang=EN-US style='font-family:DotumChe;color:red'> //pvtkRenderWindowInteractor->SetRenderWindow(pvtkRenderWindow);<o:p></o:p></span></b></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><b><span
lang=EN-US style='font-family:DotumChe;color:red'><o:p> </o:p></span></b></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><b><span
lang=EN-US style='font-family:DotumChe;color:red'> //pvtkRenderWindowInteractor->Initialize();<o:p></o:p></span></b></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><b><span
lang=EN-US style='font-family:DotumChe;color:red'> //pvtkRenderWindowInteractor->Start();<o:p></o:p></span></b></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'><o:p> </o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> pvtkImageReader1->Delete();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> pvtkImageActor->Delete();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> pvtkImageReader1
= NULL;<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='font-family:DotumChe'> UpdateAllViews(FALSE); <o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='font-family:DotumChe'>}<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='font-family:DotumChe'><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='font-family:DotumChe'>//////////////////////////////////////////////////////////////////////////////////////////////////////////////<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='font-family:DotumChe'>I found this
code. It works well.<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='font-family:DotumChe'>I want to have
mouse interaction like this.<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='font-family:DotumChe'>But I don</span><span
lang=EN-US style='font-family:"Times New Roman","serif"'>’</span><span
lang=EN-US style='font-family:DotumChe'>t still know, how to modify the code to
use in my SDI application.<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='font-family:DotumChe'><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='font-family:DotumChe'><o:p> </o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe;color:blue'>void</span><span lang=EN-US
style='font-family:DotumChe'> CVOXA_Ver10Doc::TestJpeg(<span style='color:blue'>void</span>)<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'>{ <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> vtkJPEGReader *pvtkJPEGReader =
vtkJPEGReader::New();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> pvtkJPEGReader->SetFileName (<span
style='color:#A31515'>"DSC_0190.JPG"</span>);<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> pvtkJPEGReader->Update();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'><o:p> </o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> <span style='color:green'>//
Picker to pick pixels<o:p></o:p></span></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> vtkPropPicker *pvtkPropPicker =
vtkPropPicker::New();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'>
pvtkPropPicker->PickFromListOn();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> <span style='color:green'>//
Give the picker a prop to pick<o:p></o:p></span></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> vtkImageViewer2
*pvtkImageViewer2 = vtkImageViewer2::New();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'>
pvtkPropPicker->AddPickList(pvtkImageViewer2->GetImageActor());<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> <span style='color:green'>//
Visualize<o:p></o:p></span></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> vtkRenderWindowInteractor
*pvtkRenderWindowInteractor =vtkRenderWindowInteractor::New();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'>
pvtkImageViewer2->SetInputConnection(pvtkJPEGReader->GetOutputPort());<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> pvtkImageViewer2->SetupInteractor(pvtkRenderWindowInteractor);<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'>
pvtkImageViewer2->SetSize(600,600);<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> vtkRenderer* pvktRenderer =
pvtkImageViewer2->GetRenderer();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'><o:p> </o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> pvktRenderer->ResetCamera();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'>
pvktRenderer->GradientBackgroundOn();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> pvktRenderer->SetBackground(0,0,0);<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'>
pvktRenderer->SetBackground2(1,1,1);<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'><o:p> </o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> <span style='color:green'>//
Annotate the image with window/level and mouse over pixel information<o:p></o:p></span></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> vtkCornerAnnotation
*pvtkCornerAnnotation = vtkCornerAnnotation::New();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'>
pvtkCornerAnnotation->SetLinearFontScaleFactor( 2 );<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'>
pvtkCornerAnnotation->SetNonlinearFontScaleFactor( 1 );<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'>
pvtkCornerAnnotation->SetMaximumFontSize( 20 );<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'>
pvtkCornerAnnotation->SetText( 0, <span style='color:#A31515'>"Off
Image"</span> );<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'>
pvtkCornerAnnotation->SetText( 3, <span style='color:#A31515'>"<window>\n<level>"</span>
);<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'>
pvtkCornerAnnotation->GetTextProperty()->SetColor( 1,0,0);<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'>
pvtkImageViewer2->GetRenderer()->AddViewProp(pvtkCornerAnnotation);<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> <span style='color:green'>//
Callback listens to MouseMoveEvents invoked by the interactor's style<o:p></o:p></span></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> vtkImageInteractionCallback
*Callback=vtkImageInteractionCallback::New();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'>
Callback->SetViewer(pvtkImageViewer2);<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'>
Callback->SetAnnotation(pvtkCornerAnnotation );<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'>
Callback->SetPicker(pvtkPropPicker);<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> <span style='color:green'>//
InteractorStyleImage allows for the following controls:<o:p></o:p></span></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> <span style='color:green'>// 1)
middle mouse + move = camera pan<o:p></o:p></span></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> <span style='color:green'>// 2)
left mouse + move = window/level<o:p></o:p></span></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> <span style='color:green'>// 3)
right mouse + move = camera zoom<o:p></o:p></span></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> <span style='color:green'>// 4)
middle mouse wheel scroll = zoom<o:p></o:p></span></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> <span style='color:green'>// 5)
'r' = reset window/level<o:p></o:p></span></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> <span style='color:green'>// 6)
shift + 'r' = reset camera<o:p></o:p></span></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> vtkInteractorStyleImage*
imageStyle = pvtkImageViewer2->GetInteractorStyle();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> imageStyle->AddObserver(
vtkCommand::MouseMoveEvent, Callback );<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'>
pvtkRenderWindowInteractor->Initialize();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'>
pvtkRenderWindowInteractor->Start();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'> <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'>}<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'><o:p> </o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>class vtkImageInteractionCallback : public
vtkCommand<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>{<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>public:<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> //vtkImageInteractionCallback(void);<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> //~vtkImageInteractionCallback(void);<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'><o:p> </o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> static
vtkImageInteractionCallback *New() <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> {<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> return new
vtkImageInteractionCallback; <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> }<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
vtkImageInteractionCallback() <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> {<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
this->Viewer = 0;<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
this->Picker = 0;<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
this->Annotation = 0;<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'><o:p> </o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
this->PointData = vtkPointData::New();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> }<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
~vtkImageInteractionCallback()<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> {<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
this->Viewer = 0;<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
this->Picker = 0;<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
this->Annotation = 0;<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
this->PointData->Delete();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> }<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> void
SetPicker(vtkPropPicker *picker) <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> {<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
this->Picker = picker; <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> }<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> void
SetAnnotation(vtkCornerAnnotation *annotation) <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> {<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
this->Annotation = annotation; <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> }<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> void
SetViewer(vtkImageViewer2 *viewer) <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> {<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
this->Viewer = viewer; <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> }<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> virtual void
Execute(vtkObject *, unsigned long event, void *)<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> {<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
this->Viewer;<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> vtkRenderWindowInteractor
*interactor = this->Viewer->GetRenderWindow()->GetInteractor();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
vtkRenderer* renderer = this->Viewer->GetRenderer();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
vtkImageActor* actor = this->Viewer->GetImageActor();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
vtkImageData* image = this->Viewer->GetInput();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
vtkInteractorStyle *style = vtkInteractorStyle::SafeDownCast(<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
interactor->GetInteractorStyle());<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
image->Update();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> // Pick at
the mouse location provided by the interactor<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
this->Picker->Pick( interactor->GetEventPosition()[0],<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
interactor->GetEventPosition()[1], 0.0, renderer );<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> // There
could be other props assigned to this picker, so <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> // make
sure we picked the image actor<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
vtkAssemblyPath* path = this->Picker->GetPath();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> bool
validPick = false;<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> if( path )<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
{<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
vtkCollectionSimpleIterator sit;<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
path->InitTraversal( sit );<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
vtkAssemblyNode *node;<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
for( int i = 0; i < path->GetNumberOfItems() && !validPick; ++i )<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
{<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> node
= path->GetNextNode( sit );<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
if( actor == vtkImageActor::SafeDownCast( node->GetViewProp() ) )<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
{<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
validPick = true;<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
}<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
}<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
}<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> if(
!validPick )<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
{<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
this->Annotation->SetText( 0, "Off Image" );<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
interactor->Render();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
// Pass the event further on<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
style->OnMouseMove();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
return;<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
}<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> // Get the
world coordinates of the pick<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> double
pos[3];<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> this->Picker->GetPickPosition(
pos );<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> // Fixes
some numerical problems with the picking<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> double
*bounds = actor->GetDisplayBounds();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> int axis =
this->Viewer->GetSliceOrientation();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> pos[axis] =
bounds[2*axis];<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
vtkPointData* pd = image->GetPointData();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> if( !pd )<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
{<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
return;<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
}<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
this->PointData->InterpolateAllocate( pd, 1, 1 );<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> // Use
tolerance as a function of size of source data<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> double tol2
= image->GetLength();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> tol2 = tol2
? tol2*tol2 / 1000.0 : 0.001;<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> // Find the
cell that contains pos<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> int subId;<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> double
pcoords[3], weights[8];<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> vtkCell*
cell = image->FindAndGetCell(<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
pos, NULL, -1, tol2, subId, pcoords, weights );<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> if( cell )<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
{<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
// Interpolate the point data<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
this->PointData->InterpolatePoint( pd, 0, cell->PointIds, weights );<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
int components =
this->PointData->GetScalars()->GetNumberOfComponents();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
double* tuple = this->PointData->GetScalars()->GetTuple( 0 );<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
vtkStdString message = "Location: ( ";<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
message += vtkVariant( pos[0] ).ToString();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
message += ", ";<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
message += vtkVariant( pos[1] ).ToString();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
message += ", ";<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
message += vtkVariant( pos[2] ).ToString();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
message += " )\nValue: ( ";<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
for( int c = 0; c < components; ++c )<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
</span><span style='font-family:Gulim'>{<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
message += vtkVariant( tuple[ c ] ).ToString();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
if( c != components - 1 ) <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
{<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
message += ", ";<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
}<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
}<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
message += " )";<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
this->Annotation->SetText( 0, message.c_str() );<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
interactor->Render();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
style->OnMouseMove();<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'>
}<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> }<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> private:<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> // Pointer to the viewer<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> vtkImageViewer2 *Viewer;<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> // Pointer to the picker<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> vtkPropPicker *Picker;<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> // Pointer to the annotation<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> vtkCornerAnnotation *Annotation;<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:Gulim'> </span><span style='font-family:
Gulim'>// Interpolator<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
style='font-family:Gulim'> vtkPointData* PointData; <o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
style='font-family:Gulim'>};<o:p></o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'><o:p> </o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'><o:p> </o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US style='font-family:DotumChe'><o:p> </o:p></span></p>
<p class=MsoNormal align=left style='text-align:left;word-break:keep-all'><span
lang=EN-US><o:p> </o:p></span></p>
</div>
<img src="http://webmail.pusan.ac.kr/cgi-bin/setconfirm.cgi?k=12659395326873840599&u=madness78&d=pusan.ac.kr" width=1 height=1>
</body>
</html>