RectilinearGridToTetrahedra
VTKExamples/Java/RectilinearGrid/RectilinearGridToTetrahedra
Description¶
vtkRectilinearGridToTetrahedra object forms a mesh of Tetrahedra from a vtkRectilinearGrid.
The tetrahedra can be 5 per cell, 6 per cell, or a mixture of 5 or 12 per cell. The resulting mesh is consistent, meaning that there are no edge crossings and that each tetrahedron face is shared by two tetrahedra, except those tetrahedra on the boundary. All tetrahedra are right handed.
Other Languages
See (Cxx)
Code¶
RectilinearGridToTetrahedra.java
import vtk.vtkDoubleArray; import vtk.vtkNativeLibrary; import vtk.vtkRectilinearGrid; import vtk.vtkRectilinearGridToTetrahedra; import vtk.vtkXMLUnstructuredGridWriter; public class RectilinearGridToTetrahedra { // ----------------------------------------------------------------- // Load VTK library and print which library was not properly loaded static { if (!vtkNativeLibrary.LoadAllNativeLibraries()) { for (vtkNativeLibrary lib : vtkNativeLibrary.values()) { if (!lib.IsLoaded()) { System.out.println(lib.GetLibraryName() + " not loaded"); } } } vtkNativeLibrary.DisableOutputWindow(null); } // ----------------------------------------------------------------- public static void main(String args[]) { //parse command line arguments if (args.length != 1) { System.err.println("Usage: java -classpath ... Filename(.vtu) e.g output.vtu"); return; } String Filename = args[0]; // Create a grid vtkRectilinearGrid grid = new vtkRectilinearGrid(); grid.SetDimensions(5,4,3); vtkDoubleArray xArray = new vtkDoubleArray(); xArray.InsertNextValue(0.0); xArray.InsertNextValue(1.0); xArray.InsertNextValue(2.0); xArray.InsertNextValue(3.0); xArray.InsertNextValue(4.0); vtkDoubleArray yArray = new vtkDoubleArray(); yArray.InsertNextValue(0.0); yArray.InsertNextValue(1.0); yArray.InsertNextValue(2.0); yArray.InsertNextValue(3.0); vtkDoubleArray zArray = new vtkDoubleArray(); zArray.InsertNextValue(0.0); zArray.InsertNextValue(1.0); zArray.InsertNextValue(2.0); grid.SetXCoordinates(xArray); grid.SetYCoordinates(yArray); grid.SetZCoordinates(zArray); vtkRectilinearGridToTetrahedra rectilinearGridToTetrahedra = new vtkRectilinearGridToTetrahedra(); rectilinearGridToTetrahedra.SetInputData(grid); rectilinearGridToTetrahedra.Update(); vtkXMLUnstructuredGridWriter writer = new vtkXMLUnstructuredGridWriter(); writer.SetFileName(Filename); writer.SetInputConnection(rectilinearGridToTetrahedra.GetOutputPort()); writer.Write(); System.out.println("There are " + " " + rectilinearGridToTetrahedra.GetOutput().GetNumberOfCells() + " " + " cells."); } }