hyades.ShapeBuilder.CreateShape C# (CSharp) Method

CreateShape() private static method

private static CreateShape ( List vertices, List lines, float epsilon ) : List
vertices List
lines List
epsilon float
return List
        private static List<Vector2> CreateShape(List<Vector3> vertices, List<Line> lines, float epsilon)
        {
            List<Vector2> output = new List<Vector2>();
            Vector3 vertex, initial;
            initial = vertices[0];
            vertex = initial;
            int curr_line = -1;
            while (true)
            {
                for (int i = 0; i < lines.Count; i++)
                {
                    Vector3 a = vertices[lines[i].a];
                    Vector3 b = vertices[lines[i].b];

                    if (Same(vertex, a, epsilon))
                    {
                        if (curr_line == i)
                            continue;

                        curr_line = i;
                        vertex = vertices[lines[i].b];
                        output.Add(new Vector2(vertex.X, vertex.Y));
                        break;
                    }

                    if (Same(vertex, b, epsilon))
                    {
                        if (curr_line == i)
                            continue;

                        curr_line = i;
                        vertex = vertices[lines[i].a];
                        output.Add(new Vector2(vertex.X, vertex.Y));
                        break;
                    }
                }

                if (Same(vertex, initial, epsilon))
                    break;

                if (output.Count > vertices.Count)
                {
                    output.Clear();
                    return output;
                }
            }

            return output;
        }