<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:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:1972979174;
        mso-list-type:hybrid;
        mso-list-template-ids:1541558712 67698705 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-text:"%1\)";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></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="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Hi all,<o:p></o:p></p>
<p class="MsoNormal">I have some data that I&#8217;d like to process/visualize using VTK pipelines.<o:p></o:p></p>
<p class="MsoNormal">At the moment, I&#8217;m investigating structured data but eventually I would like to use unstructured.<o:p></o:p></p>
<p class="MsoNormal">Anyway, I have access to the data through Java API&#8217;s and I&#8217;m trying to understand the proper approach. For example,<o:p></o:p></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:<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black">&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<b><i>Object javaGrid;</i></b></span><b><i><span style="font-size:10.0pt;font-family:Consolas;color:#3F7F5F">// = &#8230;;</span></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><span style="font-size:10.0pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vtkDataSet dataset;</span></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas;color:#3F7F5F">// = &#8230;;</span></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><span style="font-size:10.0pt;font-family:Consolas"><o:p>&nbsp;</o:p></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><span style="font-size:10.0pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</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"><o:p></o:p></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><span style="font-size:10.0pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vtkPoints points;</span></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas;color:#3F7F5F">// = &#8230;;</span></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><span style="font-size:10.0pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dataset.<u>setPoints</u>(points);</span></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><span style="font-size:10.0pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</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"><o:p></o:p></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><span style="font-size:10.0pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</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;color:black">(javaGrid.getNumberOfPoints())</span></u></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><u><span style="font-size:10.0pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></u></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><u><span style="font-size:10.0pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 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"><o:p></o:p></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><u><span style="font-size:10.0pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></u></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><u><span style="font-size:10.0pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8230;</span></u></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><u><span style="font-size:10.0pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</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"><o:p></o:p></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><u><span style="font-size:10.0pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</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;color:black">(cell:javaGrid.getNumberOfCells())</span></u></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><span style="font-size:10.0pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><span style="font-size:10.0pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<u>vtkCell</u> translatedCell = getVTKCellFromJavaGridCell(<u>cell</u>);</span></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><span style="font-size:10.0pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dataset.insertNextCell(<u>cell</u>.getType(),<u>cell</u>.getIds());</span></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><span style="font-size:10.0pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><span style="font-size:10.0pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</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"><o:p></o:p></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><span style="font-size:10.0pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</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;color:black">(<u>attribute</u>:javaGrid.<u>getPointBasedAttributes</u>())</span></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><span style="font-size:10.0pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><span style="font-size:10.0pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<u>vtkDataArray</u> translatedArray = getVTKArrayFromJavaGridArray(<u>attribute</u>);</span></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></i></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><i><span style="font-size:10.0pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dataset.<u>getPointData</u>().addArray(translatedArray);</span></i></b><b><i><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></i></b></p>
<p class="MsoNormal"><b><i><span style="font-size:10.0pt;font-family:Consolas;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></i></b></p>
<p class="MsoNormal"><b><i><span style="font-size:10.0pt;font-family:Consolas;color:black">&#8230;<o:p></o:p></span></i></b></p>
<p class="MsoNormal"><b><i><span style="font-size:10.0pt;font-family:Consolas;color:black">//Set up pipeline from dataset to generate slice</span><o:p></o:p></i></b></p>
<p class="MsoListParagraph">..<o:p></o:p></p>
<p class="MsoListParagraph"><o:p>&nbsp;</o:p></p>
<p class="MsoListParagraph">You, get the idea, brute force translation to vtkDataSet and then proceed as normal for VTK processing.<o:p></o:p></p>
<p class="MsoListParagraph">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
<o:p></o:p></p>
<p class="MsoListParagraph">w/o translating. I saw the vtkGenericDataSet class but I&#8217;m not sure if it&#8217;s intended for what I&#8217;m wanting to do or if it works in a wrapped language.<o:p></o:p></p>
<p class="MsoListParagraph"><o:p>&nbsp;</o:p></p>
<p class="MsoListParagraph">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.
<o:p></o:p></p>
<p class="MsoListParagraph"><o:p>&nbsp;</o:p></p>
<p class="MsoListParagraph">I also looked at some of the vtkProgrammable* classes but those seem to be more of a &#8220;translation&#8221;.<o:p></o:p></p>
<p class="MsoListParagraph"><o:p>&nbsp;</o:p></p>
<p class="MsoListParagraph">Is it possible to do something like this with the existing API? If not, what are the suggested approaches to achieving something like this?<o:p></o:p></p>
<p class="MsoListParagraph"><o:p>&nbsp;</o:p></p>
<p class="MsoListParagraph">Gerrick<o:p></o:p></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>
</body>
</html>