FindAllArrayNames
VTKExamples/CSharp/IO/FindAllArrayNames
Description¶
A tutorial on how to setup a Console Application utilizing Kitware.VTK.dll can be found here: Setup a Console Application to use Kitware.VTK.dll
Code¶
FindAllArrayNames.cs
using System; using Kitware.VTK; namespace ActiViz.Examples { class Program { static void Main(string[] args) { FindAllArrayNames(null); Console.WriteLine("\nPress any key to continue..."); Console.ReadKey(); } private static void FindAllArrayNames(string filePath) { vtkPolyData polydata = vtkPolyData.New(); if(filePath == null) { vtkSphereSource sphereSource = vtkSphereSource.New(); sphereSource.Update(); vtkXMLPolyDataWriter writer = vtkXMLPolyDataWriter.New(); writer.SetFileName(@"c:\vtk\vtkdata-5.8.0\Data\testFindAllArrayNames.vtp"); writer.SetInputConnection(sphereSource.GetOutputPort()); writer.Write(); polydata = sphereSource.GetOutput(); } else { vtkXMLPolyDataReader reader = vtkXMLPolyDataReader.New(); reader.SetFileName(filePath); reader.Update(); polydata = reader.GetOutput(); } FindAllData(ref polydata); } private static void FindAllData(ref vtkPolyData polydata) { Console.WriteLine("Normals: " + polydata.GetPointData().GetNormals()); int numberOfPointArrays = polydata.GetPointData().GetNumberOfArrays(); Console.WriteLine("Number of PointData arrays: " + numberOfPointArrays); int numberOfCellArrays = polydata.GetCellData().GetNumberOfArrays(); Console.WriteLine("Number of CellData arrays: " + numberOfCellArrays); Console.WriteLine( Environment.NewLine + "Type table/key: " + Environment.NewLine + "-------------------------"); //more values can be found in <VTK_DIR>/Common/vtkSetGet.h Console.WriteLine(3 + " unsigned char"); Console.WriteLine(7 + " unsigned int"); Console.WriteLine(10 + " float"); Console.WriteLine(11 + " double" + Environment.NewLine); for(int i = 0; i < numberOfPointArrays; i++) { // The following two lines are equivalent //arrayNames.push_back(polydata.GetPointData().GetArray(i).GetName()); //arrayNames.push_back(polydata.GetPointData().GetArrayName(i)); int dataTypeID = polydata.GetPointData().GetArray(i).GetDataType(); string dataTypeAsString = polydata.GetPointData().GetArray(i).GetDataTypeAsString(); Console.WriteLine("Array " + i + ": " + polydata.GetPointData().GetArrayName(i) + " (type: " + dataTypeID + ")" + " (type as string: " + dataTypeAsString + ")" + Environment.NewLine); } for(int i = 0; i < numberOfCellArrays; i++) { // The following two lines are equivalent //polydata.GetPointData().GetArray(i).GetName(); //polydata.GetPointData().GetArrayName(i); int dataTypeID = polydata.GetCellData().GetArray(i).GetDataType(); string dataTypeAsString = polydata.GetPointData().GetArray(i).GetDataTypeAsString(); Console.WriteLine("Array " + i + ": " + polydata.GetCellData().GetArrayName(i) + " (type: " + dataTypeID + ")" + " (type as string: " + dataTypeAsString + ")"); } } } }