<div dir="ltr"><div><div><div><div><div>Hello, <br><br></div>I try to use the marching cubes algorithm on a .raw  image.<br></div>For that i use vtkVoxelModeler to specify the sample dimensions, the bounds etc ... And i get an exception:<br>
<br>Exception in thread &quot;main&quot; java.lang.UnsatisfiedLinkError: vtk.vtkMarchingCubes.VTKInit()J<br>    at vtk.vtkMarchingCubes.VTKInit(Native Method)<br>    at vtk.vtkObject.&lt;init&gt;(vtkObject.java:96)<br>    at vtk.vtkAlgorithm.&lt;init&gt;(vtkAlgorithm.java:765)<br>
    at vtk.vtkPolyDataAlgorithm.&lt;init&gt;(vtkPolyDataAlgorithm.java:163)<br>    at vtk.vtkMarchingCubes.&lt;init&gt;(vtkMarchingCubes.java:127)<br>    at fr.cea.v3d.tests.MeshVtk.&lt;clinit&gt;(MeshVtk.java:20)<br><br>
</div>Here is my code :<br><br>import java.lang.reflect.InvocationTargetException;<br><br>import javax.swing.SwingUtilities;<br><br>import vtk.vtkActor;<br>import vtk.vtkMarchingCubes;<br>import vtk.vtkMetaImageReader;<br>
import vtk.vtkPolyDataMapper;<br>import vtk.vtkRenderWindow;<br>import vtk.vtkRenderWindowInteractor;<br>import vtk.vtkRenderer;<br>import vtk.vtkVoxelModeller;<br><br>public class MeshVtk implements Runnable {<br><br>    private static String filename = &quot;ressources\\output_piston.xy.mhd&quot;;<br>
    private static vtkVoxelModeller voxelModeller  = new vtkVoxelModeller();<br>    private static vtkMarchingCubes marchingcubes = new vtkMarchingCubes();<br>    private static vtkRenderer renderer = new vtkRenderer();<br>
    private static vtkRenderWindow renderWindow = new vtkRenderWindow();<br>    private static vtkRenderWindowInteractor interactor = new vtkRenderWindowInteractor();<br>    private static vtkPolyDataMapper mapper = new vtkPolyDataMapper();<br>
    private static vtkActor actor = new vtkActor();<br>    private static double bounds[];<br><br>    public static void main(String[] args) {<br>        try {<br>            Class.forName(&quot;vtk.vtkPanel&quot;);<br>        } catch (ClassNotFoundException e) {<br>
            e.printStackTrace();<br>        }<br><br>        try {<br>            SwingUtilities.invokeAndWait(new MeshVtk());<br>        } catch (InvocationTargetException | InterruptedException e) {<br>            e.printStackTrace();<br>
        }<br>    }<br><br>    @Override<br>    public void run() {<br>        /* reader */<br>        vtkMetaImageReader reader = new vtkMetaImageReader();<br>        reader.SetFileName(filename);<br>        <br>        /* voxelModeller */<br>
        reader.GetOutput().GetBounds(bounds); /* bounds */<br>        for (int i = 0; i &lt; 6; i += 2)<br>        {<br>            double range = bounds[i+1] - bounds[i]; /* range ([xmin,xmax],[ymin,ymax],[zmin,zmax])*/<br>
            bounds[i]   = bounds[i] - .1 * range;<br>            bounds[i+1] = bounds[i+1] + .1 * range;<br>        }<br><br>        voxelModeller.SetSampleDimensions(50, 50, 50);<br>        voxelModeller.SetModelBounds(bounds);<br>
        voxelModeller.SetScalarTypeToFloat();<br>        voxelModeller.SetMaximumDistance(.1);<br>        <br>        voxelModeller.SetInputConnection(reader.GetOutputPort());<br>        <br>        /* marching cubes */<br>
<br>        marchingcubes.SetInputConnection(voxelModeller.GetOutputPort());<br>        marchingcubes.ComputeNormalsOn();<br>        marchingcubes.SetValue(0, 1);<br><br>        renderer.SetBackground(.1, .2, .3);<br>                 <br>
        renderWindow.AddRenderer(renderer);<br><br>        interactor.SetRenderWindow(renderWindow);<br><br>        mapper.SetInputConnection(marchingcubes.GetOutputPort());<br>                 <br>        actor.SetMapper(mapper);<br>
                 <br>        renderer.AddActor(actor);<br>                 <br>        renderWindow.Render();<br>        interactor.Start();<br><br>    }<br><br>}<br><br></div>I hope somebody can help me to fix this.<br><br>
</div>Thanks !<br><div><div><div><br clear="all"><div><div><div><br>-- <br>Thibault Varacca<br>EFREI Promo 2014<br><div>06 60 53 11 35</div>
</div></div></div></div></div></div></div>