Ejemplo n.º 1
0
    void ReadTriangulation_fmt()
    {
        string[] configData = File.ReadAllLines(triangulation);
        pointCount = int.Parse(Helper.SplitWhitespace(configData[0])[1]);
        vertCount  = int.Parse(Helper.SplitWhitespace(configData[0])[2]);
        points     = new Structs.Point[pointCount + 1];
        vertices   = new int[3 * (vertCount + 1)];
        int tmp = vertCount / 2 + 1;
        int a   = 0;

        for (int i = tmp; i <= tmp + (pointCount / 2) - 1; i++)
        {
            string[] splitted = Helper.SplitWhitespace(configData[i]);
            points[a]     = new Structs.Point(Single.Parse(splitted[1].Replace('.', ',')), Single.Parse(splitted[2].Replace('.', ',')));
            points[a + 1] = new Structs.Point(Single.Parse(splitted[3].Replace('.', ',')), Single.Parse(splitted[4].Replace('.', ',')));
            a             = a + 2;
        }
        a = 0;
        for (int i = 1; i < tmp; i++)
        {
            string[] splitted = Helper.SplitWhitespace(configData[i]);
            vertices[a]     = int.Parse(splitted[1]) - 1;
            vertices[a + 1] = int.Parse(splitted[2]) - 1;
            vertices[a + 2] = int.Parse(splitted[3]) - 1;
            vertices[a + 3] = int.Parse(splitted[4]) - 1;
            vertices[a + 4] = int.Parse(splitted[5]) - 1;
            vertices[a + 5] = int.Parse(splitted[6]) - 1;
            a = a + 6;
        }
    }
Ejemplo n.º 2
0
    void ReadTriangulation_msh()
    {
        string[] configData = File.ReadAllLines(triangulation);
        string   mode       = "";

        string[] splitted;
        int      v = 0;

        foreach (string line in configData)
        {
            splitted = Helper.SplitWhitespace(line);
            if (line.Contains("Nodes"))
            {
                mode = "nodes";
                continue;
            }
            else if (line.Contains("Elements"))
            {
                mode = "elements";
                continue;
            }

            if (mode == "nodes")
            {
                if (splitted.Length < 3)
                {
                    pointCount = int.Parse(splitted[0]);
                    points     = new Structs.Point[pointCount + 1];
                }
                else
                {
                    Structs.Point p = new Structs.Point(Single.Parse(splitted[1].Replace('.', ',')), Single.Parse(splitted[2].Replace('.', ',')));
                    points[int.Parse(splitted[0]) - 1] = p;
                    Debug.Log(p);
                }
            }
            else if (mode == "elements")
            {
                if (splitted.Length < 3)
                {
                    vertCount = int.Parse(splitted[0]);
                    vertices  = new int[3 * (vertCount)];
                    Debug.Log(vertCount);
                }
                else
                {
                    vertices[v]     = int.Parse(splitted[5]) - 1;
                    vertices[v + 1] = int.Parse(splitted[6]) - 1;
                    vertices[v + 2] = int.Parse(splitted[7]) - 1;
                    v = v + 3;
                }
            }
        }
    }