<div>
<div>Hello all,</div>
<div>&nbsp;</div>
<div>I&#39;m a relatively new VTK developer.&nbsp; I am using Java as the gui for my VTK applications.&nbsp; I had a hard time getting started and finding examples written in Java.&nbsp; I have ported a dozen examples to Java to get familiar with it.&nbsp; I wanted to post my examples so other Java enthusiasts could get up to speed on VTK a bit more easily.&nbsp; I hope this helps. 
</div>
<div>&nbsp;</div>
<div>Best Regards,</div>
<div>Todd</div></div>
<div>&nbsp;</div>
<div>
<p>package examples;</p>
<p>import vtk.*;</p>
<p>/*<br>&nbsp;* Bare Tcl source: multipleIso.tcl<br>&nbsp;* CS Facility path: /sys/www/classes/cs5630/vtk/tcl/graphics/examplesTcl/multipleIso.tcl<br>&nbsp;* --------------------------------------------------------------------------------
<br>&nbsp;*/</p>
<p>/**<br>&nbsp;*&nbsp; This example shows how to use isosurfaces<br>&nbsp;*/<br>public class MultipleIsoComb {</p>
<p>&nbsp;&nbsp;&nbsp; // in the static contructor we load in the native code<br>&nbsp;&nbsp;&nbsp; // The libraries must be in your path to work<br>&nbsp;&nbsp;&nbsp; static {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.loadLibrary(&quot;vtkCommonJava&quot;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.loadLibrary(&quot;vtkFilteringJava&quot;);
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.loadLibrary(&quot;vtkIOJava&quot;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.loadLibrary(&quot;vtkImagingJava&quot;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.loadLibrary(&quot;vtkGraphicsJava&quot;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.loadLibrary(&quot;vtkRenderingJava&quot;);
<br>&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; public static void main(String s[]) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Read the data files<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vtkPLOT3DReader pl3d = new vtkPLOT3DReader();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pl3d.SetXYZFileName(&quot;c:/user/VTK/Data/combxyz.bin&quot;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pl3d.SetQFileName
(&quot;c:/user/VTK/Data/combq.bin&quot;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pl3d.SetScalarFunctionNumber(100);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pl3d.SetVectorFunctionNumber(202);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pl3d.Update();</p>
<p>&nbsp;&nbsp;&nbsp; double range[] = pl3d.GetOutput().GetPointData().GetScalars().GetRange();<br>&nbsp;&nbsp;&nbsp; double min=range[0];<br>&nbsp;&nbsp;&nbsp; double max=range[1];<br>&nbsp;&nbsp;&nbsp; double value=(min+max)/2.0;</p>
<p>&nbsp;&nbsp;&nbsp; vtkContourFilter cf = new vtkContourFilter();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cf.SetInput(pl3d.GetOutputDataObject(0));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cf.SetValue(0, value);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cf.UseScalarTreeOn();</p>
<p>&nbsp;&nbsp;&nbsp; int numberOfContours=5;<br>&nbsp;&nbsp;&nbsp; double epsilon=&nbsp; (max - min) / (double)(numberOfContours * 10);<br>&nbsp;&nbsp;&nbsp; min=min+epsilon;<br>&nbsp;&nbsp;&nbsp; max=max-epsilon;</p>
<p>&nbsp;&nbsp;&nbsp; vtkPolyData pd[] = new vtkPolyData[numberOfContours];<br>&nbsp;&nbsp;&nbsp; vtkPolyDataMapper mapper[] = new vtkPolyDataMapper[numberOfContours];</p>
<p>&nbsp;&nbsp;&nbsp; for (int i=0; i&lt;numberOfContours; i++) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; double val=min + ((i - 1) / (double)(numberOfContours - 1) )*(max - min);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cf.SetValue(0, val);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cf.Update();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pd[i]=new vtkPolyData();<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pd[i].CopyStructure(cf.GetOutput);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pd[i].GetPointData(DeepCopy(cf.GetOutput().GetPointData()));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vtkPolyDataMapper mapper$i<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mapper$i SetInput pd$i<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eval mapper$i SetScalarRange \
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [[[[pl3d GetOutput] GetPointData] GetScalars] GetRange]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vtkActor actor$i<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; actor$i AddPosition 0 [expr $i * 12] 0<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; actor$i SetMapper mapper$i<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ren1 AddActor actor$i
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p><br>&nbsp;&nbsp;&nbsp; }//main<br>}//class</p>
<p>&nbsp;</p></div>