# IterateOverLines

VTKExamples/CSharp/PolyData/IterateOverLines

### 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

IterateOverLines.cs

    using System;
    using Kitware.VTK;

    namespace ActiViz.Examples {
       class Program {
          static void Main(string[] args) {
             IterateOverLines();
             Console.WriteLine("\nPress any key to continue...");
             Console.ReadKey();
          }

          private static void IterateOverLines() {
             double[] origin = new double[] { 0.0, 0.0, 0.0 };
             double[,] p = new double[,] {
                {1.0, 0.0, 0.0},
                {0.0, 1.0, 0.0},
                {0.0, 1.0, 2.0},
                {1.0, 2.0, 3.0}};

             // Create a vtkPoints object and store the points in it
             vtkPoints points = vtkPoints.New();
             points.InsertNextPoint(origin[0], origin[1], origin[2]);
             for(int i = 0; i < 4; i++)
                points.InsertNextPoint(p[i, 0], p[i, 1], p[i, 2]);

             // Create a cell array to store the lines in and add the lines to it
             vtkCellArray lines = vtkCellArray.New();

             // Create four lines
             for(int i = 0; i < 4; i++) {
                vtkLine line = vtkLine.New();
                line.GetPointIds().SetId(0, i);
                line.GetPointIds().SetId(1, i + 1);
                lines.InsertNextCell(line);
             }

             // Create a polydata to store everything in
             vtkPolyData linesPolyData = vtkPolyData.New();

             // Add the points to the dataset
             linesPolyData.SetPoints(points);

             // Add the lines to the dataset
             linesPolyData.SetLines(lines);

             Console.WriteLine("There are " + linesPolyData.GetNumberOfLines() + " lines.");
             linesPolyData.GetLines().InitTraversal();
             vtkIdList idList = vtkIdList.New();
             while(linesPolyData.GetLines().GetNextCell(idList) != 0) {
                Console.WriteLine("Line has " + idList.GetNumberOfIds() + " points.");

                for(int pointId = 0; pointId < idList.GetNumberOfIds(); pointId++) {
                   Console.Write(idList.GetId(pointId) + " ");
                }
                Console.Write(Environment.NewLine);
             }
          }
       }
    }