Ballz.GameSession.World.Terrain.ExtractTrianglesFromCells C# (CSharp) Method

ExtractTrianglesFromCells() private method

private ExtractTrianglesFromCells ( ) : void
return void
        private void ExtractTrianglesFromCells()
        {
            int triStartX = -1;
            bool startNew = true;
            foreach (var line in fullCells)
            {
                for (int i = 0; i < line.Count; ++i)
                {
                    var cell = line[i];

                    bool createTriangle = false;
                    if (i == 0 || startNew)
                    {
                        // new start
                        triStartX = cell.X - 1;
                        startNew = false;
                    }

                    if (i == line.Count - 1)
                    {
                        // need to close segment here
                        createTriangle = true;
                    }
                    else
                    {
                        if (cell.X + 1 < line[i + 1].X)
                        {
                            // gap
                            createTriangle = true;
                            startNew = true;
                        }
                    }

                    if (createTriangle)
                    {
                        WorkingShape.Triangles.Add(new Triangle(new Vector2(triStartX, cell.Y - 1), new Vector2(triStartX, cell.Y), new Vector2(cell.X, cell.Y - 1)));
                        WorkingShape.Triangles.Add(new Triangle(new Vector2(triStartX, cell.Y), new Vector2(cell.X, cell.Y), new Vector2(cell.X, cell.Y - 1)));
                    }
                }
            }
        }