[vtkusers] how to build a vtkTetra with arcs

Leguay Romain romain.leguay at etu.u-bordeaux1.fr
Mon May 31 09:52:02 EDT 2010


Good afternoon everyone!
I a new user with VTK. For a college work, I need to create a  
tetrahedron with arcs instead of "classic" edge.
I found some examples to create some arcs from a random graph source  
(http://public.kitware.com/cgi-bin/viewcvs.cgi/*checkout*/Infovis/Testing/Cxx/TestArcEdges.cxx?root=VTK&content-type=text/plain) but I can't find any examples for the vtkGeoArcs or  
vtkArcsSource.
I work in Java environment with VTK 5.6.

Regards,
Romain LEGUAY

PS: I try to execute the following code but my tetrahedron doesn't appear.

package tetra;

import vtk.vtkActor;
import vtk.vtkArcSource;
import vtk.vtkDataSetMapper;
import vtk.vtkGeoArcs;
import vtk.vtkPoints;
import vtk.vtkPolygon;
import vtk.vtkRenderWindow;
import vtk.vtkRenderWindowInteractor;
import vtk.vtkRenderer;
import vtk.vtkTetra;
import vtk.vtkUnstructuredGrid;

public class TestTetraArcs {
	static {
		System.loadLibrary("vtkCommonJava");
		System.loadLibrary("vtkFilteringJava");
		System.loadLibrary("vtkIOJava");
		System.loadLibrary("vtkImagingJava");
		System.loadLibrary("vtkGraphicsJava");
		System.loadLibrary("vtkRenderingJava");
		System.loadLibrary("vtkGeovisJava");
	}

	public static void main(String[] args) {
		//Tableau de points
		vtkPoints points = new vtkPoints();
		//points.SetDataTypeToDouble();
		double[] p1 = {0,0,0};
		double[] p2 = {-1,0,0};
		double[] p3 = {0.5,1,0};
		double[] p4 = {0.5,0.5,1};
		points.SetNumberOfPoints(4);
		points.InsertPoint(0, p1);
		points.InsertPoint(1, p2);
		points.InsertPoint(2, p3);
		points.InsertPoint(3, p4);

		//Cellule de type tetraèdre
		vtkTetra tetra = new vtkTetra();
		tetra.GetPointIds().SetId(0, 0);
		tetra.GetPointIds().SetId(1, 1);
		tetra.GetPointIds().SetId(2, 2);
		tetra.GetPointIds().SetId(3, 3);

		vtkUnstructuredGrid tetraGrid = new vtkUnstructuredGrid();
		//tetraGrid.Allocate(1, 1);
		tetraGrid.InsertNextCell(tetra.GetCellType(), tetra.GetPointIds());
		tetraGrid.SetPoints(points);

		vtkGeoArcs arcs = new vtkGeoArcs();
		arcs.AddInput(tetraGrid);
		arcs.Update();

		vtkDataSetMapper tetraMapper = new vtkDataSetMapper();
		tetraMapper.AddInputConnection(arcs.GetOutputPort());

		vtkActor tetraActor = new vtkActor();
		tetraActor.SetMapper(tetraMapper);

		// Nous créons un renderer qui va faire le rendu de notre entitée.
		vtkRenderer renderer = new vtkRenderer();
		renderer.AddActor(tetraActor);
		renderer.SetBackground(0, 0.5, 1);

		// Nous créons une fenêtre de rendu
		vtkRenderWindow win = new vtkRenderWindow();
		win.AddRenderer(renderer);
		win.SetSize(640,480);

		// Nous créons un interactor qui permet de bouger la caméra.
		vtkRenderWindowInteractor iren = new vtkRenderWindowInteractor();
		iren.SetRenderWindow(win);

		// Nous lançons le rendu et l'interaction
		win.Render();
		iren.Start();
	}
}




More information about the vtkusers mailing list