<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 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:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
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:"Sprechblasentext Zchn";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";
        mso-fareast-language:EN-US;}
span.E-MailFormatvorlage17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.SprechblasentextZchn
        {mso-style-name:"Sprechblasentext Zchn";
        mso-style-priority:99;
        mso-style-link:Sprechblasentext;
        font-family:"Tahoma","sans-serif";}
.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">Dear all,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">I am working on a Qt (4.7.4) project and need to plot data in 2D and 3D coordinate systems. I basically got 2D plots working but am stuck plotting data in 3D.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Here's what I tried: I'm using the following piece of code that I took from one of vtk's tests ( Charts / Core / Testing / Cxx / TestSurfacePlot.cxx ). The only thing I added is the QVTKWidget that I use in my GUI and
 its interactor (see code below). <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Now, this produces a plot but I can neither interact with it not does it look 3D. I would like to do some basic stuff like zoom, pan, or rotate about a pivot. A few questions that come to my mind about this are:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">- Is it correct to assign the QVTKWidget interactor to the view in the third line from the bottom?<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">- In the test, a vtkChartXYZ is added to the vtkContextView. According to the documentation, the vtkContextView is used to display a 2D scene but here is used with a 3D chart (XYZ). How does this fit together?<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Thanks for your help!<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Dirk<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Sample code below<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">------------------------<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">QVTKWidget vtkWidget;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">vtkNew<vtkChartXYZ> chart;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">vtkNew<vtkPlotSurface> plot;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">vtkNew<vtkContextView> view;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">view->GetRenderWindow()->SetSize(400, 300);<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">vtkWidget.SetRenderWindow(view->GetRenderWindow());<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">view->GetScene()->AddItem(chart.GetPointer());<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">chart->SetGeometry(vtkRectf(75.0, 20.0, 250, 260));<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">// Create a surface<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">vtkNew<vtkTable> table;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">float numPoints = 70;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">float inc = 9.424778 / (numPoints - 1);<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">for (float i = 0; i < numPoints; ++i)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">{<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    vtkNew<vtkFloatArray> arr;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    table->AddColumn(arr.GetPointer());<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">}<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">table->SetNumberOfRows(numPoints);<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">for (float i = 0; i < numPoints; ++i)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">{<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    float x = i * inc;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    for (float j = 0; j < numPoints; ++j)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        float y  = j * inc;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        table->SetValue(i, j, sin(sqrt(x*x + y*y)));<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    }<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">}<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">// Set up the surface plot we wish to visualize and add it to the chart.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">plot->SetXRange(0, 9.424778);<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">plot->SetYRange(0, 9.424778);<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">plot->SetInputData(table.GetPointer());<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">chart->AddPlot(plot.GetPointer());<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">view->GetRenderWindow()->SetMultiSamples(0);<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">view->SetInteractor(vtkWidget.GetInteractor());<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">view->GetInteractor()->Initialize();<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">view->GetRenderWindow()->Render();<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
</div>
</body>
</html>