<div dir="ltr">Hi <span style="font-family:arial,sans-serif;font-size:13px">Gerrick,</span><div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div style><span style="font-family:arial,sans-serif;font-size:13px">their is no way to my knowledge in Java to make the C++ layer use your data structure. (At least easily with what is available within VTK)</span></div>
<div style><span style="font-family:arial,sans-serif;font-size:13px">The </span><span style="font-family:arial,sans-serif;font-size:13px">vtkProgrammable* are used to embed your filter/source logic into VTK pipeline, but it still require you to create a vtkDataObject anyway... </span></div>
<div style><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div style><span style="font-family:arial,sans-serif;font-size:13px">It will be easier to do it the other way around. Make Java use a VTK/C++ data structure.</span></div>
<div style><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div style><span style="font-family:arial,sans-serif;font-size:13px">Seb</span></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Wed, Jun 26, 2013 at 8:44 AM, Gerrick Bivins <span dir="ltr"><<a href="mailto:Gerrick.Bivins@halliburton.com" target="_blank">Gerrick.Bivins@halliburton.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div lang="EN-US" link="blue" vlink="purple">
<div>
<p class="MsoNormal">Hi all,<u></u><u></u></p>
<p class="MsoNormal">I have some data that I’d like to process/visualize using VTK pipelines.<u></u><u></u></p>
<p class="MsoNormal">At the moment, I’m investigating structured data but eventually I would like to use unstructured.<u></u><u></u></p>
<p class="MsoNormal">Anyway, I have access to the data through Java API’s and I’m trying to understand the proper approach. For example,<u></u><u></u></p>
<p class="MsoNormal">if I want to use VTK to generate a slice through this data it feels like I need to do something like:<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas"> <b><i>Object javaGrid;</i></b></span><b><i><span style="font-size:10.0pt;font-family:Consolas;color:#3f7f5f">// = …;</span></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><span style="font-size:10.0pt;font-family:Consolas"> vtkDataSet dataset;</span></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas;color:#3f7f5f">// = …;</span></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><span style="font-size:10.0pt;font-family:Consolas"><u></u> <u></u></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><span style="font-size:10.0pt;font-family:Consolas">
</span></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas;color:#3f7f5f">//translate javaGrid to vtkDataSet</span></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><span style="font-size:10.0pt;font-family:Consolas"> vtkPoints points;</span></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas;color:#3f7f5f">// = …;</span></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><span style="font-size:10.0pt;font-family:Consolas"> dataset.<u>setPoints</u>(points);</span></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><span style="font-size:10.0pt;font-family:Consolas">
</span></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas;color:#3f7f5f">///copy points</span></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><span style="font-size:10.0pt;font-family:Consolas">
</span></i></b><b><i><u><span style="font-size:10.0pt;font-family:Consolas;color:#7f0055">for</span></u></i></b><b><i><u><span style="font-size:10.0pt;font-family:Consolas">(javaGrid.getNumberOfPoints())</span></u></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><u><span style="font-size:10.0pt;font-family:Consolas"> {</span></u></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><u><span style="font-size:10.0pt;font-family:Consolas"> points.insertNextPoint(javaGrid.getPoint(i)[0], javaGrid.getPoint(i)[1], javaGrid.getPoint(i)[2]))</span></u></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><u><span style="font-size:10.0pt;font-family:Consolas"> }</span></u></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><u><span style="font-size:10.0pt;font-family:Consolas"> …</span></u></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><u><span style="font-size:10.0pt;font-family:Consolas">
</span></u></i></b><b><i><u><span style="font-size:10.0pt;font-family:Consolas;color:#3f7f5f">//topology</span></u></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><u><span style="font-size:10.0pt;font-family:Consolas">
</span></u></i></b><b><i><u><span style="font-size:10.0pt;font-family:Consolas;color:#7f0055">for</span></u></i></b><b><i><u><span style="font-size:10.0pt;font-family:Consolas">(cell:javaGrid.getNumberOfCells())</span></u></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><span style="font-size:10.0pt;font-family:Consolas"> {</span></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><span style="font-size:10.0pt;font-family:Consolas">
<u>vtkCell</u> translatedCell = getVTKCellFromJavaGridCell(<u>cell</u>);</span></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><span style="font-size:10.0pt;font-family:Consolas"> dataset.insertNextCell(<u>cell</u>.getType(),<u>cell</u>.getIds());</span></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><span style="font-size:10.0pt;font-family:Consolas"> }</span></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><span style="font-size:10.0pt;font-family:Consolas">
</span></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas;color:#3f7f5f">///attributes</span></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><span style="font-size:10.0pt;font-family:Consolas">
</span></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas;color:#7f0055">for</span></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas">(<u>attribute</u>:javaGrid.<u>getPointBasedAttributes</u>())</span></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><span style="font-size:10.0pt;font-family:Consolas"> {</span></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><span style="font-size:10.0pt;font-family:Consolas">
<u>vtkDataArray</u> translatedArray = getVTKArrayFromJavaGridArray(<u>attribute</u>);</span></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><span style="font-size:10.0pt;font-family:Consolas"> dataset.<u>getPointData</u>().addArray(translatedArray);</span></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></i></b></p>
<p class="MsoNormal"><b><i><span style="font-size:10.0pt;font-family:Consolas"> }<u></u><u></u></span></i></b></p>
<p class="MsoNormal"><b><i><span style="font-size:10.0pt;font-family:Consolas">…<u></u><u></u></span></i></b></p>
<p class="MsoNormal"><b><i><span style="font-size:10.0pt;font-family:Consolas">//Set up pipeline from dataset to generate slice</span><u></u><u></u></i></b></p>
<p>..<u></u><u></u></p>
<p><u></u> <u></u></p>
<p>You, get the idea, brute force translation to vtkDataSet and then proceed as normal for VTK processing.<u></u><u></u></p>
<p>Ideally, what I would prefer to do in Java is implement some interface or extend some abstract class that makes my data look like a vtkDataSet
<u></u><u></u></p>
<p>w/o translating. I saw the vtkGenericDataSet class but I’m not sure if it’s intended for what I’m wanting to do or if it works in a wrapped language.<u></u><u></u></p>
<p><u></u> <u></u></p>
<p>For example, if I have data that represents a structured grid, I really only need to specify my dx,dy,dz and origin and the attributes but it looks like there is much more in the vtkGenericDataSet to implement than that.
<u></u><u></u></p>
<p><u></u> <u></u></p>
<p>I also looked at some of the vtkProgrammable* classes but those seem to be more of a “translation”.<u></u><u></u></p>
<p><u></u> <u></u></p>
<p>Is it possible to do something like this with the existing API? If not, what are the suggested approaches to achieving something like this?<u></u><u></u></p>
<p><u></u> <u></u></p>
<p>Gerrick<u></u><u></u></p>
</div>
<hr>This e-mail, including any attached files, may contain confidential and privileged information for the sole use of the intended recipient. Any review, use, distribution, or disclosure by others is strictly prohibited. If you are not the intended recipient (or authorized to receive information for the intended recipient), please contact the sender by reply e-mail and delete all copies of this message.<br>
</div>
<br>_______________________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the VTK FAQ at: <a href="http://www.vtk.org/Wiki/VTK_FAQ" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.vtk.org/mailman/listinfo/vtkusers" target="_blank">http://www.vtk.org/mailman/listinfo/vtkusers</a><br>
<br></blockquote></div><br></div>