Polyhedron
VTKExamples/Cxx/GeometricObjects/Polyhedron
Code¶
Polyhedron.cxx
#include "vtkSmartPointer.h" #include "vtkVersion.h" #include "vtkUnstructuredGrid.h" #include "vtkPolyhedron.h" #include "vtkCellArray.h" #include "vtkPointData.h" #include "vtkCellData.h" #include "vtkIdList.h" #include "vtkPoints.h" #include "vtkDataArray.h" #include "vtkXMLUnstructuredGridWriter.h" int main( int, char*[] ) { // create polyhedron (cube) vtkIdType pointIds[8] = {0, 1, 2, 3, 4, 5, 6, 7}; vtkSmartPointer<vtkPoints> points = vtkSmartPointer<vtkPoints>::New(); points->InsertNextPoint(-1.0,-1.0,-1.0); points->InsertNextPoint( 1.0,-1.0,-1.0); points->InsertNextPoint( 1.0, 1.0,-1.0); points->InsertNextPoint(-1.0, 1.0,-1.0); points->InsertNextPoint(-1.0,-1.0, 1.0); points->InsertNextPoint( 1.0,-1.0, 1.0); points->InsertNextPoint( 1.0, 1.0, 1.0); points->InsertNextPoint(-1.0, 1.0, 1.0); vtkSmartPointer<vtkCellArray> faces = vtkSmartPointer<vtkCellArray>::New(); vtkIdType face0[4] = {0, 3, 2, 1}; vtkIdType face1[4] = {0, 4, 7, 3}; vtkIdType face2[4] = {4, 5, 6, 7}; vtkIdType face3[4] = {5, 1, 2, 6}; vtkIdType face4[4] = {0, 1, 5, 4}; vtkIdType face5[4] = {2, 3, 7, 6}; faces->InsertNextCell(4, face0); faces->InsertNextCell(4, face1); faces->InsertNextCell(4, face2); faces->InsertNextCell(4, face3); faces->InsertNextCell(4, face4); faces->InsertNextCell(4, face5); vtkSmartPointer<vtkUnstructuredGrid> ugrid = vtkSmartPointer<vtkUnstructuredGrid>::New(); ugrid->SetPoints(points); ugrid->InsertNextCell( VTK_POLYHEDRON, 8, pointIds, 6, faces->GetPointer()); vtkSmartPointer<vtkXMLUnstructuredGridWriter> writer = vtkSmartPointer<vtkXMLUnstructuredGridWriter>::New(); #if VTK_MAJOR_VERSION <= 5 writer->SetInput(ugrid); #else writer->SetInputData(ugrid); #endif writer->SetFileName("polyhedron.vtu"); writer->SetDataModeToAscii(); writer->Update(); return EXIT_SUCCESS; }
CMakeLists.txt¶
cmake_minimum_required(VERSION 2.8) PROJECT(Polyhedron) find_package(VTK REQUIRED) include(${VTK_USE_FILE}) add_executable(Polyhedron MACOSX_BUNDLE Polyhedron.cxx) target_link_libraries(Polyhedron ${VTK_LIBRARIES})
Download and Build Polyhedron¶
Danger
The generation of tar files has not been ported to the new VTKExamples. Some tarballs may be missing or out-of-date.
Click here to download Polyhedron and its CMakeLists.txt file. Once the tarball Polyhedron.tar has been downloaded and extracted,
cd Polyhedron/build
If VTK is installed:
cmake ..
If VTK is not installed but compiled on your system, you will need to specify the path to your VTK build:
cmake -DVTK_DIR:PATH=/home/me/vtk_build ..
Build the project:
make
and run it:
./Polyhedron
WINDOWS USERS PLEASE NOTE: Be sure to add the VTK bin directory to your path. This will resolve the VTK dll's at run time.